ballerina-core 1.0.245 → 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 (321) 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/synchronized-entities/state.js +4 -7
  16. package/bin/src/async/domains/promise/state.d.ts +4 -9
  17. package/bin/src/async/domains/promise/state.js +9 -20
  18. package/bin/src/async/domains/synchronized/coroutines/synchronize.js +28 -80
  19. package/bin/src/async/domains/synchronized/state.d.ts +7 -14
  20. package/bin/src/async/domains/synchronized/state.js +6 -16
  21. package/bin/src/async/state.d.ts +45 -56
  22. package/bin/src/async/state.js +97 -115
  23. package/bin/src/baseEntity/domains/identifiable/state.d.ts +11 -15
  24. package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
  25. package/bin/src/collections/domains/array/state.d.ts +7 -7
  26. package/bin/src/collections/domains/array/state.js +5 -5
  27. package/bin/src/collections/domains/errors/state.d.ts +10 -10
  28. package/bin/src/collections/domains/errors/state.js +10 -10
  29. package/bin/src/collections/domains/immutable/domains/list/state.js +44 -46
  30. package/bin/src/collections/domains/immutable/domains/map/state.js +23 -41
  31. package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +65 -84
  32. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
  33. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
  34. package/bin/src/collections/domains/maybe/state.d.ts +9 -9
  35. package/bin/src/collections/domains/maybe/state.js +9 -12
  36. package/bin/src/collections/domains/product/state.d.ts +19 -25
  37. package/bin/src/collections/domains/product/state.js +10 -13
  38. package/bin/src/collections/domains/sum/state.d.ts +77 -101
  39. package/bin/src/collections/domains/sum/state.js +32 -49
  40. package/bin/src/collections/domains/valueOrErrors/state.js +56 -81
  41. package/bin/src/coroutines/builder.js +19 -40
  42. package/bin/src/coroutines/state.js +306 -381
  43. package/bin/src/coroutines/template.js +59 -97
  44. package/bin/src/debounced/coroutines/debounce.js +89 -115
  45. package/bin/src/debounced/state.js +25 -62
  46. package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
  47. package/bin/src/diagnostics/domains/message-box/state.js +3 -3
  48. package/bin/src/foreignMutations/state.d.ts +3 -3
  49. package/bin/src/foreignMutations/state.js +1 -1
  50. package/bin/src/forms/domains/attachments/views/attachments-view.js +8 -30
  51. package/bin/src/forms/domains/collection/domains/reference/state.js +20 -26
  52. package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
  53. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +754 -2007
  54. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +44 -123
  55. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.js +166 -339
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +27 -40
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.js +40 -76
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.js +59 -102
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.js +29 -64
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.js +30 -64
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.js +33 -88
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +13 -21
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.js +23 -52
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js +18 -59
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.js +55 -129
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +27 -43
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.js +23 -63
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +22 -39
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.js +11 -46
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts +6 -1
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts.map +1 -1
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js +50 -146
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js.map +1 -1
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.js +29 -64
  75. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.js +33 -78
  76. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js +62 -157
  77. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +569 -977
  78. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.js +94 -255
  79. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +90 -322
  80. package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +2 -3
  81. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
  82. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +23 -49
  83. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
  84. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +24 -52
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +6 -18
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +30 -64
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +6 -9
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +60 -153
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +50 -127
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +22 -40
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +13 -31
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts +2 -2
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts.map +1 -1
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +142 -417
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js.map +1 -1
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +8 -28
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +18 -61
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +90 -329
  101. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
  102. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +23 -54
  103. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +10 -22
  104. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +31 -49
  105. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +10 -29
  106. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +2 -2
  107. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +26 -47
  108. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +40 -88
  109. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +152 -386
  110. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +10 -19
  111. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +21 -78
  112. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +11 -32
  113. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +77 -222
  114. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +13 -35
  115. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +68 -195
  116. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +13 -36
  117. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +106 -246
  118. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
  119. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +23 -54
  120. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +27 -40
  121. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
  122. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +26 -58
  123. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +7 -22
  124. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +53 -188
  125. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/builder.js +2 -2
  126. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/infiniteLoader.js +24 -57
  127. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseFiltersAndSorting.js +20 -70
  128. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js +27 -61
  129. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/loadWithRetries.js +19 -38
  130. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +15 -43
  131. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.d.ts +4 -0
  132. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.d.ts.map +1 -1
  133. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +137 -301
  134. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts +6 -2
  135. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts.map +1 -1
  136. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +238 -622
  137. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js.map +1 -1
  138. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +8 -20
  139. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +35 -132
  140. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +8 -21
  141. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +32 -103
  142. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +9 -12
  143. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +20 -54
  144. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts +8 -0
  145. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts.map +1 -1
  146. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +537 -676
  147. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js.map +1 -1
  148. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +18 -58
  149. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +14 -45
  150. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +18 -76
  151. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +24 -82
  152. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +8 -37
  153. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +36 -120
  154. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +63 -145
  155. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +12 -44
  156. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +4 -14
  157. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +25 -81
  158. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +24 -82
  159. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +20 -63
  160. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts.map +1 -1
  161. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +74 -247
  162. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js.map +1 -1
  163. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +13 -61
  164. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +15 -64
  165. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +45 -144
  166. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_init.js +95 -203
  167. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_sync.js +37 -79
  168. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/builder.js +2 -2
  169. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/runner.js +17 -19
  170. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/state.js +11 -58
  171. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/template.js +25 -73
  172. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_init.js +95 -205
  173. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_sync.js +37 -78
  174. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/builder.js +2 -2
  175. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/runner.js +17 -19
  176. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/state.js +11 -58
  177. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/template.js +25 -71
  178. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/coroutines/runner.js +85 -163
  179. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/state.js +4 -10
  180. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/template.js +27 -72
  181. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +423 -773
  182. package/bin/src/forms/domains/dispatched-forms/runner/state.js +38 -62
  183. package/bin/src/forms/domains/dispatched-forms/runner/template.js +25 -78
  184. package/bin/src/forms/domains/launcher/coroutines/runner.js +45 -120
  185. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +101 -240
  186. package/bin/src/forms/domains/launcher/domains/create/state.js +17 -62
  187. package/bin/src/forms/domains/launcher/domains/create/template.js +42 -84
  188. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +103 -242
  189. package/bin/src/forms/domains/launcher/domains/edit/state.js +17 -62
  190. package/bin/src/forms/domains/launcher/domains/edit/template.js +43 -86
  191. package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
  192. package/bin/src/forms/domains/launcher/domains/merger/state.js +26 -35
  193. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +42 -88
  194. package/bin/src/forms/domains/launcher/domains/passthrough/state.js +19 -44
  195. package/bin/src/forms/domains/launcher/domains/passthrough/template.js +34 -56
  196. package/bin/src/forms/domains/launcher/state.js +6 -6
  197. package/bin/src/forms/domains/launcher/template.js +85 -169
  198. package/bin/src/forms/domains/parser/coroutines/runner.js +25 -87
  199. package/bin/src/forms/domains/parser/domains/built-ins/state.js +533 -944
  200. package/bin/src/forms/domains/parser/domains/deltas/state.js +318 -444
  201. package/bin/src/forms/domains/parser/domains/injectables/state.js +26 -29
  202. package/bin/src/forms/domains/parser/domains/layout/state.d.ts +1 -1
  203. package/bin/src/forms/domains/parser/domains/layout/state.d.ts.map +1 -1
  204. package/bin/src/forms/domains/parser/domains/layout/state.js +183 -265
  205. package/bin/src/forms/domains/parser/domains/layout/state.js.map +1 -1
  206. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +162 -324
  207. package/bin/src/forms/domains/parser/domains/predicates/state.js +979 -1509
  208. package/bin/src/forms/domains/parser/domains/renderer/state.js +480 -1137
  209. package/bin/src/forms/domains/parser/domains/types/state.js +170 -355
  210. package/bin/src/forms/domains/parser/domains/validator/state.js +280 -417
  211. package/bin/src/forms/domains/parser/state.js +373 -612
  212. package/bin/src/forms/domains/parser/template.js +1 -1
  213. package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
  214. package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +19 -38
  215. package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
  216. package/bin/src/forms/domains/primitives/domains/boolean/template.js +19 -38
  217. package/bin/src/forms/domains/primitives/domains/date/state.js +9 -18
  218. package/bin/src/forms/domains/primitives/domains/date/template.js +25 -51
  219. package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
  220. package/bin/src/forms/domains/primitives/domains/enum/template.js +48 -117
  221. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
  222. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +40 -99
  223. package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
  224. package/bin/src/forms/domains/primitives/domains/list/template.js +71 -200
  225. package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
  226. package/bin/src/forms/domains/primitives/domains/map/template.js +103 -294
  227. package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
  228. package/bin/src/forms/domains/primitives/domains/number/template.js +19 -38
  229. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +16 -33
  230. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +62 -171
  231. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
  232. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +69 -182
  233. package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
  234. package/bin/src/forms/domains/primitives/domains/secret/template.js +19 -38
  235. package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
  236. package/bin/src/forms/domains/primitives/domains/string/template.js +22 -42
  237. package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
  238. package/bin/src/forms/domains/primitives/domains/sum/template.js +50 -141
  239. package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
  240. package/bin/src/forms/domains/primitives/domains/tuple/template.js +33 -100
  241. package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
  242. package/bin/src/forms/domains/primitives/domains/unit/template.js +9 -22
  243. package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
  244. package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
  245. package/bin/src/forms/domains/singleton/state.js +10 -12
  246. package/bin/src/forms/domains/singleton/template.js +113 -288
  247. package/bin/src/fun/domains/curry/state.d.ts +2 -4
  248. package/bin/src/fun/domains/curry/state.js +1 -1
  249. package/bin/src/fun/domains/id/state.d.ts +1 -1
  250. package/bin/src/fun/domains/id/state.js +1 -1
  251. package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +41 -57
  252. package/bin/src/fun/domains/predicate/domains/bool-expr.js +67 -76
  253. package/bin/src/fun/domains/predicate/state.d.ts +7 -9
  254. package/bin/src/fun/domains/predicate/state.js +10 -14
  255. package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
  256. package/bin/src/fun/domains/simpleCallback/state.js +1 -1
  257. package/bin/src/fun/domains/uncurry/state.d.ts +2 -4
  258. package/bin/src/fun/domains/uncurry/state.js +1 -1
  259. package/bin/src/fun/domains/unit/state.d.ts +1 -1
  260. package/bin/src/fun/domains/unit/state.js +1 -1
  261. package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +7 -22
  262. package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +10 -18
  263. package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +13 -24
  264. package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +10 -40
  265. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +13 -19
  266. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +9 -20
  267. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +13 -24
  268. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +11 -47
  269. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +8 -20
  270. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +5 -17
  271. package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
  272. package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
  273. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +4 -13
  274. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +4 -6
  275. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +22 -60
  276. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +31 -42
  277. package/bin/src/fun/domains/updater/state.d.ts +4 -4
  278. package/bin/src/fun/domains/updater/state.js +10 -12
  279. package/bin/src/fun/state.d.ts +3 -3
  280. package/bin/src/fun/state.js +7 -9
  281. package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
  282. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +20 -47
  283. package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
  284. package/bin/src/infinite-data-stream/state.d.ts +51 -84
  285. package/bin/src/infinite-data-stream/state.js +61 -125
  286. package/bin/src/infinite-data-stream/template.js +2 -3
  287. package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
  288. package/bin/src/math/domains/DOMRect/state.js +8 -10
  289. package/bin/src/math/domains/number/state.d.ts +5 -5
  290. package/bin/src/math/domains/number/state.js +5 -5
  291. package/bin/src/math/domains/rect/state.d.ts +8 -8
  292. package/bin/src/math/domains/rect/state.js +15 -16
  293. package/bin/src/math/domains/rgba/state.d.ts +17 -17
  294. package/bin/src/math/domains/rgba/state.js +81 -77
  295. package/bin/src/math/domains/size2/state.d.ts +8 -8
  296. package/bin/src/math/domains/size2/state.js +6 -6
  297. package/bin/src/math/domains/vector2/state.d.ts +10 -10
  298. package/bin/src/math/domains/vector2/state.js +8 -8
  299. package/bin/src/queue/state.d.ts +2 -2
  300. package/bin/src/queue/state.d.ts.map +1 -1
  301. package/bin/src/queue/state.js +2 -2
  302. package/bin/src/queue/state.js.map +1 -1
  303. package/bin/src/state/domains/repository/state.d.ts +9 -15
  304. package/bin/src/state/domains/repository/state.js +1 -1
  305. package/bin/src/template/state.js +115 -163
  306. package/bin/src/validation/state.js +45 -38
  307. package/bin/src/value/domains/mutable-value/state.js +2 -3
  308. package/bin/src/value/state.d.ts +9 -9
  309. package/bin/src/value/state.js +8 -11
  310. package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
  311. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +20 -55
  312. package/bin/src/value-infinite-data-stream/coroutines/runner.js +4 -6
  313. package/bin/src/value-infinite-data-stream/state.js +77 -199
  314. package/bin/src/value-infinite-data-stream/template.js +2 -4
  315. package/bin/src/visibility/state.d.ts +2 -5
  316. package/bin/src/visibility/state.js +1 -1
  317. package/package.json +1 -1
  318. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +32 -15
  319. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.tsx +16 -3
  320. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.ts +1 -0
  321. package/src/forms/domains/parser/domains/layout/state.ts +11 -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