ballerina-core 1.0.256 → 1.0.258

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/bin/src/api-response-handler/coroutines/runner.js +20 -13
  2. package/bin/src/api-response-handler/state.js +13 -11
  3. package/bin/src/apiResultStatus/state.d.ts +10 -3
  4. package/bin/src/apiResultStatus/state.js +2 -5
  5. package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.js +314 -196
  6. package/bin/src/async/domains/mirroring/domains/collection/state.js +126 -36
  7. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.js +18 -11
  8. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.js +19 -19
  9. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.js +1 -1
  10. package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.js +18 -18
  11. package/bin/src/async/domains/mirroring/domains/entity/state.js +18 -9
  12. package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.js +134 -83
  13. package/bin/src/async/domains/mirroring/domains/singleton/state.js +52 -8
  14. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.d.ts +15 -9
  15. package/bin/src/async/domains/mirroring/domains/synchronization-result/state.js +1 -1
  16. package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.js +7 -4
  17. package/bin/src/async/domains/promise/state.d.ts +9 -4
  18. package/bin/src/async/domains/promise/state.js +20 -9
  19. package/bin/src/async/domains/synchronized/coroutines/synchronize.js +80 -28
  20. package/bin/src/async/domains/synchronized/state.d.ts +14 -7
  21. package/bin/src/async/domains/synchronized/state.js +16 -6
  22. package/bin/src/async/state.d.ts +56 -45
  23. package/bin/src/async/state.js +115 -97
  24. package/bin/src/baseEntity/domains/identifiable/state.d.ts +15 -11
  25. package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
  26. package/bin/src/collections/domains/array/state.d.ts +7 -7
  27. package/bin/src/collections/domains/array/state.js +5 -5
  28. package/bin/src/collections/domains/errors/state.d.ts +10 -10
  29. package/bin/src/collections/domains/errors/state.js +10 -10
  30. package/bin/src/collections/domains/immutable/domains/list/state.js +46 -44
  31. package/bin/src/collections/domains/immutable/domains/map/state.js +41 -23
  32. package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +84 -65
  33. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
  34. package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
  35. package/bin/src/collections/domains/maybe/state.d.ts +9 -9
  36. package/bin/src/collections/domains/maybe/state.js +12 -9
  37. package/bin/src/collections/domains/product/state.d.ts +25 -19
  38. package/bin/src/collections/domains/product/state.js +13 -10
  39. package/bin/src/collections/domains/sum/state.d.ts +101 -77
  40. package/bin/src/collections/domains/sum/state.js +49 -32
  41. package/bin/src/collections/domains/valueOrErrors/state.js +81 -56
  42. package/bin/src/coroutines/builder.js +40 -19
  43. package/bin/src/coroutines/state.js +381 -306
  44. package/bin/src/coroutines/template.js +97 -59
  45. package/bin/src/debounced/coroutines/debounce.js +115 -89
  46. package/bin/src/debounced/state.js +62 -25
  47. package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
  48. package/bin/src/diagnostics/domains/message-box/state.js +3 -3
  49. package/bin/src/foreignMutations/state.d.ts +3 -3
  50. package/bin/src/foreignMutations/state.js +1 -1
  51. package/bin/src/forms/domains/attachments/views/attachments-view.js +30 -8
  52. package/bin/src/forms/domains/collection/domains/reference/state.js +26 -20
  53. package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
  54. package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +2007 -754
  55. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.d.ts.map +1 -1
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +123 -44
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js.map +1 -1
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +40 -27
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +21 -13
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +43 -27
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +39 -22
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts +167 -0
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts.map +1 -0
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js +367 -0
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js.map +1 -0
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts +7 -29
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts.map +1 -1
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +1098 -572
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js.map +1 -1
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts +1 -0
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts.map +1 -1
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +322 -90
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/state.js.map +1 -1
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +3 -2
  75. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts +27 -4
  76. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js +136 -82
  77. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
  78. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +49 -23
  79. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
  80. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +52 -24
  81. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +18 -6
  82. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +64 -30
  83. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +9 -6
  84. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +153 -60
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +127 -50
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +40 -22
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +31 -13
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +452 -152
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +29 -8
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js.map +1 -1
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +61 -18
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +329 -90
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +54 -23
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +22 -10
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +49 -31
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +29 -10
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +2 -2
  101. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +47 -26
  102. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +88 -40
  103. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +386 -152
  104. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +19 -10
  105. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +99 -33
  106. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +32 -11
  107. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +227 -82
  108. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +35 -13
  109. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +195 -68
  110. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +36 -13
  111. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +246 -106
  112. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
  113. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +54 -23
  114. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +40 -27
  115. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
  116. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +58 -26
  117. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +22 -7
  118. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +188 -53
  119. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/builder.js +2 -2
  120. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/infiniteLoader.js +57 -24
  121. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseFiltersAndSorting.js +70 -20
  122. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.d.ts.map +1 -1
  123. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js +88 -48
  124. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js.map +1 -1
  125. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/loadWithRetries.js +40 -20
  126. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +43 -15
  127. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +301 -137
  128. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js.map +1 -1
  129. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +692 -240
  130. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +20 -8
  131. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +132 -35
  132. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +21 -8
  133. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +105 -33
  134. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +12 -9
  135. package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +54 -20
  136. package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +716 -560
  137. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +58 -18
  138. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +45 -14
  139. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +76 -18
  140. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +82 -24
  141. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +37 -8
  142. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +120 -36
  143. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +145 -63
  144. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +44 -12
  145. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +14 -4
  146. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +81 -25
  147. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +82 -24
  148. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +63 -20
  149. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +248 -74
  150. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +61 -13
  151. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +92 -33
  152. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +144 -45
  153. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_init.js +203 -95
  154. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_sync.js +79 -37
  155. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/builder.js +2 -2
  156. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/runner.js +19 -17
  157. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/state.js +58 -11
  158. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/template.js +73 -25
  159. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_init.js +205 -95
  160. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_sync.js +78 -37
  161. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/builder.js +2 -2
  162. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/runner.js +19 -17
  163. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/state.js +58 -11
  164. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/template.js +71 -25
  165. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/coroutines/runner.js +163 -85
  166. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/state.js +10 -4
  167. package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/template.js +72 -27
  168. package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +796 -436
  169. package/bin/src/forms/domains/dispatched-forms/runner/state.js +62 -38
  170. package/bin/src/forms/domains/dispatched-forms/runner/template.js +78 -25
  171. package/bin/src/forms/domains/launcher/coroutines/runner.js +120 -45
  172. package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +240 -101
  173. package/bin/src/forms/domains/launcher/domains/create/state.js +62 -17
  174. package/bin/src/forms/domains/launcher/domains/create/template.js +84 -42
  175. package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +242 -103
  176. package/bin/src/forms/domains/launcher/domains/edit/state.js +62 -17
  177. package/bin/src/forms/domains/launcher/domains/edit/template.js +86 -43
  178. package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
  179. package/bin/src/forms/domains/launcher/domains/merger/state.js +35 -26
  180. package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +88 -42
  181. package/bin/src/forms/domains/launcher/domains/passthrough/state.js +44 -19
  182. package/bin/src/forms/domains/launcher/domains/passthrough/template.js +56 -34
  183. package/bin/src/forms/domains/launcher/state.js +6 -6
  184. package/bin/src/forms/domains/launcher/template.js +169 -85
  185. package/bin/src/forms/domains/parser/coroutines/runner.js +87 -25
  186. package/bin/src/forms/domains/parser/domains/built-ins/state.js +944 -533
  187. package/bin/src/forms/domains/parser/domains/deltas/state.js +444 -318
  188. package/bin/src/forms/domains/parser/domains/injectables/state.js +29 -26
  189. package/bin/src/forms/domains/parser/domains/layout/state.js +271 -183
  190. package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +324 -162
  191. package/bin/src/forms/domains/parser/domains/predicates/state.js +1514 -984
  192. package/bin/src/forms/domains/parser/domains/renderer/state.js +1137 -480
  193. package/bin/src/forms/domains/parser/domains/types/state.js +355 -170
  194. package/bin/src/forms/domains/parser/domains/validator/state.js +417 -280
  195. package/bin/src/forms/domains/parser/state.js +612 -373
  196. package/bin/src/forms/domains/parser/template.js +1 -1
  197. package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
  198. package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +38 -19
  199. package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
  200. package/bin/src/forms/domains/primitives/domains/boolean/template.js +38 -19
  201. package/bin/src/forms/domains/primitives/domains/date/state.js +18 -9
  202. package/bin/src/forms/domains/primitives/domains/date/template.js +51 -25
  203. package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
  204. package/bin/src/forms/domains/primitives/domains/enum/template.js +117 -48
  205. package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
  206. package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +99 -40
  207. package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
  208. package/bin/src/forms/domains/primitives/domains/list/template.js +200 -71
  209. package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
  210. package/bin/src/forms/domains/primitives/domains/map/template.js +294 -103
  211. package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
  212. package/bin/src/forms/domains/primitives/domains/number/template.js +38 -19
  213. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +33 -16
  214. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +171 -62
  215. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
  216. package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +182 -69
  217. package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
  218. package/bin/src/forms/domains/primitives/domains/secret/template.js +38 -19
  219. package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
  220. package/bin/src/forms/domains/primitives/domains/string/template.js +42 -22
  221. package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
  222. package/bin/src/forms/domains/primitives/domains/sum/template.js +141 -50
  223. package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
  224. package/bin/src/forms/domains/primitives/domains/tuple/template.js +100 -33
  225. package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
  226. package/bin/src/forms/domains/primitives/domains/unit/template.js +22 -9
  227. package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
  228. package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
  229. package/bin/src/forms/domains/singleton/state.js +12 -10
  230. package/bin/src/forms/domains/singleton/template.js +288 -113
  231. package/bin/src/fun/domains/curry/state.d.ts +4 -2
  232. package/bin/src/fun/domains/curry/state.js +1 -1
  233. package/bin/src/fun/domains/id/state.d.ts +1 -1
  234. package/bin/src/fun/domains/id/state.js +1 -1
  235. package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +57 -41
  236. package/bin/src/fun/domains/predicate/domains/bool-expr.js +76 -67
  237. package/bin/src/fun/domains/predicate/state.d.ts +9 -7
  238. package/bin/src/fun/domains/predicate/state.js +14 -10
  239. package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
  240. package/bin/src/fun/domains/simpleCallback/state.js +1 -1
  241. package/bin/src/fun/domains/uncurry/state.d.ts +4 -2
  242. package/bin/src/fun/domains/uncurry/state.js +1 -1
  243. package/bin/src/fun/domains/unit/state.d.ts +1 -1
  244. package/bin/src/fun/domains/unit/state.js +1 -1
  245. package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +22 -7
  246. package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +18 -10
  247. package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +24 -13
  248. package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +40 -10
  249. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +19 -13
  250. package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +20 -9
  251. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +24 -13
  252. package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +47 -11
  253. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +20 -8
  254. package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +17 -5
  255. package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
  256. package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
  257. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +13 -4
  258. package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +6 -4
  259. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +60 -22
  260. package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +42 -31
  261. package/bin/src/fun/domains/updater/state.d.ts +4 -4
  262. package/bin/src/fun/domains/updater/state.js +12 -10
  263. package/bin/src/fun/state.d.ts +3 -3
  264. package/bin/src/fun/state.js +9 -7
  265. package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
  266. package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +47 -20
  267. package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
  268. package/bin/src/infinite-data-stream/state.d.ts +84 -51
  269. package/bin/src/infinite-data-stream/state.js +125 -61
  270. package/bin/src/infinite-data-stream/template.js +3 -2
  271. package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
  272. package/bin/src/math/domains/DOMRect/state.js +10 -8
  273. package/bin/src/math/domains/number/state.d.ts +5 -5
  274. package/bin/src/math/domains/number/state.js +5 -5
  275. package/bin/src/math/domains/rect/state.d.ts +8 -8
  276. package/bin/src/math/domains/rect/state.js +16 -15
  277. package/bin/src/math/domains/rgba/state.d.ts +17 -17
  278. package/bin/src/math/domains/rgba/state.js +77 -81
  279. package/bin/src/math/domains/size2/state.d.ts +8 -8
  280. package/bin/src/math/domains/size2/state.js +6 -6
  281. package/bin/src/math/domains/vector2/state.d.ts +10 -10
  282. package/bin/src/math/domains/vector2/state.js +8 -8
  283. package/bin/src/queue/state.js +23 -16
  284. package/bin/src/state/domains/repository/state.d.ts +15 -9
  285. package/bin/src/state/domains/repository/state.js +1 -1
  286. package/bin/src/template/state.js +163 -115
  287. package/bin/src/validation/state.js +38 -45
  288. package/bin/src/value/domains/mutable-value/state.js +3 -2
  289. package/bin/src/value/state.d.ts +9 -9
  290. package/bin/src/value/state.js +11 -8
  291. package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
  292. package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +55 -20
  293. package/bin/src/value-infinite-data-stream/coroutines/runner.js +6 -4
  294. package/bin/src/value-infinite-data-stream/state.js +199 -77
  295. package/bin/src/value-infinite-data-stream/template.js +4 -2
  296. package/bin/src/visibility/state.d.ts +5 -2
  297. package/bin/src/visibility/state.js +1 -1
  298. package/main.ts +1 -0
  299. package/package.json +1 -1
  300. package/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.ts +2 -2
  301. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.ts +117 -111
  302. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.ts +14 -5
  303. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.ts +75 -18
  304. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.ts +16 -6
  305. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.ts +27 -9
  306. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.ts +28 -8
  307. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.ts +13 -4
  308. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.ts +18 -7
  309. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.ts +40 -14
  310. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.ts +15 -5
  311. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.ts +20 -6
  312. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +101 -50
  313. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.ts +22 -23
  314. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.ts +37 -19
  315. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.ts +64 -6
  316. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.ts +585 -0
  317. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.ts +592 -340
  318. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.ts +364 -226
  319. package/src/forms/domains/dispatched-forms/deserializer/state.ts +1 -2
  320. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.tsx +1 -1
  321. package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.ts +2 -2
