ballerina-core 1.0.187 → 1.0.189

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 (488) hide show
  1. package/bin/main.d.ts +1 -1
  2. package/bin/main.js +1 -1
  3. package/bin/src/api-response-handler/coroutines/runner.d.ts +2 -9
  4. package/bin/src/api-response-handler/coroutines/runner.js +13 -20
  5. package/bin/src/api-response-handler/state.d.ts +12 -12
  6. package/bin/src/api-response-handler/state.js +11 -13
  7. package/bin/src/apiResultStatus/state.d.ts +3 -10
  8. package/bin/src/apiResultStatus/state.js +5 -2
  9. package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.d.ts +75 -400
  10. package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.js +196 -314
  11. package/bin/src/async/domains/mirroring/domains/collection/state.d.ts +25 -38
  12. package/bin/src/async/domains/mirroring/domains/collection/state.js +36 -126
  13. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.d.ts +8 -12
  14. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.js +11 -18
  15. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.d.ts +9 -12
  16. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.js +19 -19
  17. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.d.ts +8 -17
  18. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.js +1 -1
  19. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.d.ts +13 -16
  20. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.js +18 -18
  21. package/bin/src/async/domains/mirroring/domains/entity/state.d.ts +9 -12
  22. package/bin/src/async/domains/mirroring/domains/entity/state.js +9 -18
  23. package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.d.ts +41 -233
  24. package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.js +83 -134
  25. package/bin/src/async/domains/mirroring/domains/singleton/state.d.ts +15 -24
  26. package/bin/src/async/domains/mirroring/domains/singleton/state.js +8 -52
  27. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.d.ts +2 -5
  28. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.js +1 -1
  29. package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.d.ts +10 -16
  30. package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.js +4 -7
  31. package/bin/src/async/domains/promise/state.d.ts +4 -9
  32. package/bin/src/async/domains/promise/state.js +9 -20
  33. package/bin/src/async/domains/synchronized/coroutines/synchronize.d.ts +4 -29
  34. package/bin/src/async/domains/synchronized/coroutines/synchronize.js +28 -80
  35. package/bin/src/async/domains/synchronized/state.d.ts +7 -14
  36. package/bin/src/async/domains/synchronized/state.js +6 -16
  37. package/bin/src/async/state.d.ts +45 -56
  38. package/bin/src/async/state.js +97 -115
  39. package/bin/src/baseEntity/domains/identifiable/state.d.ts +11 -15
  40. package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
  41. package/bin/src/collections/domains/array/state.d.ts +7 -7
  42. package/bin/src/collections/domains/array/state.js +5 -5
  43. package/bin/src/collections/domains/errors/state.d.ts +10 -10
  44. package/bin/src/collections/domains/errors/state.js +10 -10
  45. package/bin/src/collections/domains/immutable/domains/list/state.d.ts +15 -19
  46. package/bin/src/collections/domains/immutable/domains/list/state.js +44 -46
  47. package/bin/src/collections/domains/immutable/domains/map/state.d.ts +16 -30
  48. package/bin/src/collections/domains/immutable/domains/map/state.js +23 -41
  49. package/bin/src/collections/domains/immutable/domains/orderedMap/state.d.ts +25 -53
  50. package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +65 -84
  51. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
  52. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
  53. package/bin/src/collections/domains/maybe/state.d.ts +9 -9
  54. package/bin/src/collections/domains/maybe/state.js +9 -12
  55. package/bin/src/collections/domains/product/state.d.ts +19 -25
  56. package/bin/src/collections/domains/product/state.js +10 -13
  57. package/bin/src/collections/domains/sum/state.d.ts +77 -101
  58. package/bin/src/collections/domains/sum/state.js +32 -49
  59. package/bin/src/collections/domains/valueOrErrors/state.d.ts +27 -53
  60. package/bin/src/collections/domains/valueOrErrors/state.js +56 -81
  61. package/bin/src/coroutines/builder.d.ts +49 -135
  62. package/bin/src/coroutines/builder.js +19 -40
  63. package/bin/src/coroutines/state.d.ts +71 -186
  64. package/bin/src/coroutines/state.js +306 -381
  65. package/bin/src/coroutines/template.d.ts +8 -17
  66. package/bin/src/coroutines/template.js +59 -97
  67. package/bin/src/debounced/coroutines/debounce.d.ts +6 -15
  68. package/bin/src/debounced/coroutines/debounce.js +89 -115
  69. package/bin/src/debounced/state.d.ts +19 -26
  70. package/bin/src/debounced/state.js +25 -62
  71. package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
  72. package/bin/src/diagnostics/domains/message-box/state.js +3 -3
  73. package/bin/src/foreignMutations/state.d.ts +3 -3
  74. package/bin/src/foreignMutations/state.js +1 -1
  75. package/bin/src/forms/domains/attachments/views/attachments-view.d.ts +4 -4
  76. package/bin/src/forms/domains/attachments/views/attachments-view.js +8 -30
  77. package/bin/src/forms/domains/collection/domains/reference/state.d.ts +22 -29
  78. package/bin/src/forms/domains/collection/domains/reference/state.js +20 -26
  79. package/bin/src/forms/domains/collection/domains/selection/state.d.ts +15 -37
  80. package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
  81. package/bin/src/forms/domains/dispatched-forms/built-ins/state.d.ts +105 -512
  82. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +530 -1405
  83. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.d.ts +2 -22
  84. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +44 -128
  85. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.d.ts +63 -82
  86. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.js +86 -172
  87. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.d.ts +19 -35
  88. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +27 -40
  89. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.d.ts +28 -60
  90. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.js +40 -76
  91. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.d.ts +56 -121
  92. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.js +59 -102
  93. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.d.ts +15 -42
  94. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.js +29 -64
  95. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.d.ts +29 -70
  96. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.js +20 -52
  97. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.d.ts +18 -61
  98. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.js +33 -88
  99. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.d.ts +10 -20
  100. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +13 -21
  101. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.d.ts +11 -42
  102. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js +18 -59
  103. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.d.ts +18 -46
  104. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.js +48 -110
  105. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.d.ts +14 -29
  106. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +27 -43
  107. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.d.ts +19 -49
  108. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.js +23 -63
  109. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.d.ts +13 -21
  110. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +22 -39
  111. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.d.ts +10 -39
  112. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.js +11 -46
  113. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts +34 -79
  114. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js +46 -146
  115. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.d.ts +13 -37
  116. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.js +29 -64
  117. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.d.ts +15 -40
  118. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.js +33 -78
  119. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.d.ts +18 -101
  120. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js +59 -149
  121. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts +155 -277
  122. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +375 -715
  123. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.d.ts +51 -103
  124. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.js +94 -252
  125. package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts +80 -302
  126. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +55 -174
  127. package/bin/src/forms/domains/dispatched-forms/deserializer/template.d.ts +2 -27
  128. package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +2 -3
  129. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts +4 -27
  130. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js +82 -136
  131. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.d.ts +7 -35
  132. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
  133. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.d.ts +4 -28
  134. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +23 -49
  135. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.d.ts +7 -32
  136. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
  137. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.d.ts +4 -25
  138. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +23 -49
  139. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.d.ts +19 -56
  140. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +6 -18
  141. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.d.ts +7 -29
  142. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +30 -64
  143. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.d.ts +15 -42
  144. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +6 -9
  145. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.d.ts +8 -40
  146. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +59 -150
  147. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.d.ts +11 -45
  148. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
  149. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.d.ts +8 -42
  150. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +50 -127
  151. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.d.ts +19 -55
  152. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +22 -40
  153. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.d.ts +27 -75
  154. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +10 -19
  155. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.d.ts +6 -50
  156. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +95 -289
  157. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.d.ts +7 -39
  158. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.d.ts.map +1 -1
  159. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
  160. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.d.ts +4 -44
  161. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.d.ts.map +1 -1
  162. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +8 -26
  163. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js.map +1 -1
  164. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.d.ts +26 -103
  165. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +18 -61
  166. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.d.ts +9 -64
  167. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +89 -308
  168. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.d.ts +7 -37
  169. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
  170. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.d.ts +4 -29
  171. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +23 -54
  172. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.d.ts +44 -181
  173. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +77 -184
  174. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.d.ts +175 -418
  175. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +20 -76
  176. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.d.ts +12 -66
  177. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +212 -581
  178. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.d.ts +21 -80
  179. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +11 -32
  180. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.d.ts +10 -57
  181. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +61 -190
  182. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.d.ts +49 -123
  183. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +13 -35
  184. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.d.ts +8 -45
  185. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +68 -195
  186. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.d.ts +51 -121
  187. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +13 -36
  188. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.d.ts +8 -45
  189. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +106 -246
  190. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.d.ts +8 -38
  191. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
  192. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.d.ts +4 -29
  193. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +23 -54
  194. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.d.ts +34 -58
  195. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +13 -24
  196. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.d.ts +8 -38
  197. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
  198. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.d.ts +4 -29
  199. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +26 -58
  200. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.d.ts +29 -92
  201. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +7 -22
  202. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.d.ts +7 -55
  203. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +48 -162
  204. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.d.ts +22 -81
  205. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +40 -89
  206. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.d.ts +154 -324
  207. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +56 -117
  208. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts +9 -69
  209. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.d.ts.map +1 -1
  210. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +185 -496
  211. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js.map +1 -1
  212. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.d.ts +18 -75
  213. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +8 -20
  214. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.d.ts +6 -51
  215. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +32 -121
  216. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.d.ts +18 -76
  217. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +8 -21
  218. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.d.ts +6 -51
  219. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +31 -90
  220. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.d.ts +13 -45
  221. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +9 -12
  222. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.d.ts +6 -29
  223. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +20 -54
  224. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts +437 -600
  225. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.d.ts.map +1 -1
  226. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +516 -668
  227. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js.map +1 -1
  228. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.d.ts +5 -24
  229. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +16 -51
  230. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.d.ts +6 -26
  231. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.d.ts.map +1 -1
  232. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +13 -39
  233. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js.map +1 -1
  234. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.d.ts +5 -23
  235. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +16 -68
  236. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.d.ts +5 -22
  237. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +22 -76
  238. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.d.ts +6 -41
  239. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +8 -37
  240. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.d.ts +7 -57
  241. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.d.ts.map +1 -1
  242. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +31 -113
  243. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js.map +1 -1
  244. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.d.ts +5 -22
  245. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +61 -139
  246. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.d.ts +5 -26
  247. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +4 -14
  248. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.d.ts +6 -49
  249. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +25 -79
  250. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.d.ts +5 -22
  251. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +22 -76
  252. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.d.ts +5 -25
  253. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +18 -55
  254. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts +7 -54
  255. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts.map +1 -1
  256. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +48 -160
  257. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js.map +1 -1
  258. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.d.ts +5 -25
  259. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +11 -54
  260. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.d.ts +5 -25
  261. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +15 -63
  262. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.d.ts +6 -44
  263. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +43 -135
  264. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.d.ts +18 -38
  265. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +381 -697
  266. package/bin/src/forms/domains/dispatched-forms/runner/state.d.ts +37 -90
  267. package/bin/src/forms/domains/dispatched-forms/runner/state.js +9 -12
  268. package/bin/src/forms/domains/dispatched-forms/runner/template.d.ts +4 -28
  269. package/bin/src/forms/domains/dispatched-forms/runner/template.js +19 -47
  270. package/bin/src/forms/domains/launcher/coroutines/runner.d.ts +4 -12
  271. package/bin/src/forms/domains/launcher/coroutines/runner.js +45 -120
  272. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.d.ts +3 -16
  273. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +101 -240
  274. package/bin/src/forms/domains/launcher/domains/create/state.d.ts +121 -236
  275. package/bin/src/forms/domains/launcher/domains/create/state.js +17 -62
  276. package/bin/src/forms/domains/launcher/domains/create/template.d.ts +6 -20
  277. package/bin/src/forms/domains/launcher/domains/create/template.js +42 -84
  278. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.d.ts +3 -16
  279. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +103 -242
  280. package/bin/src/forms/domains/launcher/domains/edit/state.d.ts +121 -230
  281. package/bin/src/forms/domains/launcher/domains/edit/state.js +17 -62
  282. package/bin/src/forms/domains/launcher/domains/edit/template.d.ts +6 -20
  283. package/bin/src/forms/domains/launcher/domains/edit/template.js +43 -86
  284. package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
  285. package/bin/src/forms/domains/launcher/domains/merger/state.js +26 -35
  286. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.d.ts +5 -20
  287. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +42 -88
  288. package/bin/src/forms/domains/launcher/domains/passthrough/state.d.ts +58 -123
  289. package/bin/src/forms/domains/launcher/domains/passthrough/state.js +19 -44
  290. package/bin/src/forms/domains/launcher/domains/passthrough/template.d.ts +6 -23
  291. package/bin/src/forms/domains/launcher/domains/passthrough/template.js +34 -56
  292. package/bin/src/forms/domains/launcher/state.d.ts +43 -62
  293. package/bin/src/forms/domains/launcher/state.js +6 -6
  294. package/bin/src/forms/domains/launcher/template.d.ts +15 -35
  295. package/bin/src/forms/domains/launcher/template.js +85 -169
  296. package/bin/src/forms/domains/parser/coroutines/runner.d.ts +5 -13
  297. package/bin/src/forms/domains/parser/coroutines/runner.js +25 -87
  298. package/bin/src/forms/domains/parser/domains/built-ins/state.d.ts +71 -135
  299. package/bin/src/forms/domains/parser/domains/built-ins/state.js +533 -944
  300. package/bin/src/forms/domains/parser/domains/deltas/state.d.ts +296 -417
  301. package/bin/src/forms/domains/parser/domains/deltas/state.js +318 -444
  302. package/bin/src/forms/domains/parser/domains/injectables/state.d.ts +20 -29
  303. package/bin/src/forms/domains/parser/domains/injectables/state.js +26 -29
  304. package/bin/src/forms/domains/parser/domains/layout/state.d.ts +41 -63
  305. package/bin/src/forms/domains/parser/domains/layout/state.js +136 -214
  306. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.d.ts +6 -19
  307. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +152 -306
  308. package/bin/src/forms/domains/parser/domains/predicates/state.d.ts +242 -377
  309. package/bin/src/forms/domains/parser/domains/predicates/state.js +752 -1225
  310. package/bin/src/forms/domains/parser/domains/renderer/state.d.ts +92 -245
  311. package/bin/src/forms/domains/parser/domains/renderer/state.js +480 -1137
  312. package/bin/src/forms/domains/parser/domains/types/state.d.ts +130 -170
  313. package/bin/src/forms/domains/parser/domains/types/state.js +170 -355
  314. package/bin/src/forms/domains/parser/domains/validator/state.d.ts +117 -143
  315. package/bin/src/forms/domains/parser/domains/validator/state.js +280 -417
  316. package/bin/src/forms/domains/parser/state.d.ts +82 -217
  317. package/bin/src/forms/domains/parser/state.js +373 -612
  318. package/bin/src/forms/domains/parser/template.d.ts +5 -13
  319. package/bin/src/forms/domains/parser/template.js +1 -1
  320. package/bin/src/forms/domains/primitives/domains/base-64-file/state.d.ts +11 -19
  321. package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
  322. package/bin/src/forms/domains/primitives/domains/base-64-file/template.d.ts +7 -18
  323. package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +19 -38
  324. package/bin/src/forms/domains/primitives/domains/boolean/state.d.ts +11 -19
  325. package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
  326. package/bin/src/forms/domains/primitives/domains/boolean/template.d.ts +8 -24
  327. package/bin/src/forms/domains/primitives/domains/boolean/template.js +19 -38
  328. package/bin/src/forms/domains/primitives/domains/date/state.d.ts +20 -39
  329. package/bin/src/forms/domains/primitives/domains/date/state.js +9 -18
  330. package/bin/src/forms/domains/primitives/domains/date/template.d.ts +7 -18
  331. package/bin/src/forms/domains/primitives/domains/date/template.js +25 -51
  332. package/bin/src/forms/domains/primitives/domains/enum/state.d.ts +15 -31
  333. package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
  334. package/bin/src/forms/domains/primitives/domains/enum/template.d.ts +7 -18
  335. package/bin/src/forms/domains/primitives/domains/enum/template.js +48 -117
  336. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.d.ts +8 -17
  337. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
  338. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.d.ts +7 -18
  339. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +40 -99
  340. package/bin/src/forms/domains/primitives/domains/list/state.d.ts +24 -45
  341. package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
  342. package/bin/src/forms/domains/primitives/domains/list/template.d.ts +13 -38
  343. package/bin/src/forms/domains/primitives/domains/list/template.js +71 -200
  344. package/bin/src/forms/domains/primitives/domains/map/state.d.ts +29 -68
  345. package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
  346. package/bin/src/forms/domains/primitives/domains/map/template.d.ts +25 -65
  347. package/bin/src/forms/domains/primitives/domains/map/template.js +103 -294
  348. package/bin/src/forms/domains/primitives/domains/number/state.d.ts +11 -19
  349. package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
  350. package/bin/src/forms/domains/primitives/domains/number/template.d.ts +8 -24
  351. package/bin/src/forms/domains/primitives/domains/number/template.js +19 -38
  352. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.d.ts +42 -89
  353. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +16 -33
  354. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.d.ts +8 -22
  355. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +62 -171
  356. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.d.ts +9 -18
  357. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
  358. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.d.ts +7 -18
  359. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +69 -182
  360. package/bin/src/forms/domains/primitives/domains/secret/state.d.ts +11 -19
  361. package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
  362. package/bin/src/forms/domains/primitives/domains/secret/template.d.ts +7 -18
  363. package/bin/src/forms/domains/primitives/domains/secret/template.js +19 -38
  364. package/bin/src/forms/domains/primitives/domains/string/state.d.ts +13 -21
  365. package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
  366. package/bin/src/forms/domains/primitives/domains/string/template.d.ts +7 -18
  367. package/bin/src/forms/domains/primitives/domains/string/template.js +22 -42
  368. package/bin/src/forms/domains/primitives/domains/sum/state.d.ts +22 -62
  369. package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
  370. package/bin/src/forms/domains/primitives/domains/sum/template.d.ts +16 -48
  371. package/bin/src/forms/domains/primitives/domains/sum/template.js +50 -141
  372. package/bin/src/forms/domains/primitives/domains/tuple/state.d.ts +23 -48
  373. package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
  374. package/bin/src/forms/domains/primitives/domains/tuple/template.d.ts +18 -46
  375. package/bin/src/forms/domains/primitives/domains/tuple/template.js +33 -100
  376. package/bin/src/forms/domains/primitives/domains/unit/state.d.ts +10 -17
  377. package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
  378. package/bin/src/forms/domains/primitives/domains/unit/template.d.ts +4 -9
  379. package/bin/src/forms/domains/primitives/domains/unit/template.js +9 -22
  380. package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
  381. package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
  382. package/bin/src/forms/domains/singleton/domains/mapping/state.d.ts +71 -0
  383. package/bin/src/forms/domains/singleton/domains/mapping/state.d.ts.map +1 -0
  384. package/bin/src/forms/domains/singleton/domains/mapping/state.js +91 -0
  385. package/bin/src/forms/domains/singleton/domains/mapping/state.js.map +1 -0
  386. package/bin/src/forms/domains/singleton/domains/mapping/template.d.ts +79 -0
  387. package/bin/src/forms/domains/singleton/domains/mapping/template.d.ts.map +1 -0
  388. package/bin/src/forms/domains/singleton/domains/mapping/template.js +20 -0
  389. package/bin/src/forms/domains/singleton/domains/mapping/template.js.map +1 -0
  390. package/bin/src/forms/domains/singleton/state.d.ts +43 -144
  391. package/bin/src/forms/domains/singleton/state.js +10 -12
  392. package/bin/src/forms/domains/singleton/template.d.ts +88 -177
  393. package/bin/src/forms/domains/singleton/template.js +113 -288
  394. package/bin/src/forms/domains/singleton-table/coroutines/runner.d.ts +8 -0
  395. package/bin/src/forms/domains/singleton-table/coroutines/runner.d.ts.map +1 -0
  396. package/bin/src/forms/domains/singleton-table/coroutines/runner.js +62 -0
  397. package/bin/src/forms/domains/singleton-table/coroutines/runner.js.map +1 -0
  398. package/bin/src/forms/domains/singleton-table/state.d.ts +130 -0
  399. package/bin/src/forms/domains/singleton-table/state.d.ts.map +1 -0
  400. package/bin/src/forms/domains/singleton-table/state.js +72 -0
  401. package/bin/src/forms/domains/singleton-table/state.js.map +1 -0
  402. package/bin/src/forms/domains/singleton-table/template.d.ts +25 -0
  403. package/bin/src/forms/domains/singleton-table/template.d.ts.map +1 -0
  404. package/bin/src/forms/domains/singleton-table/template.js +283 -0
  405. package/bin/src/forms/domains/singleton-table/template.js.map +1 -0
  406. package/bin/src/fun/domains/curry/state.d.ts +2 -4
  407. package/bin/src/fun/domains/curry/state.js +1 -1
  408. package/bin/src/fun/domains/id/state.d.ts +1 -1
  409. package/bin/src/fun/domains/id/state.js +1 -1
  410. package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +41 -57
  411. package/bin/src/fun/domains/predicate/domains/bool-expr.js +67 -76
  412. package/bin/src/fun/domains/predicate/state.d.ts +7 -9
  413. package/bin/src/fun/domains/predicate/state.js +10 -14
  414. package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
  415. package/bin/src/fun/domains/simpleCallback/state.js +1 -1
  416. package/bin/src/fun/domains/uncurry/state.d.ts +2 -4
  417. package/bin/src/fun/domains/uncurry/state.js +1 -1
  418. package/bin/src/fun/domains/unit/state.d.ts +1 -1
  419. package/bin/src/fun/domains/unit/state.js +1 -1
  420. package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +7 -22
  421. package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +10 -18
  422. package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +13 -24
  423. package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +10 -40
  424. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +13 -19
  425. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +9 -20
  426. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +13 -24
  427. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +11 -47
  428. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +8 -20
  429. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +5 -17
  430. package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
  431. package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
  432. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +4 -13
  433. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +4 -6
  434. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +22 -60
  435. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +31 -42
  436. package/bin/src/fun/domains/updater/state.d.ts +4 -4
  437. package/bin/src/fun/domains/updater/state.js +10 -12
  438. package/bin/src/fun/state.d.ts +3 -3
  439. package/bin/src/fun/state.js +7 -9
  440. package/bin/src/infinite-data-stream/coroutines/builder.d.ts +27 -209
  441. package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
  442. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.d.ts +5 -21
  443. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +20 -47
  444. package/bin/src/infinite-data-stream/coroutines/runner.d.ts +3 -11
  445. package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
  446. package/bin/src/infinite-data-stream/state.d.ts +51 -84
  447. package/bin/src/infinite-data-stream/state.js +61 -125
  448. package/bin/src/infinite-data-stream/template.d.ts +3 -10
  449. package/bin/src/infinite-data-stream/template.js +2 -3
  450. package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
  451. package/bin/src/math/domains/DOMRect/state.js +8 -10
  452. package/bin/src/math/domains/number/state.d.ts +5 -5
  453. package/bin/src/math/domains/number/state.js +5 -5
  454. package/bin/src/math/domains/rect/state.d.ts +8 -8
  455. package/bin/src/math/domains/rect/state.js +15 -16
  456. package/bin/src/math/domains/rgba/state.d.ts +17 -17
  457. package/bin/src/math/domains/rgba/state.js +81 -77
  458. package/bin/src/math/domains/size2/state.d.ts +8 -8
  459. package/bin/src/math/domains/size2/state.js +6 -6
  460. package/bin/src/math/domains/vector2/state.d.ts +10 -10
  461. package/bin/src/math/domains/vector2/state.js +8 -8
  462. package/bin/src/queue/state.d.ts +7 -23
  463. package/bin/src/queue/state.js +16 -23
  464. package/bin/src/state/domains/repository/state.d.ts +9 -15
  465. package/bin/src/state/domains/repository/state.js +1 -1
  466. package/bin/src/template/state.d.ts +45 -153
  467. package/bin/src/template/state.js +115 -163
  468. package/bin/src/validation/state.d.ts +9 -23
  469. package/bin/src/validation/state.js +45 -38
  470. package/bin/src/value/domains/mutable-value/state.d.ts +3 -3
  471. package/bin/src/value/domains/mutable-value/state.js +2 -3
  472. package/bin/src/value/state.d.ts +9 -9
  473. package/bin/src/value/state.js +8 -11
  474. package/bin/src/value-infinite-data-stream/coroutines/builder.d.ts +25 -207
  475. package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
  476. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.d.ts +2 -4
  477. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +20 -55
  478. package/bin/src/value-infinite-data-stream/coroutines/runner.d.ts +2 -8
  479. package/bin/src/value-infinite-data-stream/coroutines/runner.js +4 -6
  480. package/bin/src/value-infinite-data-stream/state.d.ts +66 -132
  481. package/bin/src/value-infinite-data-stream/state.js +75 -187
  482. package/bin/src/value-infinite-data-stream/template.d.ts +2 -7
  483. package/bin/src/value-infinite-data-stream/template.js +2 -4
  484. package/bin/src/visibility/state.d.ts +2 -5
  485. package/bin/src/visibility/state.js +1 -1
  486. package/package.json +1 -1
  487. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.tsx +18 -3
  488. package/src/forms/domains/parser/domains/predicates/domains/extractor/state.ts +1 -0
