@typeonce/effect-machine 0.3.0 → 0.5.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 +410 -17
- package/dist/Machine.d.ts +1191 -510
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +371 -565
- package/dist/Machine.js.map +1 -1
- package/dist/internal/machine/activities.d.ts +57 -0
- package/dist/internal/machine/activities.d.ts.map +1 -0
- package/dist/internal/machine/activities.js +49 -0
- package/dist/internal/machine/activities.js.map +1 -0
- package/dist/internal/machine/atom.d.ts +69 -0
- package/dist/internal/machine/atom.d.ts.map +1 -0
- package/dist/{AtomMachine.js → internal/machine/atom.js} +20 -95
- package/dist/internal/machine/atom.js.map +1 -0
- package/dist/internal/machine/cluster.d.ts +63 -0
- package/dist/internal/machine/cluster.d.ts.map +1 -0
- package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
- package/dist/internal/machine/cluster.js.map +1 -0
- package/dist/internal/machine/command.d.ts +16 -0
- package/dist/internal/machine/command.d.ts.map +1 -0
- package/dist/internal/machine/command.js +45 -0
- package/dist/internal/machine/command.js.map +1 -0
- package/dist/internal/machine/commandRuntime.d.ts +13 -0
- package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
- package/dist/internal/machine/commandRuntime.js +16 -0
- package/dist/internal/machine/commandRuntime.js.map +1 -0
- package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +12 -61
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/{machineModel.js → machine/configuration.js} +250 -545
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +8 -8
- package/dist/internal/machine/errors.d.ts.map +1 -0
- package/dist/internal/{machineErrors.js → machine/errors.js} +8 -8
- package/dist/internal/machine/errors.js.map +1 -0
- package/dist/internal/machine/executionPlan.d.ts +49 -0
- package/dist/internal/machine/executionPlan.d.ts.map +1 -0
- package/dist/internal/machine/executionPlan.js +676 -0
- package/dist/internal/machine/executionPlan.js.map +1 -0
- package/dist/internal/machine/invocation.d.ts +23 -0
- package/dist/internal/machine/invocation.d.ts.map +1 -0
- package/dist/internal/machine/invocation.js +77 -0
- package/dist/internal/machine/invocation.js.map +1 -0
- package/dist/internal/machine/machine.d.ts +183 -0
- package/dist/internal/machine/machine.d.ts.map +1 -0
- package/dist/internal/machine/machine.js +552 -0
- package/dist/internal/machine/machine.js.map +1 -0
- package/dist/internal/machine/planner.d.ts +182 -0
- package/dist/internal/machine/planner.d.ts.map +1 -0
- package/dist/internal/machine/planner.js +1082 -0
- package/dist/internal/machine/planner.js.map +1 -0
- package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +11 -5
- package/dist/internal/machine/process.d.ts.map +1 -0
- package/dist/internal/machine/process.js +498 -0
- package/dist/internal/machine/process.js.map +1 -0
- package/dist/internal/machine/protocol.d.ts +34 -0
- package/dist/internal/machine/protocol.d.ts.map +1 -0
- package/dist/internal/machine/protocol.js +182 -0
- package/dist/internal/machine/protocol.js.map +1 -0
- package/dist/internal/machine/readiness.d.ts +4 -0
- package/dist/internal/machine/readiness.d.ts.map +1 -0
- package/dist/internal/machine/readiness.js +2 -0
- package/dist/internal/machine/readiness.js.map +1 -0
- package/dist/internal/machine/runtime.d.ts +255 -0
- package/dist/internal/machine/runtime.d.ts.map +1 -0
- package/dist/internal/machine/runtime.js +1489 -0
- package/dist/internal/machine/runtime.js.map +1 -0
- package/dist/internal/machine/serialization.d.ts +14 -0
- package/dist/internal/machine/serialization.d.ts.map +1 -0
- package/dist/internal/machine/serialization.js +338 -0
- package/dist/internal/machine/serialization.js.map +1 -0
- package/dist/internal/machine/stateDefinition.d.ts +15 -0
- package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
- package/dist/internal/machine/stateDefinition.js +210 -0
- package/dist/internal/machine/stateDefinition.js.map +1 -0
- package/dist/internal/machine/symbols.d.ts +3 -0
- package/dist/internal/machine/symbols.d.ts.map +1 -0
- package/dist/internal/machine/symbols.js +3 -0
- package/dist/internal/machine/symbols.js.map +1 -0
- package/dist/internal/machine/topology.d.ts +98 -0
- package/dist/internal/machine/topology.d.ts.map +1 -0
- package/dist/internal/machine/topology.js +347 -0
- package/dist/internal/machine/topology.js.map +1 -0
- package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
- package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
- package/dist/internal/testing/machine/arbitrary.js +68 -0
- package/dist/internal/testing/machine/arbitrary.js.map +1 -0
- package/dist/internal/testing/machine/exploration.d.ts +30 -0
- package/dist/internal/testing/machine/exploration.d.ts.map +1 -0
- package/dist/internal/testing/machine/exploration.js +237 -0
- package/dist/internal/testing/machine/exploration.js.map +1 -0
- package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
- package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/finiteModel.js +976 -0
- package/dist/internal/testing/machine/finiteModel.js.map +1 -0
- package/dist/internal/testing/machine/invariant.d.ts +31 -0
- package/dist/internal/testing/machine/invariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/invariant.js +214 -0
- package/dist/internal/testing/machine/invariant.js.map +1 -0
- package/dist/internal/testing/machine/probe.d.ts +26 -0
- package/dist/internal/testing/machine/probe.d.ts.map +1 -0
- package/dist/internal/testing/machine/probe.js +45 -0
- package/dist/internal/testing/machine/probe.js.map +1 -0
- package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
- package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/referenceModel.js +1012 -0
- package/dist/internal/testing/machine/referenceModel.js.map +1 -0
- package/dist/internal/testing/machine/runtime.d.ts +631 -0
- package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtime.js +726 -0
- package/dist/internal/testing/machine/runtime.js.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts +32 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.js +334 -0
- package/dist/internal/testing/machine/runtimeInvariant.js.map +1 -0
- package/dist/internal/testing/machine/trace.d.ts +17 -0
- package/dist/internal/testing/machine/trace.d.ts.map +1 -0
- package/dist/internal/testing/machine/trace.js +94 -0
- package/dist/internal/testing/machine/trace.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts +36 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -0
- package/dist/internal/testing/machine/verification.js +1375 -0
- package/dist/internal/testing/machine/verification.js.map +1 -0
- package/dist/testing/MachineTest.d.ts +1588 -0
- package/dist/testing/MachineTest.d.ts.map +1 -0
- package/dist/testing/MachineTest.js +406 -0
- package/dist/testing/MachineTest.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +56 -45
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
- package/dist/unstable/cluster/ClusterMachine.js +144 -0
- package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
- package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
- package/dist/unstable/cluster/index.d.ts.map +1 -0
- package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
- package/dist/unstable/cluster/index.js.map +1 -0
- package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +116 -50
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
- package/dist/unstable/reactivity/AtomMachine.js +164 -0
- package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
- package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
- package/dist/unstable/reactivity/index.d.ts.map +1 -0
- package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -0
- package/docs/agent-guide.md +316 -31
- package/package.json +28 -10
- package/dist/AtomMachine.d.ts.map +0 -1
- package/dist/AtomMachine.js.map +0 -1
- package/dist/ClusterMachine.d.ts.map +0 -1
- package/dist/ClusterMachine.js.map +0 -1
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js.map +0 -1
- package/dist/internal/machineErrors.d.ts.map +0 -1
- package/dist/internal/machineErrors.js.map +0 -1
- package/dist/internal/machineModel.d.ts.map +0 -1
- package/dist/internal/machineModel.js.map +0 -1
- package/dist/internal/machinePlanner.d.ts +0 -74
- package/dist/internal/machinePlanner.d.ts.map +0 -1
- package/dist/internal/machinePlanner.js +0 -797
- package/dist/internal/machinePlanner.js.map +0 -1
- package/dist/internal/machineProcess.d.ts.map +0 -1
- package/dist/internal/machineProcess.js +0 -181
- package/dist/internal/machineProcess.js.map +0 -1
- package/dist/internal/machineRuntime.d.ts +0 -125
- package/dist/internal/machineRuntime.d.ts.map +0 -1
- package/dist/internal/machineRuntime.js +0 -365
- package/dist/internal/machineRuntime.js.map +0 -1
- package/dist/reactivity.d.ts.map +0 -1
- package/dist/reactivity.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../src/internal/testing/machine/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EAA8B,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAE,uBAAuB,EAA8B,MAAM,uBAAuB,CAAA;AA2B3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAQ,KAAY,EAAyB,EAAE,CAAC,CAAC;IAC1E,IAAI,EAAE,MAAM;IACZ,KAAK;CACN,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAgB,QAAwB,EAAyB,EAAE,CAAC,CAAC;IACjG,IAAI,EAAE,SAAS;IACf,QAAQ;CACT,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAyC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAEzF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAgB,KAAc,EAAyB,EAAE,CAAC,CAAC;IAC1F,IAAI,EAAE,YAAY;IAClB,KAAK;CACN,CAAC,CAAA;AAoCF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAW;IAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAW;IACrC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAW;IAC/B,KAAK,EAAE,CACL,SAA+E,EACjC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;CACzE,CAAA;AAggBV;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAAC,oCAAoC,CAKhG;CAAG;AAEL;;;;;GAKG;AACH,MAAM,OAAO,qBASX,SAAQ,IAAI,CAAC,WAAW,CAAC,kCAAkC,CAO3D;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,OAAO,2BAQX,SAAQ,IAAI,CAAC,WAAW,CAAC,wCAAwC,CAOjE;CAAG;AAML,MAAM,WAAW,GAAG,CAAkE,OAOrF,EAA0F,EAAE,CAC3F,IAAI,qBAAqB,CAAC;IACxB,GAAG,OAAO;IACV,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;IAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;CAC7B,CAAC,CAAA;AAEJ,MAAM,cAAc,GAAG,CACrB,GAAoD,EACpD,OAA8B,EACO,EAAE;IACvC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,KAAK,CAAC;gBACX,SAAS,EAAE,CAAC,KAAK,EAAwB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;gBAC7E,SAAS,EAAE,GAAyB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;aAClE,CAAC,CACH,CAAA;QACH,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAW,CAAC,CAAC,CAAA;QAC/F,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC,CAAC,CAAA;QAC/D,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAW,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,GAAoD,EACpD,KAAuD,EACvD,MAAoD,EACpD,KAAa,EACb,OAAuB,EAIG,EAAE;IAC5B,MAAM,IAAI,GAAG,CACX,eAAiC,EACjC,MAAiD,EACN,EAAE,CAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,YAAY,uBAAuB;QACtC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,uBAAuB,CAAC;YAC5B,KAAK;YACL,eAAe;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,gDAAgD;SACvG,CAAC,CACL,CACF,CAAA;IACH,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAC/D,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QACnF,KAAK,MAAM;YACT,OAAO,IAAI,CACT,MAAM,EACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,CAAC,IAAI,KAAK,UAAU;gBACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3E,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,IAAI,uBAAuB,CAAC;oBAC1B,KAAK;oBACL,eAAe,EAAE,MAAM;oBACvB,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,0EAA0E;iBACpF,CAAC,CACH,CACJ,CACF,CACF,CAAA;QACH,KAAK,OAAO;YACV,OAAO,IAAI,CACT,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,SAAS,GAAyD,EAAE,CAAA;gBAC1E,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBACzB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,uBAAuB,CAAC;4BAC1B,KAAK;4BACL,eAAe,EAAE,OAAO;4BACxB,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,oFAAoF;yBAC9F,CAAC,CACH,CAAA;oBACH,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAA;oBAChD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CAAA;IACL,CAAC;AACH,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,KAA8B,EAC9B,OAAsD,EACD,EAAE;IACvD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC3D,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,KAAK,YAAY,OAAO,CAAC,YAAY;oBACnC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CACvB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,QAAQ,CAAC,MAAM,KAAK,SAAS;wBAC3B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAW,CAAC;wBAC1D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAc,CAAC,CAChC,CACF;oBACD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAc,CAAC;gBACjC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAW,CAAC;aAC9E,CAAC,CAAA;QACJ,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAW,CAAC,CAAC,CAAA;QAC/F,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC,CAAC,CAAA;QACrE,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAW,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,GAAoD,EACpD,MAA0C,EAC1C,KAAa,EACb,OAAuB,EAIG,EAAE;IAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAqC,CAAA;QAC3E,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CACrB,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,EACrF,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EACtD,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAC9C,CAAA;QACD,MAAM,OAAO,GAAyD,EAAE,CAAA;QACxE,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,uBAAuB,CAAC;oBAC1B,KAAK;oBACL,eAAe,EAAE,OAAO;oBACxB,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,mFAAmF;iBAC7F,CAAC,CACH,CAAA;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;QACpF,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IAED,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,YAAY,uBAAuB;QACtC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,uBAAuB,CAAC;YAC5B,KAAK;YACL,eAAe,EAAE,OAAO;YACxB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,4CAA4C;SACnG,CAAC,CACL,CACF,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAejC,GAAoD,EACpD,QAAyC,EACzC,OAcC,EAcD,EAAE,CACF,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,UAAU,CAAA;IACnE,MAAM,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,wBAAwB,GAAG,CAAC,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,kGAAkG,CAAC,CAC9G,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAqC,CAAA;IAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;IAC1C,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CACrB,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC7B,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAClD,MAAM,CAAC,MAAM,CACd,CACF,EACD,MAAM,CAAC,QAAQ,CACb,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EACrD,MAAM,CAAC,MAAM,CACd,CACF,EACD,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAC9C,CAAA;IACD,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAA;IAC9F,MAAM,OAAO,GAAwF,EAAE,CAAA;IACvG,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAA;IAChC,IAAI,gBAAgB,GAAG,OAAO,CAAA;IAC9B,IAAI,sBAAsB,GAAG,KAAK,CAAA;IAElC,MAAM,OAAO,GAAG,CAAgB,OAM/B,EAIC,EAAE,CACF,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1D,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAA2B,CAAC;QAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,WAAW,CAAkE;YAC3E,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK;YACL,MAAM,EAAE,OAAO;YACf,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SAC7E,CAAC,CACH,CAAC,CAAA;IAER,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAA;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,OAAO;YACd,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;SACxD,CAAC,CAAA;QACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YAC5B,KAAK,EAAE,WAAW;YAClB,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;SAC3C,CAAC,CAAA;QACF,MAAM,0BAA0B,GAQ5B;YACF,KAAK;YACL,OAAO;YACP,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE;gBACN,MAAM;gBACN,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,SAAS;aACrB;SACF,CAAA;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE,aAAa;YACpB,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,kBAAkB,CAAC;YACpF,SAAS,EAAE,0BAA0B;SACtC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAA;QACjG,MAAM,qBAAqB,GAAY,sBAAsB,CAAA;QAC7D,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC9B,KAAK,MAAM;gBACT,IACE,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;oBACrD,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC;oBAC3D,sBAAsB,GAAG,IAAI,CAAA;gBAC/B,MAAK;YACP,KAAK,MAAM;gBACT,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS;oBAAE,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAA;gBACjF,sBAAsB,GAAG,QAAQ;oBAC/B,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,qBAAqB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;wBACnD,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;gBAC/D,MAAK;YACP,KAAK,OAAO;gBACV,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS;oBAAE,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAA;gBACjF,sBAAsB,GAAG,KAAK,CAAA;gBAC9B,MAAK;YACP,KAAK,SAAS;gBACZ,IAAI,QAAQ;oBAAE,sBAAsB,GAAG,KAAK,CAAA;gBAC5C,IAAI,CAAC,sBAAsB,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS;oBAAE,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAA;gBAC5G,MAAK;QACT,CAAC;QACD,MAAM,iBAAiB,GAA0D;YAC/E,KAAK;YACL,OAAO;YACP,MAAM;YACN,GAAG;YACH,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;SAClC,CAAA;QACD,MAAM,yBAAyB,GAQ3B;YACF,GAAG,0BAA0B;YAC7B,MAAM,EAAE;gBACN,MAAM;gBACN,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,SAAS,EAAE,SAAS;aACrB;SACF,CAAA;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS;YAC7C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACf,KAAK,EAAE,YAAY;gBACnB,KAAK;gBACL,OAAO;gBACP,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAQ,CAAC,iBAAiB,CAAC;gBACjD,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAA;QACJ,MAAM,MAAM,GAAyD;YACnE,MAAM;YACN,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,SAAS;SACV,CAAA;QACD,MAAM,MAAM,GAAiF;YAC3F,KAAK;YACL,OAAO;YACP,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;SACP,CAAA;QACD,KAAK,CAAC,CAAC,OAAO,CAAC;YACb,KAAK,EAAE,WAAW;YAClB,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CACX,OAAO,CAAC,MAAM,CAAC;gBACb,GAAG,iBAAiB;gBACpB,KAAK;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM;aACP,CAAC;YACJ,SAAS,EAAE,MAAM;SAClB,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,OAAO;QACP,OAAO;QACP,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,CAAC,sBAAsB;KACtC,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+B,mBAAmB,CAAA;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAc/B,KAA8B,EAC9B,QAAiE,EACjE,OAaC,EAaD,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,UAAU,CAAA;IACnE,MAAM,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,wBAAwB,GAAG,CAAC,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAC5G,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAA;IACzC,MAAM,OAAO,GAAmF,EAAE,CAAA;IAClG,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAA;IAChC,IAAI,KAAK,GAAG,OAAO,CAAA;IAEnB,MAAM,OAAO,GAAG,CAAgB,cAM/B,EAIC,EAAE,CACF,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CACjE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAA2B,CAAC;QAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,IAAI,2BAA2B,CAAC;YAC9B,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE;YACvB,SAAS,EAAE,cAAc,CAAC,SAAS;SACpC,CAAC,CACH,CAAC,CAAA;IAER,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAA;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,OAAO;YACd,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;SACxD,CAAC,CAAA;QACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAElB,MAAM,wBAAwB,GAO1B;YACF,KAAK;YACL,OAAO;YACP,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,SAAS;SACrB,CAAA;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YAC5B,KAAK,EAAE,WAAW;YAClB,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC;YAClD,SAAS,EAAE,wBAAwB;SACpC,CAAC,CAAA;QACF,MAAM,uBAAuB,GAOzB;YACF,GAAG,wBAAwB;YAC3B,MAAM;SACP,CAAA;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;YACjC,KAAK,EAAE,aAAa;YACpB,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC;YAC/F,SAAS,EAAE,uBAAuB;SACnC,CAAC,CAAA;QACF,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAA;QAC5B,MAAM,iBAAiB,GAAqD;YAC1E,KAAK;YACL,OAAO;YACP,MAAM;YACN,KAAK;YACL,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAA;QACD,MAAM,yBAAyB,GAO3B;YACF,GAAG,uBAAuB;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAA;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS;YAC7C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACf,KAAK,EAAE,YAAY;gBACnB,KAAK;gBACL,OAAO;gBACP,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAQ,CAAC,iBAAiB,CAAC;gBACjD,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAA;QACJ,MAAM,MAAM,GAA2D;YACrE,MAAM;YACN,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,SAAS;SACV,CAAA;QACD,MAAM,MAAM,GAA4E;YACtF,KAAK;YACL,OAAO;YACP,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;SACP,CAAA;QACD,KAAK,CAAC,CAAC,OAAO,CAAC;YACb,KAAK,EAAE,WAAW;YAClB,KAAK;YACL,OAAO;YACP,MAAM,EAAE,GAAG,EAAE,CACX,OAAO,CAAC,MAAM,CAAC;gBACb,GAAG,iBAAiB;gBACpB,KAAK;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM;aACP,CAAC;YACJ,SAAS,EAAE;gBACT,GAAG,yBAAyB;gBAC5B,SAAS;aACV;SACF,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,OAAO;QACP,OAAO;QACP,UAAU,EAAE,KAAK;QACjB,KAAK;KACN,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAA8B,EAC9B,QAAiE,EACjE,OAAoD,EAapD,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE;QAC3D,YAAY,EAAE,SAAS;QACvB,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACvG,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACrC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACjB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,SAAS;YACnB,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SAC5F,CAAC,CAAC;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;KAC1B,CAAC,CAAA;IACF,MAAM,QAAQ,GAAmD;QAC/D,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7F,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAA;IACD,KAAK,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3E,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAC,CAAA;AA4CJ,MAAM,qBAAqB,GAAG,CAAC,IAAmC,EAAE,KAAa,EAAQ,EAAE;IACzF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,oCAAoC,CAAC,CAAA;IACnG,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAU,EACV,UAAqC,EAAE,EACnB,EAAE;IACtB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAA;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAA;IAC7C,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IACjD,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IACjD,IAAI,WAAW,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;IAC7G,CAAC;IAED,MAAM,OAAO,GAAiC,EAAE,CAAA;IAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS;QAC3D,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;YAC7C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC5B,OAAO,OAAO,CAAC,KAA2D,CAAA;QAC5E,CAAC,CAAC;QACF,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAC7E,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS,CAAC,KAAK,CACf,GAAG,gBAGF,CACF,CAAC,CAAA;IACJ,MAAM,kBAAkB,GAA8E,EAAE,CAAA;IACxG,IAAI,cAAc,KAAK,SAAS;QAAE,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IAE1F,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QACnF,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK;QAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC7F,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK;QAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;IACzG,kBAAkB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAA;IAC5D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAA;QAC9G,CAAC;QACD,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,WAAW,EAAE;gBACX,MAAM,EAAE,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAC7G,aAAa,EAAE,OAAO;gBACtB,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,KAAK;gBACnB,kBAAkB,EAAE,KAAK;aAC1B;SACF,CAAA;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,EAAE;YACjE,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,WAAW;SACvB,CAAC;QACF,WAAW,EAAE;YACX,MAAM,EAAE,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAC7G,aAAa,EAAE,OAAO;YACtB,eAAe,EAAE,OAAO,CAAC,cAAc,KAAK,KAAK;YACjD,YAAY,EAAE,OAAO,CAAC,WAAW,KAAK,KAAK;YAC3C,kBAAkB,EAAE,OAAO,CAAC,iBAAiB,KAAK,KAAK;SACxD;KACF,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,KAEiE,EACzD,EAAE;IACV,MAAM,OAAO,GAAG,KAAK,YAAY,qBAAqB,CAAA;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IACtD,MAAM,KAAK,GAAG;QACZ,aACE,WAAW,CAAC,eAAe,CACzB,OAAO,CAAC,CAAC;YACP;gBACE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC/C,KAAK,CAAC,OAAO;aACd,CAAC,CAAC;YACH,KAAK,CAAC,QAAQ,EAChB,CAAC,CAEL,EAAE;KACH,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,WAAW,MAAM,CAAC,KAAK,aAAa,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;YACnF,SAAS,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG;YACxD,YAAY,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;YAC9D,UAAU,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;YACjE,YAAY,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;YACrE,aAAa,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG;YACvE,aAAa,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CACzE,CAAA;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,aAAa,KAAK,CAAC,SAAS,CAAC,KAAK,aAAa,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;gBACvG,SAAS,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG;gBACjE,YAAY,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;gBACvE,UAAU,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;gBAC1E,YAAY,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;gBAC9E,aAAa,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG;gBAChF,aAAa,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAClF,CAAA;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CACR,kBAAkB,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,KAAK,YAAY,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;YAC5G,SAAS,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CACzD,CAAA;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,uBAAuB,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAC5G,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAoC,wBAAwB,CAAA;AAEhG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAEkE,EAC1D,EAAE;IACV,MAAM,OAAO,GAAG,KAAK,YAAY,2BAA2B,CAAA;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IACtD,MAAM,KAAK,GAAG;QACZ,aACE,WAAW,CAAC,eAAe,CACzB,OAAO;YACL,CAAC,CAAC;gBACA,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC/C,KAAK,CAAC,OAAO;aACd;YACD,CAAC,CAAC,KAAK,CAAC,QAAQ,EAClB,CAAC,CAEL,EAAE;KACH,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,WAAW,MAAM,CAAC,KAAK,aAAa,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;YACnF,SAAS,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG;YACxD,YAAY,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;YAC9D,UAAU,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;YACjE,YAAY,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;YACrE,WAAW,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;YACnE,aAAa,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CACzE,CAAA;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,aAAa,KAAK,CAAC,SAAS,CAAC,KAAK,aAAa,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;gBACvG,SAAS,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG;gBACjE,YAAY,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;gBACvE,UAAU,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;gBACnE,YAAY,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;gBACvE,WAAW,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;gBACrE,aAAa,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAC3E,CAAA;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CACR,kBAAkB,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,KAAK,YAAY,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG;YAC5G,SAAS,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CACzD,CAAA;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,mBAAmB,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-defined semantic invariants over retained causal runtime evidence.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Machine from "../../../Machine.js";
|
|
8
|
+
import type { CausalRuntimeEvidence, PlannerRuntimeAgreementViolation, RuntimeInvariant, RuntimeInvariantBuilder, RuntimeInvariantReport, RuntimeInvariantTranscript, RuntimeInvariantViolation } from "../../../testing/MachineTest.js";
|
|
9
|
+
type AnyMachine = Machine.Machine.Any;
|
|
10
|
+
export declare const runtimeInvariants: <M extends AnyMachine>(_machine: M) => RuntimeInvariantBuilder<M>;
|
|
11
|
+
declare const RuntimeInvariantError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
12
|
+
readonly _tag: "MachineTestRuntimeInvariantError";
|
|
13
|
+
} & Readonly<A>;
|
|
14
|
+
export declare class RuntimeInvariantError<M extends AnyMachine = AnyMachine> extends RuntimeInvariantError_base<{
|
|
15
|
+
readonly transcript: RuntimeInvariantTranscript<M>;
|
|
16
|
+
readonly violations: ReadonlyArray<RuntimeInvariantViolation<M>>;
|
|
17
|
+
readonly report: RuntimeInvariantReport;
|
|
18
|
+
}> {
|
|
19
|
+
}
|
|
20
|
+
export declare const checkRuntimeInvariants: <M extends AnyMachine, Error, Output>(machine: M, evidence: CausalRuntimeEvidence<M, Error, Output>, invariants: ReadonlyArray<RuntimeInvariant<M>>) => Effect.Effect<RuntimeInvariantReport, RuntimeInvariantError<M>>;
|
|
21
|
+
export declare const assertRuntimeInvariants: <M extends AnyMachine, Error, Output>(machine: M, transcript: CausalRuntimeEvidence<M, Error, Output>, invariants: ReadonlyArray<RuntimeInvariant<M>>) => Effect.Effect<void, RuntimeInvariantError<M>>;
|
|
22
|
+
declare const PlannerRuntimeAgreementError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
23
|
+
readonly _tag: "MachineTestPlannerRuntimeAgreementError";
|
|
24
|
+
} & Readonly<A>;
|
|
25
|
+
export declare class PlannerRuntimeAgreementError<M extends AnyMachine = AnyMachine> extends PlannerRuntimeAgreementError_base<{
|
|
26
|
+
readonly evidence: CausalRuntimeEvidence<M, unknown, unknown>;
|
|
27
|
+
readonly violations: ReadonlyArray<PlannerRuntimeAgreementViolation<M>>;
|
|
28
|
+
}> {
|
|
29
|
+
}
|
|
30
|
+
export declare const assertPlannerRuntimeAgreement: <M extends AnyMachine, Error, Output>(machine: M, evidence: CausalRuntimeEvidence<M, Error, Output>) => Effect.Effect<void, PlannerRuntimeAgreementError<M>>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=runtimeInvariant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeInvariant.d.ts","sourceRoot":"","sources":["../../../../src/internal/testing/machine/runtimeInvariant.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EACV,qBAAqB,EAGrB,gCAAgC,EAGhC,gBAAgB,EAChB,uBAAuB,EAGvB,sBAAsB,EAEtB,0BAA0B,EAC1B,yBAAyB,EAO1B,MAAM,iCAAiC,CAAA;AAExC,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAA;AAgErC,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,UAAU,EAAE,UAAU,CAAC,KAAG,uBAAuB,CAAC,CAAC,CAK3F,CAAA;;;;AAEJ,qBAAa,qBAAqB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,2BAE5E;IACA,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAA;IAChE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;CACxC,CAAC;CAAG;AAsLL,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EACxE,SAAS,CAAC,EACV,UAAU,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EACjD,YAAY,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAqB7D,CAAA;AAEJ,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EACzE,SAAS,CAAC,EACV,YAAY,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EACnD,YAAY,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAC8B,CAAA;;;;AAE7E,qBAAa,4BAA4B,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,kCAEnF;IACA,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7D,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAA;CACxE,CAAC;CAAG;AAqFL,eAAO,MAAM,6BAA6B,GAAI,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAC/E,SAAS,CAAC,EACV,UAAU,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAChD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAkElD,CAAA"}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-defined semantic invariants over retained causal runtime evidence.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Data from "effect/Data";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as Result from "effect/Result";
|
|
9
|
+
import * as Machine from "../../../Machine.js";
|
|
10
|
+
const validateName = (name) => {
|
|
11
|
+
if (name.trim().length === 0) {
|
|
12
|
+
throw new Error("MachineTest.runtimeInvariants expected name to be a non-empty string");
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const validateRequirement = (options) => {
|
|
16
|
+
const minimum = options.require?.minObservations;
|
|
17
|
+
if (minimum !== undefined && (!Number.isSafeInteger(minimum) || minimum < 0)) {
|
|
18
|
+
throw new Error("MachineTest.runtimeInvariants expected minObservations to be a non-negative safe integer");
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const snapshotInvariant = (name, check, options = {}) => {
|
|
22
|
+
validateName(name);
|
|
23
|
+
validateRequirement(options);
|
|
24
|
+
return Object.freeze({
|
|
25
|
+
_tag: "RuntimeSnapshotInvariant",
|
|
26
|
+
name,
|
|
27
|
+
observe: options.observe ?? "settled",
|
|
28
|
+
check,
|
|
29
|
+
...(options.when === undefined ? {} : { when: options.when }),
|
|
30
|
+
...(options.require === undefined ? {} : { require: Object.freeze({ ...options.require }) })
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
const commandInvariant = (name, check, options = {}) => {
|
|
34
|
+
validateName(name);
|
|
35
|
+
validateRequirement(options);
|
|
36
|
+
return Object.freeze({
|
|
37
|
+
_tag: "RuntimeCommandInvariant",
|
|
38
|
+
name,
|
|
39
|
+
check,
|
|
40
|
+
...(options.when === undefined ? {} : { when: options.when }),
|
|
41
|
+
...(options.require === undefined ? {} : { require: Object.freeze({ ...options.require }) })
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const transcriptInvariant = (name, check, options = {}) => {
|
|
45
|
+
validateName(name);
|
|
46
|
+
validateRequirement(options);
|
|
47
|
+
return Object.freeze({
|
|
48
|
+
_tag: "RuntimeTranscriptInvariant",
|
|
49
|
+
name,
|
|
50
|
+
check,
|
|
51
|
+
...(options.when === undefined ? {} : { when: options.when }),
|
|
52
|
+
...(options.require === undefined ? {} : { require: Object.freeze({ ...options.require }) })
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
export const runtimeInvariants = (_machine) => Object.freeze({
|
|
56
|
+
snapshot: snapshotInvariant,
|
|
57
|
+
command: commandInvariant,
|
|
58
|
+
transcript: transcriptInvariant
|
|
59
|
+
});
|
|
60
|
+
export class RuntimeInvariantError extends Data.TaggedError("MachineTestRuntimeInvariantError") {
|
|
61
|
+
}
|
|
62
|
+
const normalizeTranscript = (transcript) => ({
|
|
63
|
+
commands: transcript.commands,
|
|
64
|
+
initial: transcript.initial,
|
|
65
|
+
records: transcript.records.map(({ actual, command, index }) => ({
|
|
66
|
+
index,
|
|
67
|
+
command,
|
|
68
|
+
result: actual.result,
|
|
69
|
+
snapshot: actual.snapshot,
|
|
70
|
+
awaited: actual.awaited
|
|
71
|
+
})),
|
|
72
|
+
final: transcript.final
|
|
73
|
+
});
|
|
74
|
+
const snapshotObservations = (machine, transcript, invariant) => {
|
|
75
|
+
const observations = [];
|
|
76
|
+
let observationIndex = 0;
|
|
77
|
+
const add = (snapshot, phase, record, awaitedIndex) => {
|
|
78
|
+
const context = {
|
|
79
|
+
machine,
|
|
80
|
+
transcript,
|
|
81
|
+
snapshot,
|
|
82
|
+
observationIndex,
|
|
83
|
+
phase,
|
|
84
|
+
commandIndex: record?.index,
|
|
85
|
+
awaitedIndex,
|
|
86
|
+
command: record?.command,
|
|
87
|
+
result: record?.result
|
|
88
|
+
};
|
|
89
|
+
observations.push({
|
|
90
|
+
context,
|
|
91
|
+
observationIndex,
|
|
92
|
+
commandIndex: record?.index,
|
|
93
|
+
...(awaitedIndex === undefined ? {} : { awaitedIndex }),
|
|
94
|
+
phase,
|
|
95
|
+
...(record === undefined ? {} : { command: record.command })
|
|
96
|
+
});
|
|
97
|
+
observationIndex += 1;
|
|
98
|
+
};
|
|
99
|
+
if (invariant.observe === "final") {
|
|
100
|
+
add(transcript.final, "final");
|
|
101
|
+
return observations;
|
|
102
|
+
}
|
|
103
|
+
if (invariant.observe === "settled" || invariant.observe === "all") {
|
|
104
|
+
add(transcript.initial, "initial");
|
|
105
|
+
for (const record of transcript.records)
|
|
106
|
+
add(record.snapshot, "command", record);
|
|
107
|
+
}
|
|
108
|
+
if (invariant.observe === "awaited" || invariant.observe === "all") {
|
|
109
|
+
for (const record of transcript.records) {
|
|
110
|
+
record.awaited.forEach((snapshot, awaitedIndex) => add(snapshot, "awaited", record, awaitedIndex));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return observations;
|
|
114
|
+
};
|
|
115
|
+
const commandObservations = (machine, transcript) => transcript.records.map((record, index) => ({
|
|
116
|
+
context: {
|
|
117
|
+
machine,
|
|
118
|
+
transcript,
|
|
119
|
+
record,
|
|
120
|
+
previous: transcript.records[index - 1],
|
|
121
|
+
index: record.index,
|
|
122
|
+
command: record.command,
|
|
123
|
+
result: record.result,
|
|
124
|
+
snapshot: record.snapshot,
|
|
125
|
+
awaited: record.awaited
|
|
126
|
+
},
|
|
127
|
+
commandIndex: record.index,
|
|
128
|
+
command: record.command
|
|
129
|
+
}));
|
|
130
|
+
const transcriptObservations = (machine, transcript) => [{
|
|
131
|
+
context: { machine, transcript },
|
|
132
|
+
commandIndex: undefined
|
|
133
|
+
}];
|
|
134
|
+
const scopeOf = (invariant) => {
|
|
135
|
+
switch (invariant._tag) {
|
|
136
|
+
case "RuntimeSnapshotInvariant":
|
|
137
|
+
return "snapshot";
|
|
138
|
+
case "RuntimeCommandInvariant":
|
|
139
|
+
return "command";
|
|
140
|
+
case "RuntimeTranscriptInvariant":
|
|
141
|
+
return "transcript";
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
const messageOf = (outcome) => outcome === true ? undefined : typeof outcome === "string" ? outcome : "Invariant predicate returned false";
|
|
145
|
+
const evaluateInvariant = (invariant, scope, observations) => {
|
|
146
|
+
let observed = 0;
|
|
147
|
+
let failures = 0;
|
|
148
|
+
const violations = [];
|
|
149
|
+
for (const observation of observations) {
|
|
150
|
+
if (invariant.when !== undefined && !invariant.when(observation.context))
|
|
151
|
+
continue;
|
|
152
|
+
observed += 1;
|
|
153
|
+
const message = messageOf(invariant.check(observation.context));
|
|
154
|
+
if (message === undefined)
|
|
155
|
+
continue;
|
|
156
|
+
failures += 1;
|
|
157
|
+
violations.push({
|
|
158
|
+
invariant: invariant.name,
|
|
159
|
+
scope,
|
|
160
|
+
kind: "predicate",
|
|
161
|
+
...(observation.observationIndex === undefined ? {} : { observationIndex: observation.observationIndex }),
|
|
162
|
+
commandIndex: observation.commandIndex,
|
|
163
|
+
...(observation.awaitedIndex === undefined ? {} : { awaitedIndex: observation.awaitedIndex }),
|
|
164
|
+
...(observation.phase === undefined ? {} : { phase: observation.phase }),
|
|
165
|
+
...(observation.command === undefined ? {} : { command: observation.command }),
|
|
166
|
+
message
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
const minimum = invariant.require?.minObservations ?? 0;
|
|
170
|
+
const insufficient = observed < minimum;
|
|
171
|
+
if (insufficient) {
|
|
172
|
+
violations.push({
|
|
173
|
+
invariant: invariant.name,
|
|
174
|
+
scope,
|
|
175
|
+
kind: "observations",
|
|
176
|
+
commandIndex: undefined,
|
|
177
|
+
message: `Invariant required at least ${minimum} observation${minimum === 1 ? "" : "s"} but observed ${observed}`
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
return {
|
|
181
|
+
check: {
|
|
182
|
+
invariant: invariant.name,
|
|
183
|
+
scope,
|
|
184
|
+
status: failures > 0 ? "failed" : insufficient ? "insufficient" : observed === 0 ? "untested" : "passed",
|
|
185
|
+
observations: observed,
|
|
186
|
+
failures
|
|
187
|
+
},
|
|
188
|
+
violations
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
export const checkRuntimeInvariants = (machine, evidence, invariants) => Effect.suspend(() => {
|
|
192
|
+
const transcript = normalizeTranscript(evidence);
|
|
193
|
+
const checks = [];
|
|
194
|
+
const violations = [];
|
|
195
|
+
for (const invariant of invariants) {
|
|
196
|
+
const scope = scopeOf(invariant);
|
|
197
|
+
const result = invariant._tag === "RuntimeSnapshotInvariant"
|
|
198
|
+
? evaluateInvariant(invariant, scope, snapshotObservations(machine, transcript, invariant))
|
|
199
|
+
: invariant._tag === "RuntimeCommandInvariant"
|
|
200
|
+
? evaluateInvariant(invariant, scope, commandObservations(machine, transcript))
|
|
201
|
+
: evaluateInvariant(invariant, scope, transcriptObservations(machine, transcript));
|
|
202
|
+
checks.push(result.check);
|
|
203
|
+
violations.push(...result.violations);
|
|
204
|
+
}
|
|
205
|
+
const report = { checks };
|
|
206
|
+
return violations.length === 0
|
|
207
|
+
? Effect.succeed(report)
|
|
208
|
+
: Effect.fail(new RuntimeInvariantError({ transcript, violations, report }));
|
|
209
|
+
});
|
|
210
|
+
export const assertRuntimeInvariants = (machine, transcript, invariants) => checkRuntimeInvariants(machine, transcript, invariants).pipe(Effect.asVoid);
|
|
211
|
+
export class PlannerRuntimeAgreementError extends Data.TaggedError("MachineTestPlannerRuntimeAgreementError") {
|
|
212
|
+
}
|
|
213
|
+
const fingerprint = (value) => {
|
|
214
|
+
const active = new WeakSet();
|
|
215
|
+
const visit = (current) => {
|
|
216
|
+
if (current === undefined)
|
|
217
|
+
return ["undefined"];
|
|
218
|
+
if (current === null || typeof current === "boolean" || typeof current === "string")
|
|
219
|
+
return current;
|
|
220
|
+
if (typeof current === "number") {
|
|
221
|
+
if (Number.isNaN(current))
|
|
222
|
+
return ["number", "NaN"];
|
|
223
|
+
if (Object.is(current, -0))
|
|
224
|
+
return ["number", "-0"];
|
|
225
|
+
return current;
|
|
226
|
+
}
|
|
227
|
+
if (typeof current === "bigint")
|
|
228
|
+
return ["bigint", String(current)];
|
|
229
|
+
if (typeof current === "symbol")
|
|
230
|
+
return ["symbol", Symbol.keyFor(current) ?? String(current)];
|
|
231
|
+
if (typeof current === "function")
|
|
232
|
+
return ["function", current.name];
|
|
233
|
+
if (active.has(current))
|
|
234
|
+
return ["circular"];
|
|
235
|
+
active.add(current);
|
|
236
|
+
let result;
|
|
237
|
+
if (current instanceof Date) {
|
|
238
|
+
result = ["date", Number.isNaN(current.getTime()) ? "Invalid Date" : current.toISOString()];
|
|
239
|
+
}
|
|
240
|
+
else if (current instanceof Error) {
|
|
241
|
+
result = [
|
|
242
|
+
"error",
|
|
243
|
+
current.name,
|
|
244
|
+
current.message,
|
|
245
|
+
Object.keys(current).sort().map((key) => [key, visit(current[key])])
|
|
246
|
+
];
|
|
247
|
+
}
|
|
248
|
+
else if (ArrayBuffer.isView(current)) {
|
|
249
|
+
result = [current.constructor.name, Array.from(current)];
|
|
250
|
+
}
|
|
251
|
+
else if (Array.isArray(current)) {
|
|
252
|
+
result = current.map(visit);
|
|
253
|
+
}
|
|
254
|
+
else if (current instanceof Map) {
|
|
255
|
+
result = [
|
|
256
|
+
"map",
|
|
257
|
+
Array.from(current, ([key, item]) => [visit(key), visit(item)]).sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right)))
|
|
258
|
+
];
|
|
259
|
+
}
|
|
260
|
+
else if (current instanceof Set) {
|
|
261
|
+
result = [
|
|
262
|
+
"set",
|
|
263
|
+
Array.from(current, visit).sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right)))
|
|
264
|
+
];
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
result = Object.keys(current).sort().map((key) => [key, visit(current[key])]);
|
|
268
|
+
}
|
|
269
|
+
active.delete(current);
|
|
270
|
+
return result;
|
|
271
|
+
};
|
|
272
|
+
return JSON.stringify(visit(value));
|
|
273
|
+
};
|
|
274
|
+
const projection = (plan) => ({
|
|
275
|
+
after: plan.next,
|
|
276
|
+
completion: { done: plan.done, output: plan.output },
|
|
277
|
+
commands: plan.commands.length,
|
|
278
|
+
emittedEvents: plan.emittedEvents,
|
|
279
|
+
microsteps: plan.microsteps.map((microstep) => ({
|
|
280
|
+
next: microstep.next,
|
|
281
|
+
event: microstep.event,
|
|
282
|
+
commands: microstep.commands.length,
|
|
283
|
+
raisedEvents: microstep.raisedEvents,
|
|
284
|
+
emittedEvents: microstep.emittedEvents,
|
|
285
|
+
exitPaths: microstep.exitPaths,
|
|
286
|
+
entryPaths: microstep.entryPaths,
|
|
287
|
+
changed: microstep.changed
|
|
288
|
+
}))
|
|
289
|
+
});
|
|
290
|
+
export const assertPlannerRuntimeAgreement = (machine, evidence) => Effect.gen(function* () {
|
|
291
|
+
const violations = [];
|
|
292
|
+
const add = (record, field, message) => {
|
|
293
|
+
violations.push({ commandIndex: record.index, command: record.command, field, message });
|
|
294
|
+
};
|
|
295
|
+
for (const record of evidence.records) {
|
|
296
|
+
if (record.command._tag !== "Send" || record.actual.result._tag !== "SendProcessed")
|
|
297
|
+
continue;
|
|
298
|
+
const step = record.actual.result.step;
|
|
299
|
+
const planned = yield* Effect.result(Machine.plan(machine, step.before, record.command.event));
|
|
300
|
+
if (Result.isFailure(planned)) {
|
|
301
|
+
add(record, "planning", `Fresh planning failed: ${String(planned.failure)}`);
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
const expected = projection(planned.success);
|
|
305
|
+
const actual = projection(step.plan);
|
|
306
|
+
const compare = (field, left, right) => {
|
|
307
|
+
const actualFingerprint = fingerprint(left);
|
|
308
|
+
const expectedFingerprint = fingerprint(right);
|
|
309
|
+
if (actualFingerprint !== expectedFingerprint) {
|
|
310
|
+
add(record, field, `Runtime ${field} disagreed with fresh planning: expected ${expectedFingerprint}, actual ${actualFingerprint}`);
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
compare("planNext", actual.after, expected.after);
|
|
314
|
+
compare("after", step.after, expected.after);
|
|
315
|
+
compare("completion", actual.completion, expected.completion);
|
|
316
|
+
compare("commands", actual.commands, expected.commands);
|
|
317
|
+
compare("emittedEvents", actual.emittedEvents, expected.emittedEvents);
|
|
318
|
+
compare("microsteps", actual.microsteps, expected.microsteps);
|
|
319
|
+
const handled = planned.success.microsteps.length > 0;
|
|
320
|
+
if (step.handled !== handled)
|
|
321
|
+
add(record, "handled", `Expected handled=${handled} but observed ${step.handled}`);
|
|
322
|
+
const configurationChanged = planned.success.microsteps.some(({ changed }) => changed);
|
|
323
|
+
if (step.configurationChanged !== configurationChanged) {
|
|
324
|
+
add(record, "configurationChanged", `Expected configurationChanged=${configurationChanged} but observed ${step.configurationChanged}`);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
if (violations.length > 0) {
|
|
328
|
+
return yield* new PlannerRuntimeAgreementError({
|
|
329
|
+
evidence: evidence,
|
|
330
|
+
violations
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
//# sourceMappingURL=runtimeInvariant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeInvariant.js","sourceRoot":"","sources":["../../../../src/internal/testing/machine/runtimeInvariant.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planner trace construction shared by scenario runs and graph exploration.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Machine from "../../../Machine.js";
|
|
8
|
+
import type { RunError, RunFailure, RunServices, Scenario, Trace } from "../../../testing/MachineTest.js";
|
|
9
|
+
import type { EnsureExecutable } from "../../machine/readiness.js";
|
|
10
|
+
type AnyMachine = Machine.Machine.Any;
|
|
11
|
+
type StatePath<M extends AnyMachine> = Machine.Machine.StateIdentifier<Machine.Machine.States<M>>;
|
|
12
|
+
type ReadyMachine<M extends AnyMachine> = M & EnsureExecutable<Machine.Machine.States<M>, Machine.Machine.UnhandledStates<M>, Machine.Machine.OutputStates<M>>;
|
|
13
|
+
export declare const rawConfigurationPaths: <M extends AnyMachine>(machine: M, snapshot: Machine.Machine.Snapshot<Machine.Machine.States<M>>) => ReadonlyArray<StatePath<M>>;
|
|
14
|
+
export declare const appendTrace: <M extends AnyMachine>(machine: ReadyMachine<M>, trace: Trace<M>, event: Machine.Machine.InputEvent<M>, scenario: Scenario<M>) => Effect.Effect<Trace<M>, RunFailure<RunError<M>, M>, RunServices<M>>;
|
|
15
|
+
export declare const run: <M extends AnyMachine>(machine: ReadyMachine<M>, scenario: Scenario<M>) => Effect.Effect<Trace<M>, RunFailure<RunError<M>, M>, RunServices<M>>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../../src/internal/testing/machine/trace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,EAIV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,KAAK,EAEN,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAElE,KAAK,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAA;AAIrC,KAAK,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAEjG,KAAK,YAAY,CAAC,CAAC,SAAS,UAAU,IAClC,CAAC,GACD,gBAAgB,CAChB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAClC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAChC,CAAA;AAEH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,UAAU,EACxD,SAAS,CAAC,EACV,UAAU,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAC5D,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAe5B,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,UAAU,EAC9C,SAAS,YAAY,CAAC,CAAC,CAAC,EACxB,OAAO,KAAK,CAAC,CAAC,CAAC,EACf,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EACpC,UAAU,QAAQ,CAAC,CAAC,CAAC,KACpB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAsCpE,CAAA;AAED,eAAO,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,UAAU,EACrC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CA6CrE,CAAA"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planner trace construction shared by scenario runs and graph exploration.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Schema from "effect/Schema";
|
|
8
|
+
import * as Machine from "../../../Machine.js";
|
|
9
|
+
export const rawConfigurationPaths = (machine, snapshot) => {
|
|
10
|
+
const active = new Set();
|
|
11
|
+
const visit = (current) => {
|
|
12
|
+
if (typeof current !== "object" || current === null)
|
|
13
|
+
return;
|
|
14
|
+
const value = current;
|
|
15
|
+
if (typeof value.path === "string")
|
|
16
|
+
active.add(value.path);
|
|
17
|
+
if (value.state !== undefined)
|
|
18
|
+
visit(value.state);
|
|
19
|
+
if (typeof value.states === "object" && value.states !== null) {
|
|
20
|
+
for (const child of Object.values(value.states))
|
|
21
|
+
visit(child);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
visit(snapshot);
|
|
25
|
+
return Machine.stateNodes(machine)
|
|
26
|
+
.filter((node) => node.type !== "history" && node.type !== "choice" && active.has(node.path))
|
|
27
|
+
.map((node) => node.path);
|
|
28
|
+
};
|
|
29
|
+
export const appendTrace = (machine, trace, event, scenario) => {
|
|
30
|
+
const index = trace.steps.length;
|
|
31
|
+
const before = trace.final;
|
|
32
|
+
const beforeConfiguration = rawConfigurationPaths(machine, before);
|
|
33
|
+
return Machine.plan(machine, before, event).pipe(Effect.mapError((cause) => ({
|
|
34
|
+
_tag: "MachineTestRunFailure",
|
|
35
|
+
scenario,
|
|
36
|
+
phase: "event",
|
|
37
|
+
eventIndex: index,
|
|
38
|
+
event,
|
|
39
|
+
initial: trace.initial,
|
|
40
|
+
steps: trace.steps.slice(),
|
|
41
|
+
cause
|
|
42
|
+
})), Effect.map((plan) => {
|
|
43
|
+
const step = {
|
|
44
|
+
index,
|
|
45
|
+
before,
|
|
46
|
+
beforeConfiguration,
|
|
47
|
+
event,
|
|
48
|
+
plan,
|
|
49
|
+
after: plan.next,
|
|
50
|
+
afterConfiguration: rawConfigurationPaths(machine, plan.next)
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
scenario,
|
|
54
|
+
initial: trace.initial,
|
|
55
|
+
steps: [...trace.steps, step],
|
|
56
|
+
final: plan.next,
|
|
57
|
+
finalConfiguration: step.afterConfiguration
|
|
58
|
+
};
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
export const run = Effect.fnUntraced(function* (machine, scenario) {
|
|
62
|
+
const initialEffect = (machine.input === undefined || machine.input === Schema.Void
|
|
63
|
+
? Machine.planInitial(machine)
|
|
64
|
+
: Machine.planInitial(machine, scenario.input));
|
|
65
|
+
const initial = yield* initialEffect.pipe(Effect.mapError((cause) => ({
|
|
66
|
+
_tag: "MachineTestRunFailure",
|
|
67
|
+
scenario,
|
|
68
|
+
phase: "initial",
|
|
69
|
+
eventIndex: undefined,
|
|
70
|
+
event: undefined,
|
|
71
|
+
initial: undefined,
|
|
72
|
+
steps: [],
|
|
73
|
+
cause
|
|
74
|
+
})));
|
|
75
|
+
const initialTrace = {
|
|
76
|
+
plan: initial,
|
|
77
|
+
startingState: initial.startingState,
|
|
78
|
+
startingConfiguration: rawConfigurationPaths(machine, initial.startingState),
|
|
79
|
+
initialEntryPaths: initial.initialEntryPaths,
|
|
80
|
+
configuration: rawConfigurationPaths(machine, initial.state)
|
|
81
|
+
};
|
|
82
|
+
let trace = {
|
|
83
|
+
scenario,
|
|
84
|
+
initial: initialTrace,
|
|
85
|
+
steps: [],
|
|
86
|
+
final: initial.state,
|
|
87
|
+
finalConfiguration: initialTrace.configuration
|
|
88
|
+
};
|
|
89
|
+
for (const event of scenario.events) {
|
|
90
|
+
trace = yield* appendTrace(machine, trace, event, scenario);
|
|
91
|
+
}
|
|
92
|
+
return trace;
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../../../src/internal/testing/machine/trace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AA4B9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,OAAU,EACV,QAA6D,EAChC,EAAE;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAQ,EAAE;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAAE,OAAM;QAC3D,MAAM,KAAK,GAAG,OAAkC,CAAA;QAChD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjD,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC,CAAA;IACD,KAAK,CAAC,QAAQ,CAAC,CAAA;IACf,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5F,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAwB,EACxB,KAAe,EACf,KAAoC,EACpC,QAAqB,EACgD,EAAE;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAA;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAA;IAC1B,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAClE,OAAS,OAAO,CAAC,IAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAIlD,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAA8B,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ;QACR,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,KAAK;QACjB,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;QAC1B,KAAK;KACN,CAAC,CAAC,EACH,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,IAAI,GAAiB;YACzB,KAAK;YACL,MAAM;YACN,mBAAmB;YACnB,KAAK;YACL,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,kBAAkB,EAAE,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;SAC9D,CAAA;QACD,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;YAC7B,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC5C,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,GAAG,GAG2D,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAGpG,OAAwB,EACxB,QAAqB;IAErB,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI;QACjF,CAAC,CAAE,OAAO,CAAC,WAAmB,CAAC,OAAO,CAAC;QACvC,CAAC,CAAE,OAAO,CAAC,WAAmB,CAAC,OAAO,EAAG,QAA8C,CAAC,KAAK,CAAC,CAI7F,CAAA;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAA8B,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,uBAAuB;QAC7B,QAAQ;QACR,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,EAAE;QACT,KAAK;KACN,CAAC,CAAC,CACJ,CAAA;IACD,MAAM,YAAY,GAAoB;QACpC,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,qBAAqB,EAAE,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;QAC5E,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,aAAa,EAAE,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;KAC7D,CAAA;IACD,IAAI,KAAK,GAAa;QACpB,QAAQ;QACR,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,kBAAkB,EAAE,YAAY,CAAC,aAAa;KAC/C,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property-based scenario generation and planner trace utilities.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Machine from "../../../Machine.js";
|
|
8
|
+
import type { Coverage, ObservedGraph, RunFailure, ScenarioOptions, Scenarios, Trace, VerificationViolation, VerifyOptions } from "../../../testing/MachineTest.js";
|
|
9
|
+
import type { FiniteModel } from "./finiteModel.js";
|
|
10
|
+
import * as ReferenceModel from "./referenceModel.js";
|
|
11
|
+
import { run } from "./trace.js";
|
|
12
|
+
export { advanceCommand, type CausalRuntimeAssertionContext, type CausalRuntimeCommandActual, CausalRuntimeCommandFailure, type CausalRuntimeCommandRecord, type CausalRuntimeCommandResult, type CausalRuntimeInspectionContext, type CausalRuntimeModelOptions, type CausalRuntimeModelStep, type CausalRuntimeTranscript, type CausalVerificationAwaitContext, type CausalVerificationOptions, type CausalVerificationTranscript, checkpointCommand, type EnqueuedRuntimeAssertionContext, type EnqueuedRuntimeCommandActual, type EnqueuedRuntimeCommandRecord, type EnqueuedRuntimeInspectionContext, type EnqueuedRuntimeModelOptions, type EnqueuedRuntimeModelStep, type EnqueuedRuntimeTranscript, formatCausalTranscript, formatEnqueuedTranscript, formatRuntimeTranscript, runCausalCommands, runEnqueuedCommands, runRuntimeCommands, type RuntimeAssertionContext, type RuntimeAwait, type RuntimeCommand, type RuntimeCommandActual, RuntimeCommandFailure, type RuntimeCommandRecord, type RuntimeCommandResult, type RuntimeCommands, runtimeCommands, type RuntimeCommandsDiagnostics, type RuntimeCommandsOptions, type RuntimeInspectionContext, type RuntimeModelOptions, type RuntimeModelStep, RuntimeObservationError, RuntimeSynchronization, type RuntimeTranscript, sendCommand, stopCommand, verifyCausalCommands } from "./runtime.js";
|
|
13
|
+
export type { SchemaArbitraryOpaqueFilterWarning, SchemaArbitraryReport, SchemaArbitraryWarning } from "./arbitrary.js";
|
|
14
|
+
export { compileModel, type FiniteAtomicState, type FiniteAutomaticTransition, type FiniteCompoundState, type FiniteEventTransition, type FiniteFinalState, type FiniteHistoryMutation, type FiniteHistoryScenario, type FiniteHistoryState, type FiniteHistoryTransfer, type FiniteModel, type FiniteModelDiagnostics, type FiniteModelOptions, type FiniteModels, finiteModels, type FiniteParallelState, type FiniteState, type FiniteTransition, type FiniteTransitionTrigger } from "./finiteModel.js";
|
|
15
|
+
export { ModelVerificationError, type ModelVerificationField, type ModelVerificationLocation, type ModelVerificationMismatch, type ReferenceCompletion, type ReferenceHistoryRecord, type ReferenceInitialStep, type ReferenceMicrostep, type ReferenceState, type ReferenceStateValue, type ReferenceStep, type ReferenceTrace, type ReferenceTransition } from "./referenceModel.js";
|
|
16
|
+
export { assertInvariants, checkInvariants, Invariant, InvariantError, invariants } from "./invariant.js";
|
|
17
|
+
export { assertPlannerRuntimeAgreement, assertRuntimeInvariants, checkRuntimeInvariants, PlannerRuntimeAgreementError, RuntimeInvariantError, runtimeInvariants } from "./runtimeInvariant.js";
|
|
18
|
+
export { assertReachable, assertUnreachable, explore, findShortest, ReachabilityError } from "./exploration.js";
|
|
19
|
+
export { probe, ProbeUnavailableError } from "./probe.js";
|
|
20
|
+
export { run };
|
|
21
|
+
export declare const interpretModel: (model: FiniteModel, events: ReadonlyArray<string>) => ReferenceModel.ReferenceTrace;
|
|
22
|
+
type AnyMachine = Machine.Machine.Any;
|
|
23
|
+
export declare const scenarios: <M extends AnyMachine>(machine: M, options?: ScenarioOptions<M>) => Scenarios<M>;
|
|
24
|
+
export declare const verifyModel: <M extends AnyMachine>(model: FiniteModel, actualTrace: Trace<M>) => Effect.Effect<void, ReferenceModel.ModelVerificationError>;
|
|
25
|
+
export declare const coverage: <M extends AnyMachine>(machine: M, traceOrTraces: Trace<M> | ReadonlyArray<Trace<M>>) => Coverage<M>;
|
|
26
|
+
export declare const observedGraph: <M extends AnyMachine>(machine: M, traceOrTraces: Trace<M> | ReadonlyArray<Trace<M>>) => Effect.Effect<ObservedGraph<M>, Machine.MachineSchemaEncodeError, Machine.Machine.SnapshotEncodingServices<Machine.Machine.States<M>>>;
|
|
27
|
+
declare const VerificationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
28
|
+
readonly _tag: "MachineTestVerificationError";
|
|
29
|
+
} & Readonly<A>;
|
|
30
|
+
export declare class VerificationError extends VerificationError_base<{
|
|
31
|
+
readonly violations: ReadonlyArray<VerificationViolation>;
|
|
32
|
+
}> {
|
|
33
|
+
}
|
|
34
|
+
export declare const verify: <M extends AnyMachine>(machine: M, trace: Trace<M>, options?: VerifyOptions) => Effect.Effect<void, VerificationError>;
|
|
35
|
+
export declare const formatTrace: <M extends AnyMachine, Cause>(trace: Trace<M> | RunFailure<Cause, M>) => string;
|
|
36
|
+
//# sourceMappingURL=verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../../src/internal/testing/machine/verification.ts"],"names":[],"mappings":"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"}
|