@@ -8,7 +8,6 @@ import {
8
8
  EditLauncher,
9
9
  PassthroughLauncher,
10
10
  SerializedEntityApi,
11
- Launcher,
12
11
  EnumApis,
13
12
  StreamApis,
14
13
  SpecificationApis,
@@ -33,15 +32,25 @@ export type SerializedSpecification = {
33
32
  launchers?: unknown;
34
33
  };
35
34
 
35
+ export type SerializedLauncher = {
36
+ kind: "create" | "edit" | "passthrough";
37
+ form: string;
38
+ api?: string;
39
+ configApi?: string;
40
+ configType?: string;
41
+ };
42
+
36
43
  export type Specification<T> = {
37
44
  types: Map<DispatchTypeName, DispatchParsedType<T>>;
38
45
  apis: SpecificationApis<T>;
39
46
  forms: Map<string, Renderer<T>>;
40
- launchers: {
41
- create: Map<string, CreateLauncher>;
42
- edit: Map<string, EditLauncher>;
43
- passthrough: Map<string, PassthroughLauncher>;
44
- };
47
+ launchers: Launchers;
48
+ };
49
+
50
+ export type Launchers = {
51
+ create: Map<string, CreateLauncher>;
52
+ edit: Map<string, EditLauncher>;
53
+ passthrough: Map<string, PassthroughLauncher>;
45
54
  };
46
55
 
47
56
  export const Specification = {
@@ -94,18 +103,20 @@ export const Specification = {
94
103
  } =>
95
104
  DispatchIsObject(_) && "launchers" in _ && DispatchIsObject(_.launchers),
96
105
  DeserializeSpecTypes: <T>(
106
+ launcherTypes: List<DispatchTypeName>,
97
107
  serializedTypes: Record<string, SerializedType<T>>,
98
108
  injectedPrimitives?: DispatchInjectedPrimitives<T>,
99
109
  ): ValueOrErrors<Map<DispatchTypeName, DispatchParsedType<T>>, string> => {
100
- const serializedTypeNames = Set(Object.keys(serializedTypes));
101
110
  return ValueOrErrors.Operations.All(
102
111
  List<ValueOrErrors<[DispatchTypeName, DispatchParsedType<T>], string>>(
103
- Object.entries(serializedTypes)
104
- .reduce((acc, [rawTypeName, rawType]) => {
112
+ launcherTypes
113
+ .reduce((acc, rawTypeName) => {
114
+ if (acc.has(rawTypeName)) {
115
+ return acc;
116
+ }
105
117
  const res = DispatchParsedType.Operations.ParseRawType(
106
118
  rawTypeName,
107
- rawType,
108
- serializedTypeNames,
119
+ serializedTypes[rawTypeName],
109
120
  serializedTypes,
110
121
  acc,
111
122
  injectedPrimitives,
@@ -129,7 +140,60 @@ export const Specification = {
129
140
  ),
130
141
  ),
131
142
  ),
132
- ).Then((parsedTypes) => ValueOrErrors.Default.return(Map(parsedTypes)));
143
+ ).Then((parsedTypes) =>
144
+ ValueOrErrors.Default.return(
145
+ Map<DispatchTypeName, DispatchParsedType<T>>(parsedTypes),
146
+ ),
147
+ );
148
+ },
149
+ DeserializeLaunchers: <T>(
150
+ desiredLaunchers: string[] | undefined,
151
+ serializedLaunchers: Record<string, SerializedLauncher>,
152
+ ): ValueOrErrors<Launchers, string> => {
153
+ let launchers: Specification<T>["launchers"] = {
154
+ create: Map<string, CreateLauncher>(),
155
+ edit: Map<string, EditLauncher>(),
156
+ passthrough: Map<string, PassthroughLauncher>(),
157
+ };
158
+ Object.entries(serializedLaunchers)
159
+ .filter(([launcherName, _]) =>
160
+ desiredLaunchers ? desiredLaunchers.includes(launcherName) : true,
161
+ )
162
+ .forEach(([launcherName, serializedLauncher]) => {
163
+ const launcher =
164
+ serializedLauncher["kind"] == "create" ||
165
+ serializedLauncher["kind"] == "edit"
166
+ ? {
167
+ name: launcherName,
168
+ kind: serializedLauncher["kind"],
169
+ form: serializedLauncher["form"],
170
+ api: serializedLauncher["api"],
171
+ configApi: serializedLauncher["configApi"],
172
+ }
173
+ : {
174
+ name: launcherName,
175
+ kind: serializedLauncher["kind"],
176
+ form: serializedLauncher["form"],
177
+ configType: serializedLauncher["configType"],
178
+ };
179
+ if (launcher.kind == "create")
180
+ launchers.create = launchers.create.set(
181
+ launcherName,
182
+ launcher as CreateLauncher,
183
+ );
184
+ else if (launcher.kind == "edit")
185
+ launchers.edit = launchers.edit.set(
186
+ launcherName,
187
+ launcher as EditLauncher,
188
+ );
189
+ else if (launcher.kind == "passthrough")
190
+ launchers.passthrough = launchers.passthrough.set(
191
+ launcherName,
192
+ launcher as PassthroughLauncher,
193
+ );
194
+ });
195
+
196
+ return ValueOrErrors.Default.return(launchers);
133
197
  },
134
198
  DeserializeForms: <
135
199
  T extends DispatchInjectablesTypes<T>,
@@ -145,51 +209,187 @@ export const Specification = {
145
209
  CustomPresentationContext,
146
210
  ExtraContext
147
211
  >,
148
- ): ValueOrErrors<Map<string, Renderer<T>>, string> =>
149
- ValueOrErrors.Operations.All(
150
- List<ValueOrErrors<[string, Renderer<T>], string>>(
151
- Object.entries(forms).map(([formName, form]) =>
152
- !DispatchIsObject(form) ||
153
- !("type" in form) ||
154
- typeof form.type != "string"
155
- ? ValueOrErrors.Default.throwOne(
156
- `form ${formName} is missing the required type attribute`,
157
- )
158
- : MapRepo.Operations.tryFindWithError(
159
- form.type,
160
- types,
161
- () => `form type ${form.type} not found in types`,
162
- ).Then((formType) =>
163
- Renderer.Operations.Deserialize(
164
- "columns" in form
165
- ? DispatchParsedType.Default.table(
166
- DispatchParsedType.Default.lookup(
167
- form.type as string,
212
+ launcherForms: List<string>,
213
+ ): ValueOrErrors<Map<string, Renderer<T>>, string> => {
214
+ return Object.entries(forms)
215
+ .filter(([formName]) => launcherForms.includes(formName))
216
+ .reduce<
217
+ ValueOrErrors<
218
+ [Map<string, Renderer<T>>, Map<string, Renderer<T>>],
219
+ string
220
+ >
221
+ >(
222
+ (acc, [formName, form]) =>
223
+ acc.Then(([formsMap, accumulatedAlreadyParsedForms]) =>
224
+ !DispatchIsObject(form) ||
225
+ !("type" in form) ||
226
+ typeof form.type != "string"
227
+ ? ValueOrErrors.Default.throwOne<
228
+ [Map<string, Renderer<T>>, Map<string, Renderer<T>>],
229
+ string
230
+ >(`form ${formName} is missing the required type attribute`)
231
+ : accumulatedAlreadyParsedForms.has(formName)
232
+ ? ValueOrErrors.Default.return<
233
+ [Map<string, Renderer<T>>, Map<string, Renderer<T>>],
234
+ string
235
+ >([
236
+ formsMap.set(
237
+ formName,
238
+ accumulatedAlreadyParsedForms.get(formName)!,
239
+ ),
240
+ accumulatedAlreadyParsedForms,
241
+ ])
242
+ : MapRepo.Operations.tryFindWithError(
243
+ form.type,
244
+ types,
245
+ () => `form type ${form.type} not found in types`,
246
+ ).Then((formType) =>
247
+ Renderer.Operations.Deserialize(
248
+ "columns" in form
249
+ ? DispatchParsedType.Default.table(
250
+ DispatchParsedType.Default.lookup(
251
+ form.type as string,
252
+ ),
253
+ )
254
+ : formType,
255
+ form,
256
+ concreteRenderers as unknown as ConcreteRenderers<
257
+ T,
258
+ Flags,
259
+ CustomPresentationContext
260
+ >,
261
+ types,
262
+ undefined,
263
+ forms,
264
+ accumulatedAlreadyParsedForms,
265
+ )
266
+ .MapErrors((errors) =>
267
+ errors.map(
268
+ (error) =>
269
+ `${error}\n...When deserializing form ${formName}`,
168
270
  ),
169
271
  )
170
- : formType,
171
- form,
172
- concreteRenderers as unknown as ConcreteRenderers<
173
- T,
174
- Flags,
175
- CustomPresentationContext
176
- >,
177
- types,
178
- undefined,
179
- )
180
- .MapErrors((errors) =>
181
- errors.map(
182
- (error) =>
183
- `${error}\n...When deserializing form ${formName}`,
184
- ),
185
- )
186
- .Then((form) =>
187
- ValueOrErrors.Default.return([formName, form]),
272
+ .Then(([deserializedForm, newAlreadyParsedForms]) =>
273
+ ValueOrErrors.Default.return<
274
+ [
275
+ Map<string, Renderer<T>>,
276
+ Map<string, Renderer<T>>,
277
+ ],
278
+ string
279
+ >([
280
+ formsMap.set(formName, deserializedForm),
281
+ newAlreadyParsedForms,
282
+ ]),
283
+ ),
188
284
  ),
189
- ),
285
+ ),
286
+ ValueOrErrors.Default.return<
287
+ [Map<string, Renderer<T>>, Map<string, Renderer<T>>],
288
+ string
289
+ >([Map<string, Renderer<T>>(), Map<string, Renderer<T>>()]),
290
+ )
291
+ .Then(([forms, accumulatedAlreadyParsedForms]) =>
292
+ ValueOrErrors.Default.return<Map<string, Renderer<T>>, string>(
293
+ accumulatedAlreadyParsedForms.concat(forms),
190
294
  ),
191
- ),
192
- ).Then((forms) => ValueOrErrors.Default.return(Map(forms))),
295
+ );
296
+ },
297
+ GetFormType: <T>(form: object): ValueOrErrors<string, string> => {
298
+ if (!("type" in form) || typeof form.type != "string")
299
+ return ValueOrErrors.Default.throwOne(
300
+ `form is missing the required type attribute`,
301
+ );
302
+ return ValueOrErrors.Default.return(form.type);
303
+ },
304
+ TryFindForm: <T>(
305
+ formName: string,
306
+ forms: object,
307
+ ): ValueOrErrors<object, string> => {
308
+ if (!(formName in forms))
309
+ return ValueOrErrors.Default.throwOne(
310
+ `form ${formName} not found in forms`,
311
+ );
312
+ return ValueOrErrors.Default.return(Reflect.get(forms, formName));
313
+ },
314
+ GetLauncherFormNames: <T>(launchers: Launchers): List<string> => {
315
+ const forms: string[] = [];
316
+ launchers.create.forEach((launcher) => forms.push(launcher.form));
317
+ launchers.edit.forEach((launcher) => forms.push(launcher.form));
318
+ launchers.passthrough.forEach((launcher) => forms.push(launcher.form));
319
+ return List(forms);
320
+ },
321
+ GetCreateAndEditConfigEntityTypes: <T>(
322
+ launchers: Launchers,
323
+ apis: object,
324
+ ): List<ValueOrErrors<string, string>> => {
325
+ const entities = Reflect.get(apis, "entities");
326
+ const results: ValueOrErrors<string, string>[] = [];
327
+ launchers.create.forEach((launcher) => {
328
+ const entityType = Reflect.get(entities, launcher.configApi)?.type;
329
+ results.push(
330
+ entityType
331
+ ? ValueOrErrors.Default.return<string, string>(entityType)
332
+ : ValueOrErrors.Default.throwOne<string, string>(
333
+ `entity type ${launcher.configApi} not found in entities`,
334
+ ),
335
+ );
336
+ });
337
+ launchers.edit.forEach((launcher) => {
338
+ const entityType = Reflect.get(entities, launcher.configApi)?.type;
339
+ results.push(
340
+ entityType
341
+ ? ValueOrErrors.Default.return<string, string>(entityType)
342
+ : ValueOrErrors.Default.throwOne<string, string>(
343
+ `entity type ${launcher.configApi} not found in entities`,
344
+ ),
345
+ );
346
+ });
347
+ return List(results);
348
+ },
349
+
350
+ GetLauncherConfigTypes: <T>(launchers: Launchers): List<string> => {
351
+ return launchers.passthrough
352
+ .map((launcher) => launcher.configType)
353
+ .toList();
354
+ },
355
+ GetLaucherFormTypes: <T>(
356
+ launchers: Launchers,
357
+ forms: object,
358
+ apis: object,
359
+ ): ValueOrErrors<List<string>, string> => {
360
+ const results: ValueOrErrors<string, string>[] = [];
361
+ launchers.create.forEach((launcher) => {
362
+ results.push(
363
+ Specification.Operations.TryFindForm(launcher.form, forms).Then(
364
+ (form) => Specification.Operations.GetFormType(form),
365
+ ),
366
+ );
367
+ });
368
+ launchers.edit.forEach((launcher) => {
369
+ results.push(
370
+ Specification.Operations.TryFindForm(launcher.form, forms).Then(
371
+ (form) => Specification.Operations.GetFormType(form),
372
+ ),
373
+ );
374
+ });
375
+ launchers.passthrough.forEach((launcher) => {
376
+ results.push(
377
+ Specification.Operations.TryFindForm(launcher.form, forms).Then(
378
+ (form) => Specification.Operations.GetFormType(form),
379
+ ),
380
+ );
381
+ results.push(
382
+ ValueOrErrors.Default.return<string, string>(launcher.configType),
383
+ );
384
+ });
385
+ results.push(
386
+ ...Specification.Operations.GetCreateAndEditConfigEntityTypes(
387
+ launchers,
388
+ apis,
389
+ ).toArray(),
390
+ );
391
+ return ValueOrErrors.Operations.All(List(results));
392
+ },
193
393
  Deserialize:
194
394
  <
195
395
  T extends DispatchInjectablesTypes<T>,
@@ -207,205 +407,143 @@ export const Specification = {
207
407
  injectedPrimitives?: DispatchInjectedPrimitives<T>,
208
408
  ) =>
209
409
  (
210
- serializedSpecifications:
410
+ serializedSpecificationV2s:
211
411
  | SerializedSpecification
212
412
  | SerializedSpecification[],
413
+ launcherNames?: string[],
213
414
  ): ValueOrErrors<Specification<T>, string> =>
214
415
  injectedPrimitives
215
416
  ?.keySeq()
216
- .toArray()
217
417
  .some(
218
418
  (injectedPrimitiveName) =>
219
- !Object.keys(apiConverters).includes(
220
- injectedPrimitiveName as string,
221
- ),
419
+ !(injectedPrimitiveName in apiConverters),
222
420
  )
223
421
  ? ValueOrErrors.Default.throwOne(
224
422
  `the formsConfig does not contain an Api Converter for all injected primitives`,
225
423
  )
226
- : !Specification.Operations.hasTypes(serializedSpecifications)
424
+ : !Specification.Operations.hasLaunchers(serializedSpecificationV2s)
227
425
  ? ValueOrErrors.Default.throwOne<Specification<T>, string>(
228
- "types are missing from the specification",
426
+ "launchers are missing from the specificationV2",
229
427
  )
230
- : Specification.Operations.DeserializeSpecTypes(
231
- serializedSpecifications.types,
232
- injectedPrimitives,
428
+ : Specification.Operations.DeserializeLaunchers(
429
+ launcherNames,
430
+ serializedSpecificationV2s.launchers,
233
431
  )
234
- .Then((allTypes) =>
235
- !Specification.Operations.hasForms(serializedSpecifications)
432
+ .Then((launchers) =>
433
+ !Specification.Operations.hasTypes(serializedSpecificationV2s)
236
434
  ? ValueOrErrors.Default.throwOne<Specification<T>, string>(
237
- "forms are missing from the specification",
435
+ "types are missing from the specificationV2",
238
436
  )
239
- : Specification.Operations.DeserializeForms<
240
- T,
241
- Flags,
242
- CustomPresentationContext,
243
- ExtraContext
244
- >(
245
- serializedSpecifications.forms,
246
- allTypes,
247
- concreteRenderers,
248
- ).Then((forms) =>
249
- !Specification.Operations.hasApis(
250
- serializedSpecifications,
437
+ : !Specification.Operations.hasForms(
438
+ serializedSpecificationV2s,
251
439
  )
252
- ? ValueOrErrors.Default.throwOne<
253
- Specification<T>,
254
- string
255
- >("apis are missing from the specification")
256
- : // TODO move all apis serialization to the apis state file
257
- EnumApis.Operations.Deserialize(
258
- serializedSpecifications.apis.enumOptions,
259
- ).Then((enums) =>
260
- StreamApis.Operations.Deserialize(
261
- serializedSpecifications.apis.searchableStreams,
262
- ).Then((streams) =>
263
- TableApis.Operations.Deserialize(
264
- concreteRenderers,
265
- allTypes,
266
- serializedSpecifications.apis.tables,
267
- injectedPrimitives,
268
- ).Then((tables) =>
269
- LookupApis.Operations.Deserialize(
270
- serializedSpecifications.apis.lookups,
271
- ).Then((lookups) => {
272
- let entities: Map<string, EntityApi> =
273
- Map();
274
- Object.entries(
275
- serializedSpecifications.apis.entities,
276
- ).forEach(
277
- ([entityApiName, entityApi]: [
278
- entiyApiName: string,
279
- entityApi: SerializedEntityApi,
280
- ]) => {
281
- entities = entities.set(entityApiName, {
282
- type: entityApi.type,
283
- methods: {
284
- create:
285
- entityApi.methods.includes(
286
- "create",
287
- ),
288
- get: entityApi.methods.includes(
289
- "get",
290
- ),
291
- update:
292
- entityApi.methods.includes(
293
- "update",
294
- ),
295
- default:
296
- entityApi.methods.includes(
297
- "default",
298
- ),
299
- },
300
- });
301
- },
302
- );
303
-
304
- let launchers: Specification<T>["launchers"] =
305
- {
306
- create: Map<string, CreateLauncher>(),
307
- edit: Map<string, EditLauncher>(),
308
- passthrough: Map<
440
+ ? ValueOrErrors.Default.throwOne<
441
+ Specification<T>,
442
+ string
443
+ >("forms are missing from the specificationV2")
444
+ : !Specification.Operations.hasApis(
445
+ serializedSpecificationV2s,
446
+ )
447
+ ? ValueOrErrors.Default.throwOne<
448
+ Specification<T>,
449
+ string
450
+ >("apis are missing from the specificationV2")
451
+ : Specification.Operations.GetLaucherFormTypes(
452
+ launchers,
453
+ serializedSpecificationV2s.forms,
454
+ serializedSpecificationV2s.apis,
455
+ ).Then((formTypes) =>
456
+ Specification.Operations.DeserializeSpecTypes(
457
+ formTypes,
458
+ serializedSpecificationV2s.types,
459
+ injectedPrimitives,
460
+ ).Then((allTypes) =>
461
+ Specification.Operations.DeserializeForms<
462
+ T,
463
+ Flags,
464
+ CustomPresentationContext,
465
+ ExtraContext
466
+ >(
467
+ serializedSpecificationV2s.forms,
468
+ allTypes,
469
+ concreteRenderers,
470
+ Specification.Operations.GetLauncherFormNames(
471
+ launchers,
472
+ ),
473
+ ).Then((forms) =>
474
+ EnumApis.Operations.Deserialize(
475
+ serializedSpecificationV2s.apis.enumOptions,
476
+ ).Then((enums) =>
477
+ StreamApis.Operations.Deserialize(
478
+ serializedSpecificationV2s.apis
479
+ .searchableStreams,
480
+ ).Then((streams) =>
481
+ TableApis.Operations.Deserialize(
482
+ concreteRenderers,
483
+ allTypes,
484
+ serializedSpecificationV2s.types,
485
+ serializedSpecificationV2s.apis.tables,
486
+ injectedPrimitives,
487
+ ).Then((tables) =>
488
+ LookupApis.Operations.Deserialize(
489
+ serializedSpecificationV2s.apis.lookups,
490
+ ).Then((lookups) => {
491
+ const entityEntries: [
309
492
  string,
310
- PassthroughLauncher
311
- >(),
312
- };
313
-
314
- if (
315
- !Specification.Operations.hasLaunchers(
316
- serializedSpecifications,
317
- )
318
- )
319
- return ValueOrErrors.Default.throwOne<
320
- Specification<T>,
321
- string
322
- >(
323
- "launchers are missing from the specification",
324
- );
325
-
326
- Object.keys(
327
- serializedSpecifications["launchers"],
328
- ).forEach((launcherName: any) => {
329
- const launcher: Launcher =
330
- serializedSpecifications.launchers[
331
- launcherName
332
- ]["kind"] == "create" ||
333
- serializedSpecifications.launchers[
334
- launcherName
335
- ]["kind"] == "edit"
336
- ? {
337
- name: launcherName,
338
- kind: serializedSpecifications
339
- .launchers[launcherName][
340
- "kind"
341
- ],
342
- form: serializedSpecifications
343
- .launchers[launcherName][
344
- "form"
345
- ],
346
- api: serializedSpecifications
347
- .launchers[launcherName]["api"],
348
- configApi:
349
- serializedSpecifications
350
- .launchers[launcherName][
351
- "configApi"
352
- ],
353
- }
354
- : {
355
- name: launcherName,
356
- kind: serializedSpecifications
357
- .launchers[launcherName][
358
- "kind"
359
- ],
360
- form: serializedSpecifications
361
- .launchers[launcherName][
362
- "form"
363
- ],
364
- configType:
365
- serializedSpecifications
366
- .launchers[launcherName][
367
- "configType"
368
- ],
369
- };
370
- if (launcher.kind == "create")
371
- launchers.create = launchers.create.set(
372
- launcherName,
373
- launcher,
374
- );
375
- else if (launcher.kind == "edit")
376
- launchers.edit = launchers.edit.set(
377
- launcherName,
378
- launcher,
493
+ EntityApi,
494
+ ][] = Object.entries(
495
+ serializedSpecificationV2s.apis
496
+ .entities,
497
+ ).map(
498
+ ([entityApiName, entityApi]: [
499
+ entiyApiName: string,
500
+ entityApi: SerializedEntityApi,
501
+ ]) => {
502
+ const methods = entityApi.methods;
503
+ return [
504
+ entityApiName,
505
+ {
506
+ type: entityApi.type,
507
+ methods: {
508
+ create:
509
+ methods.includes("create"),
510
+ get: methods.includes("get"),
511
+ update:
512
+ methods.includes("update"),
513
+ default:
514
+ methods.includes("default"),
515
+ },
516
+ },
517
+ ] as [string, EntityApi];
518
+ },
379
519
  );
380
- else if (launcher.kind == "passthrough")
381
- launchers.passthrough =
382
- launchers.passthrough.set(
383
- launcherName,
384
- launcher,
385
- );
386
- });
520
+ const entities: Map<string, EntityApi> =
521
+ Map(entityEntries);
387
522
 
388
- return ValueOrErrors.Default.return({
389
- types: allTypes,
390
- forms,
391
- apis: {
392
- enums,
393
- streams,
394
- entities,
395
- tables,
396
- lookups,
397
- },
398
- launchers,
399
- });
400
- }),
523
+ return ValueOrErrors.Default.return({
524
+ types: allTypes,
525
+ forms,
526
+ apis: {
527
+ enums,
528
+ streams,
529
+ entities,
530
+ tables,
531
+ lookups,
532
+ },
533
+ launchers,
534
+ });
535
+ }),
536
+ ),
537
+ ),
401
538
  ),
402
539
  ),
403
540
  ),
404
- ),
541
+ ),
405
542
  )
406
543
  .MapErrors((errors) =>
407
544
  errors.map(
408
- (error) => `${error}\n...When deserializing specification`,
545
+ (error) =>
546
+ `${error}\n...When deserializing specificationV2`,
409
547
  ),
410
548
  ),
411
549
  },