@typeonce/effect-machine 0.15.0 → 0.17.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.
Files changed (85) hide show
  1. package/README.md +115 -95
  2. package/dist/Machine.d.ts +464 -337
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +72 -107
  5. package/dist/Machine.js.map +1 -1
  6. package/dist/internal/machine/activities.d.ts +2 -0
  7. package/dist/internal/machine/activities.d.ts.map +1 -1
  8. package/dist/internal/machine/activities.js +4 -0
  9. package/dist/internal/machine/activities.js.map +1 -1
  10. package/dist/internal/machine/atom.d.ts +7 -7
  11. package/dist/internal/machine/atom.d.ts.map +1 -1
  12. package/dist/internal/machine/atom.js.map +1 -1
  13. package/dist/internal/machine/cluster.d.ts +2 -2
  14. package/dist/internal/machine/cluster.d.ts.map +1 -1
  15. package/dist/internal/machine/cluster.js +6 -5
  16. package/dist/internal/machine/cluster.js.map +1 -1
  17. package/dist/internal/machine/executionPlan.d.ts.map +1 -1
  18. package/dist/internal/machine/executionPlan.js +16 -4
  19. package/dist/internal/machine/executionPlan.js.map +1 -1
  20. package/dist/internal/machine/invocation.d.ts +1 -1
  21. package/dist/internal/machine/invocation.d.ts.map +1 -1
  22. package/dist/internal/machine/invocation.js +25 -3
  23. package/dist/internal/machine/invocation.js.map +1 -1
  24. package/dist/internal/machine/invocationEvent.d.ts +8 -0
  25. package/dist/internal/machine/invocationEvent.d.ts.map +1 -1
  26. package/dist/internal/machine/invocationEvent.js +8 -0
  27. package/dist/internal/machine/invocationEvent.js.map +1 -1
  28. package/dist/internal/machine/machine.d.ts +8 -6
  29. package/dist/internal/machine/machine.d.ts.map +1 -1
  30. package/dist/internal/machine/machine.js +308 -71
  31. package/dist/internal/machine/machine.js.map +1 -1
  32. package/dist/internal/machine/planner.d.ts +26 -4
  33. package/dist/internal/machine/planner.d.ts.map +1 -1
  34. package/dist/internal/machine/planner.js +76 -31
  35. package/dist/internal/machine/planner.js.map +1 -1
  36. package/dist/internal/machine/runtime.d.ts +1 -0
  37. package/dist/internal/machine/runtime.d.ts.map +1 -1
  38. package/dist/internal/machine/runtime.js +25 -16
  39. package/dist/internal/machine/runtime.js.map +1 -1
  40. package/dist/internal/machine/stateDefinition.d.ts.map +1 -1
  41. package/dist/internal/machine/stateDefinition.js +14 -0
  42. package/dist/internal/machine/stateDefinition.js.map +1 -1
  43. package/dist/internal/machine/topology.d.ts +20 -0
  44. package/dist/internal/machine/topology.d.ts.map +1 -1
  45. package/dist/internal/machine/topology.js +33 -6
  46. package/dist/internal/machine/topology.js.map +1 -1
  47. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -1
  48. package/dist/internal/testing/machine/finiteModel.js +15 -20
  49. package/dist/internal/testing/machine/finiteModel.js.map +1 -1
  50. package/dist/internal/testing/machine/transitionCoverage.d.ts.map +1 -1
  51. package/dist/internal/testing/machine/transitionCoverage.js +8 -2
  52. package/dist/internal/testing/machine/transitionCoverage.js.map +1 -1
  53. package/dist/internal/testing/machine/verification.d.ts.map +1 -1
  54. package/dist/internal/testing/machine/verification.js +6 -0
  55. package/dist/internal/testing/machine/verification.js.map +1 -1
  56. package/dist/testing/MachineTest.d.ts +13 -12
  57. package/dist/testing/MachineTest.d.ts.map +1 -1
  58. package/dist/testing/MachineTest.js +5 -8
  59. package/dist/testing/MachineTest.js.map +1 -1
  60. package/dist/unstable/cluster/ClusterMachine.d.ts +2 -2
  61. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -1
  62. package/dist/unstable/cluster/ClusterMachine.js.map +1 -1
  63. package/dist/unstable/reactivity/AtomMachine.d.ts +12 -12
  64. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -1
  65. package/dist/unstable/reactivity/AtomMachine.js.map +1 -1
  66. package/docs/agent-guide.md +182 -159
  67. package/package.json +1 -1
  68. package/src/Machine.ts +1073 -700
  69. package/src/internal/machine/activities.ts +7 -0
  70. package/src/internal/machine/atom.ts +20 -15
  71. package/src/internal/machine/cluster.ts +14 -9
  72. package/src/internal/machine/executionPlan.ts +14 -4
  73. package/src/internal/machine/invocation.ts +39 -4
  74. package/src/internal/machine/invocationEvent.ts +16 -0
  75. package/src/internal/machine/machine.ts +460 -86
  76. package/src/internal/machine/planner.ts +106 -30
  77. package/src/internal/machine/runtime.ts +61 -25
  78. package/src/internal/machine/stateDefinition.ts +39 -0
  79. package/src/internal/machine/topology.ts +59 -2
  80. package/src/internal/testing/machine/finiteModel.ts +18 -21
  81. package/src/internal/testing/machine/transitionCoverage.ts +8 -2
  82. package/src/internal/testing/machine/verification.ts +11 -0
  83. package/src/testing/MachineTest.ts +16 -11
  84. package/src/unstable/cluster/ClusterMachine.ts +8 -4
  85. package/src/unstable/reactivity/AtomMachine.ts +19 -12
