ballerina-core 1.0.256 → 1.0.258

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 (321) hide show
  1. package/bin/src/api-response-handler/coroutines/runner.js +20 -13
  2. package/bin/src/api-response-handler/state.js +13 -11
  3. package/bin/src/apiResultStatus/state.d.ts +10 -3
  4. package/bin/src/apiResultStatus/state.js +2 -5
  5. package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.js +314 -196
  6. package/bin/src/async/domains/mirroring/domains/collection/state.js +126 -36
  7. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.js +18 -11
  8. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.js +19 -19
  9. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.js +1 -1
  10. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.js +18 -18
  11. package/bin/src/async/domains/mirroring/domains/entity/state.js +18 -9
  12. package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.js +134 -83
  13. package/bin/src/async/domains/mirroring/domains/singleton/state.js +52 -8
  14. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.d.ts +15 -9
  15. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.js +1 -1
  16. package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.js +7 -4
  17. package/bin/src/async/domains/promise/state.d.ts +9 -4
  18. package/bin/src/async/domains/promise/state.js +20 -9
  19. package/bin/src/async/domains/synchronized/coroutines/synchronize.js +80 -28
  20. package/bin/src/async/domains/synchronized/state.d.ts +14 -7
  21. package/bin/src/async/domains/synchronized/state.js +16 -6
  22. package/bin/src/async/state.d.ts +56 -45
  23. package/bin/src/async/state.js +115 -97
  24. package/bin/src/baseEntity/domains/identifiable/state.d.ts +15 -11
  25. package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
  26. package/bin/src/collections/domains/array/state.d.ts +7 -7
  27. package/bin/src/collections/domains/array/state.js +5 -5
  28. package/bin/src/collections/domains/errors/state.d.ts +10 -10
  29. package/bin/src/collections/domains/errors/state.js +10 -10
  30. package/bin/src/collections/domains/immutable/domains/list/state.js +46 -44
  31. package/bin/src/collections/domains/immutable/domains/map/state.js +41 -23
  32. package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +84 -65
  33. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
  34. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
  35. package/bin/src/collections/domains/maybe/state.d.ts +9 -9
  36. package/bin/src/collections/domains/maybe/state.js +12 -9
  37. package/bin/src/collections/domains/product/state.d.ts +25 -19
  38. package/bin/src/collections/domains/product/state.js +13 -10
  39. package/bin/src/collections/domains/sum/state.d.ts +101 -77
  40. package/bin/src/collections/domains/sum/state.js +49 -32
  41. package/bin/src/collections/domains/valueOrErrors/state.js +81 -56
  42. package/bin/src/coroutines/builder.js +40 -19
  43. package/bin/src/coroutines/state.js +381 -306
  44. package/bin/src/coroutines/template.js +97 -59
  45. package/bin/src/debounced/coroutines/debounce.js +115 -89
  46. package/bin/src/debounced/state.js +62 -25
  47. package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
  48. package/bin/src/diagnostics/domains/message-box/state.js +3 -3
  49. package/bin/src/foreignMutations/state.d.ts +3 -3
  50. package/bin/src/foreignMutations/state.js +1 -1
  51. package/bin/src/forms/domains/attachments/views/attachments-view.js +30 -8
  52. package/bin/src/forms/domains/collection/domains/reference/state.js +26 -20
  53. package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
  54. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +2007 -754
  55. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.d.ts.map +1 -1
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +123 -44
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js.map +1 -1
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +40 -27
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +21 -13
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +43 -27
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +39 -22
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts +167 -0
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts.map +1 -0
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js +367 -0
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js.map +1 -0
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts +7 -29
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts.map +1 -1
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +1098 -572
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js.map +1 -1
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts +1 -0
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts.map +1 -1
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +322 -90
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js.map +1 -1
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +3 -2
  75. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts +27 -4
  76. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js +136 -82
  77. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
  78. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +49 -23
  79. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
  80. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +52 -24
  81. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +18 -6
  82. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +64 -30
  83. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +9 -6
  84. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +153 -60
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +127 -50
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +40 -22
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +31 -13
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +452 -152
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +29 -8
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js.map +1 -1
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +61 -18
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +329 -90
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +54 -23
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +22 -10
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +49 -31
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +29 -10
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +2 -2
  101. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +47 -26
  102. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +88 -40
  103. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +386 -152
  104. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +19 -10
  105. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +99 -33
  106. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +32 -11
  107. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +227 -82
  108. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +35 -13
  109. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +195 -68
  110. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +36 -13
  111. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +246 -106
  112. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
  113. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +54 -23
  114. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +40 -27
  115. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
  116. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +58 -26
  117. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +22 -7
  118. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +188 -53
  119. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/builder.js +2 -2
  120. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/infiniteLoader.js +57 -24
  121. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseFiltersAndSorting.js +70 -20
  122. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.d.ts.map +1 -1
  123. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js +88 -48
  124. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js.map +1 -1
  125. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/loadWithRetries.js +40 -20
  126. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +43 -15
  127. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +301 -137
  128. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js.map +1 -1
  129. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +692 -240
  130. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +20 -8
  131. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +132 -35
  132. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +21 -8
  133. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +105 -33
  134. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +12 -9
  135. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +54 -20
  136. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +716 -560
  137. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +58 -18
  138. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +45 -14
  139. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +76 -18
  140. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +82 -24
  141. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +37 -8
  142. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +120 -36
  143. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +145 -63
  144. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +44 -12
  145. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +14 -4
  146. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +81 -25
  147. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +82 -24
  148. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +63 -20
  149. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +248 -74
  150. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +61 -13
  151. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +92 -33
  152. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +144 -45
  153. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_init.js +203 -95
  154. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_sync.js +79 -37
  155. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/builder.js +2 -2
  156. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/runner.js +19 -17
  157. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/state.js +58 -11
  158. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/template.js +73 -25
  159. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_init.js +205 -95
  160. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_sync.js +78 -37
  161. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/builder.js +2 -2
  162. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/runner.js +19 -17
  163. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/state.js +58 -11
  164. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/template.js +71 -25
  165. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/coroutines/runner.js +163 -85
  166. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/state.js +10 -4
  167. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/template.js +72 -27
  168. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +796 -436
  169. package/bin/src/forms/domains/dispatched-forms/runner/state.js +62 -38
  170. package/bin/src/forms/domains/dispatched-forms/runner/template.js +78 -25
  171. package/bin/src/forms/domains/launcher/coroutines/runner.js +120 -45
  172. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +240 -101
  173. package/bin/src/forms/domains/launcher/domains/create/state.js +62 -17
  174. package/bin/src/forms/domains/launcher/domains/create/template.js +84 -42
  175. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +242 -103
  176. package/bin/src/forms/domains/launcher/domains/edit/state.js +62 -17
  177. package/bin/src/forms/domains/launcher/domains/edit/template.js +86 -43
  178. package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
  179. package/bin/src/forms/domains/launcher/domains/merger/state.js +35 -26
  180. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +88 -42
  181. package/bin/src/forms/domains/launcher/domains/passthrough/state.js +44 -19
  182. package/bin/src/forms/domains/launcher/domains/passthrough/template.js +56 -34
  183. package/bin/src/forms/domains/launcher/state.js +6 -6
  184. package/bin/src/forms/domains/launcher/template.js +169 -85
  185. package/bin/src/forms/domains/parser/coroutines/runner.js +87 -25
  186. package/bin/src/forms/domains/parser/domains/built-ins/state.js +944 -533
  187. package/bin/src/forms/domains/parser/domains/deltas/state.js +444 -318
  188. package/bin/src/forms/domains/parser/domains/injectables/state.js +29 -26
  189. package/bin/src/forms/domains/parser/domains/layout/state.js +271 -183
  190. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +324 -162
  191. package/bin/src/forms/domains/parser/domains/predicates/state.js +1514 -984
  192. package/bin/src/forms/domains/parser/domains/renderer/state.js +1137 -480
  193. package/bin/src/forms/domains/parser/domains/types/state.js +355 -170
  194. package/bin/src/forms/domains/parser/domains/validator/state.js +417 -280
  195. package/bin/src/forms/domains/parser/state.js +612 -373
  196. package/bin/src/forms/domains/parser/template.js +1 -1
  197. package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
  198. package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +38 -19
  199. package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
  200. package/bin/src/forms/domains/primitives/domains/boolean/template.js +38 -19
  201. package/bin/src/forms/domains/primitives/domains/date/state.js +18 -9
  202. package/bin/src/forms/domains/primitives/domains/date/template.js +51 -25
  203. package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
  204. package/bin/src/forms/domains/primitives/domains/enum/template.js +117 -48
  205. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
  206. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +99 -40
  207. package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
  208. package/bin/src/forms/domains/primitives/domains/list/template.js +200 -71
  209. package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
  210. package/bin/src/forms/domains/primitives/domains/map/template.js +294 -103
  211. package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
  212. package/bin/src/forms/domains/primitives/domains/number/template.js +38 -19
  213. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +33 -16
  214. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +171 -62
  215. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
  216. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +182 -69
  217. package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
  218. package/bin/src/forms/domains/primitives/domains/secret/template.js +38 -19
  219. package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
  220. package/bin/src/forms/domains/primitives/domains/string/template.js +42 -22
  221. package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
  222. package/bin/src/forms/domains/primitives/domains/sum/template.js +141 -50
  223. package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
  224. package/bin/src/forms/domains/primitives/domains/tuple/template.js +100 -33
  225. package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
  226. package/bin/src/forms/domains/primitives/domains/unit/template.js +22 -9
  227. package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
  228. package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
  229. package/bin/src/forms/domains/singleton/state.js +12 -10
  230. package/bin/src/forms/domains/singleton/template.js +288 -113
  231. package/bin/src/fun/domains/curry/state.d.ts +4 -2
  232. package/bin/src/fun/domains/curry/state.js +1 -1
  233. package/bin/src/fun/domains/id/state.d.ts +1 -1
  234. package/bin/src/fun/domains/id/state.js +1 -1
  235. package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +57 -41
  236. package/bin/src/fun/domains/predicate/domains/bool-expr.js +76 -67
  237. package/bin/src/fun/domains/predicate/state.d.ts +9 -7
  238. package/bin/src/fun/domains/predicate/state.js +14 -10
  239. package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
  240. package/bin/src/fun/domains/simpleCallback/state.js +1 -1
  241. package/bin/src/fun/domains/uncurry/state.d.ts +4 -2
  242. package/bin/src/fun/domains/uncurry/state.js +1 -1
  243. package/bin/src/fun/domains/unit/state.d.ts +1 -1
  244. package/bin/src/fun/domains/unit/state.js +1 -1
  245. package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +22 -7
  246. package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +18 -10
  247. package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +24 -13
  248. package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +40 -10
  249. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +19 -13
  250. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +20 -9
  251. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +24 -13
  252. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +47 -11
  253. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +20 -8
  254. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +17 -5
  255. package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
  256. package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
  257. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +13 -4
  258. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +6 -4
  259. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +60 -22
  260. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +42 -31
  261. package/bin/src/fun/domains/updater/state.d.ts +4 -4
  262. package/bin/src/fun/domains/updater/state.js +12 -10
  263. package/bin/src/fun/state.d.ts +3 -3
  264. package/bin/src/fun/state.js +9 -7
  265. package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
  266. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +47 -20
  267. package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
  268. package/bin/src/infinite-data-stream/state.d.ts +84 -51
  269. package/bin/src/infinite-data-stream/state.js +125 -61
  270. package/bin/src/infinite-data-stream/template.js +3 -2
  271. package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
  272. package/bin/src/math/domains/DOMRect/state.js +10 -8
  273. package/bin/src/math/domains/number/state.d.ts +5 -5
  274. package/bin/src/math/domains/number/state.js +5 -5
  275. package/bin/src/math/domains/rect/state.d.ts +8 -8
  276. package/bin/src/math/domains/rect/state.js +16 -15
  277. package/bin/src/math/domains/rgba/state.d.ts +17 -17
  278. package/bin/src/math/domains/rgba/state.js +77 -81
  279. package/bin/src/math/domains/size2/state.d.ts +8 -8
  280. package/bin/src/math/domains/size2/state.js +6 -6
  281. package/bin/src/math/domains/vector2/state.d.ts +10 -10
  282. package/bin/src/math/domains/vector2/state.js +8 -8
  283. package/bin/src/queue/state.js +23 -16
  284. package/bin/src/state/domains/repository/state.d.ts +15 -9
  285. package/bin/src/state/domains/repository/state.js +1 -1
  286. package/bin/src/template/state.js +163 -115
  287. package/bin/src/validation/state.js +38 -45
  288. package/bin/src/value/domains/mutable-value/state.js +3 -2
  289. package/bin/src/value/state.d.ts +9 -9
  290. package/bin/src/value/state.js +11 -8
  291. package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
  292. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +55 -20
  293. package/bin/src/value-infinite-data-stream/coroutines/runner.js +6 -4
  294. package/bin/src/value-infinite-data-stream/state.js +199 -77
  295. package/bin/src/value-infinite-data-stream/template.js +4 -2
  296. package/bin/src/visibility/state.d.ts +5 -2
  297. package/bin/src/visibility/state.js +1 -1
  298. package/main.ts +1 -0
  299. package/package.json +1 -1
  300. package/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.ts +2 -2
  301. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.ts +117 -111
  302. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.ts +14 -5
  303. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.ts +75 -18
  304. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.ts +16 -6
  305. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.ts +27 -9
  306. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.ts +28 -8
  307. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.ts +13 -4
  308. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.ts +18 -7
  309. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.ts +40 -14
  310. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.ts +15 -5
  311. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.ts +20 -6
  312. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +101 -50
  313. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.ts +22 -23
  314. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.ts +37 -19
  315. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.ts +64 -6
  316. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.ts +585 -0
  317. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.ts +592 -340
  318. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.ts +364 -226
  319. package/src/forms/domains/dispatched-forms/deserializer/state.ts +1 -2
  320. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.tsx +1 -1
  321. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.ts +2 -2
