ballerina-core 1.0.244 → 1.0.246

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 (324) hide show
  1. package/bin/main.js +1 -1
  2. package/bin/src/api-response-handler/coroutines/runner.js +13 -20
  3. package/bin/src/api-response-handler/state.js +11 -13
  4. package/bin/src/apiResultStatus/state.d.ts +3 -10
  5. package/bin/src/apiResultStatus/state.js +5 -2
  6. package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.js +196 -314
  7. package/bin/src/async/domains/mirroring/domains/collection/state.js +36 -126
  8. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.js +11 -18
  9. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.js +19 -19
  10. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.js +1 -1
  11. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.js +18 -18
  12. package/bin/src/async/domains/mirroring/domains/entity/state.js +9 -18
  13. package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.js +83 -134
  14. package/bin/src/async/domains/mirroring/domains/singleton/state.js +8 -52
  15. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.d.ts +7 -0
  16. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.d.ts.map +1 -1
  17. package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.js +4 -7
  18. package/bin/src/async/domains/promise/state.d.ts +4 -9
  19. package/bin/src/async/domains/promise/state.js +9 -20
  20. package/bin/src/async/domains/synchronized/coroutines/synchronize.js +28 -80
  21. package/bin/src/async/domains/synchronized/state.d.ts +7 -14
  22. package/bin/src/async/domains/synchronized/state.js +6 -16
  23. package/bin/src/async/state.d.ts +45 -56
  24. package/bin/src/async/state.js +97 -115
  25. package/bin/src/baseEntity/domains/identifiable/state.d.ts +11 -15
  26. package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
  27. package/bin/src/collections/domains/array/state.d.ts +7 -7
  28. package/bin/src/collections/domains/array/state.js +5 -5
  29. package/bin/src/collections/domains/errors/state.d.ts +10 -10
  30. package/bin/src/collections/domains/errors/state.js +10 -10
  31. package/bin/src/collections/domains/immutable/domains/list/state.js +44 -46
  32. package/bin/src/collections/domains/immutable/domains/map/state.js +23 -41
  33. package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +65 -84
  34. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
  35. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
  36. package/bin/src/collections/domains/maybe/state.d.ts +9 -9
  37. package/bin/src/collections/domains/maybe/state.js +9 -12
  38. package/bin/src/collections/domains/product/state.d.ts +19 -25
  39. package/bin/src/collections/domains/product/state.js +10 -13
  40. package/bin/src/collections/domains/sum/state.d.ts +77 -101
  41. package/bin/src/collections/domains/sum/state.js +32 -49
  42. package/bin/src/collections/domains/valueOrErrors/state.js +56 -81
  43. package/bin/src/coroutines/builder.js +19 -40
  44. package/bin/src/coroutines/state.js +306 -381
  45. package/bin/src/coroutines/template.js +59 -97
  46. package/bin/src/debounced/coroutines/debounce.js +89 -115
  47. package/bin/src/debounced/state.js +25 -62
  48. package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
  49. package/bin/src/diagnostics/domains/message-box/state.js +3 -3
  50. package/bin/src/foreignMutations/state.d.ts +3 -3
  51. package/bin/src/foreignMutations/state.js +1 -1
  52. package/bin/src/forms/domains/attachments/views/attachments-view.js +8 -30
  53. package/bin/src/forms/domains/collection/domains/reference/state.js +20 -26
  54. package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
  55. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +754 -2007
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +44 -123
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.js +166 -339
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +27 -40
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.js +40 -76
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.js +59 -102
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.js +29 -64
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.js +30 -64
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.js +33 -88
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +13 -21
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.js +23 -52
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js +18 -59
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.js +55 -129
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +27 -43
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.js +23 -63
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +22 -39
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.js +11 -46
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts +6 -1
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts.map +1 -1
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js +50 -146
  75. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js.map +1 -1
  76. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.js +29 -64
  77. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.js +33 -78
  78. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js +62 -157
  79. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +569 -977
  80. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.js +94 -255
  81. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +90 -322
  82. package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +2 -3
  83. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
  84. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +23 -49
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +24 -52
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +6 -18
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +30 -64
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +6 -9
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +60 -153
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +50 -127
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +22 -40
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +13 -31
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts +2 -2
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts.map +1 -1
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +142 -417
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js.map +1 -1
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +8 -28
  101. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +18 -61
  102. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +90 -329
  103. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
  104. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +23 -54
  105. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +10 -22
  106. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +31 -49
  107. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +10 -29
  108. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +2 -2
  109. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +26 -47
  110. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +40 -88
  111. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +152 -386
  112. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +10 -19
  113. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +21 -78
  114. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +11 -32
  115. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +77 -222
  116. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +13 -35
  117. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +68 -195
  118. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +13 -36
  119. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +106 -246
  120. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
  121. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +23 -54
  122. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +27 -40
  123. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
  124. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +26 -58
  125. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +7 -22
  126. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +53 -188
  127. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/builder.js +2 -2
  128. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/infiniteLoader.js +24 -57
  129. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseFiltersAndSorting.js +20 -70
  130. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js +27 -61
  131. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/loadWithRetries.js +19 -38
  132. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +15 -43
  133. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.d.ts +4 -0
  134. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.d.ts.map +1 -1
  135. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +137 -301
  136. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts +6 -2
  137. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts.map +1 -1
  138. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +238 -622
  139. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js.map +1 -1
  140. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +8 -20
  141. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +35 -132
  142. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +8 -21
  143. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +32 -103
  144. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +9 -12
  145. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +20 -54
  146. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts +8 -0
  147. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts.map +1 -1
  148. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +537 -676
  149. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js.map +1 -1
  150. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +18 -58
  151. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +14 -45
  152. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +18 -76
  153. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +24 -82
  154. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +8 -37
  155. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +36 -120
  156. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +63 -145
  157. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +12 -44
  158. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +4 -14
  159. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +25 -81
  160. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +24 -82
  161. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +20 -63
  162. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts.map +1 -1
  163. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +74 -247
  164. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js.map +1 -1
  165. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +13 -61
  166. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +15 -64
  167. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +45 -144
  168. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_init.js +95 -203
  169. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_sync.js +37 -79
  170. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/builder.js +2 -2
  171. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/runner.js +17 -19
  172. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/state.js +11 -58
  173. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/template.js +25 -73
  174. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_init.js +95 -205
  175. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_sync.js +37 -78
  176. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/builder.js +2 -2
  177. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/runner.js +17 -19
  178. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/state.js +11 -58
  179. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/template.js +25 -71
  180. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/coroutines/runner.js +85 -163
  181. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/state.js +4 -10
  182. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/template.js +27 -72
  183. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +423 -773
  184. package/bin/src/forms/domains/dispatched-forms/runner/state.js +38 -62
  185. package/bin/src/forms/domains/dispatched-forms/runner/template.js +25 -78
  186. package/bin/src/forms/domains/launcher/coroutines/runner.js +45 -120
  187. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +101 -240
  188. package/bin/src/forms/domains/launcher/domains/create/state.js +17 -62
  189. package/bin/src/forms/domains/launcher/domains/create/template.js +42 -84
  190. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +103 -242
  191. package/bin/src/forms/domains/launcher/domains/edit/state.js +17 -62
  192. package/bin/src/forms/domains/launcher/domains/edit/template.js +43 -86
  193. package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
  194. package/bin/src/forms/domains/launcher/domains/merger/state.js +26 -35
  195. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +42 -88
  196. package/bin/src/forms/domains/launcher/domains/passthrough/state.js +19 -44
  197. package/bin/src/forms/domains/launcher/domains/passthrough/template.js +34 -56
  198. package/bin/src/forms/domains/launcher/state.js +6 -6
  199. package/bin/src/forms/domains/launcher/template.js +85 -169
  200. package/bin/src/forms/domains/parser/coroutines/runner.js +25 -87
  201. package/bin/src/forms/domains/parser/domains/built-ins/state.js +533 -944
  202. package/bin/src/forms/domains/parser/domains/deltas/state.js +318 -444
  203. package/bin/src/forms/domains/parser/domains/injectables/state.js +26 -29
  204. package/bin/src/forms/domains/parser/domains/layout/state.d.ts +1 -1
  205. package/bin/src/forms/domains/parser/domains/layout/state.d.ts.map +1 -1
  206. package/bin/src/forms/domains/parser/domains/layout/state.js +183 -265
  207. package/bin/src/forms/domains/parser/domains/layout/state.js.map +1 -1
  208. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +162 -324
  209. package/bin/src/forms/domains/parser/domains/predicates/state.js +979 -1509
  210. package/bin/src/forms/domains/parser/domains/renderer/state.js +480 -1137
  211. package/bin/src/forms/domains/parser/domains/types/state.js +170 -355
  212. package/bin/src/forms/domains/parser/domains/validator/state.js +280 -417
  213. package/bin/src/forms/domains/parser/state.js +373 -612
  214. package/bin/src/forms/domains/parser/template.js +1 -1
  215. package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
  216. package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +19 -38
  217. package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
  218. package/bin/src/forms/domains/primitives/domains/boolean/template.js +19 -38
  219. package/bin/src/forms/domains/primitives/domains/date/state.js +9 -18
  220. package/bin/src/forms/domains/primitives/domains/date/template.js +25 -51
  221. package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
  222. package/bin/src/forms/domains/primitives/domains/enum/template.js +48 -117
  223. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
  224. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +40 -99
  225. package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
  226. package/bin/src/forms/domains/primitives/domains/list/template.js +71 -200
  227. package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
  228. package/bin/src/forms/domains/primitives/domains/map/template.js +103 -294
  229. package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
  230. package/bin/src/forms/domains/primitives/domains/number/template.js +19 -38
  231. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +16 -33
  232. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +62 -171
  233. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
  234. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +69 -182
  235. package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
  236. package/bin/src/forms/domains/primitives/domains/secret/template.js +19 -38
  237. package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
  238. package/bin/src/forms/domains/primitives/domains/string/template.js +22 -42
  239. package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
  240. package/bin/src/forms/domains/primitives/domains/sum/template.js +50 -141
  241. package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
  242. package/bin/src/forms/domains/primitives/domains/tuple/template.js +33 -100
  243. package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
  244. package/bin/src/forms/domains/primitives/domains/unit/template.js +9 -22
  245. package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
  246. package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
  247. package/bin/src/forms/domains/singleton/state.js +10 -12
  248. package/bin/src/forms/domains/singleton/template.js +113 -288
  249. package/bin/src/fun/domains/curry/state.d.ts +2 -4
  250. package/bin/src/fun/domains/curry/state.js +1 -1
  251. package/bin/src/fun/domains/id/state.d.ts +1 -1
  252. package/bin/src/fun/domains/id/state.js +1 -1
  253. package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +41 -57
  254. package/bin/src/fun/domains/predicate/domains/bool-expr.js +67 -76
  255. package/bin/src/fun/domains/predicate/state.d.ts +7 -9
  256. package/bin/src/fun/domains/predicate/state.js +10 -14
  257. package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
  258. package/bin/src/fun/domains/simpleCallback/state.js +1 -1
  259. package/bin/src/fun/domains/uncurry/state.d.ts +2 -4
  260. package/bin/src/fun/domains/uncurry/state.js +1 -1
  261. package/bin/src/fun/domains/unit/state.d.ts +1 -1
  262. package/bin/src/fun/domains/unit/state.js +1 -1
  263. package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +7 -22
  264. package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +10 -18
  265. package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +13 -24
  266. package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +10 -40
  267. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +13 -19
  268. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +9 -20
  269. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +13 -24
  270. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +11 -47
  271. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +8 -20
  272. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +5 -17
  273. package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
  274. package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
  275. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +4 -13
  276. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +4 -6
  277. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +22 -60
  278. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +31 -42
  279. package/bin/src/fun/domains/updater/state.d.ts +4 -4
  280. package/bin/src/fun/domains/updater/state.js +10 -12
  281. package/bin/src/fun/state.d.ts +3 -3
  282. package/bin/src/fun/state.js +7 -9
  283. package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
  284. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +20 -47
  285. package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
  286. package/bin/src/infinite-data-stream/state.d.ts +51 -84
  287. package/bin/src/infinite-data-stream/state.js +61 -125
  288. package/bin/src/infinite-data-stream/template.js +2 -3
  289. package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
  290. package/bin/src/math/domains/DOMRect/state.js +8 -10
  291. package/bin/src/math/domains/number/state.d.ts +5 -5
  292. package/bin/src/math/domains/number/state.js +5 -5
  293. package/bin/src/math/domains/rect/state.d.ts +8 -8
  294. package/bin/src/math/domains/rect/state.js +15 -16
  295. package/bin/src/math/domains/rgba/state.d.ts +17 -17
  296. package/bin/src/math/domains/rgba/state.js +81 -77
  297. package/bin/src/math/domains/size2/state.d.ts +8 -8
  298. package/bin/src/math/domains/size2/state.js +6 -6
  299. package/bin/src/math/domains/vector2/state.d.ts +10 -10
  300. package/bin/src/math/domains/vector2/state.js +8 -8
  301. package/bin/src/queue/state.d.ts +3 -3
  302. package/bin/src/queue/state.d.ts.map +1 -1
  303. package/bin/src/queue/state.js +2 -2
  304. package/bin/src/queue/state.js.map +1 -1
  305. package/bin/src/state/domains/repository/state.d.ts +9 -15
  306. package/bin/src/state/domains/repository/state.js +1 -1
  307. package/bin/src/template/state.js +115 -163
  308. package/bin/src/validation/state.js +45 -38
  309. package/bin/src/value/domains/mutable-value/state.js +2 -3
  310. package/bin/src/value/state.d.ts +9 -9
  311. package/bin/src/value/state.js +8 -11
  312. package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
  313. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +20 -55
  314. package/bin/src/value-infinite-data-stream/coroutines/runner.js +4 -6
  315. package/bin/src/value-infinite-data-stream/state.js +77 -199
  316. package/bin/src/value-infinite-data-stream/template.js +2 -4
  317. package/bin/src/visibility/state.d.ts +2 -5
  318. package/bin/src/visibility/state.js +1 -1
  319. package/package.json +1 -1
  320. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +32 -15
  321. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.tsx +16 -3
  322. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.ts +1 -0
  323. package/src/forms/domains/parser/domains/layout/state.ts +11 -4
  324. package/src/queue/state.ts +8 -4