@@ -1 +1 @@
1
- {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/machine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,YAAY,IAAI,iBAAiB,EACjC,KAAK,EACL,OAAO,EACP,UAAU,EACV,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,EAEN,OAAO,EACP,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAIjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,eAAe,MAAM,cAAc,CAAA;AAM/C,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAItG,eAAO,MAAM,YAAY,EAAE,OAAO,MAA4C,CAAA;AAC9E,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAAgD,CAAA;AAEtF,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAC9C,KAAK,yBAAyB,GAAG,eAAe,CAAC,cAAc,CAAA;AAC/D,KAAK,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,YAAY,SAAS,OAAO,CAAC,WAAW,CACnG,MAAM,cAAc,EACpB,MAAM,aAAa,CACpB,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,IAAI,GAAG,YAAY,GAC/C,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,YAAY,GAC1F,YAAY,GACZ,YAAY,CAAA;AAChB,KAAK,iBAAiB,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;AACzE,KAAK,YAAY,CAAC,OAAO,SAAS,YAAY,IAAI,IAAI,SAAS,MAAM,OAAO,GAAG,OAAO,SAAS;IAC3F,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,uBAAuB,GAC5D,uBAAuB,GACvB,KAAK,CAAA;AACT,KAAK,UAAU,CAAC,OAAO,SAAS,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;AACrE,KAAK,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,CAC3G,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EACvC,UAAU,GAAG,YAAY,EACzB,yBAAyB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAC5D,CAAA;AACD,KAAK,oBAAoB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,IAAI,MAAM,CAAA;AACvE,KAAK,qBAAqB,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,SACxE;IAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC;CAAC,GAAG,EAAE,GACzC,CAAC,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;AACtD,KAAK,4BAA4B,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,SAC/E;IAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC;CAAC,GAAG,KAAK,GAC5C,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACjD,KAAK,uBAAuB,GACxB,OAAO,CAAC,qBAAqB,GAC7B,OAAO,CAAC,uBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAA;AACnC,UAAU,gBAAgB;IACxB,CAAC,KAAK,CAAC,IAAI,SAAS,uBAAuB,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAC/D;AACD,UAAU,iBAAiB;IACzB,CAAC,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACxC,MAAM,EAAE,MAAM,EACd,GAAG,WAAW,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GACrD,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;CACjG;AACD,KAAK,0BAA0B,CAAC,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,WAAW,SACpG,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,GAAG,KAAK,CAAA;AACvD,KAAK,6BAA6B,CAChC,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACvD,cAAc,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,IACxD,WAAW,GAAG,cAAc,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,GAAG,KAAK,CAAA;AAgwB9F,eAAO,MAAM,SAAS,GACpB,GAAG,OAAO,KACT,CAAC,IAAI,OAAO,CAAC,GAAqD,CAAA;AAErE,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACvD,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,SAAS,OAAO,CACd,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,EACD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAC9B,KAAK,IAAI,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAmD,CAAA;AA+kBlH,eAAO,MAAM,KAAK,EAAE,gBAGE,CAAA;AAEtB,eAAO,MAAM,MAAM,EAAE,iBAwBE,CAAA;AAEvB,KAAK,UAAU,CACb,MAAM,SAAS,OAAO,CAAC,YAAY,EACnC,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACvD,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACjD,KAAK,SAAS,MAAM,CAAC,GAAG,EACxB,QAAQ,EACR,QAAQ,EACR,cAAc,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAC1D,iBAAiB,SAAS,MAAM,CAAC,GAAG,GAAG,SAAS,IAC9C;IACF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,EACX,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,GAC5C,0BAA0B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;IACpD,QAAQ,CAAC,cAAc,CAAC,EACpB,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,GACjD,6BAA6B,CAC7B,OAAO,CAAC,WAAW,CAAC,EACpB,OAAO,CAAC,cAAc,CAAC,CACxB,CAAA;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,KAAK,UAAU,CACb,MAAM,SAAS,OAAO,CAAC,YAAY,EACnC,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACvD,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACjD,KAAK,SAAS,MAAM,CAAC,GAAG,EACxB,QAAQ,EACR,QAAQ,EACR,cAAc,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAC1D,iBAAiB,SAAS,MAAM,CAAC,GAAG,GAAG,SAAS,IAC9C,UAAU,CACZ,MAAM,EACN,SAAS,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,EAC5C,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,EACxC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAC1C,CAAA;AAED,UAAU,IAAI;IACZ,CACE,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAC7D,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,CAAC,cAAc,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EAC9E,KAAK,CAAC,iBAAiB,SAAS,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,SAAS,EAElE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAC5G,GAAG,WAAW,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GACrD,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;IACvG,CACE,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAC7D,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,CAAC,cAAc,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EAC9E,KAAK,CAAC,iBAAiB,SAAS,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,SAAS,EAElE,MAAM,EACF,IAAI,CACJ,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,EACpG,QAAQ,CACT,GACC;QAAE,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC,CAAA;KAAE,GAC5D,KAAK,CAAA;CACT;AAED,eAAO,MAAM,IAAI,EAAE,IAuCT,CAAA;AAYV,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAC7F,GAAG,QAAQ,MAAM,KAChB,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAIK,CAAA;AAe7F,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAC7E,QAAQ,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,KAC9C,MAAM,CAAC,UAAU,EAAE,MAAM,CAAmC,CAAA;AAE/D,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACrF,QAAQ,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,KAC9C,MAAM,CAAC,UAAU,EAAE,MAAM,CAAmC,CAAA;AAE/D,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,EACvG,GAAG,QAAQ,MAAM,KAChB,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,2BAA2B,CAAC,UAAU,EAAE,MAAM,CAAC,CAIK,CAAA;AAEjG,eAAO,MAAM,aAAa,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,EACrG,GAAG,QAAQ,MAAM,KAChB,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,CAIK,CAAA;AAE/F,eAAO,MAAM,cAAc,EAAE,CAC3B,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,OAAO,EAAE,OAAO,CACd,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,EACD,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAC/B,MAAM,CAAC,MAAM,CAChB,OAAO,CAAC,eAAe,EACvB,wBAAwB,EACxB,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,CACH,CAAA;AAEvC,eAAO,MAAM,cAAc,EAAE,CAC3B,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,OAAO,EAAE,OAAO,CACd,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,EACD,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAChB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB,wBAAwB,EACxB,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,CACH,CAAA;AAEvC,eAAO,MAAM,WAAW,EAAE,CACxB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,OAAO,EACH,OAAO,CACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,GACC,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,EAC3D,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KACnC,MAAM,CAAC,MAAM,CACd;IACA,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACzC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5D,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAA;QAC3D,QAAQ,CAAC,WAAW,EAAE,aAAa,CACjC,OAAO,CAAC,kBAAkB,CACxB,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EACnC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC7B,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CACpC,CACF,CAAA;QACD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;QACzC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAC1B,CAAC,CAAA;CACH,GACC,CACE;IACA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAC3B,CACF,EACD,QAAQ,GAAG,CAAC,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,YAAY,EAChF,KAAK,CAC+B,CAAA;AAEtC,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,OAAO,CAAC,GAAG,EAC9C,SAAS,CAAC,KACT,aAAa,CACd,OAAO,CAAC,SAAS,CACf,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC1C,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC5C,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC5C,CAQA,CAAA;AAEH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,OAAO,CAAC,GAAG,EACrD,SAAS,CAAC,KACT,OAAO,CAAC,iBAAiB,CAC1B,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAItE,CAAA;AAEH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,OAAO,CAAC,GAAG,EACzD,SAAS,CAAC,KACT,aAAa,CACd,OAAO,CAAC,oBAAoB,CAC1B,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACxC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC/C,CAQA,CAAA;AAEH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,OAAO,CAAC,GAAG,EACvD,SAAS,CAAC,KACT,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAGpF,CAAA;AAEH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,OAAO,CAAC,GAAG,EACjD,SAAS,CAAC,EACV,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KACzC,aAAa,CACd,OAAO,CAAC,eAAe,CACrB,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC1C,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC5C,CASF,CAAA;AAED,eAAO,MAAM,OAAO,GAClB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACvD,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,SAAS,OAAO,CACd,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,EACD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAC9B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAmD,CAAA;AAEjG,eAAO,MAAM,IAAI,EAAE,CACjB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,OAAO,EACH,OAAO,CACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,GACC,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,EAC3D,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,KACrC,MAAM,CAAC,MAAM,CACd;IACA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACzC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5D,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAA;QAC3D,QAAQ,CAAC,WAAW,EAAE,aAAa,CACjC,OAAO,CAAC,kBAAkB,CACxB,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EACnC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC7B,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CACpC,CACF,CAAA;QACD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;QACzC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAC1B,CAAC,CAAA;CACH,GACC,CACE;IACA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAC3B,CACF,EACD,CAAC,GAAG,uBAAuB,GAAG,wBAAwB,EACtD,KAAK,CACwB,CAAA;AAE/B,eAAO,MAAM,KAAK,GAChB,KAAK,EACL,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,IAAI,EACb,KAAK,GAAG,KAAK,EACb,YAAY,GAAG,KAAK,EACpB,YAAY,GAAG,KAAK,EACpB,mBAAmB,GAAG,KAAK,EAE3B,SAAS;IACP,QAAQ,CAAC,OAAO,EACZ,KAAK,GACL,CAAC,CACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KACtB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAA;IAC/D,QAAQ,CAAC,GAAG,EAAE,CACZ,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KACjC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;CAChD,KACA,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,GAAG,mBAAmB,EAAE,MAAM,EAAE,YAAY,CAQpF,CAAA;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAC1E,SAAS,KAAK,EACd,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KACpF,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAQ7C,CAAA;AAEJ,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,EAClE,IAAI,EAAE,EACN,SAAS,CAAC,KACT,YAAY,CAAC,EAAE,EAAE,CAAC,CAQnB,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,KAAK,GAAG,KAAK,EAAE,IAAI,MAAM,KAAG,YAAY,CAAC,KAAK,CAA8B,CAAA;AAEzG,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,GAAG,KAAK,EAC5F,KAAK,EAAE,KAAK,CACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,CAClB,GACA,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;IAC5G,CACE,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,OAAO,SAAS,YAAY,EAC5B,iBAAiB,GAAG,KAAK,EAEzB,KAAK,EAAE,KAAK,CACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,CAClB,EACD,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,GACxE,WAAW,CACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,CAAC,OAAO,CAAC,EACnB,iBAAiB,CAClB,CAAA;CAQQ,CAAA;AAEX,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,KAAK,SAAS,YAAY,CAAC,GAAG,EAC7B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAA;IAC/D,CAAC,OAAO,SAAS,YAAY,CAAC,KAAK,CAAC,EAClC,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,GACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAA;CAKtD,CAAA;AAEX,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAA;IAC1F,CAAC,KAAK,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAA;CAK5F,CAAA;AAEX,eAAO,MAAM,KAAK,GAAI,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAC/D,KAAK,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAC3C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAA+B,CAAA;AAEpF,eAAO,MAAM,OAAO,qvGAA0B,CAAA;AAE9C,eAAO,MAAM,KAAK,EAAE,CAClB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,OAAO,EACH,OAAO,CACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,GACC,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,EAC3D,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KACnC,MAAM,CAAC,MAAM,CAChB,UAAU,CACR,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,EAC/B,CAAC,GACD,WAAW,CAAC,CAAC,CAAC,GACd,uBAAuB,GACvB,wBAAwB,GACxB,YAAY,EACd,MAAM,EACN,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAC9B,EACC,QAAQ,GACR,CAAC,GACD,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,GACzB,uBAAuB,GACvB,wBAAwB,GACxB,YAAY,GACZ,YAAY,EACd,wBAAwB,CACtB,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAC,EAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CACtB,CAC6B,CAAA;AAEhC,eAAO,MAAM,MAAM,EAAE,CACnB,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,YAAY,EACzC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EACxD,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE,EACrE,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,EACnD,eAAe,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACzF,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC3D,MAAM,GAAG,KAAK,EACd,YAAY,SAAS,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,EAC5D,WAAW,SAAS,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,EAEhE,OAAO,EACH,OAAO,CACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,CAAC,EACD,CAAC,EACD,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,CACZ,GACC,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,EAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAC/B,MAAM,CAAC,MAAM,CAChB,UAAU,CACR,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,EAC/B,CAAC,GACD,WAAW,CAAC,CAAC,CAAC,GACd,uBAAuB,GACvB,wBAAwB,GACxB,YAAY,EACd,MAAM,EACN,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAC9B,EACD,wBAAwB,EACxB,wBAAwB,CACtB,iBAAiB,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CACtB,CAC8B,CAAA"}
@@ -16,6 +16,7 @@ import * as Topology from "./topology.js";
16
16
  export { ChildAlreadyExistsError, InfiniteTransitionError, MachineSchemaDecodeError, MachineSchemaEncodeError, ProcessLocalError, StartupError, StoppedError } from "./errors.js";
17
17
  export { ChildMachineLogicTypeId, InitialEventTypeId, SnapshotBuilderStateTypeId } from "./symbols.js";
18
18
  const TypeId = "~effect/Machine";
19
+ const ParentTypeId = "~effect/Machine/Parent";
19
20
  export const InvokeTypeId = Symbol.for("effect/Machine/Invoke");
20
21
  export const TransitionTypeId = Symbol.for("effect/Machine/Transition");
21
22
  const ChildMachineTypeId = "~effect/Machine/ChildMachine";
@@ -29,14 +30,13 @@ const Proto = {
29
30
  };
30
31
  }