@@ -1,563 +1,719 @@
1
- import { unit, ValueOrErrors, } from "../../../../../../../main";
1
+ import { unit, ValueOrErrors } from "../../../../../../../main";
2
2
  export const DispatchDeltaTransfer = {
3
- Default: {
4
- FromDelta: (toRawObject, parseCustomDelta) => (delta) => {
5
- const result = (() => {
6
- if (delta.kind == "NumberReplace") {
7
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
8
- {
9
- Discriminator: "NumberReplace",
10
- Replace: value,
11
- },
12
- "[NumberReplace]",
13
- delta.flags ? [[delta.flags, "[NumberReplace]"]] : [],
14
- ]));
15
- }
16
- if (delta.kind == "StringReplace") {
17
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
18
- {
19
- Discriminator: "StringReplace",
20
- Replace: value,
21
- },
22
- "[StringReplace]",
23
- delta.flags ? [[delta.flags, "[StringReplace]"]] : [],
24
- ]));
25
- }
26
- if (delta.kind == "BoolReplace") {
27
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
28
- {
29
- Discriminator: "BoolReplace",
30
- Replace: value,
31
- },
32
- "[BoolReplace]",
33
- delta.flags ? [[delta.flags, "[BoolReplace]"]] : [],
34
- ]));
35
- }
36
- if (delta.kind == "TimeReplace") {
37
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
38
- {
39
- Discriminator: "TimeReplace",
40
- Replace: value,
41
- },
42
- "[TimeReplace]",
43
- delta.flags ? [[delta.flags, "[TimeReplace]"]] : [],
44
- ]));
45
- }
46
- if (delta.kind == "GuidReplace") {
47
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
48
- {
49
- Discriminator: "GuidReplace",
50
- Replace: value,
51
- },
52
- "[GuidReplace]",
53
- delta.flags ? [[delta.flags, "[GuidReplace]"]] : [],
54
- ]));
55
- }
56
- if (delta.kind == "UnitReplace") {
57
- return ValueOrErrors.Default.return([
58
- {},
59
- "UnitReplace",
60
- delta.flags ? [[delta.flags, "UnitReplace"]] : [],
61
- ]);
62
- }
63
- if (delta.kind == "OptionReplace") {
64
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
65
- {
66
- Discriminator: "OptionReplace",
67
- Replace: value,
68
- },
69
- "[OptionReplace]",
70
- delta.flags ? [[delta.flags, "[OptionReplace]"]] : [],
71
- ]));
72
- }
73
- if (delta.kind == "OptionValue") {
74
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.value).Then((value) => ValueOrErrors.Default.return([
75
- {
76
- Discriminator: "OptionValue",
77
- Value: value[0],
78
- },
79
- `[OptionValue]${value[1]}`,
80
- delta.flags
81
- ? [[delta.flags, `[OptionValue]${value[1]}`], ...value[2]]
82
- : value[2],
83
- ]));
84
- }
85
- if (delta.kind == "SumReplace") {
86
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
87
- {
88
- Discriminator: "SumReplace",
89
- Replace: value,
90
- },
91
- "[SumReplace]",
92
- delta.flags ? [[delta.flags, "[SumReplace]"]] : [],
93
- ]));
94
- }
95
- if (delta.kind == "SumLeft") {
96
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.value).Then((value) => ValueOrErrors.Default.return([
97
- {
98
- Discriminator: "SumLeft",
99
- Left: value[0],
100
- },
101
- `[SumLeft]${value[1]}`,
102
- delta.flags
103
- ? [[delta.flags, `[SumLeft]${value[1]}`], ...value[2]]
104
- : value[2],
105
- ]));
106
- }
107
- if (delta.kind == "SumRight") {
108
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.value).Then((value) => ValueOrErrors.Default.return([
109
- {
110
- Discriminator: "SumRight",
111
- Right: value[0],
112
- },
113
- `[SumRight]${value[1]}`,
114
- delta.flags
115
- ? [[delta.flags, "[SumRight]"], ...value[2]]
116
- : value[2],
117
- ]));
118
- }
119
- if (delta.kind == "ArrayReplace") {
120
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
121
- {
122
- Discriminator: "ArrayReplace",
123
- Replace: value,
124
- },
125
- "[ArrayReplace]",
126
- delta.flags ? [[delta.flags, "[ArrayReplace]"]] : [],
127
- ]));
128
- }
129
- if (delta.kind == "ArrayValue") {
130
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.value[1]).Then((value) => ValueOrErrors.Default.return([
131
- {
132
- Discriminator: "ArrayValue",
133
- Value: {
134
- Item1: delta.value[0],
135
- Item2: value[0],
136
- },
137
- },
138
- `[ArrayValue][${delta.value[0]}]${value[1]}`,
139
- delta.flags
140
- ? [
141
- [
142
- delta.flags,
143
- `[ArrayValue][${delta.value[0]}]${value[1]}`,
144
- ],
145
- ...value[2],
146
- ]
147
- : value[2],
148
- ]));
149
- }
150
- if (delta.kind == "ArrayValueAll") {
151
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.nestedDelta).Then((value) => ValueOrErrors.Default.return([
152
- {
153
- Discriminator: "ArrayValueAll",
154
- ValueAll: value[0],
155
- },
156
- `[ArrayValueAll]${value[1]}`,
157
- delta.flags
158
- ? [[delta.flags, `[ArrayValueAll]${value[1]}`], ...value[2]]
159
- : value[2],
160
- ]));
161
- }
162
- if (delta.kind == "ArrayAdd") {
163
- return toRawObject(delta.value, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
164
- {
165
- Discriminator: "ArrayAdd",
166
- Add: value,
167
- },
168
- "[ArrayAdd]",
169
- delta.flags ? [[delta.flags, "[ArrayAdd]"]] : [],
170
- ]));
171
- }
172
- if (delta.kind == "ArrayAddAt") {
173
- return toRawObject(delta.value[1], delta.elementType, delta.elementState).Then((element) => ValueOrErrors.Default.return([
174
- {
175
- Discriminator: "ArrayAddAt",
176
- AddAt: { Item1: delta.value[0], Item2: element },
177
- },
178
- `[ArrayAddAt][${delta.value[0]}]`,
179
- delta.flags
180
- ? [[delta.flags, `[ArrayAddAt][${delta.value[0]}]`]]
181
- : [],
182
- ]));
183
- }
184
- if (delta.kind == "ArrayRemoveAt") {
185
- return ValueOrErrors.Default.return([
186
- {
187
- Discriminator: "ArrayRemoveAt",
188
- RemoveAt: delta.index,
189
- },
190
- `[ArrayRemoveAt]`,
191
- delta.flags ? [[delta.flags, "[ArrayRemoveAt]"]] : [],
192
- ]);
193
- }
194
- if (delta.kind == "ArrayRemoveAll") {
195
- return ValueOrErrors.Default.return([
196
- {
197
- Discriminator: "ArrayRemoveAll",
198
- RemoveAll: unit,
199
- },
200
- `[ArrayRemoveAll]`,
201
- delta.flags ? [[delta.flags, "[ArrayRemoveAll]"]] : [],
202
- ]);
203
- }
204
- if (delta.kind == "ArrayMoveFromTo") {
205
- return ValueOrErrors.Default.return([
206
- {
207
- Discriminator: "ArrayMoveFromTo",
208
- MoveFromTo: { Item1: delta.from, Item2: delta.to },
209
- },
210
- `[ArrayMoveFromTo]`,
211
- delta.flags ? [[delta.flags, "[ArrayMoveFromTo]"]] : [],
212
- ]);
213
- }
214
- if (delta.kind == "ArrayDuplicateAt") {
215
- return ValueOrErrors.Default.return([
216
- {
217
- Discriminator: "ArrayDuplicateAt",
218
- DuplicateAt: delta.index,
219
- },
220
- `[ArrayDuplicateAt]`,
221
- delta.flags ? [[delta.flags, "[ArrayDuplicateAt]"]] : [],
222
- ]);
223
- }
224
- if (delta.kind == "SetReplace") {
225
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
226
- {
227
- Discriminator: "SetReplace",
228
- Replace: value,
229
- },
230
- "[SetReplace]",
231
- delta.flags ? [[delta.flags, "[SetReplace]"]] : [],
232
- ]));
233
- }
234
- if (delta.kind == "SetValue") {
235
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.value[1]).Then((value) => ValueOrErrors.Default.return([
236
- {
237
- Discriminator: "SetValue",
238
- Value: { Item1: delta.value[0], Item2: value[0] },
239
- },
240
- `[SetValue][${delta.value[0]}]${value[1]}`,
241
- delta.flags
242
- ? [
243
- [delta.flags, `[SetValue][${delta.value[0]}]${value[1]}`],
244
- ...value[2],
245
- ]
246
- : value[2],
247
- ]));
248
- }
249
- if (delta.kind == "SetAdd") {
250
- return toRawObject(delta.value, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
251
- {
252
- Discriminator: "SetAdd",
253
- Add: value,
254
- },
255
- `[SetAdd]`,
256
- delta.flags ? [[delta.flags, "[SetAdd]"]] : [],
257
- ]));
258
- }
259
- if (delta.kind == "SetRemove") {
260
- return toRawObject(delta.value, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
261
- {
262
- Discriminator: "SetRemove",
263
- Remove: value,
264
- },
265
- `[SetRemove]`,
266
- delta.flags ? [[delta.flags, "[SetRemove]"]] : [],
267
- ]));
268
- }
269
- if (delta.kind == "MapReplace") {
270
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
271
- {
272
- Discriminator: "MapReplace",
273
- Replace: value,
274
- },
275
- "[MapReplace]",
276
- delta.flags ? [[delta.flags, "[MapReplace]"]] : [],
277
- ]));
278
- }
279
- if (delta.kind == "MapKey") {
280
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.value[1]).Then((value) => ValueOrErrors.Default.return([
281
- {
282
- Discriminator: "MapKey",
283
- Key: { Item1: delta.value[0], Item2: value[0] },
284
- },
285
- `[MapKey][${delta.value[0]}]${value[1]}`,
286
- delta.flags
287
- ? [
288
- [delta.flags, `[MapKey][${delta.value[0]}]${value[1]}`],
289
- ...value[2],
290
- ]
291
- : value[2],
292
- ]));
293
- }
294
- if (delta.kind == "MapValue") {
295
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.value[1]).Then((value) => ValueOrErrors.Default.return([
296
- {
297
- Discriminator: "MapValue",
298
- Value: { Item1: delta.value[0], Item2: value[0] },
299
- },
300
- `[MapValue][${delta.value[0]}]${value[1]}`,
301
- delta.flags
302
- ? [
303
- [delta.flags, `[MapValue][${delta.value[0]}]${value[1]}`],
304
- ...value[2],
305
- ]
306
- : value[2],
307
- ]));
308
- }
309
- if (delta.kind == "MapAdd") {
310
- return toRawObject(delta.keyValue[0], delta.keyType, delta.keyState).Then((key) => toRawObject(delta.keyValue[1], delta.valueType, delta.valueState).Then((value) => ValueOrErrors.Default.return([
311
- {
312
- Discriminator: "MapAdd",
313
- Add: { Item1: key, Item2: value },
314
- },
315
- `[MapAdd]`,
316
- delta.flags ? [[delta.flags, "[MapAdd]"]] : [],
317
- ])));
318
- }
319
- if (delta.kind == "MapRemove") {
320
- return ValueOrErrors.Default.return([
321
- {
322
- Discriminator: "MapRemove",
323
- Remove: delta.index,
324
- },
325
- `[MapRemove]`,
326
- delta.flags ? [[delta.flags, "[MapRemove]"]] : [],
327
- ]);
328
- }
329
- if (delta.kind == "RecordReplace") {
330
- if (delta.type.kind != "lookup") {
331
- return ValueOrErrors.Default.throwOne(`Error: cannot process non look up record delta ${delta}, not currently supported.`);
332
- }
333
- const lookupName = delta.type.name;
334
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
335
- {
336
- Discriminator: "Replace",
337
- Replace: value,
338
- },
339
- `[${lookupName}Replace]`,
340
- delta.flags ? [[delta.flags, `[${lookupName}Replace]`]] : [],
341
- ]));
342
- }
343
- if (delta.kind == "RecordField") {
344
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.field[1]).Then((value) => ValueOrErrors.Default.return([
345
- {
346
- Discriminator: delta.field[0],
347
- [delta.field[0]]: value[0],
348
- },
349
- `[RecordField][${delta.field[0]}]${value[1]}`,
350
- delta.flags
351
- ? [
352
- [
353
- delta.flags,
354
- `[RecordField][${delta.field[0]}]${value[1]}`,
355
- ],
356
- ...value[2],
357
- ]
358
- : value[2],
359
- ]));
360
- }
361
- if (delta.kind == "UnionReplace") {
362
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
363
- {
364
- Discriminator: "UnionReplace",
365
- Replace: value,
366
- },
367
- "[UnionReplace]",
368
- delta.flags ? [[delta.flags, "[UnionReplace]"]] : [],
369
- ]));
370
- }
371
- if (delta.kind == "UnionCase") {
372
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.caseName[1]).Then((value) => ValueOrErrors.Default.return([
373
- {
374
- Discriminator: `Case${delta.caseName[0]}`,
375
- [`Case${delta.caseName[0]}`]: value[0],
376
- },
377
- `[UnionCase][${delta.caseName[0]}]`,
378
- delta.flags
379
- ? [
380
- [delta.flags, `[UnionCase][${delta.caseName[0]}]`],
381
- ...value[2],
382
- ]
383
- : value[2],
384
- ]));
385
- }
386
- if (delta.kind == "TupleReplace") {
387
- return toRawObject(delta.replace, delta.type, delta.state).Then((value) => ValueOrErrors.Default.return([
388
- {
389
- Discriminator: "TupleReplace",
390
- Replace: value,
391
- },
392
- "[TupleReplace]",
393
- delta.flags ? [[delta.flags, "[TupleReplace]"]] : [],
394
- ]));
395
- }
396
- if (delta.kind == "TupleCase") {
397
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.item[1]).Then((value) => ValueOrErrors.Default.return([
398
- {
399
- Discriminator: `Tuple${delta.tupleType.args.length}Item${delta.item[0] + 1}`,
400
- [`Item${delta.item[0] + 1}`]: value[0],
401
- },
402
- `[TupleCase][${delta.item[0] + 1}]${value[1]}`,
403
- delta.flags
404
- ? [
405
- [
406
- delta.flags,
407
- `[TupleCase][${delta.item[0] + 1}]${value[1]}`,
408
- ],
409
- ...value[2],
410
- ]
411
- : value[2],
412
- ]));
413
- }
414
- if (delta.kind == "TableValue") {
415
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.nestedDelta).Then((value) => ValueOrErrors.Default.return([
416
- {
417
- Discriminator: "TableValue",
418
- Value: { Item1: delta.id, Item2: value[0] },
419
- },
420
- `[TableValue][${delta.id}]${value[1]}`,
421
- delta.flags
422
- ? [
423
- [delta.flags, `[TableValue][${delta.id}]${value[1]}`],
424
- ...value[2],
425
- ]
426
- : value[2],
427
- ]));
428
- }
429
- if (delta.kind == "TableValueAll") {
430
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.nestedDelta).Then((value) => ValueOrErrors.Default.return([
431
- {
432
- Discriminator: "TableValueAll",
433
- ValueAll: value[0],
434
- },
435
- `[TableValueAll]${value[1]}`,
436
- delta.flags
437
- ? [[delta.flags, `[TableValueAll]${value[1]}`], ...value[2]]
438
- : value[2],
439
- ]));
440
- }
441
- if (delta.kind == "TableAddEmpty") {
442
- return ValueOrErrors.Default.return([
443
- {
444
- Discriminator: "TableAddEmpty",
445
- },
446
- `[TableAddEmpty]`,
447
- delta.flags ? [[delta.flags, "[TableAddEmpty]"]] : [],
448
- ]);
449
- }
450
- if (delta.kind == "TableRemove") {
451
- return ValueOrErrors.Default.return([
452
- {
453
- Discriminator: "TableRemoveAt",
454
- RemoveAt: delta.id,
455
- },
456
- `[TableRemoveAt][${delta.id}]`,
457
- delta.flags
458
- ? [[delta.flags, `[TableRemoveAt][${delta.id}]`]]
459
- : [],
460
- ]);
461
- }
462
- if (delta.kind == "TableRemoveAll") {
463
- return ValueOrErrors.Default.return([
464
- {
465
- Discriminator: "TableRemoveAll",
466
- RemoveAll: unit,
467
- },
468
- `[TableRemoveAll]`,
469
- delta.flags ? [[delta.flags, "[TableRemoveAll]"]] : [],
470
- ]);
471
- }
472
- if (delta.kind == "TableDuplicate") {
473
- return ValueOrErrors.Default.return([
474
- {
475
- Discriminator: "TableDuplicateAt",
476
- DuplicateAt: delta.id,
477
- },
478
- `[TableDuplicateAt][${delta.id}]`,
479
- delta.flags
480
- ? [[delta.flags, `[TableDuplicateAt][${delta.id}]`]]
481
- : [],
482
- ]);
483
- }
484
- if (delta.kind == "TableMoveTo") {
485
- return ValueOrErrors.Default.return([
486
- {
487
- Discriminator: "TableMoveFromTo",
488
- MoveFromTo: {
489
- Item1: delta.id,
490
- Item2: delta.to,
491
- },
492
- },
493
- `[TableMoveFromTo][${delta.id}][${delta.to}]`,
494
- delta.flags
495
- ? [[delta.flags, `[TableMoveFromTo][${delta.id}][${delta.to}]`]]
496
- : [],
497
- ]);
498
- }
499
- if (delta.kind == "OneValue") {
500
- return DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta)(delta.nestedDelta).Then((value) => ValueOrErrors.Default.return([
501
- {
502
- Discriminator: "OneValue",
503
- Value: value[0],
504
- },
505
- `[OneValue]${value[1]}`,
506
- delta.flags
507
- ? [[delta.flags, `[OneValue]${value[1]}`], ...value[2]]
508
- : value[2],
509
- ]));
510
- }
511
- if (delta.kind == "OneReplace") {
512
- if (delta.type.kind != "one") {
513
- return ValueOrErrors.Default.throwOne(`Error: one expected but received ${JSON.stringify(delta.type)} in OneReplace.`);
514
- }
515
- return toRawObject(delta.replace, delta.type.arg, unit).Then((value) => {
516
- return ValueOrErrors.Default.return([
517
- {
518
- Discriminator: "OneReplace",
519
- Replace: value,
520
- },
521
- `[OneReplace]`,
522
- delta.flags ? [[delta.flags, `[OneReplace]`]] : [],
523
- ]);
524
- });
525
- }
526
- if (delta.kind == "OneCreateValue") {
527
- if (delta.type.kind != "one") {
528
- return ValueOrErrors.Default.throwOne(`Error: one expected but received ${JSON.stringify(delta.type)} in OneCreateValue.`);
529
- }
530
- return toRawObject(delta.value, delta.type.arg, unit).Then((value) => ValueOrErrors.Default.return([
531
- {
532
- Discriminator: "OneCreateValue",
533
- CreateValue: value,
534
- },
535
- `[OneCreateValue]`,
536
- delta.flags ? [[delta.flags, `[OneCreateValue]`]] : [],
537
- ]));
538
- }
539
- // TODO -- suspicious
540
- if (delta.kind == "OneDeleteValue") {
541
- return ValueOrErrors.Default.return([
542
- {
543
- Discriminator: "OneDeleteValue",
544
- DeleteValue: unit,
545
- },
546
- `[OneDeleteValue]`,
547
- delta.flags ? [[delta.flags, `[OneDeleteValue]`]] : [],
548
- ]);
549
- }
550
- if (delta.kind == "CustomDelta") {
551
- return parseCustomDelta(toRawObject, DispatchDeltaTransfer.Default.FromDelta(toRawObject, parseCustomDelta))(delta).Then((value) => ValueOrErrors.Default.return([
552
- Object.assign({}, value[0]),
553
- value[1],
554
- delta.flags ? [[delta.flags, value[1]], ...value[2]] : value[2],
555
- ]));
556
- }
557
- return ValueOrErrors.Default.throwOne(`Error: cannot process delta ${delta}, not currently supported.`);
558
- })();
559
- return result.MapErrors((errors) => errors.map((error) => `${error}\n...When dispatching delta: ${JSON.stringify(delta, null, 2)}`));
560
- },
3
+ Default: {
4
+ FromDelta: (toRawObject, parseCustomDelta) => (delta) => {
5
+ const result = (() => {
6
+ if (delta.kind == "NumberReplace") {
7
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
8
+ (value) =>
9
+ ValueOrErrors.Default.return([
10
+ {
11
+ Discriminator: "NumberReplace",
12
+ Replace: value,
13
+ },
14
+ "[NumberReplace]",
15
+ delta.flags ? [[delta.flags, "[NumberReplace]"]] : [],
16
+ ]),
17
+ );
18
+ }
19
+ if (delta.kind == "StringReplace") {
20
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
21
+ (value) =>
22
+ ValueOrErrors.Default.return([
23
+ {
24
+ Discriminator: "StringReplace",
25
+ Replace: value,
26
+ },
27
+ "[StringReplace]",
28
+ delta.flags ? [[delta.flags, "[StringReplace]"]] : [],
29
+ ]),
30
+ );
31
+ }
32
+ if (delta.kind == "BoolReplace") {
33
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
34
+ (value) =>
35
+ ValueOrErrors.Default.return([
36
+ {
37
+ Discriminator: "BoolReplace",
38
+ Replace: value,
39
+ },
40
+ "[BoolReplace]",
41
+ delta.flags ? [[delta.flags, "[BoolReplace]"]] : [],
42
+ ]),
43
+ );
44
+ }
45
+ if (delta.kind == "TimeReplace") {
46
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
47
+ (value) =>
48
+ ValueOrErrors.Default.return([
49
+ {
50
+ Discriminator: "TimeReplace",
51
+ Replace: value,
52
+ },
53
+ "[TimeReplace]",
54
+ delta.flags ? [[delta.flags, "[TimeReplace]"]] : [],
55
+ ]),
56
+ );
57
+ }
58
+ if (delta.kind == "GuidReplace") {
59
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
60
+ (value) =>
61
+ ValueOrErrors.Default.return([
62
+ {
63
+ Discriminator: "GuidReplace",
64
+ Replace: value,
65
+ },
66
+ "[GuidReplace]",
67
+ delta.flags ? [[delta.flags, "[GuidReplace]"]] : [],
68
+ ]),
69
+ );
70
+ }
71
+ if (delta.kind == "UnitReplace") {
72
+ return ValueOrErrors.Default.return([
73
+ {},
74
+ "UnitReplace",
75
+ delta.flags ? [[delta.flags, "UnitReplace"]] : [],
76
+ ]);
77
+ }
78
+ if (delta.kind == "OptionReplace") {
79
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
80
+ (value) =>
81
+ ValueOrErrors.Default.return([
82
+ {
83
+ Discriminator: "OptionReplace",
84
+ Replace: value,
85
+ },
86
+ "[OptionReplace]",
87
+ delta.flags ? [[delta.flags, "[OptionReplace]"]] : [],
88
+ ]),
89
+ );
90
+ }
91
+ if (delta.kind == "OptionValue") {
92
+ return DispatchDeltaTransfer.Default.FromDelta(
93
+ toRawObject,
94
+ parseCustomDelta,
95
+ )(delta.value).Then((value) =>
96
+ ValueOrErrors.Default.return([
97
+ {
98
+ Discriminator: "OptionValue",
99
+ Value: value[0],
100
+ },
101
+ `[OptionValue]${value[1]}`,
102
+ delta.flags
103
+ ? [[delta.flags, `[OptionValue]${value[1]}`], ...value[2]]
104
+ : value[2],
105
+ ]),
106
+ );
107
+ }
108
+ if (delta.kind == "SumReplace") {
109
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
110
+ (value) =>
111
+ ValueOrErrors.Default.return([
112
+ {
113
+ Discriminator: "SumReplace",
114
+ Replace: value,
115
+ },
116
+ "[SumReplace]",
117
+ delta.flags ? [[delta.flags, "[SumReplace]"]] : [],
118
+ ]),
119
+ );
120
+ }
121
+ if (delta.kind == "SumLeft") {
122
+ return DispatchDeltaTransfer.Default.FromDelta(
123
+ toRawObject,
124
+ parseCustomDelta,
125
+ )(delta.value).Then((value) =>
126
+ ValueOrErrors.Default.return([
127
+ {
128
+ Discriminator: "SumLeft",
129
+ Left: value[0],
130
+ },
131
+ `[SumLeft]${value[1]}`,
132
+ delta.flags
133
+ ? [[delta.flags, `[SumLeft]${value[1]}`], ...value[2]]
134
+ : value[2],
135
+ ]),
136
+ );
137
+ }
138
+ if (delta.kind == "SumRight") {
139
+ return DispatchDeltaTransfer.Default.FromDelta(
140
+ toRawObject,
141
+ parseCustomDelta,
142
+ )(delta.value).Then((value) =>
143
+ ValueOrErrors.Default.return([
144
+ {
145
+ Discriminator: "SumRight",
146
+ Right: value[0],
147
+ },
148
+ `[SumRight]${value[1]}`,
149
+ delta.flags
150
+ ? [[delta.flags, "[SumRight]"], ...value[2]]
151
+ : value[2],
152
+ ]),
153
+ );
154
+ }
155
+ if (delta.kind == "ArrayReplace") {
156
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
157
+ (value) =>
158
+ ValueOrErrors.Default.return([
159
+ {
160
+ Discriminator: "ArrayReplace",
161
+ Replace: value,
162
+ },
163
+ "[ArrayReplace]",
164
+ delta.flags ? [[delta.flags, "[ArrayReplace]"]] : [],
165
+ ]),
166
+ );
167
+ }
168
+ if (delta.kind == "ArrayValue") {
169
+ return DispatchDeltaTransfer.Default.FromDelta(
170
+ toRawObject,
171
+ parseCustomDelta,
172
+ )(delta.value[1]).Then((value) =>
173
+ ValueOrErrors.Default.return([
174
+ {
175
+ Discriminator: "ArrayValue",
176
+ Value: {
177
+ Item1: delta.value[0],
178
+ Item2: value[0],
179
+ },
180
+ },
181
+ `[ArrayValue][${delta.value[0]}]${value[1]}`,
182
+ delta.flags
183
+ ? [
184
+ [delta.flags, `[ArrayValue][${delta.value[0]}]${value[1]}`],
185
+ ...value[2],
186
+ ]
187
+ : value[2],
188
+ ]),
189
+ );
190
+ }
191
+ if (delta.kind == "ArrayValueAll") {
192
+ return DispatchDeltaTransfer.Default.FromDelta(
193
+ toRawObject,
194
+ parseCustomDelta,
195
+ )(delta.nestedDelta).Then((value) =>
196
+ ValueOrErrors.Default.return([
197
+ {
198
+ Discriminator: "ArrayValueAll",
199
+ ValueAll: value[0],
200
+ },
201
+ `[ArrayValueAll]${value[1]}`,
202
+ delta.flags
203
+ ? [[delta.flags, `[ArrayValueAll]${value[1]}`], ...value[2]]
204
+ : value[2],
205
+ ]),
206
+ );
207
+ }
208
+ if (delta.kind == "ArrayAdd") {
209
+ return toRawObject(delta.value, delta.type, delta.state).Then(
210
+ (value) =>
211
+ ValueOrErrors.Default.return([
212
+ {
213
+ Discriminator: "ArrayAdd",
214
+ Add: value,
215
+ },
216
+ "[ArrayAdd]",
217
+ delta.flags ? [[delta.flags, "[ArrayAdd]"]] : [],
218
+ ]),
219
+ );
220
+ }
221
+ if (delta.kind == "ArrayAddAt") {
222
+ return toRawObject(
223
+ delta.value[1],
224
+ delta.elementType,
225
+ delta.elementState,
226
+ ).Then((element) =>
227
+ ValueOrErrors.Default.return([
228
+ {
229
+ Discriminator: "ArrayAddAt",
230
+ AddAt: { Item1: delta.value[0], Item2: element },
231
+ },
232
+ `[ArrayAddAt][${delta.value[0]}]`,
233
+ delta.flags
234
+ ? [[delta.flags, `[ArrayAddAt][${delta.value[0]}]`]]
235
+ : [],
236
+ ]),
237
+ );
238
+ }
239
+ if (delta.kind == "ArrayRemoveAt") {
240
+ return ValueOrErrors.Default.return([
241
+ {
242
+ Discriminator: "ArrayRemoveAt",
243
+ RemoveAt: delta.index,
244
+ },
245
+ `[ArrayRemoveAt]`,
246
+ delta.flags ? [[delta.flags, "[ArrayRemoveAt]"]] : [],
247
+ ]);
248
+ }
249
+ if (delta.kind == "ArrayRemoveAll") {
250
+ return ValueOrErrors.Default.return([
251
+ {
252
+ Discriminator: "ArrayRemoveAll",
253
+ RemoveAll: unit,
254
+ },
255
+ `[ArrayRemoveAll]`,
256
+ delta.flags ? [[delta.flags, "[ArrayRemoveAll]"]] : [],
257
+ ]);
258
+ }
259
+ if (delta.kind == "ArrayMoveFromTo") {
260
+ return ValueOrErrors.Default.return([
261
+ {
262
+ Discriminator: "ArrayMoveFromTo",
263
+ MoveFromTo: { Item1: delta.from, Item2: delta.to },
264
+ },
265
+ `[ArrayMoveFromTo]`,
266
+ delta.flags ? [[delta.flags, "[ArrayMoveFromTo]"]] : [],
267
+ ]);
268
+ }
269
+ if (delta.kind == "ArrayDuplicateAt") {
270
+ return ValueOrErrors.Default.return([
271
+ {
272
+ Discriminator: "ArrayDuplicateAt",
273
+ DuplicateAt: delta.index,
274
+ },
275
+ `[ArrayDuplicateAt]`,
276
+ delta.flags ? [[delta.flags, "[ArrayDuplicateAt]"]] : [],
277
+ ]);
278
+ }
279
+ if (delta.kind == "SetReplace") {
280
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
281
+ (value) =>
282
+ ValueOrErrors.Default.return([
283
+ {
284
+ Discriminator: "SetReplace",
285
+ Replace: value,
286
+ },
287
+ "[SetReplace]",
288
+ delta.flags ? [[delta.flags, "[SetReplace]"]] : [],
289
+ ]),
290
+ );
291
+ }
292
+ if (delta.kind == "SetValue") {
293
+ return DispatchDeltaTransfer.Default.FromDelta(
294
+ toRawObject,
295
+ parseCustomDelta,
296
+ )(delta.value[1]).Then((value) =>
297
+ ValueOrErrors.Default.return([
298
+ {
299
+ Discriminator: "SetValue",
300
+ Value: { Item1: delta.value[0], Item2: value[0] },
301
+ },
302
+ `[SetValue][${delta.value[0]}]${value[1]}`,
303
+ delta.flags
304
+ ? [
305
+ [delta.flags, `[SetValue][${delta.value[0]}]${value[1]}`],
306
+ ...value[2],
307
+ ]
308
+ : value[2],
309
+ ]),
310
+ );
311
+ }
312
+ if (delta.kind == "SetAdd") {
313
+ return toRawObject(delta.value, delta.type, delta.state).Then(
314
+ (value) =>
315
+ ValueOrErrors.Default.return([
316
+ {
317
+ Discriminator: "SetAdd",
318
+ Add: value,
319
+ },
320
+ `[SetAdd]`,
321
+ delta.flags ? [[delta.flags, "[SetAdd]"]] : [],
322
+ ]),
323
+ );
324
+ }
325
+ if (delta.kind == "SetRemove") {
326
+ return toRawObject(delta.value, delta.type, delta.state).Then(
327
+ (value) =>
328
+ ValueOrErrors.Default.return([
329
+ {
330
+ Discriminator: "SetRemove",
331
+ Remove: value,
332
+ },
333
+ `[SetRemove]`,
334
+ delta.flags ? [[delta.flags, "[SetRemove]"]] : [],
335
+ ]),
336
+ );
337
+ }
338
+ if (delta.kind == "MapReplace") {
339
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
340
+ (value) =>
341
+ ValueOrErrors.Default.return([
342
+ {
343
+ Discriminator: "MapReplace",
344
+ Replace: value,
345
+ },
346
+ "[MapReplace]",
347
+ delta.flags ? [[delta.flags, "[MapReplace]"]] : [],
348
+ ]),
349
+ );
350
+ }
351
+ if (delta.kind == "MapKey") {
352
+ return DispatchDeltaTransfer.Default.FromDelta(
353
+ toRawObject,
354
+ parseCustomDelta,
355
+ )(delta.value[1]).Then((value) =>
356
+ ValueOrErrors.Default.return([
357
+ {
358
+ Discriminator: "MapKey",
359
+ Key: { Item1: delta.value[0], Item2: value[0] },
360
+ },
361
+ `[MapKey][${delta.value[0]}]${value[1]}`,
362
+ delta.flags
363
+ ? [
364
+ [delta.flags, `[MapKey][${delta.value[0]}]${value[1]}`],
365
+ ...value[2],
366
+ ]
367
+ : value[2],
368
+ ]),
369
+ );
370
+ }
371
+ if (delta.kind == "MapValue") {
372
+ return DispatchDeltaTransfer.Default.FromDelta(
373
+ toRawObject,
374
+ parseCustomDelta,
375
+ )(delta.value[1]).Then((value) =>
376
+ ValueOrErrors.Default.return([
377
+ {
378
+ Discriminator: "MapValue",
379
+ Value: { Item1: delta.value[0], Item2: value[0] },
380
+ },
381
+ `[MapValue][${delta.value[0]}]${value[1]}`,
382
+ delta.flags
383
+ ? [
384
+ [delta.flags, `[MapValue][${delta.value[0]}]${value[1]}`],
385
+ ...value[2],
386
+ ]
387
+ : value[2],
388
+ ]),
389
+ );
390
+ }
391
+ if (delta.kind == "MapAdd") {
392
+ return toRawObject(
393
+ delta.keyValue[0],
394
+ delta.keyType,
395
+ delta.keyState,
396
+ ).Then((key) =>
397
+ toRawObject(
398
+ delta.keyValue[1],
399
+ delta.valueType,
400
+ delta.valueState,
401
+ ).Then((value) =>
402
+ ValueOrErrors.Default.return([
403
+ {
404
+ Discriminator: "MapAdd",
405
+ Add: { Item1: key, Item2: value },
406
+ },
407
+ `[MapAdd]`,
408
+ delta.flags ? [[delta.flags, "[MapAdd]"]] : [],
409
+ ]),
410
+ ),
411
+ );
412
+ }
413
+ if (delta.kind == "MapRemove") {
414
+ return ValueOrErrors.Default.return([
415
+ {
416
+ Discriminator: "MapRemove",
417
+ Remove: delta.index,
418
+ },
419
+ `[MapRemove]`,
420
+ delta.flags ? [[delta.flags, "[MapRemove]"]] : [],
421
+ ]);
422
+ }
423
+ if (delta.kind == "RecordReplace") {
424
+ if (delta.type.kind != "lookup") {
425
+ return ValueOrErrors.Default.throwOne(
426
+ `Error: cannot process non look up record delta ${delta}, not currently supported.`,
427
+ );
428
+ }
429
+ const lookupName = delta.type.name;
430
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
431
+ (value) =>
432
+ ValueOrErrors.Default.return([
433
+ {
434
+ Discriminator: "Replace",
435
+ Replace: value,
436
+ },
437
+ `[${lookupName}Replace]`,
438
+ delta.flags ? [[delta.flags, `[${lookupName}Replace]`]] : [],
439
+ ]),
440
+ );
441
+ }
442
+ if (delta.kind == "RecordField") {
443
+ return DispatchDeltaTransfer.Default.FromDelta(
444
+ toRawObject,
445
+ parseCustomDelta,
446
+ )(delta.field[1]).Then((value) =>
447
+ ValueOrErrors.Default.return([
448
+ {
449
+ Discriminator: delta.field[0],
450
+ [delta.field[0]]: value[0],
451
+ },
452
+ `[RecordField][${delta.field[0]}]${value[1]}`,
453
+ delta.flags
454
+ ? [
455
+ [
456
+ delta.flags,
457
+ `[RecordField][${delta.field[0]}]${value[1]}`,
458
+ ],
459
+ ...value[2],
460
+ ]
461
+ : value[2],
462
+ ]),
463
+ );
464
+ }
465
+ if (delta.kind == "UnionReplace") {
466
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
467
+ (value) =>
468
+ ValueOrErrors.Default.return([
469
+ {
470
+ Discriminator: "UnionReplace",
471
+ Replace: value,
472
+ },
473
+ "[UnionReplace]",
474
+ delta.flags ? [[delta.flags, "[UnionReplace]"]] : [],
475
+ ]),
476
+ );
477
+ }
478
+ if (delta.kind == "UnionCase") {
479
+ return DispatchDeltaTransfer.Default.FromDelta(
480
+ toRawObject,
481
+ parseCustomDelta,
482
+ )(delta.caseName[1]).Then((value) =>
483
+ ValueOrErrors.Default.return([
484
+ {
485
+ Discriminator: `Case${delta.caseName[0]}`,
486
+ [`Case${delta.caseName[0]}`]: value[0],
487
+ },
488
+ `[UnionCase][${delta.caseName[0]}]`,
489
+ delta.flags
490
+ ? [
491
+ [delta.flags, `[UnionCase][${delta.caseName[0]}]`],
492
+ ...value[2],
493
+ ]
494
+ : value[2],
495
+ ]),
496
+ );
497
+ }
498
+ if (delta.kind == "TupleReplace") {
499
+ return toRawObject(delta.replace, delta.type, delta.state).Then(
500
+ (value) =>
501
+ ValueOrErrors.Default.return([
502
+ {
503
+ Discriminator: "TupleReplace",
504
+ Replace: value,
505
+ },
506
+ "[TupleReplace]",
507
+ delta.flags ? [[delta.flags, "[TupleReplace]"]] : [],
508
+ ]),
509
+ );
510
+ }
511
+ if (delta.kind == "TupleCase") {
512
+ return DispatchDeltaTransfer.Default.FromDelta(
513
+ toRawObject,
514
+ parseCustomDelta,
515
+ )(delta.item[1]).Then((value) =>
516
+ ValueOrErrors.Default.return([
517
+ {
518
+ Discriminator: `Tuple${delta.tupleType.args.length}Item${delta.item[0] + 1}`,
519
+ [`Item${delta.item[0] + 1}`]: value[0],
520
+ },
521
+ `[TupleCase][${delta.item[0] + 1}]${value[1]}`,
522
+ delta.flags
523
+ ? [
524
+ [
525
+ delta.flags,
526
+ `[TupleCase][${delta.item[0] + 1}]${value[1]}`,
527
+ ],
528
+ ...value[2],
529
+ ]
530
+ : value[2],
531
+ ]),
532
+ );
533
+ }
534
+ if (delta.kind == "TableValue") {
535
+ return DispatchDeltaTransfer.Default.FromDelta(
536
+ toRawObject,
537
+ parseCustomDelta,
538
+ )(delta.nestedDelta).Then((value) =>
539
+ ValueOrErrors.Default.return([
540
+ {
541
+ Discriminator: "TableValue",
542
+ Value: { Item1: delta.id, Item2: value[0] },
543
+ },
544
+ `[TableValue][${delta.id}]${value[1]}`,
545
+ delta.flags
546
+ ? [
547
+ [delta.flags, `[TableValue][${delta.id}]${value[1]}`],
548
+ ...value[2],
549
+ ]
550
+ : value[2],
551
+ ]),
552
+ );
553
+ }
554
+ if (delta.kind == "TableValueAll") {
555
+ return DispatchDeltaTransfer.Default.FromDelta(
556
+ toRawObject,
557
+ parseCustomDelta,
558
+ )(delta.nestedDelta).Then((value) =>
559
+ ValueOrErrors.Default.return([
560
+ {
561
+ Discriminator: "TableValueAll",
562
+ ValueAll: value[0],
563
+ },
564
+ `[TableValueAll]${value[1]}`,
565
+ delta.flags
566
+ ? [[delta.flags, `[TableValueAll]${value[1]}`], ...value[2]]
567
+ : value[2],
568
+ ]),
569
+ );
570
+ }
571
+ if (delta.kind == "TableAddEmpty") {
572
+ return ValueOrErrors.Default.return([
573
+ {
574
+ Discriminator: "TableAddEmpty",
575
+ },
576
+ `[TableAddEmpty]`,
577
+ delta.flags ? [[delta.flags, "[TableAddEmpty]"]] : [],
578
+ ]);
579
+ }
580
+ if (delta.kind == "TableRemove") {
581
+ return ValueOrErrors.Default.return([
582
+ {
583
+ Discriminator: "TableRemoveAt",
584
+ RemoveAt: delta.id,
585
+ },
586
+ `[TableRemoveAt][${delta.id}]`,
587
+ delta.flags ? [[delta.flags, `[TableRemoveAt][${delta.id}]`]] : [],
588
+ ]);
589
+ }
590
+ if (delta.kind == "TableRemoveAll") {
591
+ return ValueOrErrors.Default.return([
592
+ {
593
+ Discriminator: "TableRemoveAll",
594
+ RemoveAll: unit,
595
+ },
596
+ `[TableRemoveAll]`,
597
+ delta.flags ? [[delta.flags, "[TableRemoveAll]"]] : [],
598
+ ]);
599
+ }
600
+ if (delta.kind == "TableDuplicate") {
601
+ return ValueOrErrors.Default.return([
602
+ {
603
+ Discriminator: "TableDuplicateAt",
604
+ DuplicateAt: delta.id,
605
+ },
606
+ `[TableDuplicateAt][${delta.id}]`,
607
+ delta.flags
608
+ ? [[delta.flags, `[TableDuplicateAt][${delta.id}]`]]
609
+ : [],
610
+ ]);
611
+ }
612
+ if (delta.kind == "TableMoveTo") {
613
+ return ValueOrErrors.Default.return([
614
+ {
615
+ Discriminator: "TableMoveFromTo",
616
+ MoveFromTo: {
617
+ Item1: delta.id,
618
+ Item2: delta.to,
619
+ },
620
+ },
621
+ `[TableMoveFromTo][${delta.id}][${delta.to}]`,
622
+ delta.flags
623
+ ? [[delta.flags, `[TableMoveFromTo][${delta.id}][${delta.to}]`]]
624
+ : [],
625
+ ]);
626
+ }
627
+ if (delta.kind == "OneValue") {
628
+ return DispatchDeltaTransfer.Default.FromDelta(
629
+ toRawObject,
630
+ parseCustomDelta,
631
+ )(delta.nestedDelta).Then((value) =>
632
+ ValueOrErrors.Default.return([
633
+ {
634
+ Discriminator: "OneValue",
635
+ Value: value[0],
636
+ },
637
+ `[OneValue]${value[1]}`,
638
+ delta.flags
639
+ ? [[delta.flags, `[OneValue]${value[1]}`], ...value[2]]
640
+ : value[2],
641
+ ]),
642
+ );
643
+ }
644
+ if (delta.kind == "OneReplace") {
645
+ if (delta.type.kind != "one") {
646
+ return ValueOrErrors.Default.throwOne(
647
+ `Error: one expected but received ${JSON.stringify(delta.type)} in OneReplace.`,
648
+ );
649
+ }
650
+ return toRawObject(delta.replace, delta.type.arg, unit).Then(
651
+ (value) => {
652
+ return ValueOrErrors.Default.return([
653
+ {
654
+ Discriminator: "OneReplace",
655
+ Replace: value,
656
+ },
657
+ `[OneReplace]`,
658
+ delta.flags ? [[delta.flags, `[OneReplace]`]] : [],
659
+ ]);
660
+ },
661
+ );
662
+ }
663
+ if (delta.kind == "OneCreateValue") {
664
+ if (delta.type.kind != "one") {
665
+ return ValueOrErrors.Default.throwOne(
666
+ `Error: one expected but received ${JSON.stringify(delta.type)} in OneCreateValue.`,
667
+ );
668
+ }
669
+ return toRawObject(delta.value, delta.type.arg, unit).Then((value) =>
670
+ ValueOrErrors.Default.return([
671
+ {
672
+ Discriminator: "OneCreateValue",
673
+ CreateValue: value,
674
+ },
675
+ `[OneCreateValue]`,
676
+ delta.flags ? [[delta.flags, `[OneCreateValue]`]] : [],
677
+ ]),
678
+ );
679
+ }
680
+ // TODO -- suspicious
681
+ if (delta.kind == "OneDeleteValue") {
682
+ return ValueOrErrors.Default.return([
683
+ {
684
+ Discriminator: "OneDeleteValue",
685
+ DeleteValue: unit,
686
+ },
687
+ `[OneDeleteValue]`,
688
+ delta.flags ? [[delta.flags, `[OneDeleteValue]`]] : [],
689
+ ]);
690
+ }
691
+ if (delta.kind == "CustomDelta") {
692
+ return parseCustomDelta(
693
+ toRawObject,
694
+ DispatchDeltaTransfer.Default.FromDelta(
695
+ toRawObject,
696
+ parseCustomDelta,
697
+ ),
698
+ )(delta).Then((value) =>
699
+ ValueOrErrors.Default.return([
700
+ Object.assign({}, value[0]),
701
+ value[1],
702
+ delta.flags ? [[delta.flags, value[1]], ...value[2]] : value[2],
703
+ ]),
704
+ );
705
+ }
706
+ return ValueOrErrors.Default.throwOne(
707
+ `Error: cannot process delta ${delta}, not currently supported.`,
708
+ );
709
+ })();
710
+ return result.MapErrors((errors) =>
711
+ errors.map(
712
+ (error) =>
713
+ `${error}\n...When dispatching delta: ${JSON.stringify(delta, null, 2)}`,
714
+ ),
715
+ );
561
716
  },
717
+ },
562
718
  };
563
- //# sourceMappingURL=state.js.map
719
+ //# sourceMappingURL=state.js.map