@@ -1,1449 +1,574 @@
1
1
  import { Map, List, OrderedMap } from "immutable";
2
- import {
3
- CollectionReference,
4
- EnumReference,
5
- } from "../../collection/domains/reference/state";
2
+ import { CollectionReference, EnumReference, } from "../../collection/domains/reference/state";
6
3
  import { ValueOrErrors } from "../../../../collections/domains/valueOrErrors/state";
7
- import {
8
- PredicateValue,
9
- replaceWith,
10
- Sum,
11
- unit,
12
- RecordAbstractRendererState,
13
- TableAbstractRendererState,
14
- MapRepo,
15
- ValueTable,
16
- DispatchCommonFormState,
17
- UnionAbstractRendererState,
18
- OneAbstractRendererState,
19
- } from "../../../../../main";
20
- import { DispatchParsedType } from "../deserializer/domains/specification/domains/types/state";
21
- import { UnitAbstractRendererState } from "../runner/domains/abstract-renderers/unit/state";
22
- import { StringAbstractRendererState } from "../runner/domains/abstract-renderers/string/state";
23
- import { NumberAbstractRendererState } from "../runner/domains/abstract-renderers/number/state";
24
- import { BoolAbstractRendererState } from "../runner/domains/abstract-renderers/boolean/state";
25
- import { DateAbstractRendererState } from "../runner/domains/abstract-renderers/date/state";
26
- import { Base64FileAbstractRendererState } from "../runner/domains/abstract-renderers/base-64-file/state";
27
- import { SecretAbstractRendererState } from "../runner/domains/abstract-renderers/secret/state";
28
- import { MapAbstractRendererState } from "../runner/domains/abstract-renderers/map/state";
29
- import { TupleAbstractRendererState } from "../runner/domains/abstract-renderers/tuple/state";
30
- import { SumAbstractRendererState } from "../runner/domains/abstract-renderers/sum/state";
31
- import { EnumAbstractRendererState } from "../runner/domains/abstract-renderers/enum/state";
32
- import { ListAbstractRendererState } from "../runner/domains/abstract-renderers/list/state";
33
- import { SearchableInfiniteStreamAbstractRendererState } from "../runner/domains/abstract-renderers/searchable-infinite-stream/state";
4
+ import { PredicateValue, replaceWith, Sum, unit, RecordAbstractRendererState, TableAbstractRendererState, MapRepo, ValueTable, DispatchCommonFormState, UnionAbstractRendererState, OneAbstractRendererState, } from "../../../../../main";
5
+ import { DispatchParsedType, } from "../deserializer/domains/specification/domains/types/state";
6
+ import { UnitAbstractRendererState, } from "../runner/domains/abstract-renderers/unit/state";
7
+ import { StringAbstractRendererState, } from "../runner/domains/abstract-renderers/string/state";
8
+ import { NumberAbstractRendererState, } from "../runner/domains/abstract-renderers/number/state";
9
+ import { BoolAbstractRendererState, } from "../runner/domains/abstract-renderers/boolean/state";
10
+ import { DateAbstractRendererState, } from "../runner/domains/abstract-renderers/date/state";
11
+ import { Base64FileAbstractRendererState, } from "../runner/domains/abstract-renderers/base-64-file/state";
12
+ import { SecretAbstractRendererState, } from "../runner/domains/abstract-renderers/secret/state";
13
+ import { MapAbstractRendererState, } from "../runner/domains/abstract-renderers/map/state";
14
+ import { TupleAbstractRendererState, } from "../runner/domains/abstract-renderers/tuple/state";
15
+ import { SumAbstractRendererState, } from "../runner/domains/abstract-renderers/sum/state";
16
+ import { EnumAbstractRendererState, } from "../runner/domains/abstract-renderers/enum/state";
17
+ import { ListAbstractRendererState, } from "../runner/domains/abstract-renderers/list/state";
18
+ import { SearchableInfiniteStreamAbstractRendererState, } from "../runner/domains/abstract-renderers/searchable-infinite-stream/state";
34
19
  import { LookupRenderer } from "../deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state";
35
- const sortObjectKeys = (obj) =>
36
- Object.keys(obj)
20
+ const sortObjectKeys = (obj) => Object.keys(obj)
37
21
  .sort()
38
22
  .reduce((sortedObj, key) => {
39
- sortedObj[key] = obj[key];
40
- return sortedObj;
41
- }, {});
23
+ sortedObj[key] = obj[key];
24
+ return sortedObj;
25
+ }, {});
42
26
  const simpleMapKeyToIdentifer = (key) => {
43
- if (typeof key == "object") return JSON.stringify(sortObjectKeys(key));
44
- return JSON.stringify(key);
27
+ if (typeof key == "object")
28
+ return JSON.stringify(sortObjectKeys(key));
29
+ return JSON.stringify(key);
45
30
  };