31
32
  };
32
- const makeBoundInvoke = (config) => config;
33
33
  const makeWithHandlers = (self, handlers) => {
34
34
  const machine = Object.create(Proto);
35
35
  machine.states = self.states;
36
36
  machine.events = self.events;
37
37
  machine.internalEvents = self.internalEvents;
38
38
  machine.emittedEvents = self.emittedEvents;
39
- machine.parentEvents = self.parentEvents;
39
+ machine.parent = self.parent;
40
40
  machine.input = self.input;
41
41
  machine.id = self.id;
42
42
  machine.initial = self.initial;
@@ -44,16 +44,134 @@ const makeWithHandlers = (self, handlers) => {
44
44
  machine.stateNodes = self.stateNodes;
45
45
  machine.makeTargetBuilder = self.makeTargetBuilder;
46
46
  machine.handlers = handlers;
47
- machine.invoke = makeBoundInvoke;
48
47
  Protocol.copyProtocol(self, machine);
49
48
  return machine;
50
49
  };
50
+ const TransitionBuilderDescriptorTypeId = Symbol("effect/Machine/TransitionBuilderDescriptor");
51
+ const InitialBuilderDescriptorTypeId = Symbol("effect/Machine/InitialBuilderDescriptor");
52
+ const plainTargetSelection = (selection) => selection.kind === "none"
53
+ ? Topology.noneTargetSelection
54
+ : Topology.makeTargetSelection(selection.kind, selection.path, selection.scope);
55
+ const transitionOptions = (options) => {
56
+ const configuration = typeof options === "object" && options !== null
57
+ ? options
58
+ : {};
59
+ return {
60
+ reenter: configuration.reenter === true,
61
+ declinable: configuration.declinable === true
62
+ };
63
+ };
64
+ const makeDirectTransitionDescriptor = (selection, resolve, options) => {
65
+ const shared = {
66
+ [TransitionBuilderDescriptorTypeId]: TransitionBuilderDescriptorTypeId,
67
+ type: "direct",
68
+ selection: plainTargetSelection(selection),
69
+ ...transitionOptions(options)
70
+ };
71
+ return resolve === undefined
72
+ ? Object.freeze(shared)
73
+ : Object.freeze({ ...shared, resolve });
74
+ };
75
+ const decorateTransitionSelection = (selection) => Object.freeze({
76
+ ...selection,
77
+ resolve: (resolve, options) => makeDirectTransitionDescriptor(selection, resolve, options),
78
+ reenter: () => makeDirectTransitionDescriptor(selection, undefined, { reenter: true })
79
+ });
80
+ const noneTransitionSelection = decorateTransitionSelection(Topology.noneTargetSelection);
81
+ const makeInitialBuilderDescriptor = (selection, resolve) => Object.freeze({
82
+ [InitialBuilderDescriptorTypeId]: InitialBuilderDescriptorTypeId,
83
+ selection: plainTargetSelection(selection),
84
+ resolve
85
+ });
86
+ const decorateInitialSelection = (selection) => Object.freeze({
87
+ ...selection,
88
+ resolve: (resolve) => makeInitialBuilderDescriptor(selection, resolve)
89
+ });
90
+ const decorateInitialSelectorNode = (node) => {
91
+ if (Topology.isTargetSelection(node))
92
+ return decorateInitialSelection(node);
93
+ if (typeof node === "function") {
94
+ const wrapped = ((...args) => decorateInitialSelection(node(...args)));
95
+ for (const key of Object.keys(node)) {
96
+ wrapped[key] = decorateInitialSelectorNode(node[key]);
97
+ }
98
+ return Object.freeze(wrapped);
99
+ }
100
+ if (typeof node === "object" && node !== null) {
101
+ const wrapped = {};
102
+ for (const key of Object.keys(node)) {
103
+ wrapped[key] = decorateInitialSelectorNode(node[key]);
104
+ }
105
+ return Object.freeze(wrapped);
106
+ }
107
+ return node;
108
+ };
109
+ const decorateTransitionSelectorNode = (node) => {
110
+ if (Topology.isTargetSelection(node)) {
111
+ return node === Topology.noneTargetSelection ? noneTransitionSelection : decorateTransitionSelection(node);
112
+ }
113
+ if (typeof node === "function") {
114
+ const wrapped = ((...args) => decorateTransitionSelection(node(...args)));
115
+ for (const key of Object.keys(node)) {
116
+ wrapped[key] = decorateTransitionSelectorNode(node[key]);
117
+ }
118
+ return Object.freeze(wrapped);
119
+ }
120
+ if (typeof node === "object" && node !== null) {
121
+ const wrapped = {};
122
+ for (const key of Object.keys(node)) {
123
+ wrapped[key] = decorateTransitionSelectorNode(node[key]);
124
+ }
125
+ return Object.freeze(wrapped);
126
+ }
127
+ return node;
128
+ };
129
+ const makeTransitionSelector = (stateNodes, source) => {
130
+ const selector = {
131
+ ...decorateTransitionSelectorNode(makeTargetSelector(stateNodes, source))
132
+ };
133
+ selector.branches = (declarations) => Object.freeze({
134
+ resolve: (resolve, options) => Object.freeze({
135
+ [TransitionBuilderDescriptorTypeId]: TransitionBuilderDescriptorTypeId,
136
+ type: "branches",
137
+ declarations,
138
+ resolve,
139
+ ...transitionOptions(options)
140
+ })
141
+ });
142
+ return Object.freeze(selector);
143
+ };
144
+ const normalizeTransitionBuilder = (transition, stateNodes, path) => {
145
+ const result = transition(makeTransitionSelector(stateNodes, path));
146
+ if (Topology.isTargetSelection(result)) {
147
+ const selection = plainTargetSelection(result);
148
+ return { target: () => selection };
149
+ }
150
+ if (!hasProperty(result, TransitionBuilderDescriptorTypeId))
151
+ return result;
152
+ const descriptor = result;
153
+ if (descriptor.type === "branches") {
154
+ return {
155
+ branches: () => descriptor.declarations,
156
+ resolve: descriptor.resolve,
157
+ reenter: descriptor.reenter,
158
+ declinable: descriptor.declinable
159
+ };
160
+ }
161
+ return {
162
+ target: () => descriptor.selection,
163
+ resolve: descriptor.resolve,
164
+ reenter: descriptor.reenter,
165
+ declinable: descriptor.declinable
166
+ };
167
+ };
51
168
  const transitionTargetSelection = (selection) => Object.freeze({
52
169
  path: selection.path,
53
170
  kind: selection.kind,
54
171
  scope: selection.scope
55
172
  });
56
173
  const makeSelectionMethod = (kind, path, scope) => () => Topology.makeTargetSelection(kind, path, scope);
174
+ const makeSelectionValue = (kind, path, scope) => Topology.makeTargetSelection(kind, path, scope);
57
175
  const addSelectionChildren = (builder, stateNodes, parent, scope) => {
58
176
  for (const node of stateNodes.byPath.values()) {
59
177
  if (node.parent !== parent || node.type === "history")
@@ -67,7 +185,7 @@ const makeSelectionNode = (stateNodes, path, scope) => {
67
185
  const method = makeSelectionMethod(kind, path, scope);
68
186
  if (node.type !== "atomic" && node.type !== "final" && node.type !== "choice" && node.type !== "history") {
69
187
  Object.defineProperty(method, "initial", {
70
- value: makeSelectionMethod("initial", path, scope),
188
+ value: makeSelectionValue("initial", path, scope),
71
189
  enumerable: true
72
190
  });
73
191
  if (scope === "local" || scope === "branch") {
@@ -82,7 +200,7 @@ const makeHistorySelectionTree = (stateNodes, parent) => {
82
200
  if (node.parent !== parent)
83
201
  continue;
84
202
  if (node.type === "history") {
85
- builder[node.key] = makeSelectionMethod("history", node.path, "full");
203
+ builder[node.key] = makeSelectionValue("history", node.path, "full");
86
204
  }
87
205
  else if (node.type !== "choice") {
88
206
  const children = makeHistorySelectionTree(stateNodes, node.path);
@@ -107,12 +225,12 @@ const makeTargetSelector = (stateNodes, source) => {
107
225
  if (localScope !== undefined) {
108
226
  const localScopeNode = getTargetBuilderNode(stateNodes, localScope);
109
227
  if (localScopeNode.schema !== undefined) {
110
- local.with = makeSelectionMethod("state", localScope, "local");
228
+ local.with = makeSelectionValue("state", localScope, "local");
111
229
  }
112
230
  addSelectionChildren(local, stateNodes, localScope, "local");
113
231
  }
114
232
  return {
115
- none: makeSelectionMethod("none", undefined, "local"),
233
+ none: Topology.noneTargetSelection,
116
234
  local,
117
235
  branch,
118
236
  full,
@@ -167,7 +285,7 @@ const getSelectionBuilder = (target, selection, stateNodes, source) => {
167
285
  }
168
286
  return builder;
169
287
  };
170
- const constructSelectedTarget = (builder) => typeof builder === "function" ? builder() : builder.from();
288
+ const constructSelectedTarget = (builder) => typeof builder?.from === "function" ? builder.from() : builder();
171
289
  const validateResolvedSelection = (result, selection, stateNodes) => {
172
290
  if (selection.kind === "none") {
173
291
  if (result !== undefined) {
@@ -189,7 +307,7 @@ const validateResolvedSelection = (result, selection, stateNodes) => {
189
307
  throw new Error(`Machine transition resolver selected "${selection.path}" but constructed "${resultPath ?? "<invalid>"}"`);
190
308
  }
191
309
  };
192
- const runCapturedBranch = (branch, context, enqueue, stateNodes, source, match) => {
310
+ const runCapturedBranch = (branch, context, enqueue, stateNodes, source) => {
193
311
  const selectedTarget = getSelectionBuilder(context.target, branch.selection, stateNodes, source);
194
312
  if (branch.resolve === undefined)
195
313
  return constructSelectedTarget(selectedTarget);
@@ -198,71 +316,163 @@ const runCapturedBranch = (branch, context, enqueue, stateNodes, source, match)
198
316
  delete resolverContext.target;
199
317
  else
200
318
  resolverContext.target = selectedTarget;
201
- if (match !== undefined)
202
- resolverContext.match = match.value;
319
+ if (branch.declinable === true)
320
+ resolverContext.decline = Topology.makeDeclined;
203
321
  const resolved = branch.resolve(resolverContext, enqueue);
322
+ if (Topology.isDeclined(resolved)) {
323
+ if (branch.declinable !== true) {
324
+ throw new Error(`Machine transition for state "${source}" returned decline without declaring declinable: true`);
325
+ }
326
+ return resolved;
327
+ }
204
328
  validateResolvedSelection(resolved, branch.selection, stateNodes);
205
329
  return resolved === undefined ? constructSelectedTarget(selectedTarget) : resolved;
206
330
  };
207
- const captureTransition = (transition, stateNodes, path, trigger) => {
331
+ const isArrayIndexKey = (key) => {
332
+ const index = Number(key);
333
+ return Number.isInteger(index) && index >= 0 && index < 0xffff_ffff && String(index) === key;
334
+ };
335
+ const captureNamedBranches = (declarations, path, trigger) => {
336
+ if (typeof declarations !== "object" || declarations === null || Array.isArray(declarations)) {
337
+ throw new Error(`Machine branching transition for state "${path}" on "${String(trigger)}" requires a branch record`);
338
+ }
339
+ if (Object.getOwnPropertySymbols(declarations).length > 0) {
340
+ throw new Error(`Machine branching transition for state "${path}" on "${String(trigger)}" cannot use symbol keys`);
341
+ }
342
+ const keys = Object.keys(declarations);
343
+ if (keys.length === 0) {
344
+ throw new Error(`Machine branching transition for state "${path}" on "${String(trigger)}" requires a branch`);
345
+ }
346
+ return Object.freeze(keys.map((key) => {
347
+ if (key.length === 0 || isArrayIndexKey(key)) {
348
+ throw new Error(`Machine branching transition for state "${path}" on "${String(trigger)}" requires non-index string branch keys`);
349
+ }
350
+ const declaration = declarations[key];
351
+ if (typeof declaration !== "object" || declaration === null || !hasProperty(declaration, "target")) {
352
+ throw new Error(`Machine transition branch "${key}" requires a target selection`);
353
+ }
354
+ const { target, title } = declaration;
355
+ if (!Topology.isTargetSelection(target)) {
356
+ throw new Error(`Machine transition branch "${key}" must select exactly one target`);
357
+ }
358
+ if (title !== undefined && (typeof title !== "string" || title.length === 0)) {
359
+ throw new Error(`Machine transition branch "${key}" title must be a non-empty string`);
360
+ }
361
+ return Object.freeze({ key, title: title ?? key, selection: plainTargetSelection(target) });
362
+ }));
363
+ };
364
+ const wrapSelectedBranchBuilder = (builder, owner, branchIndex, branchKey) => {
365
+ if (typeof builder === "function") {
366
+ const wrapped = (...args) => Topology.makeSelectedBranch(owner, branchIndex, branchKey, builder(...args));
367
+ for (const property of Reflect.ownKeys(builder)) {
368
+ if (property === "length" || property === "name" || property === "prototype" || property === "caller" ||
369
+ property === "arguments")
370
+ continue;
371
+ const descriptor = Object.getOwnPropertyDescriptor(builder, property);
372
+ if (descriptor === undefined)
373
+ continue;
374
+ if ("value" in descriptor && typeof descriptor.value === "function") {
375
+ descriptor.value = wrapSelectedBranchBuilder(descriptor.value, owner, branchIndex, branchKey);
376
+ }
377
+ Object.defineProperty(wrapped, property, descriptor);
378
+ }
379
+ return wrapped;
380
+ }
381
+ if (typeof builder === "object" && builder !== null) {
382
+ const wrapped = {};
383
+ for (const property of Reflect.ownKeys(builder)) {
384
+ const descriptor = Object.getOwnPropertyDescriptor(builder, property);
385
+ if (descriptor === undefined)
386
+ continue;
387
+ if ("value" in descriptor && typeof descriptor.value === "function") {
388
+ descriptor.value = wrapSelectedBranchBuilder(descriptor.value, owner, branchIndex, branchKey);
389
+ }
390
+ Object.defineProperty(wrapped, property, descriptor);
391
+ }
392
+ return wrapped;
393
+ }
394
+ throw new Error(`Machine could not construct transition branch "${branchKey}"`);
395
+ };
396
+ const makeBranchSelectors = (context, branches, owner, stateNodes, source) => {
397
+ const select = Object.create(null);
398
+ for (let branchIndex = 0; branchIndex < branches.length; branchIndex++) {
399
+ const branch = branches[branchIndex];
400
+ select[branch.key] = wrapSelectedBranchBuilder(getSelectionBuilder(context.target, branch.selection, stateNodes, source), owner, branchIndex, branch.key);
401
+ }
402
+ return Object.freeze(select);
403
+ };
404
+ const validateSelectedBranchResult = (result, selection, stateNodes) => {
405
+ if (selection.kind === "none") {
406
+ if (!Topology.isNoTarget(result)) {
407
+ throw new Error("Machine targetless branch must return its selected targetless builder");
408
+ }
409
+ return;
410
+ }
411
+ if (result === undefined) {
412
+ throw new Error(`Machine transition branch selected "${selection.path}" without constructing its target`);
413
+ }
414
+ validateResolvedSelection(result, selection, stateNodes);
415
+ };
416
+ const captureTransition = (rawTransition, stateNodes, path, trigger) => {
417
+ if (typeof rawTransition !== "function") {
418
+ throw new Error(`Machine transition for state "${path}" on "${String(trigger)}" must be a target-first callback`);
419
+ }
420
+ const transition = normalizeTransitionBuilder(rawTransition, stateNodes, path);
208
421
  if (typeof transition !== "object" || transition === null) {
209
422
  throw new Error(`Machine transition for state "${path}" on "${String(trigger)}" must be an object`);
210
423
  }
211
424
  const definition = transition;
212
425
  const selector = makeTargetSelector(stateNodes, path);
213
426
  const reenter = definition.reenter === true;
214
- if (Array.isArray(definition.cases)) {
215
- const rawCases = definition.cases;
216
- if (definition.cases.length === 0 || !hasProperty(definition, "otherwise")) {
217
- throw new Error(`Machine conditional transition for state "${path}" on "${String(trigger)}" requires cases and otherwise`);
218
- }
219
- const cases = rawCases.map((branch) => {
220
- const captured = captureDefinitionBranch(branch, selector, path, trigger);
221
- if (typeof captured.title !== "string" || captured.title.length === 0 || typeof captured.when !== "function") {
222
- throw new Error(`Machine conditional transition case for state "${path}" on "${String(trigger)}" requires title and when`);
223
- }
224
- return captured;
225
- });
226
- const otherwise = captureDefinitionBranch(definition.otherwise, selector, path, trigger);
427
+ const declinable = definition.declinable === true;
428
+ if (hasProperty(definition, "branches")) {
429
+ const branching = definition;
430
+ if (typeof branching.branches !== "function" || typeof branching.resolve !== "function") {
431
+ throw new Error(`Machine branching transition for state "${path}" on "${String(trigger)}" requires branches and resolve`);
432
+ }
433
+ const resolve = branching.resolve;
434
+ const branches = captureNamedBranches(branching.branches(selector), path, trigger);
435
+ const owner = Object.freeze({});
227
436
  const evaluate = (context, enqueue) => {
228
- const predicateContext = { ...context };
229
- delete predicateContext.target;
230
- for (let branchIndex = 0; branchIndex < cases.length; branchIndex++) {
231
- const branch = cases[branchIndex];
232
- const result = branch.when(predicateContext);
233
- if (!Option.isOption(result)) {
234
- throw new Error(`Machine conditional transition case "${branch.title}" must return Option`);
235
- }
236
- if (Option.isSome(result)) {
237
- return {
238
- result: runCapturedBranch(branch, context, enqueue, stateNodes, path, { value: result.value }),
239
- branchIndex
240
- };
437
+ const resolverContext = { ...context };
438
+ delete resolverContext.target;
439
+ resolverContext.select = makeBranchSelectors(context, branches, owner, stateNodes, path);
440
+ if (declinable)
441
+ resolverContext.decline = Topology.makeDeclined;
442
+ const selected = resolve(resolverContext, enqueue);
443
+ if (Topology.isDeclined(selected)) {
444
+ if (!declinable) {
445
+ throw new Error(`Machine branching transition for state "${path}" on "${String(trigger)}" returned decline without declaring declinable: true`);
241
446
  }
447
+ return { result: selected, branchIndex: -1, branchKey: undefined };
448
+ }
449
+ if (!Topology.isSelectedBranch(selected) || selected.owner !== owner) {
450
+ throw new Error(`Machine branching transition for state "${path}" on "${String(trigger)}" must select one declared branch`);
242
451
  }
452
+ const branch = branches[selected.branchIndex];
453
+ if (branch === undefined || selected.branchKey !== branch.key) {
454
+ throw new Error(`Machine branching transition returned invalid branch evidence`);
455
+ }
456
+ validateSelectedBranchResult(selected.result, branch.selection, stateNodes);
243
457
  return {
244
- result: runCapturedBranch(otherwise, context, enqueue, stateNodes, path),
245
- branchIndex: cases.length
458
+ result: selected.result,
459
+ branchIndex: selected.branchIndex,
460
+ branchKey: selected.branchKey
246
461
  };
247
462
  };
248
463
  return {
249
464
  reenter,
465
+ declinable,
250
466
  targets: [
251
- ...new Set([...cases, otherwise].flatMap((branch) => branch.selection.path === undefined ? [] : [branch.selection.path]))
252
- ],
253
- branches: [
254
- ...cases.map((branch) => ({
255
- type: "case",
256
- title: branch.title,
257
- target: branch.selection.path,
258
- selection: transitionTargetSelection(branch.selection)
259
- })),
260
- {
261
- type: "otherwise",
262
- target: otherwise.selection.path,
263
- selection: transitionTargetSelection(otherwise.selection)
264
- }
467
+ ...new Set(branches.flatMap((branch) => branch.selection.path === undefined ? [] : [branch.selection.path]))
265
468
  ],
469
+ branches: branches.map((branch) => Object.freeze({
470
+ type: "branch",
471
+ key: branch.key,
472
+ title: branch.title,
473
+ target: branch.selection.path,
474
+ selection: transitionTargetSelection(branch.selection)
475
+ })),
266
476
  evaluate,
267
477
  transition: (context, enqueue) => evaluate(context, enqueue).result
268
478
  };
@@ -270,10 +480,12 @@ const captureTransition = (transition, stateNodes, path, trigger) => {
270
480
  const branch = captureDefinitionBranch(transition, selector, path, trigger);
271
481
  const evaluate = (context, enqueue) => ({
272
482
  result: runCapturedBranch(branch, context, enqueue, stateNodes, path),
273
- branchIndex: 0
483
+ branchIndex: 0,
484
+ branchKey: undefined
274
485
  });
275
486
  return {
276
487
  reenter,
488
+ declinable,
277
489
  targets: branch.selection.path === undefined ? [] : [branch.selection.path],
278
490
  branches: [{
279
491
  type: "direct",
@@ -300,7 +512,7 @@ const captureInvokeDefinition = (invoke, stateNodes, path) => {
300
512
  if (typeof invoke !== "object" || invoke === null)
301
513
  return invoke;
302
514
  const captured = { ...invoke };
303
- for (const key of ["onDone", "onFailure", "onSnapshot"]) {
515
+ for (const key of ["onElement", "onDone", "onFailure", "onSnapshot"]) {
304
516
  if (captured[key] !== undefined) {
305
517
  captured[key] = captureTransition(captured[key], stateNodes, path, key);
306
518
  }
@@ -679,10 +891,12 @@ const makeInitialSelector = (stateNodes) => {
679
891
  const selector = {};
680
892
  for (const node of stateNodes.byPath.values()) {
681
893
  if (node.parent === undefined && node.type !== "history" && node.type !== "choice") {
682
- selector[node.key] = makeSelectionNode(stateNodes, node.path, "initial");
894
+ selector[node.key] = node.type === "atomic" || node.type === "final"
895
+ ? makeSelectionMethod("state", node.path, "initial")
896
+ : Object.freeze({ initial: makeSelectionValue("initial", node.path, "initial") });
683
897
  }
684
898
  }
685
- return selector;
899
+ return Object.freeze(selector);
686
900
  };
687
901
  const getInitialSelectionBuilder = (initialBuilder, selection) => {
688
902
  const path = selection.path;
@@ -695,12 +909,32 @@ const getInitialSelectionBuilder = (initialBuilder, selection) => {
695
909
  }
696
910
  return builder;
697
911
  };
698
- const captureInitialBranch = (branch, selector, initialBuilder) => {
699
- const captured = captureDefinitionBranch(branch, selector, "<machine>", "initial");
700
- if (captured.selection.kind !== "state" && captured.selection.kind !== "initial") {
912
+ const captureInitialBranch = (definition, stateNodes, initialBuilder) => {
913
+ if (typeof definition !== "function") {
914
+ throw new Error("Machine initial definition must be a target-first callback");
915
+ }
916
+ const result = definition(decorateInitialSelectorNode(makeInitialSelector(stateNodes)));
917
+ let selection;
918
+ let resolve;
919
+ if (Topology.isTargetSelection(result)) {
920
+ selection = plainTargetSelection(result);
921
+ }
922
+ else if (hasProperty(result, InitialBuilderDescriptorTypeId)) {
923
+ const descriptor = result;
924
+ selection = descriptor.selection;
925
+ resolve = descriptor.resolve;
926
+ }
927
+ else {
928
+ throw new Error("Machine initial definition must select exactly one target");
929
+ }
930
+ if (selection.kind !== "state" && selection.kind !== "initial") {
701
931
  throw new Error("Machine initial target must select a top-level state or its declared initial entry");
702
932
  }
703
- return { ...captured, builder: getInitialSelectionBuilder(initialBuilder, captured.selection) };
933
+ const captured = {
934
+ selection,
935
+ builder: getInitialSelectionBuilder(initialBuilder, selection)
936
+ };
937
+ return resolve === undefined ? Object.freeze(captured) : Object.freeze({ ...captured, resolve });
704
938
  };
705
939
  const validateInitialSelection = (result, selection) => {
706
940
  if (typeof result !== "object" || result === null || !hasProperty(result, "path") || result.path !== selection.path) {
@@ -711,17 +945,13 @@ const validateInitialSelection = (result, selection) => {
711
945
  }
712
946
  };
713
947
  const compileInitial = (definition, states, stateNodes) => {
714
- if (typeof definition !== "object" || definition === null) {
715
- throw new Error("Machine initial definition must be an object");
716
- }
717
- const selector = makeInitialSelector(stateNodes);
718
948
  const initialBuilder = makeSnapshotBuilder(states, { mode: "initial", prefix: "" });
719
- const branch = captureInitialBranch(definition, selector, initialBuilder);
949
+ const branch = captureInitialBranch(definition, stateNodes, initialBuilder);
720
950
  return {
721
951
  initial: (input) => {
722
952
  const result = branch.resolve === undefined
723
- ? branch.builder()
724
- : branch.resolve({ input, target: branch.builder }, undefined);
953
+ ? constructSelectedTarget(branch.builder)
954
+ : branch.resolve({ input, target: branch.builder });
725
955
  validateInitialSelection(result, branch.selection);
726
956
  return result;
727
957
  },
@@ -757,7 +987,7 @@ export const make = ((config) => {
757
987
  self.events = config.events;
758
988
  self.internalEvents = config.internalEvents ?? Protocol.makeEventProtocol("internal", []);
759
989
  self.emittedEvents = config.emittedEvents ?? Protocol.makeEventProtocol("emitted", []);
760
- self.parentEvents = config.parentEvents ?? Protocol.makeEventProtocol("public", []);
990
+ self.parent = config.parent;
761
991
  self.input = config.input;
762
992
  self.id = config.id;
763
993
  self.stateNodes = Topology.compileStateNodes(config.states);
@@ -767,7 +997,6 @@ export const make = ((config) => {
767
997
  self.makeTargetBuilder = makeTargetBuilder(config.states, self.stateNodes);
768
998
  self.handlers = Object.create(null);
769
999
  self.handle = makeHandle(self);
770
- self.invoke = makeBoundInvoke;
771
1000
  Protocol.setProtocol(self);
772
1001
  return self;
773
1002
  });
@@ -775,6 +1004,14 @@ const flattenEventProtocolInputs = (kind, inputs) => inputs.flatMap((input) => P
775
1004
  ? Protocol.eventProtocolSchemas(input)
776
1005
  : [input]);
777
1006
  export const events = (...inputs) => Protocol.makeEventProtocol("public", flattenEventProtocolInputs("public", inputs));
1007
+ const makeParent = (mode, events) => {
1008
+ if (!Protocol.isEventProtocol(events, "public")) {
1009
+ throw new Error("Machine parent declarations require a protocol created with Machine.events");
1010
+ }
1011
+ return Object.freeze({ [ParentTypeId]: ParentTypeId, mode, events });
1012
+ };
1013
+ export const parent = (events) => makeParent("required", events);
1014
+ export const optionalParent = (events) => makeParent("optional", events);
778
1015
  export const internalEvents = (...inputs) => Protocol.makeEventProtocol("internal", flattenEventProtocolInputs("internal", inputs));
779
1016
  export const emittedEvents = (...inputs) => Protocol.makeEventProtocol("emitted", flattenEventProtocolInputs("emitted", inputs));
780
1017
  export const encodeSnapshot = Serialization.encodeSnapshot;