@@ -1,799 +1,449 @@
1
- import {
2
- Option,
3
- ValueOrErrors,
4
- PredicateValue,
5
- Expr,
6
- Updater,
7
- FormLayout,
8
- unit,
9
- TableLayout,
10
- } from "ballerina-core";
1
+ import { Option, ValueOrErrors, PredicateValue, Expr, Updater, FormLayout, unit, TableLayout, } from "ballerina-core";
11
2
  import { List, Map } from "immutable";
12
3
  import { LookupRenderer } from "../../../deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state";
13
4
  export const RendererTraversal = {
14
- Operations: {
15
- Run: (renderer, traversalContext) => {
16
- const rec = RendererTraversal.Operations.Run;
17
- const mapEvalContext = (f) =>
18
- Updater(Option.Updaters.some((v) => (ctx) => v(f(ctx))));
19
- const traverseNode = traversalContext.traverseSingleType(renderer.type);
20
- if (
21
- renderer.type.kind == "primitive" ||
22
- renderer.type.kind == "singleSelection" ||
23
- renderer.type.kind == "multiSelection"
24
- ) {
25
- return ValueOrErrors.Default.return(traverseNode);
26
- }
27
- if (
28
- renderer.kind == "lookupType-lookupRenderer" ||
29
- renderer.kind == "lookupType-inlinedRenderer" ||
30
- renderer.kind == "inlinedType-lookupRenderer"
31
- ) {
32
- if (
33
- renderer.kind == "lookupType-lookupRenderer" ||
34
- renderer.kind == "lookupType-inlinedRenderer"
35
- ) {
36
- return LookupRenderer.Operations.ResolveRenderer(
37
- renderer,
38
- traversalContext.forms,
39
- ).Then((resolvedRenderer) =>
40
- rec(resolvedRenderer, traversalContext).Then((valueTraversal) =>
41
- ValueOrErrors.Default.return(
42
- // reassign local if it's a lookup renderer
43
- renderer.kind == "lookupType-lookupRenderer"
44
- ? mapEvalContext((ctx) =>
45
- Object.assign(Object.assign({}, ctx), {
46
- local: ctx.traversalIterator,
47
- }),
48
- )(valueTraversal)
49
- : valueTraversal,
50
- ).Then((resolvedTraversal) => {
51
- if (traverseNode.kind == "l" && resolvedTraversal.kind == "l") {
52
- return ValueOrErrors.Default.return(Option.Default.none());
53
- }
54
- if (traverseNode.kind == "l") {
55
- return ValueOrErrors.Default.return(resolvedTraversal);
56
- }
57
- if (resolvedTraversal.kind == "l") {
58
- return ValueOrErrors.Default.return(
59
- Option.Default.some((evalContext) =>
60
- traverseNode
61
- .value(evalContext)
62
- .Then((nodeResult) =>
63
- ValueOrErrors.Default.return(nodeResult),
64
- ),
65
- ),
66
- );
67
- }
68
- return ValueOrErrors.Default.return(
69
- Option.Default.some((evalContext) => {
70
- return resolvedTraversal
71
- .value(evalContext)
72
- .Then((resolvedTraversal) =>
73
- traverseNode
74
- .value(evalContext)
75
- .Then((nodeResult) =>
76
- ValueOrErrors.Default.return(
77
- traversalContext.joinRes([
5
+ Operations: {
6
+ Run: (renderer, traversalContext) => {
7
+ const rec = (RendererTraversal.Operations.Run);
8
+ const mapEvalContext = (f) => Updater(Option.Updaters.some((v) => (ctx) => v(f(ctx))));
9
+ const traverseNode = traversalContext.traverseSingleType(renderer.type);
10
+ if (renderer.type.kind == "primitive" ||
11
+ renderer.type.kind == "singleSelection" ||
12
+ renderer.type.kind == "multiSelection") {
13
+ return ValueOrErrors.Default.return(traverseNode);
14
+ }
15
+ if (renderer.kind == "lookupType-lookupRenderer" ||
16
+ renderer.kind == "lookupType-inlinedRenderer" ||
17
+ renderer.kind == "inlinedType-lookupRenderer") {
18
+ if (renderer.kind == "lookupType-lookupRenderer" ||
19
+ renderer.kind == "lookupType-inlinedRenderer") {
20
+ return LookupRenderer.Operations.ResolveRenderer(renderer, traversalContext.forms).Then((resolvedRenderer) => rec(resolvedRenderer, traversalContext).Then((valueTraversal) => ValueOrErrors.Default.return(
21
+ // reassign local if it's a lookup renderer
22
+ renderer.kind == "lookupType-lookupRenderer"
23
+ ? mapEvalContext((ctx) => (Object.assign(Object.assign({}, ctx), { local: ctx.traversalIterator })))(valueTraversal)
24
+ : valueTraversal).Then((resolvedTraversal) => {
25
+ if (traverseNode.kind == "l" &&
26
+ resolvedTraversal.kind == "l") {
27
+ return ValueOrErrors.Default.return(Option.Default.none());
28
+ }
29
+ if (traverseNode.kind == "l") {
30
+ return ValueOrErrors.Default.return(resolvedTraversal);
31
+ }
32
+ if (resolvedTraversal.kind == "l") {
33
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => traverseNode
34
+ .value(evalContext)
35
+ .Then((nodeResult) => ValueOrErrors.Default.return(nodeResult))));
36
+ }
37
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
38
+ return resolvedTraversal
39
+ .value(evalContext)
40
+ .Then((resolvedTraversal) => traverseNode
41
+ .value(evalContext)
42
+ .Then((nodeResult) => ValueOrErrors.Default.return(traversalContext.joinRes([
78
43
  nodeResult,
79
44
  resolvedTraversal,
80
- ]),
81
- ),
82
- ),
83
- );
84
- }),
85
- );
86
- }),
87
- ),
88
- );
89
- }
90
- return LookupRenderer.Operations.ResolveRenderer(
91
- renderer,
92
- traversalContext.forms,
93
- ).Then((resolvedRenderer) =>
94
- rec(resolvedRenderer, traversalContext).Then((valueTraversal) =>
95
- ValueOrErrors.Default.return(valueTraversal),
96
- ),
97
- );
98
- }
99
- if (
100
- renderer.type.kind == "readOnly" &&
101
- renderer.kind == "readOnlyRenderer"
102
- ) {
103
- return rec(renderer.childRenderer.renderer, traversalContext).Then(
104
- (valueTraversal) => {
105
- if (valueTraversal.kind == "l" && traverseNode.kind == "l") {
106
- return ValueOrErrors.Default.return(Option.Default.none());
107
- }
108
- return ValueOrErrors.Default.return(
109
- Option.Default.some((evalContext) => {
110
- const iterator = evalContext.traversalIterator;
111
- if (!PredicateValue.Operations.IsReadOnly(iterator)) {
112
- return ValueOrErrors.Default.throwOne(
113
- `Error: traversal iterator is not read only, got ${JSON.stringify(iterator, undefined, 2)}`,
114
- );
45
+ ]))));
46
+ }));
47
+ })));
115
48
  }
116
- return (
117
- valueTraversal.kind == "r"
118
- ? valueTraversal.value(
119
- Object.assign(Object.assign({}, evalContext), {
120
- traversalIterator: iterator.ReadOnly,
121
- }),
122
- )
123
- : ValueOrErrors.Default.return(
124
- traversalContext.zeroRes(unit),
125
- )
126
- ).Then((valueResult) =>
127
- traverseNode.kind == "r"
128
- ? traverseNode
129
- .value(evalContext)
130
- .Then((nodeResult) =>
131
- ValueOrErrors.Default.return(
132
- traversalContext.joinRes([valueResult, nodeResult]),
133
- ),
134
- )
135
- : ValueOrErrors.Default.return(valueResult),
136
- );
137
- }),
138
- );
139
- },
140
- );
141
- }
142
- if (renderer.type.kind == "record" && renderer.kind == "recordRenderer") {
143
- return ValueOrErrors.Operations.All(
144
- List(
145
- renderer.fields
146
- .map((fieldRenderer, fieldName) =>
147
- rec(fieldRenderer.renderer, traversalContext).Then(
148
- (fieldTraversal) => {
49
+ return LookupRenderer.Operations.ResolveRenderer(renderer, traversalContext.forms).Then((resolvedRenderer) => rec(resolvedRenderer, traversalContext).Then((valueTraversal) => ValueOrErrors.Default.return(valueTraversal)));
50
+ }
51
+ if (renderer.type.kind == "readOnly" &&
52
+ renderer.kind == "readOnlyRenderer") {
53
+ return rec(renderer.childRenderer.renderer, traversalContext).Then((valueTraversal) => {
54
+ if (valueTraversal.kind == "l" && traverseNode.kind == "l") {
55
+ return ValueOrErrors.Default.return(Option.Default.none());
56
+ }
57
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
58
+ const iterator = evalContext.traversalIterator;
59
+ if (!PredicateValue.Operations.IsReadOnly(iterator)) {
60
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not read only, got ${JSON.stringify(iterator, undefined, 2)}`);
61
+ }
62
+ return (valueTraversal.kind == "r"
63
+ ? valueTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.ReadOnly }))
64
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit))).Then((valueResult) => traverseNode.kind == "r"
65
+ ? traverseNode
66
+ .value(evalContext)
67
+ .Then((nodeResult) => ValueOrErrors.Default.return(traversalContext.joinRes([valueResult, nodeResult])))
68
+ : ValueOrErrors.Default.return(valueResult));
69
+ }));
70
+ });
71
+ }
72
+ if (renderer.type.kind == "record" && renderer.kind == "recordRenderer") {
73
+ return ValueOrErrors.Operations.All(List(renderer.fields
74
+ .map((fieldRenderer, fieldName) => rec(fieldRenderer.renderer, traversalContext).Then((fieldTraversal) => {
149
75
  return ValueOrErrors.Default.return({
150
- fieldName: fieldName,
151
- visibility: fieldRenderer.visible,
152
- fieldTraversal: fieldTraversal,
76
+ fieldName: fieldName,
77
+ visibility: fieldRenderer.visible,
78
+ fieldTraversal: fieldTraversal,
153
79
  });
154
- },
155
- ),
156
- )
157
- .valueSeq(),
158
- ),
159
- ).Then((fieldTraversals) => {
160
- if (
161
- fieldTraversals.every((f) => f.fieldTraversal.kind == "l") &&
162
- traverseNode.kind == "l"
163
- ) {
164
- return ValueOrErrors.Default.return(Option.Default.none());
165
- }
166
- return ValueOrErrors.Default.return(
167
- Option.Default.some((evalContext) => {
168
- if (
169
- !PredicateValue.Operations.IsRecord(
170
- evalContext.traversalIterator,
171
- )
172
- )
173
- return ValueOrErrors.Default.throwOne(
174
- `Error: traversal iterator is not a record, got ${JSON.stringify(evalContext.traversalIterator, undefined, 2)}`,
175
- );
176
- const visibleFieldsRes =
177
- FormLayout.Operations.ComputeVisibleFieldsForRecord(
178
- Map([
179
- ["global", evalContext.global],
180
- ["local", evalContext.local],
181
- ["root", evalContext.root],
182
- ]),
183
- renderer.tabs,
184
- );
185
- // TODO later, make this monadic
186
- if (visibleFieldsRes.kind == "errors") {
187
- return visibleFieldsRes;
188
- }
189
- const visibleFields = visibleFieldsRes.value;
190
- const traversalIteratorFields =
191
- evalContext.traversalIterator.fields;
192
- return ValueOrErrors.Operations.All(
193
- fieldTraversals.flatMap((f) => {
194
- // should be a map and instead of flatmap and [] a VoE.default.return([]) then an All on this and then a flatmap, everything is returned in a VoE
195
- if (
196
- f.fieldTraversal.kind == "l" ||
197
- !visibleFields.includes(f.fieldName)
198
- )
199
- return [];
200
- if (f.visibility != undefined) {
201
- const visible = Expr.Operations.Evaluate(
202
- Map([
203
- ["global", evalContext.global],
204
- ["local", evalContext.local],
205
- ["root", evalContext.root],
206
- ]),
207
- )(f.visibility);
208
- if (visible.kind == "value" && !visible.value) {
209
- return [];
80
+ }))
81
+ .valueSeq())).Then((fieldTraversals) => {
82
+ if (fieldTraversals.every((f) => f.fieldTraversal.kind == "l") &&
83
+ traverseNode.kind == "l") {
84
+ return ValueOrErrors.Default.return(Option.Default.none());
210
85
  }
211
- }
212
- return [
213
- f.fieldTraversal.value(
214
- Object.assign(Object.assign({}, evalContext), {
215
- traversalIterator: traversalIteratorFields.get(
216
- f.fieldName,
217
- ),
218
- }),
219
- ),
220
- ];
221
- }),
222
- ).Then((fieldResults) => {
223
- return traverseNode.kind == "r"
224
- ? traverseNode
225
- .value(evalContext)
226
- .Then((nodeResult) =>
227
- ValueOrErrors.Default.return(
228
- fieldResults.reduce(
229
- (acc, res) => traversalContext.joinRes([acc, res]),
230
- nodeResult,
231
- ),
232
- ),
233
- )
234
- : ValueOrErrors.Default.return(
235
- fieldResults.reduce(
236
- (acc, res) => traversalContext.joinRes([acc, res]),
237
- traversalContext.zeroRes(unit),
238
- ),
239
- );
240
- });
241
- }),
242
- );
243
- });
244
- }
245
- if (
246
- renderer.type.kind == "sum" &&
247
- (renderer.kind == "sumRenderer" ||
248
- renderer.kind == "sumUnitDateRenderer")
249
- ) {
250
- // this will be removed when sums become proper partials
251
- if (renderer.kind == "sumUnitDateRenderer") {
252
- if (traverseNode.kind == "l") {
253
- return ValueOrErrors.Default.return(Option.Default.none());
254
- }
255
- return ValueOrErrors.Default.return(
256
- Option.Default.some((evalContext) =>
257
- traverseNode.value(evalContext),
258
- ),
259
- );
260
- }
261
- if (renderer.kind == "sumRenderer") {
262
- return rec(renderer.leftRenderer.renderer, traversalContext).Then(
263
- (leftTraversal) =>
264
- rec(renderer.rightRenderer.renderer, traversalContext).Then(
265
- (rightTraversal) => {
266
- if (
267
- leftTraversal.kind == "l" &&
268
- rightTraversal.kind == "l" &&
269
- traverseNode.kind == "l"
270
- ) {
271
- return ValueOrErrors.Default.return(Option.Default.none());
272
- }
273
- return ValueOrErrors.Default.return(
274
- Option.Default.some((evalContext) => {
275
- const iterator = evalContext.traversalIterator;
276
- if (!PredicateValue.Operations.IsSum(iterator)) {
277
- return ValueOrErrors.Default.throwOne(
278
- `Error: traversal iterator is not a sum, got ${evalContext.traversalIterator}`,
279
- );
280
- }
281
- const isRight = iterator.value.kind == "r";
282
- if (isRight && rightTraversal.kind == "r") {
283
- if (traverseNode.kind == "r") {
284
- return traverseNode
285
- .value(evalContext)
286
- .Then((nodeResult) => {
287
- return rightTraversal
288
- .value(
289
- Object.assign(
290
- Object.assign({}, evalContext),
291
- { traversalIterator: iterator.value.value },
292
- ),
293
- )
294
- .Then((rightRes) => {
295
- return ValueOrErrors.Default.return(
296
- traversalContext.joinRes([
297
- nodeResult,
298
- rightRes,
299
- ]),
300
- );
301
- });
302
- });
86
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
87
+ if (!PredicateValue.Operations.IsRecord(evalContext.traversalIterator))
88
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a record, got ${JSON.stringify(evalContext.traversalIterator, undefined, 2)}`);
89
+ const visibleFieldsRes = FormLayout.Operations.ComputeVisibleFieldsForRecord(Map([
90
+ ["global", evalContext.global],
91
+ ["local", evalContext.local],
92
+ ["root", evalContext.root],
93
+ ]), renderer.tabs);
94
+ // TODO later, make this monadic
95
+ if (visibleFieldsRes.kind == "errors") {
96
+ return visibleFieldsRes;
97
+ }
98
+ const visibleFields = visibleFieldsRes.value;
99
+ const traversalIteratorFields = evalContext.traversalIterator.fields;
100
+ return ValueOrErrors.Operations.All(fieldTraversals.flatMap((f) => {
101
+ // should be a map and instead of flatmap and [] a VoE.default.return([]) then an All on this and then a flatmap, everything is returned in a VoE
102
+ if (f.fieldTraversal.kind == "l" ||
103
+ !visibleFields.includes(f.fieldName))
104
+ return [];
105
+ if (f.visibility != undefined) {
106
+ const visible = Expr.Operations.Evaluate(Map([
107
+ ["global", evalContext.global],
108
+ ["local", evalContext.local],
109
+ ["root", evalContext.root],
110
+ ]))(f.visibility);
111
+ if (visible.kind == "value" && !visible.value) {
112
+ return [];
113
+ }
114
+ }
115
+ return [
116
+ f.fieldTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: traversalIteratorFields.get(f.fieldName) })),
117
+ ];
118
+ })).Then((fieldResults) => {
119
+ return traverseNode.kind == "r"
120
+ ? traverseNode
121
+ .value(evalContext)
122
+ .Then((nodeResult) => ValueOrErrors.Default.return(fieldResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
123
+ : ValueOrErrors.Default.return(fieldResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
124
+ });
125
+ }));
126
+ });
127
+ }
128
+ if (renderer.type.kind == "sum" &&
129
+ (renderer.kind == "sumRenderer" ||
130
+ renderer.kind == "sumUnitDateRenderer")) {
131
+ // this will be removed when sums become proper partials
132
+ if (renderer.kind == "sumUnitDateRenderer") {
133
+ if (traverseNode.kind == "l") {
134
+ return ValueOrErrors.Default.return(Option.Default.none());
135
+ }
136
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => traverseNode.value(evalContext)));
137
+ }
138
+ if (renderer.kind == "sumRenderer") {
139
+ return rec(renderer.leftRenderer.renderer, traversalContext).Then((leftTraversal) => rec(renderer.rightRenderer.renderer, traversalContext).Then((rightTraversal) => {
140
+ if (leftTraversal.kind == "l" &&
141
+ rightTraversal.kind == "l" &&
142
+ traverseNode.kind == "l") {
143
+ return ValueOrErrors.Default.return(Option.Default.none());
303
144
  }
304
- return rightTraversal
305
- .value(
306
- Object.assign(Object.assign({}, evalContext), {
307
- traversalIterator: iterator.value.value,
308
- }),
309
- )
310
- .Then((rightRes) => {
311
- return ValueOrErrors.Default.return(rightRes);
312
- });
313
- }
314
- if (!isRight && leftTraversal.kind == "r") {
315
- if (traverseNode.kind == "r") {
316
- return traverseNode
317
- .value(evalContext)
318
- .Then((nodeResult) => {
319
- return leftTraversal
320
- .value(
321
- Object.assign(
322
- Object.assign({}, evalContext),
323
- { traversalIterator: iterator.value.value },
324
- ),
325
- )
326
- .Then((leftRes) => {
327
- return ValueOrErrors.Default.return(
328
- traversalContext.joinRes([
329
- nodeResult,
330
- leftRes,
331
- ]),
332
- );
145
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
146
+ const iterator = evalContext.traversalIterator;
147
+ if (!PredicateValue.Operations.IsSum(iterator)) {
148
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a sum, got ${evalContext.traversalIterator}`);
149
+ }
150
+ const isRight = iterator.value.kind == "r";
151
+ if (isRight && rightTraversal.kind == "r") {
152
+ if (traverseNode.kind == "r") {
153
+ return traverseNode
154
+ .value(evalContext)
155
+ .Then((nodeResult) => {
156
+ return rightTraversal
157
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
158
+ .Then((rightRes) => {
159
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
160
+ nodeResult,
161
+ rightRes,
162
+ ]));
163
+ });
164
+ });
165
+ }
166
+ return rightTraversal
167
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
168
+ .Then((rightRes) => {
169
+ return ValueOrErrors.Default.return(rightRes);
333
170
  });
334
- });
171
+ }
172
+ if (!isRight && leftTraversal.kind == "r") {
173
+ if (traverseNode.kind == "r") {
174
+ return traverseNode
175
+ .value(evalContext)
176
+ .Then((nodeResult) => {
177
+ return leftTraversal
178
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
179
+ .Then((leftRes) => {
180
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
181
+ nodeResult,
182
+ leftRes,
183
+ ]));
184
+ });
185
+ });
186
+ }
187
+ return leftTraversal
188
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value.value }))
189
+ .Then((leftRes) => {
190
+ return ValueOrErrors.Default.return(leftRes);
191
+ });
192
+ }
193
+ return ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
194
+ }));
195
+ }));
196
+ }
197
+ }
198
+ if (renderer.type.kind == "tuple" && renderer.kind == "tupleRenderer") {
199
+ return ValueOrErrors.Operations.All(List(renderer.itemRenderers.map((itemRenderer, index) => {
200
+ return rec(itemRenderer.renderer, traversalContext).Then((itemTraversal) => {
201
+ return ValueOrErrors.Default.return({
202
+ index: index,
203
+ itemTraversal: itemTraversal,
204
+ });
205
+ });
206
+ }))).Then((itemTraversals) => {
207
+ if (itemTraversals.every((i) => i.itemTraversal.kind == "l") &&
208
+ traverseNode.kind == "l") {
209
+ return ValueOrErrors.Default.return(Option.Default.none());
210
+ }
211
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
212
+ const iterator = evalContext.traversalIterator;
213
+ if (!PredicateValue.Operations.IsTuple(iterator)) {
214
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a tuple, got ${evalContext.traversalIterator}`);
335
215
  }
336
- return leftTraversal
337
- .value(
338
- Object.assign(Object.assign({}, evalContext), {
339
- traversalIterator: iterator.value.value,
340
- }),
341
- )
342
- .Then((leftRes) => {
343
- return ValueOrErrors.Default.return(leftRes);
344
- });
345
- }
346
- return ValueOrErrors.Default.return(
347
- traversalContext.zeroRes(unit),
348
- );
349
- }),
350
- );
351
- },
352
- ),
353
- );
354
- }
355
- }
356
- if (renderer.type.kind == "tuple" && renderer.kind == "tupleRenderer") {
357
- return ValueOrErrors.Operations.All(
358
- List(
359
- renderer.itemRenderers.map((itemRenderer, index) => {
360
- return rec(itemRenderer.renderer, traversalContext).Then(
361
- (itemTraversal) => {
362
- return ValueOrErrors.Default.return({
363
- index: index,
364
- itemTraversal: itemTraversal,
365
- });
366
- },
367
- );
368
- }),
369
- ),
370
- ).Then((itemTraversals) => {
371
- if (
372
- itemTraversals.every((i) => i.itemTraversal.kind == "l") &&
373
- traverseNode.kind == "l"
374
- ) {
375
- return ValueOrErrors.Default.return(Option.Default.none());
376
- }
377
- return ValueOrErrors.Default.return(
378
- Option.Default.some((evalContext) => {
379
- const iterator = evalContext.traversalIterator;
380
- if (!PredicateValue.Operations.IsTuple(iterator)) {
381
- return ValueOrErrors.Default.throwOne(
382
- `Error: traversal iterator is not a tuple, got ${evalContext.traversalIterator}`,
383
- );
384
- }
385
- return ValueOrErrors.Operations.All(
386
- itemTraversals.flatMap((i) =>
387
- i.itemTraversal.kind == "r"
388
- ? [
389
- i.itemTraversal.value(
390
- Object.assign(Object.assign({}, evalContext), {
391
- traversalIterator: iterator.values.get(i.index),
392
- }),
393
- ),
394
- ]
395
- : [],
396
- ),
397
- ).Then((itemResults) => {
398
- return traverseNode.kind == "r"
399
- ? traverseNode
400
- .value(evalContext)
401
- .Then((nodeResult) =>
402
- ValueOrErrors.Default.return(
403
- itemResults.reduce(
404
- (acc, res) => traversalContext.joinRes([acc, res]),
405
- nodeResult,
406
- ),
407
- ),
408
- )
409
- : ValueOrErrors.Default.return(
410
- itemResults.reduce(
411
- (acc, res) => traversalContext.joinRes([acc, res]),
412
- traversalContext.zeroRes(unit),
413
- ),
414
- );
415
- });
416
- }),
417
- );
418
- });
419
- }
420
- if (renderer.type.kind == "union" && renderer.kind == "unionRenderer") {
421
- return ValueOrErrors.Operations.All(
422
- List(
423
- renderer.cases
424
- .map((caseRenderer, caseName) =>
425
- rec(caseRenderer, traversalContext).Then((caseTraversal) =>
426
- ValueOrErrors.Default.return({
216
+ return ValueOrErrors.Operations.All(itemTraversals.flatMap((i) => i.itemTraversal.kind == "r"
217
+ ? [
218
+ i.itemTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.values.get(i.index) })),
219
+ ]
220
+ : [])).Then((itemResults) => {
221
+ return traverseNode.kind == "r"
222
+ ? traverseNode
223
+ .value(evalContext)
224
+ .Then((nodeResult) => ValueOrErrors.Default.return(itemResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
225
+ : ValueOrErrors.Default.return(itemResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
226
+ });
227
+ }));
228
+ });
229
+ }
230
+ if (renderer.type.kind == "union" && renderer.kind == "unionRenderer") {
231
+ return ValueOrErrors.Operations.All(List(renderer.cases
232
+ .map((caseRenderer, caseName) => rec(caseRenderer, traversalContext).Then((caseTraversal) => ValueOrErrors.Default.return({
427
233
  caseName: caseName,
428
234
  caseTraversal: caseTraversal,
429
- }),
430
- ),
431
- )
432
- .valueSeq(),
433
- ),
434
- ).Then((caseTraversals) => {
435
- if (
436
- caseTraversals.every((c) => c.caseTraversal.kind == "l") &&
437
- traverseNode.kind == "l"
438
- ) {
439
- return ValueOrErrors.Default.return(Option.Default.none());
440
- }
441
- return ValueOrErrors.Default.return(
442
- Option.Default.some((evalContext) => {
443
- var _a;
444
- const iterator = evalContext.traversalIterator;
445
- if (!PredicateValue.Operations.IsUnionCase(iterator)) {
446
- return ValueOrErrors.Default.throwOne(
447
- `Error: traversal iterator is not a union case, got ${evalContext.traversalIterator}`,
448
- );
449
- }
450
- const caseName = iterator.caseName;
451
- const caseTraversal =
452
- (_a = caseTraversals.find((c) => c.caseName == caseName)) ===
453
- null || _a === void 0
454
- ? void 0
455
- : _a.caseTraversal;
456
- if (!caseTraversal) {
457
- return ValueOrErrors.Default.throwOne(
458
- `Error: cannot find case traversal for case ${caseName}`,
459
- );
460
- }
461
- return caseTraversal.kind == "r"
462
- ? caseTraversal
463
- .value(
464
- Object.assign(Object.assign({}, evalContext), {
465
- traversalIterator: iterator.fields,
466
- }),
467
- )
468
- .Then((caseRes) => {
469
- return traverseNode.kind == "r"
470
- ? traverseNode.value(evalContext).Then((nodeResult) => {
471
- return ValueOrErrors.Default.return(
472
- traversalContext.joinRes([nodeResult, caseRes]),
473
- );
474
- })
475
- : ValueOrErrors.Default.return(caseRes);
476
- })
477
- : traverseNode.kind == "r"
478
- ? traverseNode.value(evalContext).Then((nodeResult) => {
479
- return ValueOrErrors.Default.return(nodeResult);
480
- })
481
- : ValueOrErrors.Default.return(
482
- traversalContext.zeroRes(unit),
483
- );
484
- }),
485
- );
486
- });
487
- }
488
- // TODO -- add recursion for the detailsRenderer, but requires state
489
- if (renderer.type.kind == "table" && renderer.kind == "tableRenderer") {
490
- return ValueOrErrors.Operations.All(
491
- List(
492
- renderer.columns
493
- .map((column, columnName) => {
494
- return rec(column.renderer, traversalContext).Then(
495
- (columnTraversal) => {
496
- return ValueOrErrors.Default.return({
497
- columnName: columnName,
498
- columnTraversal: columnTraversal,
499
- });
500
- },
501
- );
502
- })
503
- .valueSeq(),
504
- ),
505
- ).Then((columnTraversals) => {
506
- if (
507
- columnTraversals.every((c) => c.columnTraversal.kind == "l") &&
508
- traverseNode.kind == "l"
509
- ) {
510
- return ValueOrErrors.Default.return(Option.Default.none());
511
- }
512
- return ValueOrErrors.Default.return(
513
- Option.Default.some((evalContext) => {
514
- const iterator = evalContext.traversalIterator;
515
- if (!PredicateValue.Operations.IsTable(iterator)) {
516
- return ValueOrErrors.Default.throwOne(
517
- `Error: traversal iterator is not a table, got ${evalContext.traversalIterator}`,
518
- );
519
- }
520
- return TableLayout.Operations.ComputeLayout(
521
- Map([
522
- ["global", evalContext.global],
523
- ["local", evalContext.local],
524
- ["root", evalContext.root],
525
- ]),
526
- renderer.visibleColumns,
527
- ).Then((visibleColumns) => {
528
- // Note: we do not allow visiblity predicates on individual column cells
529
- return ValueOrErrors.Operations.All(
530
- columnTraversals.flatMap((c) => {
531
- const colTraversal = c.columnTraversal;
532
- if (
533
- colTraversal.kind == "l" ||
534
- !visibleColumns.columns.includes(c.columnName)
535
- ) {
536
- return [];
235
+ })))
236
+ .valueSeq())).Then((caseTraversals) => {
237
+ if (caseTraversals.every((c) => c.caseTraversal.kind == "l") &&
238
+ traverseNode.kind == "l") {
239
+ return ValueOrErrors.Default.return(Option.Default.none());
537
240
  }
538
- return iterator.data.valueSeq().flatMap((row) => {
539
- // TODO make this monadic
540
- const columnValue = row.fields.get(c.columnName);
541
- if (!columnValue) {
542
- return [
543
- ValueOrErrors.Default.throwOne(
544
- `Error: cannot find column ${c.columnName} in row ${JSON.stringify(row)}`,
545
- ),
546
- ];
547
- }
548
- return [
549
- colTraversal.value(
550
- Object.assign(Object.assign({}, evalContext), {
551
- traversalIterator: columnValue,
552
- }),
553
- ),
554
- ];
241
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
242
+ var _a;
243
+ const iterator = evalContext.traversalIterator;
244
+ if (!PredicateValue.Operations.IsUnionCase(iterator)) {
245
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a union case, got ${evalContext.traversalIterator}`);
246
+ }
247
+ const caseName = iterator.caseName;
248
+ const caseTraversal = (_a = caseTraversals.find((c) => c.caseName == caseName)) === null || _a === void 0 ? void 0 : _a.caseTraversal;
249
+ if (!caseTraversal) {
250
+ return ValueOrErrors.Default.throwOne(`Error: cannot find case traversal for case ${caseName}`);
251
+ }
252
+ return caseTraversal.kind == "r"
253
+ ? caseTraversal
254
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.fields }))
255
+ .Then((caseRes) => {
256
+ return traverseNode.kind == "r"
257
+ ? traverseNode
258
+ .value(evalContext)
259
+ .Then((nodeResult) => {
260
+ return ValueOrErrors.Default.return(traversalContext.joinRes([nodeResult, caseRes]));
261
+ })
262
+ : ValueOrErrors.Default.return(caseRes);
263
+ })
264
+ : traverseNode.kind == "r"
265
+ ? traverseNode.value(evalContext).Then((nodeResult) => {
266
+ return ValueOrErrors.Default.return(nodeResult);
267
+ })
268
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
269
+ }));
270
+ });
271
+ }
272
+ // TODO -- add recursion for the detailsRenderer, but requires state
273
+ if (renderer.type.kind == "table" && renderer.kind == "tableRenderer") {
274
+ return ValueOrErrors.Operations.All(List(renderer.columns
275
+ .map((column, columnName) => {
276
+ return rec(column.renderer, traversalContext).Then((columnTraversal) => {
277
+ return ValueOrErrors.Default.return({
278
+ columnName: columnName,
279
+ columnTraversal: columnTraversal,
280
+ });
555
281
  });
556
- }),
557
- ).Then((columnResults) => {
558
- return traverseNode.kind == "r"
559
- ? traverseNode
560
- .value(evalContext)
561
- .Then((nodeResult) =>
562
- ValueOrErrors.Default.return(
563
- columnResults.reduce(
564
- (acc, res) =>
565
- traversalContext.joinRes([acc, res]),
566
- nodeResult,
567
- ),
568
- ),
569
- )
570
- : ValueOrErrors.Default.return(
571
- columnResults.reduce(
572
- (acc, res) => traversalContext.joinRes([acc, res]),
573
- traversalContext.zeroRes(unit),
574
- ),
575
- );
282
+ })
283
+ .valueSeq())).Then((columnTraversals) => {
284
+ if (columnTraversals.every((c) => c.columnTraversal.kind == "l") &&
285
+ traverseNode.kind == "l") {
286
+ return ValueOrErrors.Default.return(Option.Default.none());
287
+ }
288
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
289
+ const iterator = evalContext.traversalIterator;
290
+ if (!PredicateValue.Operations.IsTable(iterator)) {
291
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator is not a table, got ${evalContext.traversalIterator}`);
292
+ }
293
+ return TableLayout.Operations.ComputeLayout(Map([
294
+ ["global", evalContext.global],
295
+ ["local", evalContext.local],
296
+ ["root", evalContext.root],
297
+ ]), renderer.visibleColumns).Then((visibleColumns) => {
298
+ // Note: we do not allow visiblity predicates on individual column cells
299
+ return ValueOrErrors.Operations.All(columnTraversals.flatMap((c) => {
300
+ const colTraversal = c.columnTraversal;
301
+ if (colTraversal.kind == "l" ||
302
+ !visibleColumns.columns.includes(c.columnName)) {
303
+ return [];
304
+ }
305
+ return iterator.data.valueSeq().flatMap((row) => {
306
+ // TODO make this monadic
307
+ const columnValue = row.fields.get(c.columnName);
308
+ if (!columnValue) {
309
+ return [
310
+ ValueOrErrors.Default.throwOne(`Error: cannot find column ${c.columnName} in row ${JSON.stringify(row)}`),
311
+ ];
312
+ }
313
+ return [
314
+ colTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: columnValue })),
315
+ ];
316
+ });
317
+ })).Then((columnResults) => {
318
+ return traverseNode.kind == "r"
319
+ ? traverseNode
320
+ .value(evalContext)
321
+ .Then((nodeResult) => ValueOrErrors.Default.return(columnResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
322
+ : ValueOrErrors.Default.return(columnResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
323
+ });
324
+ });
325
+ }));
576
326
  });
577
- });
578
- }),
579
- );
580
- });
581
- }
582
- // TODO -- should we also look at the previewRenderer? Woud also requite state
583
- if (renderer.type.kind == "one" && renderer.kind == "oneRenderer") {
584
- return rec(renderer.detailsRenderer.renderer, traversalContext).Then(
585
- (itemTraversal) => {
586
- if (itemTraversal.kind == "l" && traverseNode.kind == "l") {
587
- return ValueOrErrors.Default.return(Option.Default.none());
588
327
  }
589
- return ValueOrErrors.Default.return(
590
- Option.Default.some((evalContext) => {
591
- const iterator = evalContext.traversalIterator;
592
- // Handle partial ones
593
- if (PredicateValue.Operations.IsUnit(iterator)) {
594
- return traverseNode.kind == "r"
595
- ? traverseNode.value(evalContext)
596
- : ValueOrErrors.Default.return(
597
- traversalContext.zeroRes(unit),
598
- );
599
- }
600
- if (!PredicateValue.Operations.IsOption(iterator)) {
601
- return ValueOrErrors.Default.throwOne(
602
- `Error: traversal iterator for one is not an option, got ${iterator}`,
603
- );
604
- }
605
- const isSome =
606
- PredicateValue.Operations.IsOption(iterator) &&
607
- iterator.isSome;
608
- if (!isSome) {
609
- return traverseNode.kind == "r"
610
- ? traverseNode.value(evalContext)
611
- : ValueOrErrors.Default.return(
612
- traversalContext.zeroRes(unit),
613
- );
614
- }
615
- return traverseNode.kind == "r"
616
- ? traverseNode.value(evalContext).Then((nodeResult) => {
617
- return itemTraversal.kind == "r"
618
- ? itemTraversal
619
- .value(
620
- Object.assign(Object.assign({}, evalContext), {
621
- traversalIterator: iterator.value,
622
- }),
623
- )
624
- .Then((itemResult) => {
625
- return ValueOrErrors.Default.return(
626
- traversalContext.joinRes([
627
- nodeResult,
628
- itemResult,
629
- ]),
630
- );
328
+ // TODO -- should we also look at the previewRenderer? Woud also requite state
329
+ if (renderer.type.kind == "one" && renderer.kind == "oneRenderer") {
330
+ return rec(renderer.detailsRenderer.renderer, traversalContext).Then((itemTraversal) => {
331
+ if (itemTraversal.kind == "l" && traverseNode.kind == "l") {
332
+ return ValueOrErrors.Default.return(Option.Default.none());
333
+ }
334
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
335
+ const iterator = evalContext.traversalIterator;
336
+ // Handle partial ones
337
+ if (PredicateValue.Operations.IsUnit(iterator)) {
338
+ return traverseNode.kind == "r"
339
+ ? traverseNode.value(evalContext)
340
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
341
+ }
342
+ if (!PredicateValue.Operations.IsOption(iterator)) {
343
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for one is not an option, got ${iterator}`);
344
+ }
345
+ const isSome = PredicateValue.Operations.IsOption(iterator) &&
346
+ iterator.isSome;
347
+ if (!isSome) {
348
+ return traverseNode.kind == "r"
349
+ ? traverseNode.value(evalContext)
350
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
351
+ }
352
+ return traverseNode.kind == "r"
353
+ ? traverseNode
354
+ .value(evalContext)
355
+ .Then((nodeResult) => {
356
+ return itemTraversal.kind == "r"
357
+ ? itemTraversal
358
+ .value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value }))
359
+ .Then((itemResult) => {
360
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
361
+ nodeResult,
362
+ itemResult,
363
+ ]));
364
+ })
365
+ : ValueOrErrors.Default.return(nodeResult);
631
366
  })
632
- : ValueOrErrors.Default.return(nodeResult);
633
- })
634
- : itemTraversal.kind == "r"
635
- ? itemTraversal.value(
636
- Object.assign(Object.assign({}, evalContext), {
637
- traversalIterator: iterator.value,
638
- }),
639
- )
640
- : ValueOrErrors.Default.return(
641
- traversalContext.zeroRes(unit),
642
- );
643
- }),
644
- );
645
- },
646
- );
647
- }
648
- if (renderer.type.kind == "list" && renderer.kind == "listRenderer") {
649
- return rec(renderer.elementRenderer.renderer, traversalContext).Then(
650
- (elementTraversal) => {
651
- if (elementTraversal.kind == "l" && traverseNode.kind == "l") {
652
- return ValueOrErrors.Default.return(Option.Default.none());
367
+ : itemTraversal.kind == "r"
368
+ ? itemTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: iterator.value }))
369
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
370
+ }));
371
+ });
653
372
  }
654
- return ValueOrErrors.Default.return(
655
- Option.Default.some((evalContext) => {
656
- const iterator = evalContext.traversalIterator;
657
- if (!PredicateValue.Operations.IsTuple(iterator)) {
658
- return ValueOrErrors.Default.throwOne(
659
- `Error: traversal iterator for list is not a tuple, got ${JSON.stringify(iterator, null, 2)}`,
660
- );
661
- }
662
- return ValueOrErrors.Operations.All(
663
- iterator.values.map((value) =>
664
- elementTraversal.kind == "r"
665
- ? elementTraversal.value(
666
- Object.assign(Object.assign({}, evalContext), {
667
- traversalIterator: value,
668
- }),
669
- )
670
- : ValueOrErrors.Default.return(
671
- traversalContext.zeroRes(unit),
672
- ),
673
- ),
674
- ).Then((elementResults) =>
675
- traverseNode.kind == "r"
676
- ? traverseNode
677
- .value(evalContext)
678
- .Then((nodeResult) =>
679
- ValueOrErrors.Default.return(
680
- elementResults.reduce(
681
- (acc, res) =>
682
- traversalContext.joinRes([acc, res]),
683
- nodeResult,
684
- ),
685
- ),
686
- )
687
- : ValueOrErrors.Default.return(
688
- elementResults.reduce(
689
- (acc, res) => traversalContext.joinRes([acc, res]),
690
- traversalContext.zeroRes(unit),
691
- ),
692
- ),
693
- );
694
- }),
695
- );
696
- },
697
- );
698
- }
699
- if (renderer.type.kind == "map" && renderer.kind == "mapRenderer") {
700
- return rec(renderer.keyRenderer.renderer, traversalContext).Then(
701
- (keyTraversal) => {
702
- return rec(renderer.valueRenderer.renderer, traversalContext).Then(
703
- (valueTraversal) => {
704
- if (
705
- keyTraversal.kind == "l" &&
706
- valueTraversal.kind == "l" &&
707
- traverseNode.kind == "l"
708
- ) {
709
- return ValueOrErrors.Default.return(Option.Default.none());
710
- }
711
- return ValueOrErrors.Default.return(
712
- Option.Default.some((evalContext) => {
713
- if (
714
- keyTraversal.kind == "l" &&
715
- valueTraversal.kind == "l"
716
- ) {
717
- return traverseNode.kind == "r"
718
- ? traverseNode.value(evalContext)
719
- : ValueOrErrors.Default.return(
720
- traversalContext.zeroRes(unit),
721
- );
373
+ if (renderer.type.kind == "list" && renderer.kind == "listRenderer") {
374
+ return rec(renderer.elementRenderer.renderer, traversalContext).Then((elementTraversal) => {
375
+ if (elementTraversal.kind == "l" && traverseNode.kind == "l") {
376
+ return ValueOrErrors.Default.return(Option.Default.none());
722
377
  }
723
- const iterator = evalContext.traversalIterator;
724
- if (!PredicateValue.Operations.IsTuple(iterator)) {
725
- return ValueOrErrors.Default.throwOne(
726
- `Error: traversal iterator for map is not a tuple, got ${JSON.stringify(iterator, null, 2)}`,
727
- );
728
- }
729
- return ValueOrErrors.Operations.All(
730
- iterator.values.map((value) => {
731
- if (!PredicateValue.Operations.IsTuple(value)) {
732
- return ValueOrErrors.Default.throwOne(
733
- `Error: traversal iterator for map keyValue is not a tuple, got ${JSON.stringify(value, null, 2)}`,
734
- );
735
- }
736
- const keyRes =
737
- keyTraversal.kind == "r"
738
- ? keyTraversal.value(
739
- Object.assign(Object.assign({}, evalContext), {
740
- traversalIterator: value.values.get(0),
741
- }),
742
- )
743
- : ValueOrErrors.Default.return(
744
- traversalContext.zeroRes(unit),
745
- );
746
- const valueRes =
747
- valueTraversal.kind == "r"
748
- ? valueTraversal.value(
749
- Object.assign(Object.assign({}, evalContext), {
750
- traversalIterator: value.values.get(1),
751
- }),
752
- )
753
- : ValueOrErrors.Default.return(
754
- traversalContext.zeroRes(unit),
755
- );
756
- if (keyRes.kind == "errors") {
757
- return keyRes;
378
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
379
+ const iterator = evalContext.traversalIterator;
380
+ if (!PredicateValue.Operations.IsTuple(iterator)) {
381
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for list is not a tuple, got ${JSON.stringify(iterator, null, 2)}`);
758
382
  }
759
- if (valueRes.kind == "errors") {
760
- return valueRes;
383
+ return ValueOrErrors.Operations.All(iterator.values.map((value) => elementTraversal.kind == "r"
384
+ ? elementTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: value }))
385
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit)))).Then((elementResults) => traverseNode.kind == "r"
386
+ ? traverseNode
387
+ .value(evalContext)
388
+ .Then((nodeResult) => ValueOrErrors.Default.return(elementResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult)))
389
+ : ValueOrErrors.Default.return(elementResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit))));
390
+ }));
391
+ });
392
+ }
393
+ if (renderer.type.kind == "map" && renderer.kind == "mapRenderer") {
394
+ return rec(renderer.keyRenderer.renderer, traversalContext).Then((keyTraversal) => {
395
+ return rec(renderer.valueRenderer.renderer, traversalContext).Then((valueTraversal) => {
396
+ if (keyTraversal.kind == "l" &&
397
+ valueTraversal.kind == "l" &&
398
+ traverseNode.kind == "l") {
399
+ return ValueOrErrors.Default.return(Option.Default.none());
761
400
  }
762
- return ValueOrErrors.Default.return(
763
- traversalContext.joinRes([
764
- keyRes.value,
765
- valueRes.value,
766
- ]),
767
- );
768
- }),
769
- ).Then((keyValueResults) => {
770
- return traverseNode.kind == "r"
771
- ? traverseNode.value(evalContext).Then((nodeResult) => {
772
- return ValueOrErrors.Default.return(
773
- keyValueResults.reduce(
774
- (acc, res) =>
775
- traversalContext.joinRes([acc, res]),
776
- nodeResult,
777
- ),
778
- );
779
- })
780
- : ValueOrErrors.Default.return(
781
- keyValueResults.reduce(
782
- (acc, res) =>
783
- traversalContext.joinRes([acc, res]),
784
- traversalContext.zeroRes(unit),
785
- ),
786
- );
401
+ return ValueOrErrors.Default.return(Option.Default.some((evalContext) => {
402
+ if (keyTraversal.kind == "l" &&
403
+ valueTraversal.kind == "l") {
404
+ return traverseNode.kind == "r"
405
+ ? traverseNode.value(evalContext)
406
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
407
+ }
408
+ const iterator = evalContext.traversalIterator;
409
+ if (!PredicateValue.Operations.IsTuple(iterator)) {
410
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for map is not a tuple, got ${JSON.stringify(iterator, null, 2)}`);
411
+ }
412
+ return ValueOrErrors.Operations.All(iterator.values.map((value) => {
413
+ if (!PredicateValue.Operations.IsTuple(value)) {
414
+ return ValueOrErrors.Default.throwOne(`Error: traversal iterator for map keyValue is not a tuple, got ${JSON.stringify(value, null, 2)}`);
415
+ }
416
+ const keyRes = keyTraversal.kind == "r"
417
+ ? keyTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: value.values.get(0) }))
418
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
419
+ const valueRes = valueTraversal.kind == "r"
420
+ ? valueTraversal.value(Object.assign(Object.assign({}, evalContext), { traversalIterator: value.values.get(1) }))
421
+ : ValueOrErrors.Default.return(traversalContext.zeroRes(unit));
422
+ if (keyRes.kind == "errors") {
423
+ return keyRes;
424
+ }
425
+ if (valueRes.kind == "errors") {
426
+ return valueRes;
427
+ }
428
+ return ValueOrErrors.Default.return(traversalContext.joinRes([
429
+ keyRes.value,
430
+ valueRes.value,
431
+ ]));
432
+ })).Then((keyValueResults) => {
433
+ return traverseNode.kind == "r"
434
+ ? traverseNode
435
+ .value(evalContext)
436
+ .Then((nodeResult) => {
437
+ return ValueOrErrors.Default.return(keyValueResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), nodeResult));
438
+ })
439
+ : ValueOrErrors.Default.return(keyValueResults.reduce((acc, res) => traversalContext.joinRes([acc, res]), traversalContext.zeroRes(unit)));
440
+ });
441
+ }));
787
442
  });
788
- }),
789
- );
790
- },
791
- );
792
- },
793
- );
794
- }
795
- return ValueOrErrors.Default.return(Option.Default.none());
443
+ });
444
+ }
445
+ return ValueOrErrors.Default.return(Option.Default.none());
446
+ },
796
447
  },
797
- },
798
448
  };
799
- //# sourceMappingURL=state.js.map
449
+ //# sourceMappingURL=state.js.map