46
31
  export const DispatchGenericTypes = [
47
- "SingleSelection",
48
- "MultiSelection",
49
- "List",
50
- "Map",
51
- "Union",
52
- "Tuple",
53
- "Option",
54
- "Sum",
55
- "KeyOf",
56
- "Table",
57
- "One",
32
+ "SingleSelection",
33
+ "MultiSelection",
34
+ "List",
35
+ "Map",
36
+ "Union",
37
+ "Tuple",
38
+ "Option",
39
+ "Sum",
40
+ "KeyOf",
41
+ "Table",
42
+ "One",
58
43
  ];
59
44
  export const concreteRendererToKind = (concreteRenderers) => (name) => {
60
- const viewTypes = Object.keys(concreteRenderers);
61
- for (const viewType of viewTypes) {
62
- if (name in concreteRenderers[viewType]) {
63
- return ValueOrErrors.Default.return(viewType);
45
+ const viewTypes = Object.keys(concreteRenderers);
46
+ for (const viewType of viewTypes) {
47
+ if (name in concreteRenderers[viewType]) {
48
+ return ValueOrErrors.Default.return(viewType);
49
+ }
64
50
  }
65
- }
66
- return ValueOrErrors.Default.throwOne(
67
- `cannot find view ${name} in concrete renderers`,
68
- );
51
+ return ValueOrErrors.Default.throwOne(`cannot find view ${name} in concrete renderers`);
69
52
  };
70
53
  export const tryGetConcreteRenderer = (concreteRenderers) => (kind, name) => {
71
- if (!concreteRenderers[kind]) {
72
- return ValueOrErrors.Default.throwOne(
73
- `cannot find concrete renderer kind "${kind}" in concrete renderers`,
74
- );
75
- }
76
- if (concreteRenderers[kind][name]) {
77
- return ValueOrErrors.Default.return(concreteRenderers[kind][name]());
78
- }
79
- return ValueOrErrors.Default.throwOne(
80
- `cannot find concrete renderer "${name}" in kind "${kind}"`,
81
- );
54
+ if (!concreteRenderers[kind]) {
55
+ return ValueOrErrors.Default.throwOne(`cannot find concrete renderer kind "${kind}" in concrete renderers`);
56
+ }
57
+ if (concreteRenderers[kind][name]) {
58
+ return ValueOrErrors.Default.return(concreteRenderers[kind][name]());
59
+ }
60
+ return ValueOrErrors.Default.throwOne(`cannot find concrete renderer "${name}" in kind "${kind}"`);
82
61
  };
83
- export const getDefaultRecordRenderer = (
84
- isNested,
85
- defaultRecordRenderer,
86
- defaultNestedRecordRenderer,
87
- ) => (isNested ? defaultNestedRecordRenderer() : defaultRecordRenderer());
88
- export const dispatchDefaultState =
89
- (
90
- infiniteStreamSources,
91
- injectedPrimitives,
92
- types,
93
- forms,
94
- converters,
95
- lookupSources,
96
- tableApiSources,
97
- ) =>
98
- (t, renderer) => {
62
+ export const getDefaultRecordRenderer = (isNested, defaultRecordRenderer, defaultNestedRecordRenderer) => (isNested ? defaultNestedRecordRenderer() : defaultRecordRenderer());
63
+ export const dispatchDefaultState = (infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources) => (t, renderer) => {
99
64
  const result = (() => {
100
- if (renderer == undefined) {
101
- return ValueOrErrors.Default.return(undefined);
102
- }
103
- if (renderer.kind == "lookupType-lookupRenderer") {
104
- return DispatchParsedType.Operations.ResolveLookupType(
105
- renderer.type.name,
106
- types,
107
- ).Then((resolvedType) =>
108
- LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then(
109
- (resolvedRenderer) =>
110
- dispatchDefaultState(
111
- infiniteStreamSources,
112
- injectedPrimitives,
113
- types,
114
- forms,
115
- converters,
116
- lookupSources,
117
- tableApiSources,
118
- )(resolvedType, resolvedRenderer),
119
- ),
120
- );
121
- }
122
- if (renderer.kind == "lookupType-inlinedRenderer") {
123
- return DispatchParsedType.Operations.ResolveLookupType(
124
- renderer.type.name,
125
- types,
126
- ).Then((resolvedType) =>
127
- dispatchDefaultState(
128
- infiniteStreamSources,
129
- injectedPrimitives,
130
- types,
131
- forms,
132
- converters,
133
- lookupSources,
134
- tableApiSources,
135
- )(resolvedType, renderer.inlinedRenderer),
136
- );
137
- }
138
- if (renderer.kind == "inlinedType-lookupRenderer") {
139
- return LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then(
140
- (resolvedRenderer) =>
141
- dispatchDefaultState(
142
- infiniteStreamSources,
143
- injectedPrimitives,
144
- types,
145
- forms,
146
- converters,
147
- lookupSources,
148
- tableApiSources,
149
- )(renderer.type, resolvedRenderer),
150
- );
151
- }
152
- if (t.kind == "primitive")
153
- return t.name == "unit"
154
- ? ValueOrErrors.Default.return(UnitAbstractRendererState.Default())
155
- : t.name == "boolean"
156
- ? ValueOrErrors.Default.return(BoolAbstractRendererState.Default())
157
- : t.name == "number"
158
- ? ValueOrErrors.Default.return(
159
- NumberAbstractRendererState.Default(),
160
- )
161
- : t.name == "string"
162
- ? ValueOrErrors.Default.return(
163
- StringAbstractRendererState.Default(),
164
- )
165
- : t.name == "base64File"
166
- ? ValueOrErrors.Default.return(
167
- Base64FileAbstractRendererState.Default(),
168
- )
169
- : t.name == "secret"
170
- ? ValueOrErrors.Default.return(
171
- SecretAbstractRendererState.Default(),
172
- )
173
- : t.name == "Date"
174
- ? ValueOrErrors.Default.return(
175
- DateAbstractRendererState.Default(),
176
- )
177
- : (injectedPrimitives === null ||
178
- injectedPrimitives === void 0
179
- ? void 0
180
- : injectedPrimitives.get(t.name)) != undefined
181
- ? ValueOrErrors.Default.return(
182
- Object.assign(
183
- {
184
- commonFormState:
185
- DispatchCommonFormState.Default(),
186
- },
187
- injectedPrimitives === null ||
188
- injectedPrimitives === void 0
189
- ? void 0
190
- : injectedPrimitives.get(t.name).defaultState,
191
- ),
192
- )
193
- : ValueOrErrors.Default.throwOne(
194
- `could not resolve defaultState for primitive renderer kind "${t.name}"`,
195
- );
196
- if (t.kind == "singleSelection")
197
- return renderer.kind == "enumRenderer"
198
- ? ValueOrErrors.Default.return(EnumAbstractRendererState().Default())
199
- : renderer.kind == "streamRenderer"
200
- ? infiniteStreamSources(renderer.stream).Then((streamSource) =>
201
- ValueOrErrors.Default.return(
202
- SearchableInfiniteStreamAbstractRendererState.Default(
203
- streamSource,
204
- ),
205
- ),
206
- )
207
- : ValueOrErrors.Default.throwOne(
208
- `received non singleSelection renderer kind "${renderer.kind}" when resolving defaultState for singleSelection`,
209
- );
210
- if (t.kind == "multiSelection")
211
- return renderer.kind == "enumRenderer"
212
- ? ValueOrErrors.Default.return(EnumAbstractRendererState().Default())
213
- : renderer.kind == "streamRenderer"
214
- ? infiniteStreamSources(renderer.stream).Then((streamSource) =>
215
- ValueOrErrors.Default.return(
216
- SearchableInfiniteStreamAbstractRendererState.Default(
217
- streamSource,
218
- ),
219
- ),
220
- )
221
- : ValueOrErrors.Default.throwOne(
222
- `received non multiSelection renderer kind "${renderer.kind}" when resolving defaultState for multiSelection`,
223
- );
224
- if (t.kind == "list")
225
- return renderer.kind == "listRenderer"
226
- ? ValueOrErrors.Default.return(
227
- ListAbstractRendererState.Default.zero(),
228
- )
229
- : ValueOrErrors.Default.throwOne(
230
- `received non list renderer kind "${renderer.kind}" when resolving defaultState for list`,
231
- );
232
- if (t.kind == "map")
233
- return renderer.kind == "mapRenderer"
234
- ? ValueOrErrors.Default.return(
235
- MapAbstractRendererState.Default.zero(),
236
- )
237
- : ValueOrErrors.Default.throwOne(
238
- `received non map renderer kind "${renderer.kind}" when resolving defaultState for map`,
239
- );
240
- if (t.kind == "tuple")
241
- return renderer.kind == "tupleRenderer"
242
- ? ValueOrErrors.Operations.All(
243
- List(
244
- t.args.map((_, index) =>
245
- dispatchDefaultState(
246
- infiniteStreamSources,
247
- injectedPrimitives,
248
- types,
249
- forms,
250
- converters,
251
- lookupSources,
252
- tableApiSources,
253
- )(_, renderer.itemRenderers[index].renderer).Then(
254
- (itemState) =>
255
- ValueOrErrors.Default.return([index, itemState]),
256
- ),
257
- ),
258
- ),
259
- ).Then((itemStates) =>
260
- ValueOrErrors.Default.return(
261
- TupleAbstractRendererState.Default(Map(itemStates)),
262
- ),
263
- )
264
- : ValueOrErrors.Default.throwOne(
265
- `received non tuple renderer kind "${renderer.kind}" when resolving defaultState for tuple`,
266
- );
267
- if (t.kind == "sum")
268
- return renderer.kind == "sumRenderer"
269
- ? dispatchDefaultState(
270
- infiniteStreamSources,
271
- injectedPrimitives,
272
- types,
273
- forms,
274
- converters,
275
- lookupSources,
276
- tableApiSources,
277
- )(t.args[0], renderer.leftRenderer.renderer).Then((left) =>
278
- renderer.rightRenderer == undefined
279
- ? ValueOrErrors.Default.throwOne(
280
- `rightRenderer is undefined when resolving defaultState sum view ${renderer.concreteRenderer}`,
281
- )
282
- : dispatchDefaultState(
283
- infiniteStreamSources,
284
- injectedPrimitives,
285
- types,
286
- forms,
287
- converters,
288
- lookupSources,
289
- tableApiSources,
290
- )(t.args[1], renderer.rightRenderer.renderer).Then((right) =>
291
- ValueOrErrors.Default.return(
292
- SumAbstractRendererState.Default({
65
+ if (renderer == undefined) {
66
+ return ValueOrErrors.Default.return(undefined);
67
+ }
68
+ if (renderer.kind == "lookupType-lookupRenderer") {
69
+ return DispatchParsedType.Operations.ResolveLookupType(renderer.type.name, types).Then((resolvedType) => LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then((resolvedRenderer) => dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(resolvedType, resolvedRenderer)));
70
+ }
71
+ if (renderer.kind == "lookupType-inlinedRenderer") {
72
+ return DispatchParsedType.Operations.ResolveLookupType(renderer.type.name, types).Then((resolvedType) => dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(resolvedType, renderer.inlinedRenderer));
73
+ }
74
+ if (renderer.kind == "inlinedType-lookupRenderer") {
75
+ return LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then((resolvedRenderer) => dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(renderer.type, resolvedRenderer));
76
+ }
77
+ if (t.kind == "primitive")
78
+ return t.name == "unit"
79
+ ? ValueOrErrors.Default.return(UnitAbstractRendererState.Default())
80
+ : t.name == "boolean"
81
+ ? ValueOrErrors.Default.return(BoolAbstractRendererState.Default())
82
+ : t.name == "number"
83
+ ? ValueOrErrors.Default.return(NumberAbstractRendererState.Default())
84
+ : t.name == "string"
85
+ ? ValueOrErrors.Default.return(StringAbstractRendererState.Default())
86
+ : t.name == "base64File"
87
+ ? ValueOrErrors.Default.return(Base64FileAbstractRendererState.Default())
88
+ : t.name == "secret"
89
+ ? ValueOrErrors.Default.return(SecretAbstractRendererState.Default())
90
+ : t.name == "Date"
91
+ ? ValueOrErrors.Default.return(DateAbstractRendererState.Default())
92
+ : (injectedPrimitives === null || injectedPrimitives === void 0 ? void 0 : injectedPrimitives.get(t.name)) != undefined
93
+ ? ValueOrErrors.Default.return(Object.assign({ commonFormState: DispatchCommonFormState.Default() }, injectedPrimitives === null || injectedPrimitives === void 0 ? void 0 : injectedPrimitives.get(t.name).defaultState))
94
+ : ValueOrErrors.Default.throwOne(`could not resolve defaultState for primitive renderer kind "${t.name}"`);
95
+ if (t.kind == "singleSelection")
96
+ return renderer.kind == "enumRenderer"
97
+ ? ValueOrErrors.Default.return(EnumAbstractRendererState().Default())
98
+ : renderer.kind == "streamRenderer"
99
+ ? infiniteStreamSources(renderer.stream).Then((streamSource) => ValueOrErrors.Default.return(SearchableInfiniteStreamAbstractRendererState.Default(streamSource)))
100
+ : ValueOrErrors.Default.throwOne(`received non singleSelection renderer kind "${renderer.kind}" when resolving defaultState for singleSelection`);
101
+ if (t.kind == "multiSelection")
102
+ return renderer.kind == "enumRenderer"
103
+ ? ValueOrErrors.Default.return(EnumAbstractRendererState().Default())
104
+ : renderer.kind == "streamRenderer"
105
+ ? infiniteStreamSources(renderer.stream).Then((streamSource) => ValueOrErrors.Default.return(SearchableInfiniteStreamAbstractRendererState.Default(streamSource)))
106
+ : ValueOrErrors.Default.throwOne(`received non multiSelection renderer kind "${renderer.kind}" when resolving defaultState for multiSelection`);
107
+ if (t.kind == "list")
108
+ return renderer.kind == "listRenderer"
109
+ ? ValueOrErrors.Default.return(ListAbstractRendererState.Default.zero())
110
+ : ValueOrErrors.Default.throwOne(`received non list renderer kind "${renderer.kind}" when resolving defaultState for list`);
111
+ if (t.kind == "map")
112
+ return renderer.kind == "mapRenderer"
113
+ ? ValueOrErrors.Default.return(MapAbstractRendererState.Default.zero())
114
+ : ValueOrErrors.Default.throwOne(`received non map renderer kind "${renderer.kind}" when resolving defaultState for map`);
115
+ if (t.kind == "tuple")
116
+ return renderer.kind == "tupleRenderer"
117
+ ? ValueOrErrors.Operations.All(List(t.args.map((_, index) => dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(_, renderer.itemRenderers[index].renderer).Then((itemState) => ValueOrErrors.Default.return([index, itemState]))))).Then((itemStates) => ValueOrErrors.Default.return(TupleAbstractRendererState.Default(Map(itemStates))))
118
+ : ValueOrErrors.Default.throwOne(`received non tuple renderer kind "${renderer.kind}" when resolving defaultState for tuple`);
119
+ if (t.kind == "sum")
120
+ return renderer.kind == "sumRenderer"
121
+ ? dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(t.args[0], renderer.leftRenderer.renderer).Then((left) => renderer.rightRenderer == undefined
122
+ ? ValueOrErrors.Default.throwOne(`rightRenderer is undefined when resolving defaultState sum view ${renderer.concreteRenderer}`)
123
+ : dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(t.args[1], renderer.rightRenderer.renderer).Then((right) => ValueOrErrors.Default.return(SumAbstractRendererState.Default({
293
124
  left,
294
125
  right,
295
- }),
296
- ),
297
- ),
298
- )
299
- : renderer.kind == "sumUnitDateRenderer"
300
- ? ValueOrErrors.Default.return(
301
- SumAbstractRendererState.Default({
302
- left: UnitAbstractRendererState.Default(),
303
- right: DateAbstractRendererState.Default(),
304
- }),
305
- )
306
- : ValueOrErrors.Default.throwOne(
307
- `renderer kind "${renderer.kind}" not supported for sum`,
308
- );
309
- if (t.kind == "one")
310
- return renderer.kind != "oneRenderer"
311
- ? ValueOrErrors.Default.throwOne(
312
- `received non one renderer kind "${renderer.kind}" when resolving defaultState for one`,
313
- )
314
- : lookupSources == undefined
315
- ? ValueOrErrors.Default.throwOne(
316
- `lookup sources referenced but no lookup sources are provided`,
317
- )
318
- : lookupSources(renderer.api[0]) == undefined
319
- ? ValueOrErrors.Default.throwOne(
320
- `cannot find lookup source for ${renderer.api[0]}`,
321
- )
322
- : lookupSources(renderer.api[0]).Then((lookupSource) =>
323
- lookupSource.one == undefined
324
- ? ValueOrErrors.Default.throwOne(
325
- `one source not provided for ${renderer.api[0]}`,
326
- )
327
- : lookupSource
328
- .one(renderer.api[1]) // safe because we check for undefined above but type system doesn't know that
329
- .Then((oneSource) =>
330
- MapRepo.Operations.tryFindWithError(
331
- t.arg.name,
332
- types,
333
- () =>
334
- `cannot find lookup type ${JSON.stringify(t.arg.name)} in ${JSON.stringify(t)}`,
335
- ).Then((lookupType) =>
336
- ValueOrErrors.Default.return(
337
- OneAbstractRendererState.Default(
338
- oneSource.getManyUnlinked(
339
- dispatchFromAPIRawValue(
340
- lookupType,
341
- types,
342
- converters,
343
- injectedPrimitives,
344
- ),
345
- ),
346
- ),
347
- ),
348
- ),
349
- ),
350
- );
351
- if (t.kind == "record")
352
- return renderer.kind == "recordRenderer"
353
- ? ValueOrErrors.Operations.All(
354
- List(
355
- renderer.fields
356
- .entrySeq()
357
- .map(([fieldName, fieldRenderer]) =>
358
- MapRepo.Operations.tryFindWithError(
359
- fieldName,
360
- t.fields,
361
- () =>
362
- `field ${fieldName} not found in renderer ${JSON.stringify(renderer.fields)} fields`,
363
- ).Then((fieldType) =>
364
- dispatchDefaultState(
365
- infiniteStreamSources,
366
- injectedPrimitives,
367
- types,
368
- forms,
369
- converters,
370
- lookupSources,
371
- tableApiSources,
372
- )(fieldType, fieldRenderer.renderer).Then((value) =>
373
- ValueOrErrors.Default.return([fieldName, value]),
374
- ),
375
- ),
376
- ),
377
- ),
378
- ).Then((res) =>
379
- ValueOrErrors.Default.return(
380
- RecordAbstractRendererState.Default.fieldState(Map(res)),
381
- ),
382
- )
383
- : ValueOrErrors.Default.throwOne(
384
- `received non record renderer kind "${renderer.kind}" when resolving defaultValue for record`,
385
- );
386
- if (t.kind == "union") {
387
- return renderer.kind == "unionRenderer"
388
- ? ValueOrErrors.Operations.All(
389
- List(
390
- renderer.cases
391
- .entrySeq()
392
- .map(([caseName, caseRenderer]) =>
393
- MapRepo.Operations.tryFindWithError(
394
- caseName,
395
- t.args,
396
- () =>
397
- `case ${caseName} not found in type ${JSON.stringify(t)}`,
398
- ).Then((caseType) =>
399
- dispatchDefaultState(
400
- infiniteStreamSources,
401
- injectedPrimitives,
402
- types,
403
- forms,
404
- converters,
405
- lookupSources,
406
- tableApiSources,
407
- )(caseType, caseRenderer).Then((caseState) =>
408
- ValueOrErrors.Default.return([caseName, caseState]),
409
- ),
410
- ),
411
- ),
412
- ),
413
- ).Then((caseStates) =>
414
- ValueOrErrors.Default.return(
415
- UnionAbstractRendererState.Default(Map(caseStates)),
416
- ),
417
- )
418
- : ValueOrErrors.Default.throwOne(
419
- `received non union renderer kind "${renderer.kind}" when resolving defaultState for union`,
420
- );
421
- }
422
- if (t.kind == "table") {
423
- return renderer.kind == "tableRenderer"
424
- ? ValueOrErrors.Default.return(TableAbstractRendererState.Default())
425
- : ValueOrErrors.Default.throwOne(
426
- `received non table renderer kind "${renderer.kind}" when resolving defaultState for table`,
427
- );
428
- }
429
- return ValueOrErrors.Default.throwOne(
430
- `type of kind "${JSON.stringify(t)}" not supported by defaultState`,
431
- );
126
+ }))))
127
+ : renderer.kind == "sumUnitDateRenderer"
128
+ ? ValueOrErrors.Default.return(SumAbstractRendererState.Default({
129
+ left: UnitAbstractRendererState.Default(),
130
+ right: DateAbstractRendererState.Default(),
131
+ }))
132
+ : ValueOrErrors.Default.throwOne(`renderer kind "${renderer.kind}" not supported for sum`);
133
+ if (t.kind == "one")
134
+ return renderer.kind != "oneRenderer"
135
+ ? ValueOrErrors.Default.throwOne(`received non one renderer kind "${renderer.kind}" when resolving defaultState for one`)
136
+ : lookupSources == undefined
137
+ ? ValueOrErrors.Default.throwOne(`lookup sources referenced but no lookup sources are provided`)
138
+ : lookupSources(renderer.api[0]) == undefined
139
+ ? ValueOrErrors.Default.throwOne(`cannot find lookup source for ${renderer.api[0]}`)
140
+ : lookupSources(renderer.api[0]).Then((lookupSource) => lookupSource.one == undefined
141
+ ? ValueOrErrors.Default.throwOne(`one source not provided for ${renderer.api[0]}`)
142
+ : lookupSource.one(renderer.api[1]) // safe because we check for undefined above but type system doesn't know that
143
+ .Then((oneSource) => MapRepo.Operations.tryFindWithError(t.arg.name, types, () => `cannot find lookup type ${JSON.stringify(t.arg.name)} in ${JSON.stringify(t)}`).Then((lookupType) => ValueOrErrors.Default.return(OneAbstractRendererState.Default(oneSource.getManyUnlinked(dispatchFromAPIRawValue(lookupType, types, converters, injectedPrimitives)))))));
144
+ if (t.kind == "record")
145
+ return renderer.kind == "recordRenderer"
146
+ ? ValueOrErrors.Operations.All(List(renderer.fields
147
+ .entrySeq()
148
+ .map(([fieldName, fieldRenderer]) => MapRepo.Operations.tryFindWithError(fieldName, t.fields, () => `field ${fieldName} not found in renderer ${JSON.stringify(renderer.fields)} fields`).Then((fieldType) => dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(fieldType, fieldRenderer.renderer).Then((value) => ValueOrErrors.Default.return([fieldName, value])))))).Then((res) => ValueOrErrors.Default.return(RecordAbstractRendererState.Default.fieldState(Map(res))))
149
+ : ValueOrErrors.Default.throwOne(`received non record renderer kind "${renderer.kind}" when resolving defaultValue for record`);
150
+ if (t.kind == "union") {
151
+ return renderer.kind == "unionRenderer"
152
+ ? ValueOrErrors.Operations.All(List(renderer.cases
153
+ .entrySeq()
154
+ .map(([caseName, caseRenderer]) => MapRepo.Operations.tryFindWithError(caseName, t.args, () => `case ${caseName} not found in type ${JSON.stringify(t)}`).Then((caseType) => dispatchDefaultState(infiniteStreamSources, injectedPrimitives, types, forms, converters, lookupSources, tableApiSources)(caseType, caseRenderer).Then((caseState) => ValueOrErrors.Default.return([caseName, caseState])))))).Then((caseStates) => ValueOrErrors.Default.return(UnionAbstractRendererState.Default(Map(caseStates))))
155
+ : ValueOrErrors.Default.throwOne(`received non union renderer kind "${renderer.kind}" when resolving defaultState for union`);
156
+ }
157
+ if (t.kind == "table") {
158
+ return renderer.kind == "tableRenderer"
159
+ ? ValueOrErrors.Default.return(TableAbstractRendererState.Default())
160
+ : ValueOrErrors.Default.throwOne(`received non table renderer kind "${renderer.kind}" when resolving defaultState for table`);
161
+ }
162
+ return ValueOrErrors.Default.throwOne(`type of kind "${JSON.stringify(t)}" not supported by defaultState`);
432
163
  })();
433
- return result.MapErrors((errors) =>
434
- errors.map(
435
- (error) =>
436
- `${error}\n...When resolving defaultState for ${t.kind} and renderer kind ${renderer.kind}`,
437
- ),
438
- );
439
- };
440
- export const dispatchDefaultValue =
441
- (injectedPrimitives, types, forms) => (t, renderer) => {
164
+ return result.MapErrors((errors) => errors.map((error) => `${error}\n...When resolving defaultState for ${t.kind} and renderer kind ${renderer.kind}`));
165
+ };
166
+ export const dispatchDefaultValue = (injectedPrimitives, types, forms) => (t, renderer) => {
442
167
  const result = (() => {
443
- if (renderer == undefined) {
444
- return ValueOrErrors.Default.return(PredicateValue.Default.unit());
445
- }
446
- if (renderer.kind == "lookupType-lookupRenderer")
447
- return DispatchParsedType.Operations.ResolveLookupType(
448
- renderer.type.name,
449
- types,
450
- ).Then((resolvedType) =>
451
- LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then(
452
- (resolvedRenderer) =>
453
- dispatchDefaultValue(
454
- injectedPrimitives,
455
- types,
456
- forms,
457
- )(resolvedType, resolvedRenderer),
458
- ),
459
- );
460
- if (renderer.kind == "lookupType-inlinedRenderer")
461
- return DispatchParsedType.Operations.ResolveLookupType(
462
- renderer.type.name,
463
- types,
464
- ).Then((resolvedType) =>
465
- dispatchDefaultValue(
466
- injectedPrimitives,
467
- types,
468
- forms,
469
- )(resolvedType, renderer.inlinedRenderer),
470
- );
471
- if (renderer.kind == "inlinedType-lookupRenderer")
472
- return LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then(
473
- (resolvedRenderer) =>
474
- dispatchDefaultValue(
475
- injectedPrimitives,
476
- types,
477
- forms,
478
- )(renderer.type, resolvedRenderer),
479
- );
480
- if (t.kind == "primitive")
481
- return t.name == "unit"
482
- ? ValueOrErrors.Default.return(PredicateValue.Default.unit())
483
- : t.name == "boolean"
484
- ? ValueOrErrors.Default.return(PredicateValue.Default.boolean())
485
- : t.name == "number"
486
- ? ValueOrErrors.Default.return(PredicateValue.Default.number())
487
- : t.name == "string"
488
- ? ValueOrErrors.Default.return(PredicateValue.Default.string())
489
- : t.name == "base64File"
490
- ? ValueOrErrors.Default.return(
491
- PredicateValue.Default.string(),
492
- )
493
- : t.name == "secret"
494
- ? ValueOrErrors.Default.return(
495
- PredicateValue.Default.string(),
496
- )
497
- : t.name == "Date"
498
- ? ValueOrErrors.Default.return(
499
- PredicateValue.Default.date(),
500
- )
501
- : (injectedPrimitives === null ||
502
- injectedPrimitives === void 0
503
- ? void 0
504
- : injectedPrimitives.get(t.name)) != undefined
505
- ? ValueOrErrors.Default.return(
506
- injectedPrimitives === null ||
507
- injectedPrimitives === void 0
508
- ? void 0
509
- : injectedPrimitives.get(t.name).defaultValue,
510
- )
511
- : ValueOrErrors.Default.throwOne(
512
- `could not resolve defaultValue for primitive renderer type "${t.name}"`,
513
- );
514
- if (t.kind == "singleSelection")
515
- return renderer.kind == "enumRenderer" ||
516
- renderer.kind == "streamRenderer"
517
- ? ValueOrErrors.Default.return(
518
- PredicateValue.Default.option(
519
- false,
520
- PredicateValue.Default.unit(),
521
- ),
522
- )
523
- : ValueOrErrors.Default.throwOne(
524
- `received non singleSelection renderer kind "${renderer.kind}" when resolving defaultValue for singleSelection`,
525
- );
526
- if (t.kind == "multiSelection")
527
- return renderer.kind == "enumRenderer" ||
528
- renderer.kind == "streamRenderer"
529
- ? ValueOrErrors.Default.return(
530
- PredicateValue.Default.record(OrderedMap()),
531
- )
532
- : ValueOrErrors.Default.throwOne(
533
- `received non multiSelection renderer kind "${renderer.kind}" when resolving defaultValue for multiSelection`,
534
- );
535
- if (t.kind == "list")
536
- return renderer.kind == "listRenderer"
537
- ? ValueOrErrors.Default.return(PredicateValue.Default.tuple(List()))
538
- : ValueOrErrors.Default.throwOne(
539
- `received non list renderer kind "${renderer.kind}" when resolving defaultValue for list`,
540
- );
541
- if (t.kind == "map")
542
- return renderer.kind == "mapRenderer"
543
- ? ValueOrErrors.Default.return(PredicateValue.Default.tuple(List()))
544
- : ValueOrErrors.Default.throwOne(
545
- `received non map renderer kind "${renderer.kind}" when resolving defaultValue for map`,
546
- );
547
- if (t.kind == "tuple")
548
- return renderer.kind == "tupleRenderer"
549
- ? ValueOrErrors.Operations.All(
550
- List(
551
- t.args.map((_, index) =>
552
- dispatchDefaultValue(
553
- injectedPrimitives,
554
- types,
555
- forms,
556
- )(_, renderer.itemRenderers[index].renderer),
557
- ),
558
- ),
559
- ).Then((values) =>
560
- ValueOrErrors.Default.return(
561
- PredicateValue.Default.tuple(List(values)),
562
- ),
563
- )
564
- : ValueOrErrors.Default.throwOne(
565
- `received non tuple renderer kind "${renderer.kind}" when resolving defaultValue for tuple`,
566
- );
567
- if (t.kind == "sum")
568
- return renderer.kind == "sumRenderer"
569
- ? dispatchDefaultValue(
570
- injectedPrimitives,
571
- types,
572
- forms,
573
- )(t.args[1], renderer.rightRenderer.renderer).Then((right) =>
574
- ValueOrErrors.Default.return(
575
- PredicateValue.Default.sum(Sum.Default.right(right)),
576
- ),
577
- )
578
- : renderer.kind == "sumUnitDateRenderer"
579
- ? ValueOrErrors.Default.return(
580
- PredicateValue.Default.sum(
581
- Sum.Default.left(PredicateValue.Default.unit()),
582
- ),
583
- )
584
- : ValueOrErrors.Default.throwOne(
585
- `received non sum renderer kind "${renderer.kind}" when resolving defaultValue for sum`,
586
- );
587
- if (t.kind == "one") {
588
- return renderer.kind == "oneRenderer"
589
- ? ValueOrErrors.Default.return(
590
- PredicateValue.Default.option(
591
- false,
592
- PredicateValue.Default.unit(),
593
- ),
594
- )
595
- : ValueOrErrors.Default.throwOne(
596
- `received non one renderer kind "${renderer.kind}" when resolving defaultValue for one`,
597
- );
598
- }
599
- if (t.kind == "record")
600
- return renderer.kind == "recordRenderer"
601
- ? ValueOrErrors.Operations.All(
602
- List(
603
- renderer.fields
604
- .entrySeq()
605
- .map(([fieldName, fieldRenderer]) =>
606
- MapRepo.Operations.tryFindWithError(
607
- fieldName,
608
- t.fields,
609
- () =>
610
- `field ${fieldName} not found in type ${JSON.stringify(t)} fields`,
611
- ).Then((fieldType) =>
612
- dispatchDefaultValue(
613
- injectedPrimitives,
614
- types,
615
- forms,
616
- )(fieldType, fieldRenderer.renderer).Then((value) =>
617
- ValueOrErrors.Default.return([fieldName, value]),
618
- ),
619
- ),
620
- ),
621
- ),
622
- ).Then((res) =>
623
- ValueOrErrors.Default.return(
624
- PredicateValue.Default.record(OrderedMap(res)),
625
- ),
626
- )
627
- : ValueOrErrors.Default.throwOne(
628
- `received non record renderer kind "${renderer.kind}" when resolving defaultValue for record`,
629
- );
630
- if (t.kind == "union") {
631
- return renderer.kind != "unionRenderer"
632
- ? ValueOrErrors.Default.throwOne(
633
- `received non union renderer kind "${renderer.kind}" when resolving defaultValue for union`,
634
- )
635
- : MapRepo.Operations.tryFirstWithError(
636
- t.args,
637
- () => `union type ${JSON.stringify(t, null, 2)} has no cases`,
638
- ).Then((firstCaseType) =>
639
- MapRepo.Operations.tryFirstWithError(
640
- renderer.cases,
641
- () => `union renderer has no cases`,
642
- ).Then((firstCaseRenderer) =>
643
- dispatchDefaultValue(
644
- injectedPrimitives,
645
- types,
646
- forms,
647
- )(firstCaseType, firstCaseRenderer),
648
- ),
649
- );
650
- }
651
- if (t.kind == "table") {
652
- return renderer.kind == "tableRenderer"
653
- ? ValueOrErrors.Default.return(
654
- PredicateValue.Default.table(0, 0, Map(), false),
655
- )
656
- : ValueOrErrors.Default.throwOne(
657
- `received non table renderer kind "${renderer.kind}" when resolving defaultValue for table`,
658
- );
659
- }
660
- return ValueOrErrors.Default.throwOne(
661
- `type ${t} not supported by defaultValue`,
662
- );
168
+ if (renderer == undefined) {
169
+ return ValueOrErrors.Default.return(PredicateValue.Default.unit());
170
+ }
171
+ if (renderer.kind == "lookupType-lookupRenderer")
172
+ return DispatchParsedType.Operations.ResolveLookupType(renderer.type.name, types).Then((resolvedType) => LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then((resolvedRenderer) => dispatchDefaultValue(injectedPrimitives, types, forms)(resolvedType, resolvedRenderer)));
173
+ if (renderer.kind == "lookupType-inlinedRenderer")
174
+ return DispatchParsedType.Operations.ResolveLookupType(renderer.type.name, types).Then((resolvedType) => dispatchDefaultValue(injectedPrimitives, types, forms)(resolvedType, renderer.inlinedRenderer));
175
+ if (renderer.kind == "inlinedType-lookupRenderer")
176
+ return LookupRenderer.Operations.ResolveRenderer(renderer, forms).Then((resolvedRenderer) => dispatchDefaultValue(injectedPrimitives, types, forms)(renderer.type, resolvedRenderer));
177
+ if (t.kind == "primitive")
178
+ return t.name == "unit"
179
+ ? ValueOrErrors.Default.return(PredicateValue.Default.unit())
180
+ : t.name == "boolean"
181
+ ? ValueOrErrors.Default.return(PredicateValue.Default.boolean())
182
+ : t.name == "number"
183
+ ? ValueOrErrors.Default.return(PredicateValue.Default.number())
184
+ : t.name == "string"
185
+ ? ValueOrErrors.Default.return(PredicateValue.Default.string())
186
+ : t.name == "base64File"
187
+ ? ValueOrErrors.Default.return(PredicateValue.Default.string())
188
+ : t.name == "secret"
189
+ ? ValueOrErrors.Default.return(PredicateValue.Default.string())
190
+ : t.name == "Date"
191
+ ? ValueOrErrors.Default.return(PredicateValue.Default.date())
192
+ : (injectedPrimitives === null || injectedPrimitives === void 0 ? void 0 : injectedPrimitives.get(t.name)) != undefined
193
+ ? ValueOrErrors.Default.return(injectedPrimitives === null || injectedPrimitives === void 0 ? void 0 : injectedPrimitives.get(t.name).defaultValue)
194
+ : ValueOrErrors.Default.throwOne(`could not resolve defaultValue for primitive renderer type "${t.name}"`);
195
+ if (t.kind == "singleSelection")
196
+ return renderer.kind == "enumRenderer" ||
197
+ renderer.kind == "streamRenderer"
198
+ ? ValueOrErrors.Default.return(PredicateValue.Default.option(false, PredicateValue.Default.unit()))
199
+ : ValueOrErrors.Default.throwOne(`received non singleSelection renderer kind "${renderer.kind}" when resolving defaultValue for singleSelection`);
200
+ if (t.kind == "multiSelection")
201
+ return renderer.kind == "enumRenderer" ||
202
+ renderer.kind == "streamRenderer"
203
+ ? ValueOrErrors.Default.return(PredicateValue.Default.record(OrderedMap()))
204
+ : ValueOrErrors.Default.throwOne(`received non multiSelection renderer kind "${renderer.kind}" when resolving defaultValue for multiSelection`);
205
+ if (t.kind == "list")
206
+ return renderer.kind == "listRenderer"
207
+ ? ValueOrErrors.Default.return(PredicateValue.Default.tuple(List()))
208
+ : ValueOrErrors.Default.throwOne(`received non list renderer kind "${renderer.kind}" when resolving defaultValue for list`);
209
+ if (t.kind == "map")
210
+ return renderer.kind == "mapRenderer"
211
+ ? ValueOrErrors.Default.return(PredicateValue.Default.tuple(List()))
212
+ : ValueOrErrors.Default.throwOne(`received non map renderer kind "${renderer.kind}" when resolving defaultValue for map`);
213
+ if (t.kind == "tuple")
214
+ return renderer.kind == "tupleRenderer"
215
+ ? ValueOrErrors.Operations.All(List(t.args.map((_, index) => dispatchDefaultValue(injectedPrimitives, types, forms)(_, renderer.itemRenderers[index].renderer)))).Then((values) => ValueOrErrors.Default.return(PredicateValue.Default.tuple(List(values))))
216
+ : ValueOrErrors.Default.throwOne(`received non tuple renderer kind "${renderer.kind}" when resolving defaultValue for tuple`);
217
+ if (t.kind == "sum")
218
+ return renderer.kind == "sumRenderer"
219
+ ? dispatchDefaultValue(injectedPrimitives, types, forms)(t.args[1], renderer.rightRenderer.renderer).Then((right) => ValueOrErrors.Default.return(PredicateValue.Default.sum(Sum.Default.right(right))))
220
+ : renderer.kind == "sumUnitDateRenderer"
221
+ ? ValueOrErrors.Default.return(PredicateValue.Default.sum(Sum.Default.left(PredicateValue.Default.unit())))
222
+ : ValueOrErrors.Default.throwOne(`received non sum renderer kind "${renderer.kind}" when resolving defaultValue for sum`);
223
+ if (t.kind == "one") {
224
+ return renderer.kind == "oneRenderer"
225
+ ? ValueOrErrors.Default.return(PredicateValue.Default.option(false, PredicateValue.Default.unit()))
226
+ : ValueOrErrors.Default.throwOne(`received non one renderer kind "${renderer.kind}" when resolving defaultValue for one`);
227
+ }
228
+ if (t.kind == "record")
229
+ return renderer.kind == "recordRenderer"
230
+ ? ValueOrErrors.Operations.All(List(renderer.fields
231
+ .entrySeq()
232
+ .map(([fieldName, fieldRenderer]) => MapRepo.Operations.tryFindWithError(fieldName, t.fields, () => `field ${fieldName} not found in type ${JSON.stringify(t)} fields`).Then((fieldType) => dispatchDefaultValue(injectedPrimitives, types, forms)(fieldType, fieldRenderer.renderer).Then((value) => ValueOrErrors.Default.return([fieldName, value])))))).Then((res) => ValueOrErrors.Default.return(PredicateValue.Default.record(OrderedMap(res))))
233
+ : ValueOrErrors.Default.throwOne(`received non record renderer kind "${renderer.kind}" when resolving defaultValue for record`);
234
+ if (t.kind == "union") {
235
+ return renderer.kind != "unionRenderer"
236
+ ? ValueOrErrors.Default.throwOne(`received non union renderer kind "${renderer.kind}" when resolving defaultValue for union`)
237
+ : MapRepo.Operations.tryFirstWithError(t.args, () => `union type ${JSON.stringify(t, null, 2)} has no cases`).Then((firstCaseType) => MapRepo.Operations.tryFirstWithError(renderer.cases, () => `union renderer has no cases`).Then((firstCaseRenderer) => dispatchDefaultValue(injectedPrimitives, types, forms)(firstCaseType, firstCaseRenderer)));
238
+ }
239
+ if (t.kind == "table") {
240
+ return renderer.kind == "tableRenderer"
241
+ ? ValueOrErrors.Default.return(PredicateValue.Default.table(0, 0, Map(), false))
242
+ : ValueOrErrors.Default.throwOne(`received non table renderer kind "${renderer.kind}" when resolving defaultValue for table`);
243
+ }
244
+ return ValueOrErrors.Default.throwOne(`type ${t} not supported by defaultValue`);
663
245
  })();
664
- return result.MapErrors((errors) =>
665
- errors.map(
666
- (error) =>
667
- `${error}\n...When resolving defaultValue for type "${JSON.stringify(t, null, 2)}" and renderer kind "${renderer.kind}"`,
668
- ),
669
- );
670
- };
671
- export const dispatchFromAPIRawValue =
672
- (t, types, converters, injectedPrimitives) => (raw) => {
246
+ return result.MapErrors((errors) => errors.map((error) => `${error}\n...When resolving defaultValue for type "${JSON.stringify(t, null, 2)}" and renderer kind "${renderer.kind}"`));
247
+ };
248
+ export const dispatchFromAPIRawValue = (t, types, converters, injectedPrimitives) => (raw) => {
673
249
  const result = (() => {
674
- if (t.kind == "primitive") {
675
- // unit is a special kind of primitive
676
- if (t.name == "unit") {
677
- return ValueOrErrors.Default.return(PredicateValue.Default.unit());
250
+ if (t.kind == "primitive") {
251
+ // unit is a special kind of primitive
252
+ if (t.name == "unit") {
253
+ return ValueOrErrors.Default.return(PredicateValue.Default.unit());
254
+ }
255
+ if (!PredicateValue.Operations.IsPrimitive(raw) &&
256
+ !(injectedPrimitives === null || injectedPrimitives === void 0 ? void 0 : injectedPrimitives.keySeq().contains(t.name))) {
257
+ return ValueOrErrors.Default.throwOne(`primitive expected but got ${JSON.stringify(raw)}`);
258
+ }
259
+ return ValueOrErrors.Default.return(converters[t.name].fromAPIRawValue(raw));
678
260
  }
679
- if (
680
- !PredicateValue.Operations.IsPrimitive(raw) &&
681
- !(injectedPrimitives === null || injectedPrimitives === void 0
682
- ? void 0
683
- : injectedPrimitives.keySeq().contains(t.name))
684
- ) {
685
- return ValueOrErrors.Default.throwOne(
686
- `primitive expected but got ${JSON.stringify(raw)}`,
687
- );
261
+ if (t.kind == "union") {
262
+ const result = converters["union"].fromAPIRawValue(raw);
263
+ const caseType = t.args.get(result.caseName);
264
+ if (caseType == undefined)
265
+ return ValueOrErrors.Default.throwOne(`union case ${result.caseName} not found in type ${JSON.stringify(t)}`);
266
+ if (caseType.kind != "record" && caseType.kind != "lookup")
267
+ return ValueOrErrors.Default.throwOne(`union case ${result.caseName} expected record or lookup type, got ${JSON.stringify(caseType)}`);
268
+ return dispatchFromAPIRawValue(caseType, types, converters, injectedPrimitives)(result.fields).Then((value) => PredicateValue.Operations.IsRecord(value)
269
+ ? ValueOrErrors.Default.return(PredicateValue.Default.unionCase(result.caseName, value))
270
+ : ValueOrErrors.Default.throwOne(`union case ${result.caseName} expected record, got ${PredicateValue.Operations.GetKind(value)}`));
688
271
  }
689
- return ValueOrErrors.Default.return(
690
- converters[t.name].fromAPIRawValue(raw),
691
- );
692
- }
693
- if (t.kind == "union") {
694
- const result = converters["union"].fromAPIRawValue(raw);
695
- const caseType = t.args.get(result.caseName);
696
- if (caseType == undefined)
697
- return ValueOrErrors.Default.throwOne(
698
- `union case ${result.caseName} not found in type ${JSON.stringify(t)}`,
699
- );
700
- if (caseType.kind != "record" && caseType.kind != "lookup")
701
- return ValueOrErrors.Default.throwOne(
702
- `union case ${result.caseName} expected record or lookup type, got ${JSON.stringify(caseType)}`,
703
- );
704
- return dispatchFromAPIRawValue(
705
- caseType,
706
- types,
707
- converters,
708
- injectedPrimitives,
709
- )(result.fields).Then((value) =>
710
- PredicateValue.Operations.IsRecord(value)
711
- ? ValueOrErrors.Default.return(
712
- PredicateValue.Default.unionCase(result.caseName, value),
713
- )
714
- : ValueOrErrors.Default.throwOne(
715
- `union case ${result.caseName} expected record, got ${PredicateValue.Operations.GetKind(value)}`,
716
- ),
717
- );
718
- }
719
- if (t.kind == "singleSelection") {
720
- const result = converters["SingleSelection"].fromAPIRawValue(raw);
721
- const isSome = result.kind == "l";
722
- const value = isSome
723
- ? PredicateValue.Default.record(OrderedMap(result.value))
724
- : PredicateValue.Default.unit();
725
- return ValueOrErrors.Default.return(
726
- PredicateValue.Default.option(isSome, value),
727
- );
728
- }
729
- if (t.kind == "multiSelection") {
730
- const result = converters["MultiSelection"].fromAPIRawValue(raw);
731
- const values = result.map((_) =>
732
- PredicateValue.Default.record(OrderedMap(_)),
733
- );
734
- return ValueOrErrors.Default.return(
735
- PredicateValue.Default.record(OrderedMap(values)),
736
- );
737
- }
738
- if (t.kind == "list") {
739
- const result = converters["List"].fromAPIRawValue(raw);
740
- return ValueOrErrors.Operations.All(
741
- result.map((_) =>
742
- dispatchFromAPIRawValue(
743
- t.args[0],
744
- types,
745
- converters,
746
- injectedPrimitives,
747
- )(_),
748
- ),
749
- ).Then((values) =>
750
- ValueOrErrors.Default.return(PredicateValue.Default.tuple(values)),
751
- );
752
- }
753
- if (t.kind == "map" && t.args.length == 2) {
754
- const result = converters["Map"].fromAPIRawValue(raw);
755
- return ValueOrErrors.Operations.All(
756
- List(
757
- result.map((_) =>
758
- dispatchFromAPIRawValue(
759
- t.args[0],
760
- types,
761
- converters,
762
- injectedPrimitives,
763
- )(_[0]).Then((key) =>
764
- dispatchFromAPIRawValue(
765
- t.args[1],
766
- types,
767
- converters,
768
- injectedPrimitives,
769
- )(_[1]).Then((value) =>
770
- ValueOrErrors.Default.return(
771
- PredicateValue.Default.tuple(List([key, value])),
772
- ),
773
- ),
774
- ),
775
- ),
776
- ),
777
- ).Then((values) =>
778
- ValueOrErrors.Default.return(
779
- PredicateValue.Default.tuple(List(values)),
780
- ),
781
- );
782
- }
783
- if (t.kind == "tuple") {
784
- const result = converters["Tuple"].fromAPIRawValue(raw);
785
- return ValueOrErrors.Operations.All(
786
- List(
787
- result.map((_, index) =>
788
- dispatchFromAPIRawValue(
789
- t.args[index],
790
- types,
791
- converters,
792
- injectedPrimitives,
793
- )(_),
794
- ),
795
- ),
796
- ).Then((values) =>
797
- ValueOrErrors.Default.return(
798
- PredicateValue.Default.tuple(List(values)),
799
- ),
800
- );
801
- }
802
- if (t.kind == "sum" && t.args.length === 2) {
803
- const result = converters["Sum"].fromAPIRawValue(raw);
804
- return dispatchFromAPIRawValue(
805
- result.kind == "l" ? t.args[0] : t.args[1],
806
- types,
807
- converters,
808
- injectedPrimitives,
809
- )(result.value).Then((value) =>
810
- ValueOrErrors.Default.return(
811
- PredicateValue.Default.sum(
812
- Sum.Updaters.map2(replaceWith(value), replaceWith(value))(result),
813
- ),
814
- ),
815
- );
816
- }
817
- if (t.kind == "lookup")
818
- return MapRepo.Operations.tryFindWithError(
819
- t.name, // TODO -- double check this is correct instead of typeName, and maybe remove typeName
820
- types,
821
- () => `type ${t.name} not found in types`,
822
- ).Then((type) =>
823
- dispatchFromAPIRawValue(
824
- type,
825
- types,
826
- converters,
827
- injectedPrimitives,
828
- )(raw),
829
- );
830
- // TODO -- this can be more functional
831
- if (t.kind == "table") {
832
- // move to the converter
833
- if (typeof raw != "object") {
834
- return ValueOrErrors.Default.throwOne(
835
- `object expected but got ${JSON.stringify(raw)}`,
836
- );
272
+ if (t.kind == "singleSelection") {
273
+ const result = converters["SingleSelection"].fromAPIRawValue(raw);
274
+ const isSome = result.kind == "l";
275
+ const value = isSome
276
+ ? PredicateValue.Default.record(OrderedMap(result.value))
277
+ : PredicateValue.Default.unit();
278
+ return ValueOrErrors.Default.return(PredicateValue.Default.option(isSome, value));
837
279
  }
838
- const converterResult = converters["Table"].fromAPIRawValue(raw);
839
- const argType = t.arg;
840
- return DispatchParsedType.Operations.ResolveLookupType(
841
- argType.name,
842
- types,
843
- ).Then((resolvedType) =>
844
- ValueOrErrors.Operations.All(
845
- List(
846
- converterResult.data
847
- .toArray()
848
- .map(([key, record]) =>
849
- dispatchFromAPIRawValue(
850
- resolvedType,
851
- types,
852
- converters,
853
- injectedPrimitives,
854
- )(record).Then((value) =>
855
- PredicateValue.Operations.IsRecord(value)
856
- ? ValueOrErrors.Default.return([key, value])
857
- : ValueOrErrors.Default.throwOne(
858
- `record expected but got ${PredicateValue.Operations.GetKind(value)}`,
859
- ),
860
- ),
861
- ),
862
- ),
863
- ).Then((values) =>
864
- ValueOrErrors.Default.return(
865
- ValueTable.Default.fromParsed(
866
- converterResult.from,
867
- converterResult.to,
868
- converterResult.hasMoreValues,
869
- OrderedMap(values),
870
- ),
871
- ),
872
- ),
873
- );
874
- }
875
- if (t.kind == "one") {
876
- const result = converters["One"].fromAPIRawValue(raw);
877
- if (!result.isSome) {
878
- return ValueOrErrors.Default.return(result);
280
+ if (t.kind == "multiSelection") {
281
+ const result = converters["MultiSelection"].fromAPIRawValue(raw);
282
+ const values = result.map((_) => PredicateValue.Default.record(OrderedMap(_)));
283
+ return ValueOrErrors.Default.return(PredicateValue.Default.record(OrderedMap(values)));
879
284
  }
880
- return dispatchFromAPIRawValue(
881
- t.arg,
882
- types,
883
- converters,
884
- injectedPrimitives,
885
- )(result.value).Then((value) =>
886
- ValueOrErrors.Default.return(
887
- PredicateValue.Default.option(true, value),
888
- ),
889
- );
890
- }
891
- // TODO -- this can be more functional
892
- if (t.kind == "record") {
893
- if (typeof raw != "object") {
894
- return ValueOrErrors.Default.throwOne(
895
- `object expected but got ${JSON.stringify(raw)}`,
896
- );
285
+ if (t.kind == "list") {
286
+ const result = converters["List"].fromAPIRawValue(raw);
287
+ return ValueOrErrors.Operations.All(result.map((_) => dispatchFromAPIRawValue(t.args[0], types, converters, injectedPrimitives)(_))).Then((values) => ValueOrErrors.Default.return(PredicateValue.Default.tuple(values)));
897
288
  }
898
- let result = OrderedMap();
899
- let errors = List();
900
- t.fields.forEach((fieldType, fieldName) => {
901
- const fieldValue = raw[fieldName];
902
- if (fieldValue !== null && fieldValue === undefined) {
903
- return;
904
- }
905
- const parsedValue = dispatchFromAPIRawValue(
906
- fieldType,
907
- types,
908
- converters,
909
- injectedPrimitives,
910
- )(fieldValue);
911
- if (parsedValue.kind == "errors") {
912
- errors = errors.concat(parsedValue.errors);
913
- } else {
914
- result = result.set(fieldName, parsedValue.value);
915
- }
916
- });
917
- if (errors.size > 0) {
918
- return ValueOrErrors.Default.throw(errors);
289
+ if (t.kind == "map" && t.args.length == 2) {
290
+ const result = converters["Map"].fromAPIRawValue(raw);
291
+ return ValueOrErrors.Operations.All(List(result.map((_) => dispatchFromAPIRawValue(t.args[0], types, converters, injectedPrimitives)(_[0]).Then((key) => dispatchFromAPIRawValue(t.args[1], types, converters, injectedPrimitives)(_[1]).Then((value) => ValueOrErrors.Default.return(PredicateValue.Default.tuple(List([key, value])))))))).Then((values) => ValueOrErrors.Default.return(PredicateValue.Default.tuple(List(values))));
919
292
  }
920
- return ValueOrErrors.Default.return(
921
- PredicateValue.Default.record(result),
922
- );
923
- }
924
- return ValueOrErrors.Default.throwOne(
925
- `unsupported type ${JSON.stringify(t)} for raw: `,
926
- );
927
- })();
928
- return result.MapErrors((errors) =>
929
- errors.map(
930
- (error) =>
931
- `${error}\n...When converting type ${JSON.stringify(t, null, 2)} and value ${JSON.stringify(raw, null, 2)} from API raw value`,
932
- ),
933
- );
934
- };
935
- export const dispatchToAPIRawValue =
936
- (t, types, converters, injectedPrimitives) => (raw, formState) => {
937
- const result = (() => {
938
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
939
- if (t.kind == "primitive") {
940
- if (t.name == "unit") {
941
- return ValueOrErrors.Default.return(unit);
293
+ if (t.kind == "tuple") {
294
+ const result = converters["Tuple"].fromAPIRawValue(raw);
295
+ return ValueOrErrors.Operations.All(List(result.map((_, index) => dispatchFromAPIRawValue(t.args[index], types, converters, injectedPrimitives)(_)))).Then((values) => ValueOrErrors.Default.return(PredicateValue.Default.tuple(List(values))));
942
296
  }
943
- return ValueOrErrors.Operations.Return(
944
- converters[t.name].toAPIRawValue([
945
- raw,
946
- (_b =
947
- (_a =
948
- formState === null || formState === void 0
949
- ? void 0
950
- : formState.commonFormState) === null || _a === void 0
951
- ? void 0
952
- : _a.modifiedByUser) !== null && _b !== void 0
953
- ? _b
954
- : false,
955
- ]),
956
- );
957
- }
958
- if (t.kind == "union") {
959
- if (!PredicateValue.Operations.IsUnionCase(raw)) {
960
- return ValueOrErrors.Default.throwOne(
961
- `Union case expected but got ${JSON.stringify(raw)}\n...when converting union to API raw value`,
962
- );
297
+ if (t.kind == "sum" && t.args.length === 2) {
298
+ const result = converters["Sum"].fromAPIRawValue(raw);
299
+ return dispatchFromAPIRawValue(result.kind == "l" ? t.args[0] : t.args[1], types, converters, injectedPrimitives)(result.value).Then((value) => ValueOrErrors.Default.return(PredicateValue.Default.sum(Sum.Updaters.map2(replaceWith(value), replaceWith(value))(result))));
963
300
  }
964
- const caseName = raw.caseName;
965
- if (
966
- caseName == undefined ||
967
- !PredicateValue.Operations.IsString(caseName)
968
- ) {
969
- return ValueOrErrors.Default.throwOne(
970
- `caseName expected but got ${JSON.stringify(raw)}`,
971
- );
301
+ if (t.kind == "lookup")
302
+ return MapRepo.Operations.tryFindWithError(t.name, // TODO -- double check this is correct instead of typeName, and maybe remove typeName
303
+ types, () => `type ${t.name} not found in types`).Then((type) => dispatchFromAPIRawValue(type, types, converters, injectedPrimitives)(raw));
304
+ // TODO -- this can be more functional
305
+ if (t.kind == "table") {
306
+ // move to the converter
307
+ if (typeof raw != "object") {
308
+ return ValueOrErrors.Default.throwOne(`object expected but got ${JSON.stringify(raw)}`);
309
+ }
310
+ const converterResult = converters["Table"].fromAPIRawValue(raw);
311
+ const argType = t.arg;
312
+ return DispatchParsedType.Operations.ResolveLookupType(argType.name, types).Then((resolvedType) => ValueOrErrors.Operations.All(List(converterResult.data
313
+ .toArray()
314
+ .map(([key, record]) => dispatchFromAPIRawValue(resolvedType, types, converters, injectedPrimitives)(record).Then((value) => PredicateValue.Operations.IsRecord(value)
315
+ ? ValueOrErrors.Default.return([key, value])
316
+ : ValueOrErrors.Default.throwOne(`record expected but got ${PredicateValue.Operations.GetKind(value)}`))))).Then((values) => ValueOrErrors.Default.return(ValueTable.Default.fromParsed(converterResult.from, converterResult.to, converterResult.hasMoreValues, OrderedMap(values)))));
972
317
  }
973
- const caseType = t.args.get(caseName);
974
- if (caseType == undefined) {
975
- return ValueOrErrors.Default.throwOne(
976
- `union case ${caseName} not found in type ${JSON.stringify(t)}`,
977
- );
318
+ if (t.kind == "one") {
319
+ const result = converters["One"].fromAPIRawValue(raw);
320
+ if (!result.isSome) {
321
+ return ValueOrErrors.Default.return(result);
322
+ }
323
+ return dispatchFromAPIRawValue(t.arg, types, converters, injectedPrimitives)(result.value).Then((value) => ValueOrErrors.Default.return(PredicateValue.Default.option(true, value)));
978
324
  }
979
- return dispatchToAPIRawValue(
980
- caseType,
981
- types,
982
- converters,
983
- injectedPrimitives,
984
- )(raw.fields, formState);
985
- }
986
- if (t.kind == "singleSelection") {
987
- if (!PredicateValue.Operations.IsOption(raw)) {
988
- return ValueOrErrors.Default.throwOne(
989
- `Option expected but got ${JSON.stringify(raw)}`,
990
- );
325
+ // TODO -- this can be more functional
326
+ if (t.kind == "record") {
327
+ if (typeof raw != "object") {
328
+ return ValueOrErrors.Default.throwOne(`object expected but got ${JSON.stringify(raw)}`);
329
+ }
330
+ let result = OrderedMap();
331
+ let errors = List();
332
+ t.fields.forEach((fieldType, fieldName) => {
333
+ const fieldValue = raw[fieldName];
334
+ if (fieldValue !== null && fieldValue === undefined) {
335
+ return;
336
+ }
337
+ const parsedValue = dispatchFromAPIRawValue(fieldType, types, converters, injectedPrimitives)(fieldValue);
338
+ if (parsedValue.kind == "errors") {
339
+ errors = errors.concat(parsedValue.errors);
340
+ }
341
+ else {
342
+ result = result.set(fieldName, parsedValue.value);
343
+ }
344
+ });
345
+ if (errors.size > 0) {
346
+ return ValueOrErrors.Default.throw(errors);
347
+ }
348
+ return ValueOrErrors.Default.return(PredicateValue.Default.record(result));
991
349
  }
992
- if (raw.isSome) {
993
- if (!PredicateValue.Operations.IsRecord(raw.value)) {
994
- return ValueOrErrors.Default.throwOne(
995
- `Record expected but got ${JSON.stringify(raw.value)}`,
996
- );
997
- }
998
- const rawValue = raw.value.fields.toJS();
999
- if (
1000
- !CollectionReference.Operations.IsCollectionReference(rawValue) &&
1001
- !EnumReference.Operations.IsEnumReference(rawValue)
1002
- ) {
1003
- return ValueOrErrors.Default.throwOne(
1004
- `CollectionReference or EnumReference expected but got ${rawValue}`,
1005
- );
1006
- }
1007
- return ValueOrErrors.Operations.Return(
1008
- converters["SingleSelection"].toAPIRawValue([
1009
- Sum.Default.left(rawValue),
1010
- (_d =
1011
- (_c =
1012
- formState === null || formState === void 0
1013
- ? void 0
1014
- : formState.commonFormState) === null || _c === void 0
1015
- ? void 0
1016
- : _c.modifiedByUser) !== null && _d !== void 0
1017
- ? _d
1018
- : false,
1019
- ]),
1020
- );
1021
- } else {
1022
- return ValueOrErrors.Operations.Return(
1023
- converters["SingleSelection"].toAPIRawValue([
1024
- Sum.Default.right("no selection"),
1025
- (_f =
1026
- (_e =
1027
- formState === null || formState === void 0
1028
- ? void 0
1029
- : formState.commonFormState) === null || _e === void 0
1030
- ? void 0
1031
- : _e.modifiedByUser) !== null && _f !== void 0
1032
- ? _f
1033
- : false,
1034
- ]),
1035
- );
350
+ return ValueOrErrors.Default.throwOne(`unsupported type ${JSON.stringify(t)} for raw: `);
351
+ })();
352
+ return result.MapErrors((errors) => errors.map((error) => `${error}\n...When converting type ${JSON.stringify(t, null, 2)} and value ${JSON.stringify(raw, null, 2)} from API raw value`));
353
+ };
354
+ export const dispatchToAPIRawValue = (t, types, converters, injectedPrimitives) => (raw, formState) => {
355
+ const result = (() => {
356
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
357
+ if (t.kind == "primitive") {
358
+ if (t.name == "unit") {
359
+ return ValueOrErrors.Default.return(unit);
360
+ }
361
+ return ValueOrErrors.Operations.Return(converters[t.name].toAPIRawValue([
362
+ raw,
363
+ (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _a === void 0 ? void 0 : _a.modifiedByUser) !== null && _b !== void 0 ? _b : false,
364
+ ]));
365
+ }
366
+ if (t.kind == "union") {
367
+ if (!PredicateValue.Operations.IsUnionCase(raw)) {
368
+ return ValueOrErrors.Default.throwOne(`Union case expected but got ${JSON.stringify(raw)}\n...when converting union to API raw value`);
369
+ }
370
+ const caseName = raw.caseName;
371
+ if (caseName == undefined ||
372
+ !PredicateValue.Operations.IsString(caseName)) {
373
+ return ValueOrErrors.Default.throwOne(`caseName expected but got ${JSON.stringify(raw)}`);
374
+ }
375
+ const caseType = t.args.get(caseName);
376
+ if (caseType == undefined) {
377
+ return ValueOrErrors.Default.throwOne(`union case ${caseName} not found in type ${JSON.stringify(t)}`);
378
+ }
379
+ return dispatchToAPIRawValue(caseType, types, converters, injectedPrimitives)(raw.fields, formState);
1036
380
  }
1037
- }
1038
- if (t.kind == "multiSelection") {
1039
- if (!PredicateValue.Operations.IsRecord(raw)) {
1040
- return ValueOrErrors.Default.throwOne(
1041
- `Record expected but got multi selection of ${JSON.stringify(raw)}`,
1042
- );
381
+ if (t.kind == "singleSelection") {
382
+ if (!PredicateValue.Operations.IsOption(raw)) {
383
+ return ValueOrErrors.Default.throwOne(`Option expected but got ${JSON.stringify(raw)}`);
384
+ }
385
+ if (raw.isSome) {
386
+ if (!PredicateValue.Operations.IsRecord(raw.value)) {
387
+ return ValueOrErrors.Default.throwOne(`Record expected but got ${JSON.stringify(raw.value)}`);
388
+ }
389
+ const rawValue = raw.value.fields.toJS();
390
+ if (!CollectionReference.Operations.IsCollectionReference(rawValue) &&
391
+ !EnumReference.Operations.IsEnumReference(rawValue)) {
392
+ return ValueOrErrors.Default.throwOne(`CollectionReference or EnumReference expected but got ${rawValue}`);
393
+ }
394
+ return ValueOrErrors.Operations.Return(converters["SingleSelection"].toAPIRawValue([
395
+ Sum.Default.left(rawValue),
396
+ (_d = (_c = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _c === void 0 ? void 0 : _c.modifiedByUser) !== null && _d !== void 0 ? _d : false,
397
+ ]));
398
+ }
399
+ else {
400
+ return ValueOrErrors.Operations.Return(converters["SingleSelection"].toAPIRawValue([
401
+ Sum.Default.right("no selection"),
402
+ (_f = (_e = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _e === void 0 ? void 0 : _e.modifiedByUser) !== null && _f !== void 0 ? _f : false,
403
+ ]));
404
+ }
1043
405
  }
1044
- const rawValue = raw.fields.map((value) => {
1045
- if (!PredicateValue.Operations.IsRecord(value)) {
1046
- return ValueOrErrors.Default.throwOne(
1047
- `Record expected but got ${JSON.stringify(value)}`,
1048
- );
1049
- }
1050
- const fieldsObject = value.fields.toJS();
1051
- if (
1052
- !CollectionReference.Operations.IsCollectionReference(
1053
- fieldsObject,
1054
- ) &&
1055
- !EnumReference.Operations.IsEnumReference(fieldsObject)
1056
- ) {
1057
- return ValueOrErrors.Default.throwOne(
1058
- `CollectionReference or EnumReference expected but got ${JSON.stringify(fieldsObject)}`,
1059
- );
1060
- }
1061
- return ValueOrErrors.Default.return(fieldsObject);
1062
- });
1063
- return ValueOrErrors.Operations.All(rawValue.valueSeq().toList()).Then(
1064
- (values) => {
1065
- var _a, _b;
1066
- return ValueOrErrors.Default.return(
1067
- converters["MultiSelection"].toAPIRawValue([
1068
- OrderedMap(
1069
- values
1070
- .map((v) => {
1071
- if (
1072
- CollectionReference.Operations.IsCollectionReference(v)
1073
- ) {
1074
- return [v.Id, v];
1075
- }
1076
- return [v.Value, v];
406
+ if (t.kind == "multiSelection") {
407
+ if (!PredicateValue.Operations.IsRecord(raw)) {
408
+ return ValueOrErrors.Default.throwOne(`Record expected but got multi selection of ${JSON.stringify(raw)}`);
409
+ }
410
+ const rawValue = raw.fields.map((value) => {
411
+ if (!PredicateValue.Operations.IsRecord(value)) {
412
+ return ValueOrErrors.Default.throwOne(`Record expected but got ${JSON.stringify(value)}`);
413
+ }
414
+ const fieldsObject = value.fields.toJS();
415
+ if (!CollectionReference.Operations.IsCollectionReference(fieldsObject) &&
416
+ !EnumReference.Operations.IsEnumReference(fieldsObject)) {
417
+ return ValueOrErrors.Default.throwOne(`CollectionReference or EnumReference expected but got ${JSON.stringify(fieldsObject)}`);
418
+ }
419
+ return ValueOrErrors.Default.return(fieldsObject);
420
+ });
421
+ return ValueOrErrors.Operations.All(rawValue.valueSeq().toList()).Then((values) => {
422
+ var _a, _b;
423
+ return ValueOrErrors.Default.return(converters["MultiSelection"].toAPIRawValue([
424
+ OrderedMap(values
425
+ .map((v) => {
426
+ if (CollectionReference.Operations.IsCollectionReference(v)) {
427
+ return [v.Id, v];
428
+ }
429
+ return [v.Value, v];
1077
430
  })
1078
- .toArray(),
1079
- ),
1080
- (_b =
1081
- (_a =
1082
- formState === null || formState === void 0
1083
- ? void 0
1084
- : formState.commonFormState) === null || _a === void 0
1085
- ? void 0
1086
- : _a.modifiedByUser) !== null && _b !== void 0
1087
- ? _b
1088
- : false,
1089
- ]),
1090
- );
1091
- },
1092
- );
1093
- }
1094
- if (t.kind == "list") {
1095
- if (!PredicateValue.Operations.IsTuple(raw)) {
1096
- return ValueOrErrors.Default.throwOne(
1097
- `Tuple expected but got list of ${JSON.stringify(raw)}`,
1098
- );
431
+ .toArray()),
432
+ (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _a === void 0 ? void 0 : _a.modifiedByUser) !== null && _b !== void 0 ? _b : false,
433
+ ]));
434
+ });
1099
435
  }
1100
- return ValueOrErrors.Operations.All(
1101
- List(
1102
- raw.values.map((value, index) => {
1103
- var _a;
1104
- return dispatchToAPIRawValue(
1105
- t.args[0],
1106
- types,
1107
- converters,
1108
- injectedPrimitives,
1109
- )(
1110
- value,
1111
- (_a =
1112
- formState === null || formState === void 0
1113
- ? void 0
1114
- : formState.elementFormStates) === null || _a === void 0
1115
- ? void 0
1116
- : _a.get(index),
1117
- );
1118
- }),
1119
- ),
1120
- ).Then((values) => {
1121
- var _a, _b;
1122
- return ValueOrErrors.Default.return(
1123
- converters["List"].toAPIRawValue([
1124
- values,
1125
- (_b =
1126
- (_a =
1127
- formState === null || formState === void 0
1128
- ? void 0
1129
- : formState.commonFormState) === null || _a === void 0
1130
- ? void 0
1131
- : _a.modifiedByUser) !== null && _b !== void 0
1132
- ? _b
1133
- : false,
1134
- ]),
1135
- );
1136
- });
1137
- }
1138
- if (t.kind == "map" && t.args.length == 2) {
1139
- const keyValues = raw.values.map((keyValue, index) => {
1140
- var _a, _b;
1141
- return dispatchToAPIRawValue(
1142
- t.args[0],
1143
- types,
1144
- converters,
1145
- injectedPrimitives,
1146
- )(
1147
- keyValue.values.get(0),
1148
- (_b =
1149
- (_a =
1150
- formState === null || formState === void 0
1151
- ? void 0
1152
- : formState.elementFormStates) === null || _a === void 0
1153
- ? void 0
1154
- : _a.get(index)) === null || _b === void 0
1155
- ? void 0
1156
- : _b.KeyFormState,
1157
- )
1158
- .Then((possiblyUndefinedKey) => {
1159
- if (
1160
- possiblyUndefinedKey == undefined ||
1161
- possiblyUndefinedKey == null ||
1162
- possiblyUndefinedKey == "" ||
1163
- (typeof possiblyUndefinedKey == "object" &&
1164
- (Object.keys(possiblyUndefinedKey).length == 0 ||
1165
- ("IsSome" in possiblyUndefinedKey &&
1166
- !possiblyUndefinedKey.IsSome)))
1167
- ) {
1168
- return ValueOrErrors.Default.throwOne(
1169
- `A mapped key is undefined for type ${JSON.stringify(t.args[0])}`,
1170
- );
1171
- } else {
1172
- return ValueOrErrors.Default.return(possiblyUndefinedKey);
1173
- }
1174
- })
1175
- .Then((key) => {
1176
- var _a, _b;
1177
- return dispatchToAPIRawValue(
1178
- t.args[1],
1179
- types,
1180
- converters,
1181
- injectedPrimitives,
1182
- )(
1183
- keyValue.values.get(1),
1184
- (_b =
1185
- (_a =
1186
- formState === null || formState === void 0
1187
- ? void 0
1188
- : formState.elementFormStates) === null || _a === void 0
1189
- ? void 0
1190
- : _a.get(index)) === null || _b === void 0
1191
- ? void 0
1192
- : _b.ValueFormState,
1193
- ).Then((value) => ValueOrErrors.Default.return([key, value]));
436
+ if (t.kind == "list") {
437
+ if (!PredicateValue.Operations.IsTuple(raw)) {
438
+ return ValueOrErrors.Default.throwOne(`Tuple expected but got list of ${JSON.stringify(raw)}`);
439
+ }
440
+ return ValueOrErrors.Operations.All(List(raw.values.map((value, index) => {
441
+ var _a;
442
+ return dispatchToAPIRawValue(t.args[0], types, converters, injectedPrimitives)(value, (_a = formState === null || formState === void 0 ? void 0 : formState.elementFormStates) === null || _a === void 0 ? void 0 : _a.get(index));
443
+ }))).Then((values) => {
444
+ var _a, _b;
445
+ return ValueOrErrors.Default.return(converters["List"].toAPIRawValue([
446
+ values,
447
+ (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _a === void 0 ? void 0 : _a.modifiedByUser) !== null && _b !== void 0 ? _b : false,
448
+ ]));
1194
449
  });
1195
- });
1196
- return ValueOrErrors.Operations.All(List(keyValues)).Then((values) => {
1197
- var _a, _b;
1198
- if (
1199
- values.map((kv) => JSON.stringify(kv[0])).toSet().size !=
1200
- values.size
1201
- ) {
1202
- return ValueOrErrors.Default.throwOne(
1203
- "Keys in the map are not unique",
1204
- );
1205
- }
1206
- return ValueOrErrors.Operations.Return(
1207
- converters["Map"].toAPIRawValue([
1208
- values,
1209
- (_b =
1210
- (_a =
1211
- formState === null || formState === void 0
1212
- ? void 0
1213
- : formState.commonFormState) === null || _a === void 0
1214
- ? void 0
1215
- : _a.modifiedByUser) !== null && _b !== void 0
1216
- ? _b
1217
- : false,
1218
- ]),
1219
- );
1220
- });
1221
- }
1222
- if (t.kind == "sum" && t.args.length === 2) {
1223
- if (!PredicateValue.Operations.IsSum(raw)) {
1224
- return ValueOrErrors.Default.throwOne(
1225
- `Sum expected but got ${JSON.stringify(raw)}`,
1226
- );
1227
450
  }
1228
- return dispatchToAPIRawValue(
1229
- raw.value.kind == "l" ? t.args[0] : t.args[1],
1230
- types,
1231
- converters,
1232
- injectedPrimitives,
1233
- )(
1234
- raw.value.value,
1235
- raw.value.kind == "l"
1236
- ? (_g =
1237
- formState === null || formState === void 0
1238
- ? void 0
1239
- : formState.commonFormState) === null || _g === void 0
1240
- ? void 0
1241
- : _g.left
1242
- : (_h =
1243
- formState === null || formState === void 0
1244
- ? void 0
1245
- : formState.commonFormState) === null || _h === void 0
1246
- ? void 0
1247
- : _h.right,
1248
- ).Then((value) => {
1249
- var _a, _b;
1250
- return ValueOrErrors.Default.return(
1251
- converters["Sum"].toAPIRawValue([
1252
- raw.value.kind == "l"
1253
- ? Sum.Default.left(value)
1254
- : Sum.Default.right(value),
1255
- (_b =
1256
- (_a =
1257
- formState === null || formState === void 0
1258
- ? void 0
1259
- : formState.commonFormState) === null || _a === void 0
1260
- ? void 0
1261
- : _a.modifiedByUser) !== null && _b !== void 0
1262
- ? _b
1263
- : false,
1264
- ]),
1265
- );
1266
- });
1267
- }
1268
- if (t.kind == "tuple") {
1269
- if (!PredicateValue.Operations.IsTuple(raw)) {
1270
- return ValueOrErrors.Default.throwOne(
1271
- `Tuple expected but got ${JSON.stringify(raw)}`,
1272
- );
451
+ if (t.kind == "map" && t.args.length == 2) {
452
+ const keyValues = raw.values.map((keyValue, index) => {
453
+ var _a, _b;
454
+ return dispatchToAPIRawValue(t.args[0], types, converters, injectedPrimitives)(keyValue.values.get(0), (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.elementFormStates) === null || _a === void 0 ? void 0 : _a.get(index)) === null || _b === void 0 ? void 0 : _b.KeyFormState)
455
+ .Then((possiblyUndefinedKey) => {
456
+ if (possiblyUndefinedKey == undefined ||
457
+ possiblyUndefinedKey == null ||
458
+ possiblyUndefinedKey == "" ||
459
+ (typeof possiblyUndefinedKey == "object" &&
460
+ (Object.keys(possiblyUndefinedKey).length == 0 ||
461
+ ("IsSome" in possiblyUndefinedKey &&
462
+ !possiblyUndefinedKey.IsSome)))) {
463
+ return ValueOrErrors.Default.throwOne(`A mapped key is undefined for type ${JSON.stringify(t.args[0])}`);
464
+ }
465
+ else {
466
+ return ValueOrErrors.Default.return(possiblyUndefinedKey);
467
+ }
468
+ })
469
+ .Then((key) => {
470
+ var _a, _b;
471
+ return dispatchToAPIRawValue(t.args[1], types, converters, injectedPrimitives)(keyValue.values.get(1), (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.elementFormStates) === null || _a === void 0 ? void 0 : _a.get(index)) === null || _b === void 0 ? void 0 : _b.ValueFormState).Then((value) => ValueOrErrors.Default.return([key, value]));
472
+ });
473
+ });
474
+ return ValueOrErrors.Operations.All(List(keyValues)).Then((values) => {
475
+ var _a, _b;
476
+ if (values.map((kv) => JSON.stringify(kv[0])).toSet().size !=
477
+ values.size) {
478
+ return ValueOrErrors.Default.throwOne("Keys in the map are not unique");
479
+ }
480
+ return ValueOrErrors.Operations.Return(converters["Map"].toAPIRawValue([
481
+ values,
482
+ (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _a === void 0 ? void 0 : _a.modifiedByUser) !== null && _b !== void 0 ? _b : false,
483
+ ]));
484
+ });
485
+ }
486
+ if (t.kind == "sum" && t.args.length === 2) {
487
+ if (!PredicateValue.Operations.IsSum(raw)) {
488
+ return ValueOrErrors.Default.throwOne(`Sum expected but got ${JSON.stringify(raw)}`);
489
+ }
490
+ return dispatchToAPIRawValue(raw.value.kind == "l" ? t.args[0] : t.args[1], types, converters, injectedPrimitives)(raw.value.value, raw.value.kind == "l"
491
+ ? (_g = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _g === void 0 ? void 0 : _g.left
492
+ : (_h = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _h === void 0 ? void 0 : _h.right).Then((value) => {
493
+ var _a, _b;
494
+ return ValueOrErrors.Default.return(converters["Sum"].toAPIRawValue([
495
+ raw.value.kind == "l"
496
+ ? Sum.Default.left(value)
497
+ : Sum.Default.right(value),
498
+ (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _a === void 0 ? void 0 : _a.modifiedByUser) !== null && _b !== void 0 ? _b : false,
499
+ ]));
500
+ });
1273
501
  }
1274
- return ValueOrErrors.Operations.All(
1275
- List(
1276
- raw.values.map((value, index) => {
1277
- var _a;
1278
- return dispatchToAPIRawValue(
1279
- t.args[index],
1280
- types,
1281
- converters,
1282
- injectedPrimitives,
1283
- )(
1284
- value,
1285
- (_a =
1286
- formState === null || formState === void 0
1287
- ? void 0
1288
- : formState.itemFormStates) === null || _a === void 0
1289
- ? void 0
1290
- : _a.get(index),
1291
- );
1292
- }),
1293
- ),
1294
- ).Then((values) => {
1295
- var _a, _b;
1296
- return ValueOrErrors.Default.return(
1297
- converters["Tuple"].toAPIRawValue([
1298
- values,
1299
- (_b =
1300
- (_a =
1301
- formState === null || formState === void 0
1302
- ? void 0
1303
- : formState.commonFormState) === null || _a === void 0
1304
- ? void 0
1305
- : _a.modifiedByUser) !== null && _b !== void 0
1306
- ? _b
1307
- : false,
1308
- ]),
1309
- );
1310
- });
1311
- }
1312
- if (t.kind == "lookup")
1313
- return dispatchToAPIRawValue(
1314
- types.get(t.name),
1315
- types,
1316
- converters,
1317
- injectedPrimitives,
1318
- )(raw, formState);
1319
- if (t.kind == "record") {
1320
- if (!PredicateValue.Operations.IsRecord(raw)) {
1321
- return ValueOrErrors.Default.throwOne(
1322
- `Record expected but got ${JSON.stringify(raw)}`,
1323
- );
502
+ if (t.kind == "tuple") {
503
+ if (!PredicateValue.Operations.IsTuple(raw)) {
504
+ return ValueOrErrors.Default.throwOne(`Tuple expected but got ${JSON.stringify(raw)}`);
505
+ }
506
+ return ValueOrErrors.Operations.All(List(raw.values.map((value, index) => {
507
+ var _a;
508
+ return dispatchToAPIRawValue(t.args[index], types, converters, injectedPrimitives)(value, (_a = formState === null || formState === void 0 ? void 0 : formState.itemFormStates) === null || _a === void 0 ? void 0 : _a.get(index));
509
+ }))).Then((values) => {
510
+ var _a, _b;
511
+ return ValueOrErrors.Default.return(converters["Tuple"].toAPIRawValue([
512
+ values,
513
+ (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _a === void 0 ? void 0 : _a.modifiedByUser) !== null && _b !== void 0 ? _b : false,
514
+ ]));
515
+ });
1324
516
  }
1325
- const res = [];
1326
- t.fields.forEach((fieldType, fieldName) => {
1327
- var _a;
1328
- const rawField = raw.fields.get(fieldName);
1329
- if (rawField == undefined) {
1330
- return;
1331
- }
1332
- res.push([
1333
- fieldName,
1334
- dispatchToAPIRawValue(
1335
- fieldType,
1336
- types,
1337
- converters,
1338
- injectedPrimitives,
1339
- )(
1340
- raw.fields.get(fieldName),
1341
- (_a =
1342
- formState === null || formState === void 0
1343
- ? void 0
1344
- : formState.fieldStates) === null || _a === void 0
1345
- ? void 0
1346
- : _a.get(fieldName),
1347
- ),
1348
- ]);
1349
- });
1350
- const errors = ValueOrErrors.Operations.All(
1351
- List(res.map(([_, value]) => value)),
1352
- );
1353
- if (errors.kind == "errors") return errors;
1354
- return ValueOrErrors.Operations.Return(
1355
- res.reduce((acc, [fieldName, value]) => {
1356
- acc[fieldName] = value.value;
1357
- return acc;
1358
- }, {}),
1359
- );
1360
- }
1361
- if (t.kind == "one") {
1362
- if (!PredicateValue.Operations.IsOption(raw)) {
1363
- return ValueOrErrors.Default.throwOne(
1364
- `Option expected but got ${JSON.stringify(raw)}\n...when converting one to API raw value`,
1365
- );
517
+ if (t.kind == "lookup")
518
+ return dispatchToAPIRawValue(types.get(t.name), types, converters, injectedPrimitives)(raw, formState);
519
+ if (t.kind == "record") {
520
+ if (!PredicateValue.Operations.IsRecord(raw)) {
521
+ return ValueOrErrors.Default.throwOne(`Record expected but got ${JSON.stringify(raw)}`);
522
+ }
523
+ const res = [];
524
+ t.fields.forEach((fieldType, fieldName) => {
525
+ var _a;
526
+ const rawField = raw.fields.get(fieldName);
527
+ if (rawField == undefined) {
528
+ return;
529
+ }
530
+ res.push([
531
+ fieldName,
532
+ dispatchToAPIRawValue(fieldType, types, converters, injectedPrimitives)(raw.fields.get(fieldName), (_a = formState === null || formState === void 0 ? void 0 : formState.fieldStates) === null || _a === void 0 ? void 0 : _a.get(fieldName)),
533
+ ]);
534
+ });
535
+ const errors = ValueOrErrors.Operations.All(List(res.map(([_, value]) => value)));
536
+ if (errors.kind == "errors")
537
+ return errors;
538
+ return ValueOrErrors.Operations.Return(res.reduce((acc, [fieldName, value]) => {
539
+ acc[fieldName] = value.value;
540
+ return acc;
541
+ }, {}));
1366
542
  }
1367
- if (!raw.isSome) {
1368
- return ValueOrErrors.Default.return(
1369
- converters["One"].toAPIRawValue([
1370
- raw,
1371
- (_k =
1372
- (_j =
1373
- formState === null || formState === void 0
1374
- ? void 0
1375
- : formState.commonFormState) === null || _j === void 0
1376
- ? void 0
1377
- : _j.modifiedByUser) !== null && _k !== void 0
1378
- ? _k
1379
- : false,
1380
- ]),
1381
- );
543
+ if (t.kind == "one") {
544
+ if (!PredicateValue.Operations.IsOption(raw)) {
545
+ return ValueOrErrors.Default.throwOne(`Option expected but got ${JSON.stringify(raw)}\n...when converting one to API raw value`);
546
+ }
547
+ if (!raw.isSome) {
548
+ return ValueOrErrors.Default.return(converters["One"].toAPIRawValue([
549
+ raw,
550
+ (_k = (_j = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _j === void 0 ? void 0 : _j.modifiedByUser) !== null && _k !== void 0 ? _k : false,
551
+ ]));
552
+ }
553
+ return dispatchToAPIRawValue(t.arg, types, converters, injectedPrimitives)(raw.value, (_m = (_l = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _l === void 0 ? void 0 : _l.modifiedByUser) !== null && _m !== void 0 ? _m : false).Then((value) => {
554
+ var _a, _b;
555
+ return ValueOrErrors.Default.return(converters["One"].toAPIRawValue([
556
+ PredicateValue.Default.option(true, value),
557
+ (_b = (_a = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _a === void 0 ? void 0 : _a.modifiedByUser) !== null && _b !== void 0 ? _b : false,
558
+ ]));
559
+ });
1382
560
  }
1383
- return dispatchToAPIRawValue(
1384
- t.arg,
1385
- types,
1386
- converters,
1387
- injectedPrimitives,
1388
- )(
1389
- raw.value,
1390
- (_m =
1391
- (_l =
1392
- formState === null || formState === void 0
1393
- ? void 0
1394
- : formState.commonFormState) === null || _l === void 0
1395
- ? void 0
1396
- : _l.modifiedByUser) !== null && _m !== void 0
1397
- ? _m
1398
- : false,
1399
- ).Then((value) => {
1400
- var _a, _b;
1401
- return ValueOrErrors.Default.return(
1402
- converters["One"].toAPIRawValue([
1403
- PredicateValue.Default.option(true, value),
1404
- (_b =
1405
- (_a =
1406
- formState === null || formState === void 0
1407
- ? void 0
1408
- : formState.commonFormState) === null || _a === void 0
1409
- ? void 0
1410
- : _a.modifiedByUser) !== null && _b !== void 0
1411
- ? _b
1412
- : false,
1413
- ]),
1414
- );
1415
- });
1416
- }
1417
- if (t.kind == "table") {
1418
- if (!PredicateValue.Operations.IsTable(raw)) {
1419
- return ValueOrErrors.Default.throwOne(
1420
- `Table expected but got ${JSON.stringify(raw)}`,
1421
- );
561
+ if (t.kind == "table") {
562
+ if (!PredicateValue.Operations.IsTable(raw)) {
563
+ return ValueOrErrors.Default.throwOne(`Table expected but got ${JSON.stringify(raw)}`);
564
+ }
565
+ return ValueOrErrors.Default.return(converters["Table"].toAPIRawValue([
566
+ raw,
567
+ (_p = (_o = formState === null || formState === void 0 ? void 0 : formState.commonFormState) === null || _o === void 0 ? void 0 : _o.modifiedByUser) !== null && _p !== void 0 ? _p : false,
568
+ ]));
1422
569
  }
1423
- return ValueOrErrors.Default.return(
1424
- converters["Table"].toAPIRawValue([
1425
- raw,
1426
- (_p =
1427
- (_o =
1428
- formState === null || formState === void 0
1429
- ? void 0
1430
- : formState.commonFormState) === null || _o === void 0
1431
- ? void 0
1432
- : _o.modifiedByUser) !== null && _p !== void 0
1433
- ? _p
1434
- : false,
1435
- ]),
1436
- );
1437
- }
1438
- return ValueOrErrors.Default.throwOne(
1439
- `Unsupported type ${JSON.stringify(t)}`,
1440
- );
570
+ return ValueOrErrors.Default.throwOne(`Unsupported type ${JSON.stringify(t)}`);
1441
571
  })();
1442
- return result.MapErrors((errors) =>
1443
- errors.map(
1444
- (error) =>
1445
- `${error}\n...When converting type ${JSON.stringify(t, null, 2)} and value ${JSON.stringify(raw, null, 2)} to API raw value`,
1446
- ),
1447
- );
1448
- };
1449
- //# sourceMappingURL=state.js.map
572
+ return result.MapErrors((errors) => errors.map((error) => `${error}\n...When converting type ${JSON.stringify(t, null, 2)} and value ${JSON.stringify(raw, null, 2)} to API raw value`));
573
+ };
574
+ //# sourceMappingURL=state.js.map