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.
- package/bin/src/api-response-handler/coroutines/runner.js +20 -13
- package/bin/src/api-response-handler/state.js +13 -11
- package/bin/src/apiResultStatus/state.d.ts +10 -3
- package/bin/src/apiResultStatus/state.js +2 -5
- package/bin/src/async/domains/mirroring/domains/collection/coroutines/synchronizers.js +314 -196
- package/bin/src/async/domains/mirroring/domains/collection/state.js +126 -36
- package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection/state.js +18 -11
- package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-collection-entity/state.js +19 -19
- package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entities/state.js +1 -1
- package/bin/src/async/domains/mirroring/domains/entity/domains/loaded-entity/state.js +18 -18
- package/bin/src/async/domains/mirroring/domains/entity/state.js +18 -9
- package/bin/src/async/domains/mirroring/domains/singleton/coroutines/synchronizers.js +134 -83
- package/bin/src/async/domains/mirroring/domains/singleton/state.js +52 -8
- package/bin/src/async/domains/mirroring/domains/synchronization-result/state.d.ts +15 -9
- package/bin/src/async/domains/mirroring/domains/synchronization-result/state.js +1 -1
- package/bin/src/async/domains/mirroring/domains/synchronized-entities/state.js +7 -4
- package/bin/src/async/domains/promise/state.d.ts +9 -4
- package/bin/src/async/domains/promise/state.js +20 -9
- package/bin/src/async/domains/synchronized/coroutines/synchronize.js +80 -28
- package/bin/src/async/domains/synchronized/state.d.ts +14 -7
- package/bin/src/async/domains/synchronized/state.js +16 -6
- package/bin/src/async/state.d.ts +56 -45
- package/bin/src/async/state.js +115 -97
- package/bin/src/baseEntity/domains/identifiable/state.d.ts +15 -11
- package/bin/src/baseEntity/domains/identifiable/state.js +9 -9
- package/bin/src/collections/domains/array/state.d.ts +7 -7
- package/bin/src/collections/domains/array/state.js +5 -5
- package/bin/src/collections/domains/errors/state.d.ts +10 -10
- package/bin/src/collections/domains/errors/state.js +10 -10
- package/bin/src/collections/domains/immutable/domains/list/state.js +46 -44
- package/bin/src/collections/domains/immutable/domains/map/state.js +41 -23
- package/bin/src/collections/domains/immutable/domains/orderedMap/state.js +84 -65
- package/bin/src/collections/domains/immutable/domains/ordereredSet/state.d.ts +6 -6
- package/bin/src/collections/domains/immutable/domains/ordereredSet/state.js +6 -6
- package/bin/src/collections/domains/maybe/state.d.ts +9 -9
- package/bin/src/collections/domains/maybe/state.js +12 -9
- package/bin/src/collections/domains/product/state.d.ts +25 -19
- package/bin/src/collections/domains/product/state.js +13 -10
- package/bin/src/collections/domains/sum/state.d.ts +101 -77
- package/bin/src/collections/domains/sum/state.js +49 -32
- package/bin/src/collections/domains/valueOrErrors/state.js +81 -56
- package/bin/src/coroutines/builder.js +40 -19
- package/bin/src/coroutines/state.js +381 -306
- package/bin/src/coroutines/template.js +97 -59
- package/bin/src/debounced/coroutines/debounce.js +115 -89
- package/bin/src/debounced/state.js +62 -25
- package/bin/src/diagnostics/domains/message-box/state.d.ts +1 -1
- package/bin/src/diagnostics/domains/message-box/state.js +3 -3
- package/bin/src/foreignMutations/state.d.ts +3 -3
- package/bin/src/foreignMutations/state.js +1 -1
- package/bin/src/forms/domains/attachments/views/attachments-view.js +30 -8
- package/bin/src/forms/domains/collection/domains/reference/state.js +26 -20
- package/bin/src/forms/domains/collection/domains/selection/state.js +1 -1
- package/bin/src/forms/domains/dispatched-forms/built-ins/state.js +2007 -754
- package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.d.ts.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js +123 -44
- package/bin/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.js.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/enum/state.js +40 -27
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/primitive/state.js +21 -13
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/stream/state.js +43 -27
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sumUnitDate/state.js +39 -22
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts +167 -0
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.d.ts.map +1 -0
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js +367 -0
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.js.map +1 -0
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts +7 -29
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.d.ts.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js +1098 -572
- package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.js.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts +1 -0
- package/bin/src/forms/domains/dispatched-forms/deserializer/state.d.ts.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/deserializer/state.js +322 -90
- package/bin/src/forms/domains/dispatched-forms/deserializer/state.js.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/deserializer/template.js +3 -2
- package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts +27 -4
- package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js +136 -82
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/state.js +3 -3
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/base-64-file/template.js +49 -23
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/state.js +3 -3
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/boolean/template.js +52 -24
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/state.js +18 -6
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/date/template.js +64 -30
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/state.js +9 -6
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum/template.js +153 -60
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/state.js +1 -1
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/enum-multiselect/template.js +127 -50
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/injectables/state.js +40 -22
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/state.js +31 -13
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/list/template.js +452 -152
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/state.js +1 -1
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js +29 -8
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.js.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/state.js +61 -18
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/map/template.js +329 -90
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/state.js +3 -3
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/number/template.js +54 -23
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_debouncer.js +22 -10
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeOne.js +49 -31
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/_initializeStream.js +29 -10
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/builder.js +2 -2
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/coroutines/runner.js +47 -26
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/state.js +88 -40
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/one/template.js +386 -152
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/state.js +19 -10
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/readOnly/template.js +99 -33
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/state.js +32 -11
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/record/template.js +227 -82
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/state.js +35 -13
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream/template.js +195 -68
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/state.js +36 -13
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/searchable-infinite-stream-multiselect/template.js +246 -106
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/state.js +3 -3
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/secret/template.js +54 -23
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/state.js +40 -27
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/state.js +3 -3
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/string/template.js +58 -26
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/state.js +22 -7
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/sum/template.js +188 -53
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/builder.js +2 -2
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/infiniteLoader.js +57 -24
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseFiltersAndSorting.js +70 -20
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.d.ts.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js +88 -48
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/initialiseTable.js.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/loadWithRetries.js +40 -20
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/coroutines/runner.js +43 -15
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js +301 -137
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.js.map +1 -1
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/template.js +692 -240
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/state.js +20 -8
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/tuple/template.js +132 -35
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/state.js +21 -8
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/union/template.js +105 -33
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/state.js +12 -9
- package/bin/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/unit/template.js +54 -20
- package/bin/src/forms/domains/dispatched-forms/runner/domains/deltas/state.js +716 -560
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +58 -18
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +45 -14
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +76 -18
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/multiSelection/state.js +82 -24
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +37 -8
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +120 -36
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/primitive/state.js +145 -63
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +44 -12
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +14 -4
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +81 -25
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/singleSelectionDispatcher/state.js +82 -24
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +63 -20
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +248 -74
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +61 -13
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +92 -33
- package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +144 -45
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_init.js +203 -95
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/_sync.js +79 -37
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/builder.js +2 -2
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/coroutines/runner.js +19 -17
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/state.js +58 -11
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/create/template.js +73 -25
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_init.js +205 -95
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/_sync.js +78 -37
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/builder.js +2 -2
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/coroutines/runner.js +19 -17
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/state.js +58 -11
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/edit/template.js +71 -25
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/coroutines/runner.js +163 -85
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/state.js +10 -4
- package/bin/src/forms/domains/dispatched-forms/runner/domains/kind/passthrough/template.js +72 -27
- package/bin/src/forms/domains/dispatched-forms/runner/domains/traversal/state.js +796 -436
- package/bin/src/forms/domains/dispatched-forms/runner/state.js +62 -38
- package/bin/src/forms/domains/dispatched-forms/runner/template.js +78 -25
- package/bin/src/forms/domains/launcher/coroutines/runner.js +120 -45
- package/bin/src/forms/domains/launcher/domains/create/coroutines/runner.js +240 -101
- package/bin/src/forms/domains/launcher/domains/create/state.js +62 -17
- package/bin/src/forms/domains/launcher/domains/create/template.js +84 -42
- package/bin/src/forms/domains/launcher/domains/edit/coroutines/runner.js +242 -103
- package/bin/src/forms/domains/launcher/domains/edit/state.js +62 -17
- package/bin/src/forms/domains/launcher/domains/edit/template.js +86 -43
- package/bin/src/forms/domains/launcher/domains/merger/state.d.ts +4 -4
- package/bin/src/forms/domains/launcher/domains/merger/state.js +35 -26
- package/bin/src/forms/domains/launcher/domains/passthrough/coroutines/runner.js +88 -42
- package/bin/src/forms/domains/launcher/domains/passthrough/state.js +44 -19
- package/bin/src/forms/domains/launcher/domains/passthrough/template.js +56 -34
- package/bin/src/forms/domains/launcher/state.js +6 -6
- package/bin/src/forms/domains/launcher/template.js +169 -85
- package/bin/src/forms/domains/parser/coroutines/runner.js +87 -25
- package/bin/src/forms/domains/parser/domains/built-ins/state.js +944 -533
- package/bin/src/forms/domains/parser/domains/deltas/state.js +444 -318
- package/bin/src/forms/domains/parser/domains/injectables/state.js +29 -26
- package/bin/src/forms/domains/parser/domains/layout/state.js +271 -183
- package/bin/src/forms/domains/parser/domains/predicates/domains/extractor/state.js +324 -162
- package/bin/src/forms/domains/parser/domains/predicates/state.js +1514 -984
- package/bin/src/forms/domains/parser/domains/renderer/state.js +1137 -480
- package/bin/src/forms/domains/parser/domains/types/state.js +355 -170
- package/bin/src/forms/domains/parser/domains/validator/state.js +417 -280
- package/bin/src/forms/domains/parser/state.js +612 -373
- package/bin/src/forms/domains/parser/template.js +1 -1
- package/bin/src/forms/domains/primitives/domains/base-64-file/state.js +5 -5
- package/bin/src/forms/domains/primitives/domains/base-64-file/template.js +38 -19
- package/bin/src/forms/domains/primitives/domains/boolean/state.js +5 -5
- package/bin/src/forms/domains/primitives/domains/boolean/template.js +38 -19
- package/bin/src/forms/domains/primitives/domains/date/state.js +18 -9
- package/bin/src/forms/domains/primitives/domains/date/template.js +51 -25
- package/bin/src/forms/domains/primitives/domains/enum/state.js +6 -6
- package/bin/src/forms/domains/primitives/domains/enum/template.js +117 -48
- package/bin/src/forms/domains/primitives/domains/enum-multiselect/state.js +1 -1
- package/bin/src/forms/domains/primitives/domains/enum-multiselect/template.js +99 -40
- package/bin/src/forms/domains/primitives/domains/list/state.js +14 -14
- package/bin/src/forms/domains/primitives/domains/list/template.js +200 -71
- package/bin/src/forms/domains/primitives/domains/map/state.js +14 -14
- package/bin/src/forms/domains/primitives/domains/map/template.js +294 -103
- package/bin/src/forms/domains/primitives/domains/number/state.js +5 -5
- package/bin/src/forms/domains/primitives/domains/number/template.js +38 -19
- package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/state.js +33 -16
- package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream/template.js +171 -62
- package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/state.js +1 -1
- package/bin/src/forms/domains/primitives/domains/searchable-infinite-stream-multiselect/template.js +182 -69
- package/bin/src/forms/domains/primitives/domains/secret/state.js +5 -5
- package/bin/src/forms/domains/primitives/domains/secret/template.js +38 -19
- package/bin/src/forms/domains/primitives/domains/string/state.js +5 -5
- package/bin/src/forms/domains/primitives/domains/string/template.js +42 -22
- package/bin/src/forms/domains/primitives/domains/sum/state.js +10 -10
- package/bin/src/forms/domains/primitives/domains/sum/template.js +141 -50
- package/bin/src/forms/domains/primitives/domains/tuple/state.js +9 -9
- package/bin/src/forms/domains/primitives/domains/tuple/template.js +100 -33
- package/bin/src/forms/domains/primitives/domains/unit/state.js +8 -8
- package/bin/src/forms/domains/primitives/domains/unit/template.js +22 -9
- package/bin/src/forms/domains/singleton/domains/form-label/state.d.ts +4 -4
- package/bin/src/forms/domains/singleton/domains/form-label/state.js +1 -1
- package/bin/src/forms/domains/singleton/state.js +12 -10
- package/bin/src/forms/domains/singleton/template.js +288 -113
- package/bin/src/fun/domains/curry/state.d.ts +4 -2
- package/bin/src/fun/domains/curry/state.js +1 -1
- package/bin/src/fun/domains/id/state.d.ts +1 -1
- package/bin/src/fun/domains/id/state.js +1 -1
- package/bin/src/fun/domains/predicate/domains/bool-expr.d.ts +57 -41
- package/bin/src/fun/domains/predicate/domains/bool-expr.js +76 -67
- package/bin/src/fun/domains/predicate/state.d.ts +9 -7
- package/bin/src/fun/domains/predicate/state.js +14 -10
- package/bin/src/fun/domains/simpleCallback/state.d.ts +1 -1
- package/bin/src/fun/domains/simpleCallback/state.js +1 -1
- package/bin/src/fun/domains/uncurry/state.d.ts +4 -2
- package/bin/src/fun/domains/uncurry/state.js +1 -1
- package/bin/src/fun/domains/unit/state.d.ts +1 -1
- package/bin/src/fun/domains/unit/state.js +1 -1
- package/bin/src/fun/domains/updater/domains/caseUpdater/state.d.ts +22 -7
- package/bin/src/fun/domains/updater/domains/caseUpdater/state.js +18 -10
- package/bin/src/fun/domains/updater/domains/mapUpdater/state.d.ts +24 -13
- package/bin/src/fun/domains/updater/domains/mapUpdater/state.js +40 -10
- package/bin/src/fun/domains/updater/domains/maybeUpdater/state.d.ts +19 -13
- package/bin/src/fun/domains/updater/domains/maybeUpdater/state.js +20 -9
- package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.d.ts +24 -13
- package/bin/src/fun/domains/updater/domains/orderedMapUpdater/state.js +47 -11
- package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.d.ts +20 -8
- package/bin/src/fun/domains/updater/domains/orderedSetUpdater/state.js +17 -5
- package/bin/src/fun/domains/updater/domains/replaceWith/state.d.ts +1 -1
- package/bin/src/fun/domains/updater/domains/replaceWith/state.js +1 -1
- package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.d.ts +13 -4
- package/bin/src/fun/domains/updater/domains/simpleUpdater/domains/baseSimpleUpdater/state.js +6 -4
- package/bin/src/fun/domains/updater/domains/simpleUpdater/state.d.ts +60 -22
- package/bin/src/fun/domains/updater/domains/simpleUpdater/state.js +42 -31
- package/bin/src/fun/domains/updater/state.d.ts +4 -4
- package/bin/src/fun/domains/updater/state.js +12 -10
- package/bin/src/fun/state.d.ts +3 -3
- package/bin/src/fun/state.js +9 -7
- package/bin/src/infinite-data-stream/coroutines/builder.js +1 -1
- package/bin/src/infinite-data-stream/coroutines/infiniteLoader.js +47 -20
- package/bin/src/infinite-data-stream/coroutines/runner.js +7 -7
- package/bin/src/infinite-data-stream/state.d.ts +84 -51
- package/bin/src/infinite-data-stream/state.js +125 -61
- package/bin/src/infinite-data-stream/template.js +3 -2
- package/bin/src/math/domains/DOMRect/state.d.ts +4 -4
- package/bin/src/math/domains/DOMRect/state.js +10 -8
- package/bin/src/math/domains/number/state.d.ts +5 -5
- package/bin/src/math/domains/number/state.js +5 -5
- package/bin/src/math/domains/rect/state.d.ts +8 -8
- package/bin/src/math/domains/rect/state.js +16 -15
- package/bin/src/math/domains/rgba/state.d.ts +17 -17
- package/bin/src/math/domains/rgba/state.js +77 -81
- package/bin/src/math/domains/size2/state.d.ts +8 -8
- package/bin/src/math/domains/size2/state.js +6 -6
- package/bin/src/math/domains/vector2/state.d.ts +10 -10
- package/bin/src/math/domains/vector2/state.js +8 -8
- package/bin/src/queue/state.js +23 -16
- package/bin/src/state/domains/repository/state.d.ts +15 -9
- package/bin/src/state/domains/repository/state.js +1 -1
- package/bin/src/template/state.js +163 -115
- package/bin/src/validation/state.js +38 -45
- package/bin/src/value/domains/mutable-value/state.js +3 -2
- package/bin/src/value/state.d.ts +9 -9
- package/bin/src/value/state.js +11 -8
- package/bin/src/value-infinite-data-stream/coroutines/builder.js +1 -1
- package/bin/src/value-infinite-data-stream/coroutines/infiniteLoader.js +55 -20
- package/bin/src/value-infinite-data-stream/coroutines/runner.js +6 -4
- package/bin/src/value-infinite-data-stream/state.js +199 -77
- package/bin/src/value-infinite-data-stream/template.js +4 -2
- package/bin/src/visibility/state.d.ts +5 -2
- package/bin/src/visibility/state.js +1 -1
- package/main.ts +1 -0
- package/package.json +1 -1
- package/src/forms/domains/dispatched-forms/deserializer/coroutines/runner.ts +2 -2
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.ts +117 -111
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/list/state.ts +14 -5
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.ts +75 -18
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/map/state.ts +16 -6
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.ts +27 -9
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/one/state.ts +28 -8
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/readOnly/state.ts +13 -4
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.ts +18 -7
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/state.ts +40 -14
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/sum/state.ts +15 -5
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.ts +20 -6
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +101 -50
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/tuple/state.ts +22 -23
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.ts +37 -19
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.ts +64 -6
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/serializable/state.ts +585 -0
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.ts +592 -340
- package/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.ts +364 -226
- package/src/forms/domains/dispatched-forms/deserializer/state.ts +1 -2
- package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/lookup-type/template.tsx +1 -1
- package/src/forms/domains/dispatched-forms/runner/domains/abstract-renderers/table/state.ts +2 -2
package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/types/state.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
MapRepo,
|
|
9
9
|
DispatchInjectedPrimitives,
|
|
10
10
|
ParsedType,
|
|
11
|
+
isString,
|
|
11
12
|
} from "../../../../../../../../../main";
|
|
12
13
|
|
|
13
14
|
export const DispatchisString = (_: any): _ is string => typeof _ == "string";
|
|
@@ -83,6 +84,13 @@ export const DispatchPrimitiveTypeNames = [
|
|
|
83
84
|
"base64File",
|
|
84
85
|
"secret",
|
|
85
86
|
] as const;
|
|
87
|
+
|
|
88
|
+
const STRINGY_TYPES = [
|
|
89
|
+
"guid",
|
|
90
|
+
"entityIdUUID",
|
|
91
|
+
"entityIdString",
|
|
92
|
+
"calculatedDisplayValue",
|
|
93
|
+
] as const;
|
|
86
94
|
export type DispatchPrimitiveTypeName<T> =
|
|
87
95
|
| (typeof DispatchPrimitiveTypeNames)[number]
|
|
88
96
|
| keyof T;
|
|
@@ -110,8 +118,13 @@ export const SerializedType = {
|
|
|
110
118
|
_: SerializedType<T>,
|
|
111
119
|
): _ is { fun: DispatchGenericType; args: Array<SerializedType<T>> } =>
|
|
112
120
|
DispatchHasFun(_) && DispatchIsGenericType(_.fun) && DispatchHasArgs(_),
|
|
113
|
-
isLookup:
|
|
114
|
-
|
|
121
|
+
isLookup: <T>(
|
|
122
|
+
_: unknown,
|
|
123
|
+
injectedPrimitives: DispatchInjectedPrimitives<T> | undefined,
|
|
124
|
+
): _ is DispatchTypeName =>
|
|
125
|
+
DispatchisString(_) &&
|
|
126
|
+
!injectedPrimitives?.has(_ as keyof T) &&
|
|
127
|
+
!(_ in DispatchPrimitiveTypeNames),
|
|
115
128
|
isList: <T>(
|
|
116
129
|
_: SerializedType<T>,
|
|
117
130
|
): _ is { fun: "List"; args: Array<SerializedType<T>> } =>
|
|
@@ -221,7 +234,7 @@ export type StringSerializedType = string;
|
|
|
221
234
|
export type UnionType<T> = {
|
|
222
235
|
kind: "union";
|
|
223
236
|
args: Map<DispatchCaseName, DispatchParsedType<T>>;
|
|
224
|
-
asString: () => StringSerializedType;
|
|
237
|
+
// asString: () => StringSerializedType;
|
|
225
238
|
};
|
|
226
239
|
|
|
227
240
|
export const UnionType = {
|
|
@@ -235,7 +248,7 @@ export const UnionType = {
|
|
|
235
248
|
export type RecordType<T> = {
|
|
236
249
|
kind: "record";
|
|
237
250
|
fields: OrderedMap<DispatchFieldName, DispatchParsedType<T>>;
|
|
238
|
-
asString: () => StringSerializedType;
|
|
251
|
+
// asString: () => StringSerializedType;
|
|
239
252
|
};
|
|
240
253
|
|
|
241
254
|
export const RecordType = {
|
|
@@ -249,7 +262,7 @@ export const RecordType = {
|
|
|
249
262
|
export type LookupType = {
|
|
250
263
|
kind: "lookup";
|
|
251
264
|
name: string;
|
|
252
|
-
asString: () => StringSerializedType;
|
|
265
|
+
// asString: () => StringSerializedType;
|
|
253
266
|
};
|
|
254
267
|
|
|
255
268
|
export const LookupType = {
|
|
@@ -261,7 +274,7 @@ export const LookupType = {
|
|
|
261
274
|
export type DispatchPrimitiveType<T> = {
|
|
262
275
|
kind: "primitive";
|
|
263
276
|
name: DispatchPrimitiveTypeName<T>;
|
|
264
|
-
asString: () => StringSerializedType;
|
|
277
|
+
// asString: () => StringSerializedType;
|
|
265
278
|
};
|
|
266
279
|
|
|
267
280
|
export const DispatchPrimitiveType = {
|
|
@@ -275,7 +288,7 @@ export const DispatchPrimitiveType = {
|
|
|
275
288
|
export type SingleSelectionType<T> = {
|
|
276
289
|
kind: "singleSelection";
|
|
277
290
|
args: Array<DispatchParsedType<T>>;
|
|
278
|
-
asString: () => StringSerializedType;
|
|
291
|
+
// asString: () => StringSerializedType;
|
|
279
292
|
};
|
|
280
293
|
|
|
281
294
|
export const SingleSelectionType = {
|
|
@@ -289,7 +302,7 @@ export const SingleSelectionType = {
|
|
|
289
302
|
export type MultiSelectionType<T> = {
|
|
290
303
|
kind: "multiSelection";
|
|
291
304
|
args: Array<DispatchParsedType<T>>;
|
|
292
|
-
asString: () => StringSerializedType;
|
|
305
|
+
// asString: () => StringSerializedType;
|
|
293
306
|
};
|
|
294
307
|
|
|
295
308
|
export const MultiSelectionType = {
|
|
@@ -303,7 +316,7 @@ export const MultiSelectionType = {
|
|
|
303
316
|
export type ListType<T> = {
|
|
304
317
|
kind: "list";
|
|
305
318
|
args: Array<DispatchParsedType<T>>;
|
|
306
|
-
asString: () => StringSerializedType;
|
|
319
|
+
// asString: () => StringSerializedType;
|
|
307
320
|
};
|
|
308
321
|
|
|
309
322
|
export const ListType = {
|
|
@@ -317,7 +330,7 @@ export const ListType = {
|
|
|
317
330
|
export type TupleType<T> = {
|
|
318
331
|
kind: "tuple";
|
|
319
332
|
args: Array<DispatchParsedType<T>>;
|
|
320
|
-
asString: () => StringSerializedType;
|
|
333
|
+
// asString: () => StringSerializedType;
|
|
321
334
|
};
|
|
322
335
|
|
|
323
336
|
export const TupleType = {
|
|
@@ -331,7 +344,7 @@ export const TupleType = {
|
|
|
331
344
|
export type SumType<T> = {
|
|
332
345
|
kind: "sum";
|
|
333
346
|
args: Array<DispatchParsedType<T>>;
|
|
334
|
-
asString: () => StringSerializedType;
|
|
347
|
+
// asString: () => StringSerializedType;
|
|
335
348
|
};
|
|
336
349
|
|
|
337
350
|
export const SumType = {
|
|
@@ -345,7 +358,7 @@ export const SumType = {
|
|
|
345
358
|
export type SumNType<T> = {
|
|
346
359
|
kind: "sumN";
|
|
347
360
|
args: Array<DispatchParsedType<T>>;
|
|
348
|
-
asString: () => StringSerializedType;
|
|
361
|
+
// asString: () => StringSerializedType;
|
|
349
362
|
};
|
|
350
363
|
|
|
351
364
|
export const SumNType = {
|
|
@@ -360,7 +373,7 @@ export const SumNType = {
|
|
|
360
373
|
export type MapType<T> = {
|
|
361
374
|
kind: "map";
|
|
362
375
|
args: Array<DispatchParsedType<T>>;
|
|
363
|
-
asString: () => StringSerializedType;
|
|
376
|
+
// asString: () => StringSerializedType;
|
|
364
377
|
};
|
|
365
378
|
|
|
366
379
|
export const MapType = {
|
|
@@ -374,7 +387,7 @@ export const MapType = {
|
|
|
374
387
|
export type TableType<T> = {
|
|
375
388
|
kind: "table";
|
|
376
389
|
arg: LookupType;
|
|
377
|
-
asString: () => StringSerializedType;
|
|
390
|
+
// asString: () => StringSerializedType;
|
|
378
391
|
};
|
|
379
392
|
|
|
380
393
|
export const TableType = {
|
|
@@ -388,7 +401,7 @@ export const TableType = {
|
|
|
388
401
|
export type ReadOnlyType<T> = {
|
|
389
402
|
kind: "readOnly";
|
|
390
403
|
arg: DispatchParsedType<T>;
|
|
391
|
-
asString: () => StringSerializedType;
|
|
404
|
+
// asString: () => StringSerializedType;
|
|
392
405
|
};
|
|
393
406
|
|
|
394
407
|
export const ReadOnlyType = {
|
|
@@ -402,7 +415,7 @@ export const ReadOnlyType = {
|
|
|
402
415
|
export type OneType<T> = {
|
|
403
416
|
kind: "one";
|
|
404
417
|
arg: LookupType;
|
|
405
|
-
asString: () => StringSerializedType;
|
|
418
|
+
// asString: () => StringSerializedType;
|
|
406
419
|
};
|
|
407
420
|
|
|
408
421
|
export const OneType = {
|
|
@@ -417,7 +430,7 @@ export const OneType = {
|
|
|
417
430
|
export type FilterContainsType<T> = {
|
|
418
431
|
kind: "contains";
|
|
419
432
|
contains: DispatchParsedType<T>;
|
|
420
|
-
asString: () => StringSerializedType;
|
|
433
|
+
// asString: () => StringSerializedType;
|
|
421
434
|
};
|
|
422
435
|
|
|
423
436
|
export const FilterContainsType = {
|
|
@@ -431,7 +444,7 @@ export const FilterContainsType = {
|
|
|
431
444
|
export type FilterEqualsToType<T> = {
|
|
432
445
|
kind: "=";
|
|
433
446
|
equalsTo: DispatchParsedType<T>;
|
|
434
|
-
asString: () => StringSerializedType;
|
|
447
|
+
// asString: () => StringSerializedType;
|
|
435
448
|
};
|
|
436
449
|
|
|
437
450
|
export const FilterEqualsToType = {
|
|
@@ -445,7 +458,7 @@ export const FilterEqualsToType = {
|
|
|
445
458
|
export type FilterNotEqualsToType<T> = {
|
|
446
459
|
kind: "!=";
|
|
447
460
|
notEqualsTo: DispatchParsedType<T>;
|
|
448
|
-
asString: () => StringSerializedType;
|
|
461
|
+
// asString: () => StringSerializedType;
|
|
449
462
|
};
|
|
450
463
|
|
|
451
464
|
export const FilterNotEqualsToType = {
|
|
@@ -459,7 +472,7 @@ export const FilterNotEqualsToType = {
|
|
|
459
472
|
export type FilterGreaterThanOrEqualsToType<T> = {
|
|
460
473
|
kind: ">=";
|
|
461
474
|
greaterThanOrEqualsTo: DispatchParsedType<T>;
|
|
462
|
-
asString: () => StringSerializedType;
|
|
475
|
+
// asString: () => StringSerializedType;
|
|
463
476
|
};
|
|
464
477
|
|
|
465
478
|
export const FilterGreaterThanOrEqualsToType = {
|
|
@@ -473,7 +486,7 @@ export const FilterGreaterThanOrEqualsToType = {
|
|
|
473
486
|
export type FilterGreaterThanType<T> = {
|
|
474
487
|
kind: ">";
|
|
475
488
|
greaterThan: DispatchParsedType<T>;
|
|
476
|
-
asString: () => StringSerializedType;
|
|
489
|
+
// asString: () => StringSerializedType;
|
|
477
490
|
};
|
|
478
491
|
|
|
479
492
|
export const FilterGreaterThanType = {
|
|
@@ -486,7 +499,7 @@ export const FilterGreaterThanType = {
|
|
|
486
499
|
|
|
487
500
|
export type FilterIsNotNullType<T> = {
|
|
488
501
|
kind: "!=null";
|
|
489
|
-
asString: () => StringSerializedType;
|
|
502
|
+
// asString: () => StringSerializedType;
|
|
490
503
|
};
|
|
491
504
|
|
|
492
505
|
export const FilterIsNotNullType = {
|
|
@@ -497,7 +510,7 @@ export const FilterIsNotNullType = {
|
|
|
497
510
|
|
|
498
511
|
export type FilterIsNullType<T> = {
|
|
499
512
|
kind: "=null";
|
|
500
|
-
asString: () => StringSerializedType;
|
|
513
|
+
// asString: () => StringSerializedType;
|
|
501
514
|
};
|
|
502
515
|
|
|
503
516
|
export const FilterIsNullType = {
|
|
@@ -509,7 +522,7 @@ export const FilterIsNullType = {
|
|
|
509
522
|
export type FilterSmallerThanOrEqualsToType<T> = {
|
|
510
523
|
kind: "<=";
|
|
511
524
|
smallerThanOrEqualsTo: DispatchParsedType<T>;
|
|
512
|
-
asString: () => StringSerializedType;
|
|
525
|
+
// asString: () => StringSerializedType;
|
|
513
526
|
};
|
|
514
527
|
|
|
515
528
|
export const FilterSmallerThanOrEqualsToType = {
|
|
@@ -523,7 +536,7 @@ export const FilterSmallerThanOrEqualsToType = {
|
|
|
523
536
|
export type FilterSmallerThanType<T> = {
|
|
524
537
|
kind: "<";
|
|
525
538
|
smallerThan: DispatchParsedType<T>;
|
|
526
|
-
asString: () => StringSerializedType;
|
|
539
|
+
// asString: () => StringSerializedType;
|
|
527
540
|
};
|
|
528
541
|
|
|
529
542
|
export const FilterSmallerThanType = {
|
|
@@ -537,7 +550,7 @@ export const FilterSmallerThanType = {
|
|
|
537
550
|
export type FilterStartsWithType<T> = {
|
|
538
551
|
kind: "startsWith";
|
|
539
552
|
startsWith: DispatchParsedType<T>;
|
|
540
|
-
asString: () => StringSerializedType;
|
|
553
|
+
// asString: () => StringSerializedType;
|
|
541
554
|
};
|
|
542
555
|
|
|
543
556
|
export const FilterStartsWithType = {
|
|
@@ -597,168 +610,214 @@ export const DispatchParsedType = {
|
|
|
597
610
|
table: <T>(arg: LookupType): TableType<T> => ({
|
|
598
611
|
kind: "table",
|
|
599
612
|
arg,
|
|
600
|
-
asString: () => TableType.SerializeToString(arg.asString()),
|
|
601
613
|
}),
|
|
602
614
|
record: <T>(
|
|
603
615
|
fields: Map<DispatchFieldName, DispatchParsedType<T>>,
|
|
604
616
|
): RecordType<T> => ({
|
|
605
617
|
kind: "record",
|
|
606
618
|
fields,
|
|
607
|
-
asString: () =>
|
|
608
|
-
RecordType.SerializeToString(fields.map((v) => v.asString())),
|
|
609
619
|
}),
|
|
610
620
|
primitive: <T>(
|
|
611
621
|
name: DispatchPrimitiveTypeName<T>,
|
|
612
622
|
): DispatchParsedType<T> => ({
|
|
613
623
|
kind: "primitive",
|
|
614
624
|
name,
|
|
615
|
-
asString: () => DispatchPrimitiveType.SerializeToString(name),
|
|
616
625
|
}),
|
|
617
626
|
singleSelection: <T>(
|
|
618
627
|
args: Array<DispatchParsedType<T>>,
|
|
619
628
|
): DispatchParsedType<T> => ({
|
|
620
629
|
kind: "singleSelection",
|
|
621
630
|
args,
|
|
622
|
-
asString: () =>
|
|
623
|
-
SingleSelectionType.SerializeToString(args.map((v) => v.asString())),
|
|
624
631
|
}),
|
|
625
632
|
multiSelection: <T>(
|
|
626
633
|
args: Array<DispatchParsedType<T>>,
|
|
627
634
|
): DispatchParsedType<T> => ({
|
|
628
635
|
kind: "multiSelection",
|
|
629
636
|
args,
|
|
630
|
-
asString: () =>
|
|
631
|
-
MultiSelectionType.SerializeToString(args.map((v) => v.asString())),
|
|
632
637
|
}),
|
|
633
638
|
list: <T>(args: Array<DispatchParsedType<T>>): DispatchParsedType<T> => ({
|
|
634
639
|
kind: "list",
|
|
635
640
|
args,
|
|
636
|
-
asString: () => ListType.SerializeToString(args.map((v) => v.asString())),
|
|
637
641
|
}),
|
|
638
642
|
tuple: <T>(args: Array<DispatchParsedType<T>>): DispatchParsedType<T> => ({
|
|
639
643
|
kind: "tuple",
|
|
640
644
|
args,
|
|
641
|
-
asString: () =>
|
|
642
|
-
TupleType.SerializeToString(args.map((v) => v.asString())),
|
|
643
645
|
}),
|
|
644
646
|
sum: <T>(args: Array<DispatchParsedType<T>>): DispatchParsedType<T> => ({
|
|
645
647
|
kind: "sum",
|
|
646
648
|
args,
|
|
647
|
-
asString: () => SumType.SerializeToString(args.map((v) => v.asString())),
|
|
648
649
|
}),
|
|
649
650
|
sumN: <T>(args: Array<DispatchParsedType<T>>): SumNType<T> => ({
|
|
650
651
|
kind: "sumN",
|
|
651
652
|
args,
|
|
652
|
-
asString: () =>
|
|
653
|
-
SumNType.SerializeToString(
|
|
654
|
-
args.map((v) => v.asString()),
|
|
655
|
-
args.length,
|
|
656
|
-
),
|
|
657
653
|
}),
|
|
658
654
|
map: <T>(args: Array<DispatchParsedType<T>>): DispatchParsedType<T> => ({
|
|
659
655
|
kind: "map",
|
|
660
656
|
args,
|
|
661
|
-
asString: () => MapType.SerializeToString(args.map((v) => v.asString())),
|
|
662
657
|
}),
|
|
663
658
|
union: <T>(
|
|
664
659
|
args: Map<DispatchCaseName, DispatchParsedType<T>>,
|
|
665
660
|
): DispatchParsedType<T> => ({
|
|
666
661
|
kind: "union",
|
|
667
662
|
args,
|
|
668
|
-
asString: () =>
|
|
669
|
-
UnionType.SerializeToString(args.map((v) => v.asString())),
|
|
670
663
|
}),
|
|
671
664
|
readOnly: <T>(arg: DispatchParsedType<T>): ReadOnlyType<T> => ({
|
|
672
665
|
kind: "readOnly",
|
|
673
666
|
arg,
|
|
674
|
-
asString: () => ReadOnlyType.SerializeToString(arg.asString()),
|
|
675
667
|
}),
|
|
676
668
|
lookup: <T>(name: string): LookupType => ({
|
|
677
669
|
kind: "lookup",
|
|
678
670
|
name,
|
|
679
|
-
asString: () => LookupType.SerializeToString(name),
|
|
680
671
|
}),
|
|
681
672
|
one: <T>(arg: LookupType): OneType<T> => ({
|
|
682
673
|
kind: "one",
|
|
683
674
|
arg,
|
|
684
|
-
asString: () => OneType.SerializeToString(arg.asString()),
|
|
685
675
|
}),
|
|
686
676
|
filterContains: <T>(
|
|
687
677
|
contains: DispatchParsedType<T>,
|
|
688
678
|
): FilterContainsType<T> => ({
|
|
689
679
|
kind: "contains",
|
|
690
680
|
contains,
|
|
691
|
-
asString: () => FilterContainsType.SerializeToString(contains.asString()),
|
|
692
681
|
}),
|
|
693
682
|
filterEqualsTo: <T>(
|
|
694
683
|
equalsTo: DispatchParsedType<T>,
|
|
695
684
|
): FilterEqualsToType<T> => ({
|
|
696
685
|
kind: "=",
|
|
697
686
|
equalsTo,
|
|
698
|
-
asString: () => FilterEqualsToType.SerializeToString(equalsTo.asString()),
|
|
699
687
|
}),
|
|
700
688
|
filterNotEqualsTo: <T>(
|
|
701
689
|
notEqualsTo: DispatchParsedType<T>,
|
|
702
690
|
): FilterNotEqualsToType<T> => ({
|
|
703
691
|
kind: "!=",
|
|
704
692
|
notEqualsTo,
|
|
705
|
-
asString: () =>
|
|
706
|
-
FilterNotEqualsToType.SerializeToString(notEqualsTo.asString()),
|
|
707
693
|
}),
|
|
708
694
|
filterGreaterThanOrEqualsTo: <T>(
|
|
709
695
|
greaterThanOrEqualsTo: DispatchParsedType<T>,
|
|
710
696
|
): FilterGreaterThanOrEqualsToType<T> => ({
|
|
711
697
|
kind: ">=",
|
|
712
698
|
greaterThanOrEqualsTo,
|
|
713
|
-
asString: () =>
|
|
714
|
-
FilterGreaterThanOrEqualsToType.SerializeToString(
|
|
715
|
-
greaterThanOrEqualsTo.asString(),
|
|
716
|
-
),
|
|
717
699
|
}),
|
|
718
700
|
filterGreaterThan: <T>(
|
|
719
701
|
greaterThan: DispatchParsedType<T>,
|
|
720
702
|
): FilterGreaterThanType<T> => ({
|
|
721
703
|
kind: ">",
|
|
722
704
|
greaterThan,
|
|
723
|
-
asString: () =>
|
|
724
|
-
FilterGreaterThanType.SerializeToString(greaterThan.asString()),
|
|
725
705
|
}),
|
|
726
706
|
filterIsNotNull: <T>(): FilterIsNotNullType<T> => ({
|
|
727
707
|
kind: "!=null",
|
|
728
|
-
asString: () => FilterIsNotNullType.SerializeToString(),
|
|
729
708
|
}),
|
|
730
709
|
filterIsNull: <T>(): FilterIsNullType<T> => ({
|
|
731
710
|
kind: "=null",
|
|
732
|
-
asString: () => FilterIsNullType.SerializeToString(),
|
|
733
711
|
}),
|
|
734
712
|
filterSmallerThanOrEqualsTo: <T>(
|
|
735
713
|
smallerThanOrEqualsTo: DispatchParsedType<T>,
|
|
736
714
|
): FilterSmallerThanOrEqualsToType<T> => ({
|
|
737
715
|
kind: "<=",
|
|
738
716
|
smallerThanOrEqualsTo,
|
|
739
|
-
asString: () =>
|
|
740
|
-
FilterSmallerThanOrEqualsToType.SerializeToString(
|
|
741
|
-
smallerThanOrEqualsTo.asString(),
|
|
742
|
-
),
|
|
743
717
|
}),
|
|
744
718
|
filterSmallerThan: <T>(
|
|
745
719
|
smallerThan: DispatchParsedType<T>,
|
|
746
720
|
): FilterSmallerThanType<T> => ({
|
|
747
721
|
kind: "<",
|
|
748
722
|
smallerThan,
|
|
749
|
-
asString: () =>
|
|
750
|
-
FilterSmallerThanType.SerializeToString(smallerThan.asString()),
|
|
751
723
|
}),
|
|
752
724
|
filterStartsWith: <T>(
|
|
753
725
|
startsWith: DispatchParsedType<T>,
|
|
754
726
|
): FilterStartsWithType<T> => ({
|
|
755
727
|
kind: "startsWith",
|
|
756
728
|
startsWith,
|
|
757
|
-
asString: () =>
|
|
758
|
-
FilterStartsWithType.SerializeToString(startsWith.asString()),
|
|
759
729
|
}),
|
|
760
730
|
},
|
|
761
731
|
Operations: {
|
|
732
|
+
AsString: (type: DispatchParsedType<unknown>): StringSerializedType => {
|
|
733
|
+
switch (type.kind) {
|
|
734
|
+
case "record":
|
|
735
|
+
return RecordType.SerializeToString(
|
|
736
|
+
type.fields.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
737
|
+
);
|
|
738
|
+
case "table":
|
|
739
|
+
return TableType.SerializeToString(
|
|
740
|
+
DispatchParsedType.Operations.AsString(type.arg),
|
|
741
|
+
);
|
|
742
|
+
case "one":
|
|
743
|
+
return OneType.SerializeToString(
|
|
744
|
+
DispatchParsedType.Operations.AsString(type.arg),
|
|
745
|
+
);
|
|
746
|
+
case "singleSelection":
|
|
747
|
+
return SingleSelectionType.SerializeToString(
|
|
748
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
749
|
+
);
|
|
750
|
+
case "multiSelection":
|
|
751
|
+
return MultiSelectionType.SerializeToString(
|
|
752
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
753
|
+
);
|
|
754
|
+
case "list":
|
|
755
|
+
return ListType.SerializeToString(
|
|
756
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
757
|
+
);
|
|
758
|
+
case "tuple":
|
|
759
|
+
return TupleType.SerializeToString(
|
|
760
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
761
|
+
);
|
|
762
|
+
case "sum":
|
|
763
|
+
return SumType.SerializeToString(
|
|
764
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
765
|
+
);
|
|
766
|
+
case "sumN":
|
|
767
|
+
return SumNType.SerializeToString(
|
|
768
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
769
|
+
type.args.length,
|
|
770
|
+
);
|
|
771
|
+
case "map":
|
|
772
|
+
return MapType.SerializeToString(
|
|
773
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
774
|
+
);
|
|
775
|
+
case "union":
|
|
776
|
+
return UnionType.SerializeToString(
|
|
777
|
+
type.args.map((v) => DispatchParsedType.Operations.AsString(v)),
|
|
778
|
+
);
|
|
779
|
+
case "lookup":
|
|
780
|
+
return LookupType.SerializeToString(type.name);
|
|
781
|
+
case "contains":
|
|
782
|
+
return FilterContainsType.SerializeToString(
|
|
783
|
+
DispatchParsedType.Operations.AsString(type.contains),
|
|
784
|
+
);
|
|
785
|
+
case "=":
|
|
786
|
+
return FilterEqualsToType.SerializeToString(
|
|
787
|
+
DispatchParsedType.Operations.AsString(type.equalsTo),
|
|
788
|
+
);
|
|
789
|
+
case "!=":
|
|
790
|
+
return FilterNotEqualsToType.SerializeToString(
|
|
791
|
+
DispatchParsedType.Operations.AsString(type.notEqualsTo),
|
|
792
|
+
);
|
|
793
|
+
case ">=":
|
|
794
|
+
return FilterGreaterThanOrEqualsToType.SerializeToString(
|
|
795
|
+
DispatchParsedType.Operations.AsString(type.greaterThanOrEqualsTo),
|
|
796
|
+
);
|
|
797
|
+
case ">":
|
|
798
|
+
return FilterGreaterThanType.SerializeToString(
|
|
799
|
+
DispatchParsedType.Operations.AsString(type.greaterThan),
|
|
800
|
+
);
|
|
801
|
+
case "!=null":
|
|
802
|
+
return FilterIsNotNullType.SerializeToString();
|
|
803
|
+
case "=null":
|
|
804
|
+
return FilterIsNullType.SerializeToString();
|
|
805
|
+
case "<=":
|
|
806
|
+
return FilterSmallerThanOrEqualsToType.SerializeToString(
|
|
807
|
+
DispatchParsedType.Operations.AsString(type.smallerThanOrEqualsTo),
|
|
808
|
+
);
|
|
809
|
+
case "<":
|
|
810
|
+
return FilterSmallerThanType.SerializeToString(
|
|
811
|
+
DispatchParsedType.Operations.AsString(type.smallerThan),
|
|
812
|
+
);
|
|
813
|
+
case "startsWith":
|
|
814
|
+
return FilterStartsWithType.SerializeToString(
|
|
815
|
+
DispatchParsedType.Operations.AsString(type.startsWith),
|
|
816
|
+
);
|
|
817
|
+
default:
|
|
818
|
+
throw new Error(`Unknown type: ${JSON.stringify(type)}`);
|
|
819
|
+
}
|
|
820
|
+
},
|
|
762
821
|
// We don't use this at the moment, if we need it, then we can fix
|
|
763
822
|
// Equals: <T>(
|
|
764
823
|
// fst: DispatchParsedType<T>,
|
|
@@ -803,12 +862,12 @@ export const DispatchParsedType = {
|
|
|
803
862
|
// : false,
|
|
804
863
|
ParseRawKeyOf: <T>(
|
|
805
864
|
rawType: ValidatedSerializedKeyOfType<T>,
|
|
806
|
-
typeNames: Set<DispatchTypeName>,
|
|
807
865
|
serializedTypes: Record<string, SerializedType<T>>,
|
|
808
866
|
alreadyParsedTypes: Map<
|
|
809
867
|
string,
|
|
810
868
|
ValueOrErrors<DispatchParsedType<T>, string>
|
|
811
869
|
>,
|
|
870
|
+
injectedPrimitives?: DispatchInjectedPrimitives<T>,
|
|
812
871
|
): ValueOrErrors<
|
|
813
872
|
[
|
|
814
873
|
DispatchParsedType<T>,
|
|
@@ -834,9 +893,9 @@ export const DispatchParsedType = {
|
|
|
834
893
|
: DispatchParsedType.Operations.ParseRawType(
|
|
835
894
|
rawType.args[0],
|
|
836
895
|
serializedTypes[rawType.args[0]],
|
|
837
|
-
typeNames,
|
|
838
896
|
serializedTypes,
|
|
839
897
|
alreadyParsedTypes,
|
|
898
|
+
injectedPrimitives,
|
|
840
899
|
)
|
|
841
900
|
)
|
|
842
901
|
.Then((parsingResult) =>
|
|
@@ -867,20 +926,31 @@ export const DispatchParsedType = {
|
|
|
867
926
|
>([
|
|
868
927
|
DispatchParsedType.Default.union(
|
|
869
928
|
Map(
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
(
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
)
|
|
883
|
-
|
|
929
|
+
(() => {
|
|
930
|
+
const excludedKeys: Record<string, true> | null = rawType
|
|
931
|
+
.args[1]
|
|
932
|
+
? rawType.args[1].reduce(
|
|
933
|
+
(acc, key) => {
|
|
934
|
+
acc[key] = true;
|
|
935
|
+
return acc;
|
|
936
|
+
},
|
|
937
|
+
{} as Record<string, true>,
|
|
938
|
+
)
|
|
939
|
+
: null;
|
|
940
|
+
return parsingResult[0].fields
|
|
941
|
+
.keySeq()
|
|
942
|
+
.filter(
|
|
943
|
+
(key) =>
|
|
944
|
+
excludedKeys == null || !(key in excludedKeys),
|
|
945
|
+
)
|
|
946
|
+
.toArray()
|
|
947
|
+
.map((key) => [
|
|
948
|
+
key,
|
|
949
|
+
DispatchParsedType.Default.record(
|
|
950
|
+
Map<string, DispatchParsedType<T>>(),
|
|
951
|
+
),
|
|
952
|
+
]);
|
|
953
|
+
})(),
|
|
884
954
|
),
|
|
885
955
|
),
|
|
886
956
|
parsingResult[1],
|
|
@@ -961,20 +1031,29 @@ export const DispatchParsedType = {
|
|
|
961
1031
|
case "lookup":
|
|
962
1032
|
return LookupType.SerializeToString(type.name);
|
|
963
1033
|
case "contains":
|
|
964
|
-
return FilterContainsType.SerializeToString(
|
|
1034
|
+
return FilterContainsType.SerializeToString(
|
|
1035
|
+
// type.contains.asString(),
|
|
1036
|
+
"",
|
|
1037
|
+
);
|
|
965
1038
|
case "=":
|
|
966
|
-
return FilterEqualsToType.SerializeToString(
|
|
1039
|
+
return FilterEqualsToType.SerializeToString(
|
|
1040
|
+
// type.equalsTo.asString(),
|
|
1041
|
+
"",
|
|
1042
|
+
);
|
|
967
1043
|
case "!=":
|
|
968
1044
|
return FilterNotEqualsToType.SerializeToString(
|
|
969
|
-
type.notEqualsTo.asString(),
|
|
1045
|
+
// type.notEqualsTo.asString(),
|
|
1046
|
+
"",
|
|
970
1047
|
);
|
|
971
1048
|
case ">=":
|
|
972
1049
|
return FilterGreaterThanOrEqualsToType.SerializeToString(
|
|
973
|
-
type.greaterThanOrEqualsTo.asString(),
|
|
1050
|
+
// type.greaterThanOrEqualsTo.asString(),
|
|
1051
|
+
"",
|
|
974
1052
|
);
|
|
975
1053
|
case ">":
|
|
976
1054
|
return FilterGreaterThanType.SerializeToString(
|
|
977
|
-
|
|
1055
|
+
"",
|
|
1056
|
+
// type.greaterThan.asString(),
|
|
978
1057
|
);
|
|
979
1058
|
case "!=null":
|
|
980
1059
|
return FilterIsNotNullType.SerializeToString();
|
|
@@ -982,24 +1061,50 @@ export const DispatchParsedType = {
|
|
|
982
1061
|
return FilterIsNullType.SerializeToString();
|
|
983
1062
|
case "<=":
|
|
984
1063
|
return FilterSmallerThanOrEqualsToType.SerializeToString(
|
|
985
|
-
|
|
1064
|
+
"",
|
|
1065
|
+
// type.smallerThanOrEqualsTo.asString(),
|
|
986
1066
|
);
|
|
987
1067
|
case "<":
|
|
988
1068
|
return FilterSmallerThanType.SerializeToString(
|
|
989
|
-
type.smallerThan.asString(),
|
|
1069
|
+
// type.smallerThan.asString(),
|
|
1070
|
+
"",
|
|
990
1071
|
);
|
|
991
1072
|
case "startsWith":
|
|
992
1073
|
return FilterStartsWithType.SerializeToString(
|
|
993
|
-
type.startsWith.asString(),
|
|
1074
|
+
// type.startsWith.asString(),
|
|
1075
|
+
"",
|
|
994
1076
|
);
|
|
995
1077
|
default:
|
|
996
1078
|
throw new Error(`Unknown type: ${JSON.stringify(type)}`);
|
|
997
1079
|
}
|
|
998
1080
|
},
|
|
1081
|
+
GetExtendedRecordTypes: <T>(
|
|
1082
|
+
extendedTypeName: DispatchTypeName,
|
|
1083
|
+
alreadyParsedTypes: Map<
|
|
1084
|
+
DispatchTypeName,
|
|
1085
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1086
|
+
>,
|
|
1087
|
+
): ValueOrErrors<[string, RecordType<T>], string> => {
|
|
1088
|
+
return MapRepo.Operations.tryFindWithError(
|
|
1089
|
+
extendedTypeName,
|
|
1090
|
+
alreadyParsedTypes,
|
|
1091
|
+
() => `cannot find extended type ${extendedTypeName} in types`,
|
|
1092
|
+
).Then((extendedType) =>
|
|
1093
|
+
extendedType.Then((extendedType) =>
|
|
1094
|
+
extendedType.kind != "record"
|
|
1095
|
+
? ValueOrErrors.Default.throwOne<
|
|
1096
|
+
[DispatchTypeName, RecordType<T>],
|
|
1097
|
+
string
|
|
1098
|
+
>(`Error: ${JSON.stringify(extendedType)} is not a record type`)
|
|
1099
|
+
: ValueOrErrors.Default.return<
|
|
1100
|
+
[DispatchTypeName, RecordType<T>],
|
|
1101
|
+
string
|
|
1102
|
+
>([extendedTypeName, extendedType]),
|
|
1103
|
+
),
|
|
1104
|
+
);
|
|
1105
|
+
},
|
|
999
1106
|
ParseRecord: <T>(
|
|
1000
|
-
typeName: DispatchTypeName,
|
|
1001
1107
|
rawType: unknown,
|
|
1002
|
-
typeNames: Set<DispatchTypeName>,
|
|
1003
1108
|
serializedTypes: Record<string, SerializedType<T>>,
|
|
1004
1109
|
alreadyParsedTypes: Map<
|
|
1005
1110
|
DispatchTypeName,
|
|
@@ -1013,51 +1118,54 @@ export const DispatchParsedType = {
|
|
|
1013
1118
|
],
|
|
1014
1119
|
string
|
|
1015
1120
|
> =>
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
string
|
|
1056
|
-
>([extendedTypeName, extendedType]),
|
|
1057
|
-
)
|
|
1121
|
+
!SerializedType.isRecord(rawType)
|
|
1122
|
+
? ValueOrErrors.Default.throwOne(
|
|
1123
|
+
`Error: ${JSON.stringify(rawType)} is not a valid record`,
|
|
1124
|
+
)
|
|
1125
|
+
: (SerializedType.isExtendedType(rawType)
|
|
1126
|
+
? rawType.extends
|
|
1127
|
+
.reduce<
|
|
1128
|
+
ValueOrErrors<
|
|
1129
|
+
[
|
|
1130
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1131
|
+
Map<
|
|
1132
|
+
DispatchTypeName,
|
|
1133
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1134
|
+
>,
|
|
1135
|
+
],
|
|
1136
|
+
string
|
|
1137
|
+
>
|
|
1138
|
+
>(
|
|
1139
|
+
(acc, extendedTypeName) =>
|
|
1140
|
+
acc.Then(([resultMap, accumulatedAlreadyParsedTypes]) =>
|
|
1141
|
+
accumulatedAlreadyParsedTypes.has(extendedTypeName)
|
|
1142
|
+
? DispatchParsedType.Operations.GetExtendedRecordTypes(
|
|
1143
|
+
extendedTypeName,
|
|
1144
|
+
accumulatedAlreadyParsedTypes,
|
|
1145
|
+
).Then(([extendedTypeName, recordType]) =>
|
|
1146
|
+
ValueOrErrors.Default.return<
|
|
1147
|
+
[
|
|
1148
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1149
|
+
Map<
|
|
1150
|
+
DispatchTypeName,
|
|
1151
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1152
|
+
>,
|
|
1153
|
+
],
|
|
1154
|
+
string
|
|
1155
|
+
>([
|
|
1156
|
+
resultMap.set(extendedTypeName, recordType),
|
|
1157
|
+
accumulatedAlreadyParsedTypes,
|
|
1158
|
+
]),
|
|
1159
|
+
)
|
|
1058
1160
|
: serializedTypes[extendedTypeName] == undefined
|
|
1059
1161
|
? ValueOrErrors.Default.throwOne<
|
|
1060
|
-
[
|
|
1162
|
+
[
|
|
1163
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1164
|
+
Map<
|
|
1165
|
+
DispatchTypeName,
|
|
1166
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1167
|
+
>,
|
|
1168
|
+
],
|
|
1061
1169
|
string
|
|
1062
1170
|
>(
|
|
1063
1171
|
`Error: cannot find extended type ${extendedTypeName} in types`,
|
|
@@ -1065,18 +1173,46 @@ export const DispatchParsedType = {
|
|
|
1065
1173
|
: DispatchParsedType.Operations.ParseRawType(
|
|
1066
1174
|
extendedTypeName,
|
|
1067
1175
|
serializedTypes[extendedTypeName],
|
|
1068
|
-
typeNames,
|
|
1069
1176
|
serializedTypes,
|
|
1070
|
-
|
|
1177
|
+
accumulatedAlreadyParsedTypes,
|
|
1071
1178
|
injectedPrimitives,
|
|
1072
1179
|
).Then((parsedType) =>
|
|
1073
1180
|
parsedType[0].kind == "record"
|
|
1074
1181
|
? ValueOrErrors.Default.return<
|
|
1075
|
-
[
|
|
1182
|
+
[
|
|
1183
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1184
|
+
Map<
|
|
1185
|
+
DispatchTypeName,
|
|
1186
|
+
ValueOrErrors<
|
|
1187
|
+
DispatchParsedType<T>,
|
|
1188
|
+
string
|
|
1189
|
+
>
|
|
1190
|
+
>,
|
|
1191
|
+
],
|
|
1076
1192
|
string
|
|
1077
|
-
>([
|
|
1193
|
+
>([
|
|
1194
|
+
resultMap.set(
|
|
1195
|
+
extendedTypeName,
|
|
1196
|
+
parsedType[0],
|
|
1197
|
+
),
|
|
1198
|
+
parsedType[1].set(
|
|
1199
|
+
extendedTypeName,
|
|
1200
|
+
ValueOrErrors.Default.return(
|
|
1201
|
+
parsedType[0],
|
|
1202
|
+
),
|
|
1203
|
+
),
|
|
1204
|
+
])
|
|
1078
1205
|
: ValueOrErrors.Default.throwOne<
|
|
1079
|
-
[
|
|
1206
|
+
[
|
|
1207
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1208
|
+
Map<
|
|
1209
|
+
DispatchTypeName,
|
|
1210
|
+
ValueOrErrors<
|
|
1211
|
+
DispatchParsedType<T>,
|
|
1212
|
+
string
|
|
1213
|
+
>
|
|
1214
|
+
>,
|
|
1215
|
+
],
|
|
1080
1216
|
string
|
|
1081
1217
|
>(
|
|
1082
1218
|
`Error: ${JSON.stringify(
|
|
@@ -1085,84 +1221,33 @@ export const DispatchParsedType = {
|
|
|
1085
1221
|
),
|
|
1086
1222
|
),
|
|
1087
1223
|
),
|
|
1088
|
-
),
|
|
1089
|
-
)
|
|
1090
|
-
.MapErrors((errors) =>
|
|
1091
|
-
errors.map(
|
|
1092
|
-
(error) => `${error}\n...When parsing extended types`,
|
|
1093
|
-
),
|
|
1094
|
-
)
|
|
1095
|
-
.Then((parsedExtendedRecordTypes) =>
|
|
1096
|
-
ValueOrErrors.Default.return<
|
|
1097
|
-
Map<DispatchTypeName, RecordType<T>>,
|
|
1098
|
-
string
|
|
1099
|
-
>(
|
|
1100
|
-
parsedExtendedRecordTypes.reduce(
|
|
1101
|
-
(acc, type) => acc.set(type[0], type[1]),
|
|
1102
|
-
Map<DispatchTypeName, RecordType<T>>(),
|
|
1103
|
-
),
|
|
1104
|
-
),
|
|
1105
|
-
)
|
|
1106
|
-
: ValueOrErrors.Default.return<
|
|
1107
|
-
Map<DispatchTypeName, RecordType<T>>,
|
|
1108
|
-
string
|
|
1109
|
-
>(Map<DispatchTypeName, RecordType<T>>())
|
|
1110
|
-
).Then((parsedExtendedRecordTypesMap) =>
|
|
1111
|
-
ValueOrErrors.Operations.All(
|
|
1112
|
-
List(
|
|
1113
|
-
Object.entries(rawType.fields).map(([fieldName, fieldType]) =>
|
|
1114
|
-
DispatchParsedType.Operations.ParseRawType(
|
|
1115
|
-
fieldName,
|
|
1116
|
-
fieldType as SerializedType<T>,
|
|
1117
|
-
typeNames,
|
|
1118
|
-
serializedTypes,
|
|
1119
|
-
alreadyParsedTypes,
|
|
1120
|
-
injectedPrimitives,
|
|
1121
|
-
).Then((parsedField) =>
|
|
1122
|
-
ValueOrErrors.Default.return<
|
|
1123
|
-
readonly [
|
|
1124
|
-
string,
|
|
1125
|
-
[
|
|
1126
|
-
DispatchParsedType<T>,
|
|
1127
|
-
Map<
|
|
1128
|
-
string,
|
|
1129
|
-
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1130
|
-
>,
|
|
1131
|
-
],
|
|
1132
|
-
],
|
|
1133
|
-
string
|
|
1134
|
-
>([fieldName, parsedField] as const),
|
|
1135
|
-
),
|
|
1136
|
-
),
|
|
1137
|
-
),
|
|
1138
|
-
)
|
|
1139
|
-
.Then((parsedFields) =>
|
|
1140
1224
|
ValueOrErrors.Default.return<
|
|
1141
|
-
|
|
1225
|
+
[
|
|
1226
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1227
|
+
Map<
|
|
1228
|
+
DispatchTypeName,
|
|
1229
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1230
|
+
>,
|
|
1231
|
+
],
|
|
1142
1232
|
string
|
|
1143
|
-
>(
|
|
1144
|
-
Map(
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1233
|
+
>([
|
|
1234
|
+
Map<DispatchTypeName, RecordType<T>>(),
|
|
1235
|
+
alreadyParsedTypes,
|
|
1236
|
+
]),
|
|
1237
|
+
)
|
|
1238
|
+
.MapErrors((errors) =>
|
|
1239
|
+
errors.map(
|
|
1240
|
+
(error) => `${error}\n...When parsing extended types`,
|
|
1150
1241
|
),
|
|
1151
1242
|
)
|
|
1152
|
-
.Then(
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
(acc, type) => acc.merge(type.fields),
|
|
1158
|
-
Map<DispatchTypeName, DispatchParsedType<T>>(),
|
|
1159
|
-
),
|
|
1160
|
-
),
|
|
1161
|
-
),
|
|
1162
|
-
).Then((parsedRecord) =>
|
|
1243
|
+
.Then(
|
|
1244
|
+
([
|
|
1245
|
+
parsedExtendedRecordTypesMap,
|
|
1246
|
+
accumulatedAlreadyParsedTypes,
|
|
1247
|
+
]) =>
|
|
1163
1248
|
ValueOrErrors.Default.return<
|
|
1164
1249
|
[
|
|
1165
|
-
RecordType<T
|
|
1250
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1166
1251
|
Map<
|
|
1167
1252
|
DispatchTypeName,
|
|
1168
1253
|
ValueOrErrors<DispatchParsedType<T>, string>
|
|
@@ -1170,16 +1255,135 @@ export const DispatchParsedType = {
|
|
|
1170
1255
|
],
|
|
1171
1256
|
string
|
|
1172
1257
|
>([
|
|
1173
|
-
|
|
1258
|
+
parsedExtendedRecordTypesMap,
|
|
1259
|
+
accumulatedAlreadyParsedTypes,
|
|
1260
|
+
]),
|
|
1261
|
+
)
|
|
1262
|
+
: ValueOrErrors.Default.return<
|
|
1263
|
+
[
|
|
1264
|
+
Map<DispatchTypeName, RecordType<T>>,
|
|
1265
|
+
Map<
|
|
1266
|
+
DispatchTypeName,
|
|
1267
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1268
|
+
>,
|
|
1269
|
+
],
|
|
1270
|
+
string
|
|
1271
|
+
>([Map<DispatchTypeName, RecordType<T>>(), alreadyParsedTypes])
|
|
1272
|
+
).Then(
|
|
1273
|
+
([parsedExtendedRecordTypesMap, accumulatedAlreadyParsedTypes]) =>
|
|
1274
|
+
Object.keys(rawType.fields)
|
|
1275
|
+
.reduce<
|
|
1276
|
+
ValueOrErrors<
|
|
1277
|
+
[
|
|
1278
|
+
Map<string, DispatchParsedType<T>>,
|
|
1279
|
+
Map<
|
|
1280
|
+
DispatchTypeName,
|
|
1281
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1282
|
+
>,
|
|
1283
|
+
],
|
|
1284
|
+
string
|
|
1285
|
+
>
|
|
1286
|
+
>(
|
|
1287
|
+
(acc, fieldName) =>
|
|
1288
|
+
acc.Then(
|
|
1289
|
+
([
|
|
1290
|
+
parsedFieldsMap,
|
|
1291
|
+
accumulatedAlreadyParsedTypesForFields,
|
|
1292
|
+
]) =>
|
|
1293
|
+
DispatchParsedType.Operations.ParseRawType(
|
|
1294
|
+
`Record field type: ${fieldName}`,
|
|
1295
|
+
(rawType.fields as Record<string, unknown>)[
|
|
1296
|
+
fieldName
|
|
1297
|
+
] as SerializedType<T>,
|
|
1298
|
+
serializedTypes,
|
|
1299
|
+
accumulatedAlreadyParsedTypesForFields,
|
|
1300
|
+
injectedPrimitives,
|
|
1301
|
+
).Then((parsedField) =>
|
|
1302
|
+
ValueOrErrors.Default.return<
|
|
1303
|
+
[
|
|
1304
|
+
Map<string, DispatchParsedType<T>>,
|
|
1305
|
+
Map<
|
|
1306
|
+
DispatchTypeName,
|
|
1307
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1308
|
+
>,
|
|
1309
|
+
],
|
|
1310
|
+
string
|
|
1311
|
+
>([
|
|
1312
|
+
parsedFieldsMap.set(fieldName, parsedField[0]),
|
|
1313
|
+
parsedField[1],
|
|
1314
|
+
]),
|
|
1315
|
+
),
|
|
1316
|
+
),
|
|
1317
|
+
ValueOrErrors.Default.return<
|
|
1318
|
+
[
|
|
1319
|
+
Map<string, DispatchParsedType<T>>,
|
|
1320
|
+
Map<
|
|
1321
|
+
DispatchTypeName,
|
|
1322
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1323
|
+
>,
|
|
1324
|
+
],
|
|
1325
|
+
string
|
|
1326
|
+
>([
|
|
1327
|
+
Map<string, DispatchParsedType<T>>(),
|
|
1328
|
+
accumulatedAlreadyParsedTypes,
|
|
1329
|
+
]),
|
|
1330
|
+
)
|
|
1331
|
+
.Then(
|
|
1332
|
+
([
|
|
1333
|
+
parsedFieldsMap,
|
|
1334
|
+
accumulatedAlreadyParsedTypesForFields,
|
|
1335
|
+
]) => {
|
|
1336
|
+
const { mergedFields, updatedAccumulatedTypes } =
|
|
1174
1337
|
parsedExtendedRecordTypesMap.reduce(
|
|
1175
|
-
(
|
|
1176
|
-
acc
|
|
1177
|
-
|
|
1338
|
+
(
|
|
1339
|
+
acc,
|
|
1340
|
+
type,
|
|
1341
|
+
name,
|
|
1342
|
+
): {
|
|
1343
|
+
mergedFields: Map<
|
|
1344
|
+
DispatchTypeName,
|
|
1345
|
+
DispatchParsedType<T>
|
|
1346
|
+
>;
|
|
1347
|
+
updatedAccumulatedTypes: Map<
|
|
1348
|
+
DispatchTypeName,
|
|
1349
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1350
|
+
>;
|
|
1351
|
+
} => ({
|
|
1352
|
+
mergedFields: acc.mergedFields.merge(type.fields),
|
|
1353
|
+
updatedAccumulatedTypes:
|
|
1354
|
+
acc.updatedAccumulatedTypes.set(
|
|
1355
|
+
name,
|
|
1356
|
+
ValueOrErrors.Default.return(type),
|
|
1357
|
+
),
|
|
1358
|
+
}),
|
|
1359
|
+
{
|
|
1360
|
+
mergedFields: Map<
|
|
1361
|
+
DispatchTypeName,
|
|
1362
|
+
DispatchParsedType<T>
|
|
1363
|
+
>(),
|
|
1364
|
+
updatedAccumulatedTypes:
|
|
1365
|
+
accumulatedAlreadyParsedTypesForFields,
|
|
1366
|
+
},
|
|
1367
|
+
);
|
|
1368
|
+
return ValueOrErrors.Default.return<RecordType<T>, string>(
|
|
1369
|
+
DispatchParsedType.Default.record(
|
|
1370
|
+
parsedFieldsMap.merge(mergedFields),
|
|
1178
1371
|
),
|
|
1179
|
-
|
|
1180
|
-
|
|
1372
|
+
).Then((parsedRecord) =>
|
|
1373
|
+
ValueOrErrors.Default.return<
|
|
1374
|
+
[
|
|
1375
|
+
RecordType<T>,
|
|
1376
|
+
Map<
|
|
1377
|
+
DispatchTypeName,
|
|
1378
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1379
|
+
>,
|
|
1380
|
+
],
|
|
1381
|
+
string
|
|
1382
|
+
>([parsedRecord, updatedAccumulatedTypes]),
|
|
1383
|
+
);
|
|
1384
|
+
},
|
|
1181
1385
|
),
|
|
1182
|
-
|
|
1386
|
+
),
|
|
1183
1387
|
ParseRawFilterType: <T>(
|
|
1184
1388
|
rawFilterType: unknown,
|
|
1185
1389
|
arg: DispatchParsedType<T>,
|
|
@@ -1244,7 +1448,6 @@ export const DispatchParsedType = {
|
|
|
1244
1448
|
ParseRawType: <T>(
|
|
1245
1449
|
typeName: DispatchTypeName,
|
|
1246
1450
|
rawType: SerializedType<T>,
|
|
1247
|
-
typeNames: Set<DispatchTypeName>,
|
|
1248
1451
|
serializedTypes: Record<string, SerializedType<T>>,
|
|
1249
1452
|
alreadyParsedTypes: Map<
|
|
1250
1453
|
DispatchTypeName,
|
|
@@ -1258,6 +1461,15 @@ export const DispatchParsedType = {
|
|
|
1258
1461
|
],
|
|
1259
1462
|
string
|
|
1260
1463
|
> => {
|
|
1464
|
+
if (
|
|
1465
|
+
alreadyParsedTypes.has(typeName) &&
|
|
1466
|
+
!SerializedType.isLookup(rawType, injectedPrimitives)
|
|
1467
|
+
)
|
|
1468
|
+
return alreadyParsedTypes
|
|
1469
|
+
.get(typeName)!
|
|
1470
|
+
.Then((parsedType) =>
|
|
1471
|
+
ValueOrErrors.Default.return([parsedType, alreadyParsedTypes]),
|
|
1472
|
+
);
|
|
1261
1473
|
const result: ValueOrErrors<
|
|
1262
1474
|
[
|
|
1263
1475
|
DispatchParsedType<T>,
|
|
@@ -1265,16 +1477,13 @@ export const DispatchParsedType = {
|
|
|
1265
1477
|
],
|
|
1266
1478
|
string
|
|
1267
1479
|
> = (() => {
|
|
1268
|
-
const stringyTypes = [
|
|
1269
|
-
"guid",
|
|
1270
|
-
"entityIdUUID",
|
|
1271
|
-
"entityIdString",
|
|
1272
|
-
"calculatedDisplayValue",
|
|
1273
|
-
];
|
|
1274
1480
|
if (SerializedType.isPrimitive(rawType, injectedPrimitives))
|
|
1275
1481
|
return ValueOrErrors.Default.return([
|
|
1276
1482
|
DispatchParsedType.Default.primitive(
|
|
1277
|
-
typeof rawType === "string" &&
|
|
1483
|
+
typeof rawType === "string" &&
|
|
1484
|
+
STRINGY_TYPES.includes(
|
|
1485
|
+
rawType as (typeof STRINGY_TYPES)[number],
|
|
1486
|
+
)
|
|
1278
1487
|
? "string"
|
|
1279
1488
|
: rawType,
|
|
1280
1489
|
),
|
|
@@ -1284,89 +1493,79 @@ export const DispatchParsedType = {
|
|
|
1284
1493
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1285
1494
|
`SingleSelection:Element`,
|
|
1286
1495
|
rawType.args[0],
|
|
1287
|
-
typeNames,
|
|
1288
1496
|
serializedTypes,
|
|
1289
1497
|
alreadyParsedTypes,
|
|
1290
1498
|
injectedPrimitives,
|
|
1291
|
-
).Then((
|
|
1499
|
+
).Then(([parsedArg, newAlreadyParsedTypes]) =>
|
|
1292
1500
|
ValueOrErrors.Default.return([
|
|
1293
|
-
DispatchParsedType.Default.singleSelection([
|
|
1294
|
-
|
|
1501
|
+
DispatchParsedType.Default.singleSelection([parsedArg]),
|
|
1502
|
+
newAlreadyParsedTypes,
|
|
1295
1503
|
]),
|
|
1296
1504
|
);
|
|
1297
1505
|
if (SerializedType.isMultiSelection(rawType))
|
|
1298
1506
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1299
1507
|
`MultiSelection:Element`,
|
|
1300
1508
|
rawType.args[0],
|
|
1301
|
-
typeNames,
|
|
1302
1509
|
serializedTypes,
|
|
1303
1510
|
alreadyParsedTypes,
|
|
1304
1511
|
injectedPrimitives,
|
|
1305
|
-
).Then((
|
|
1512
|
+
).Then(([parsedArg, newAlreadyParsedTypes]) =>
|
|
1306
1513
|
ValueOrErrors.Default.return([
|
|
1307
|
-
DispatchParsedType.Default.multiSelection([
|
|
1308
|
-
|
|
1514
|
+
DispatchParsedType.Default.multiSelection([parsedArg]),
|
|
1515
|
+
newAlreadyParsedTypes,
|
|
1309
1516
|
]),
|
|
1310
1517
|
);
|
|
1311
1518
|
if (SerializedType.isList(rawType))
|
|
1312
1519
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1313
1520
|
`List:Element`,
|
|
1314
1521
|
rawType.args[0],
|
|
1315
|
-
typeNames,
|
|
1316
1522
|
serializedTypes,
|
|
1317
1523
|
alreadyParsedTypes,
|
|
1318
1524
|
injectedPrimitives,
|
|
1319
|
-
).Then((
|
|
1525
|
+
).Then(([parsedArg, newAlreadyParsedTypes]) =>
|
|
1320
1526
|
ValueOrErrors.Default.return([
|
|
1321
|
-
DispatchParsedType.Default.list([
|
|
1322
|
-
|
|
1527
|
+
DispatchParsedType.Default.list([parsedArg]),
|
|
1528
|
+
newAlreadyParsedTypes,
|
|
1323
1529
|
]),
|
|
1324
1530
|
);
|
|
1325
1531
|
if (SerializedType.isTuple(rawType))
|
|
1326
|
-
return
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
),
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
),
|
|
1344
|
-
|
|
1345
|
-
]),
|
|
1346
|
-
);
|
|
1532
|
+
return rawType.args
|
|
1533
|
+
.reduce<
|
|
1534
|
+
ValueOrErrors<
|
|
1535
|
+
[
|
|
1536
|
+
List<DispatchParsedType<T>>,
|
|
1537
|
+
Map<
|
|
1538
|
+
DispatchTypeName,
|
|
1539
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1540
|
+
>,
|
|
1541
|
+
],
|
|
1542
|
+
string
|
|
1543
|
+
>
|
|
1544
|
+
>((acc, arg, index) => acc.Then(([parsedArgsList, accumulatedAlreadyParsedTypes]) => DispatchParsedType.Operations.ParseRawType(`Tuple:Item ${index + 1}`, arg, serializedTypes, accumulatedAlreadyParsedTypes, injectedPrimitives).Then((parsedArg) => ValueOrErrors.Default.return<[List<DispatchParsedType<T>>, Map<DispatchTypeName, ValueOrErrors<DispatchParsedType<T>, string>>], string>([parsedArgsList.push(parsedArg[0]), parsedArg[1]]))), ValueOrErrors.Default.return<[List<DispatchParsedType<T>>, Map<DispatchTypeName, ValueOrErrors<DispatchParsedType<T>, string>>], string>([List<DispatchParsedType<T>>(), alreadyParsedTypes]))
|
|
1545
|
+
.Then(([parsedArgsList, accumulatedAlreadyParsedTypes]) =>
|
|
1546
|
+
ValueOrErrors.Default.return([
|
|
1547
|
+
DispatchParsedType.Default.tuple(parsedArgsList.toArray()),
|
|
1548
|
+
accumulatedAlreadyParsedTypes,
|
|
1549
|
+
]),
|
|
1550
|
+
);
|
|
1347
1551
|
if (SerializedType.isMap(rawType))
|
|
1348
1552
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1349
1553
|
"Map:Key",
|
|
1350
1554
|
rawType.args[0],
|
|
1351
|
-
typeNames,
|
|
1352
1555
|
serializedTypes,
|
|
1353
1556
|
alreadyParsedTypes,
|
|
1354
1557
|
injectedPrimitives,
|
|
1355
|
-
).Then((
|
|
1558
|
+
).Then(([parsedArg0, newAlreadyParsedTypes]) =>
|
|
1356
1559
|
DispatchParsedType.Operations.ParseRawType(
|
|
1357
1560
|
"Map:Value",
|
|
1358
1561
|
rawType.args[1],
|
|
1359
|
-
typeNames,
|
|
1360
1562
|
serializedTypes,
|
|
1361
|
-
|
|
1563
|
+
newAlreadyParsedTypes,
|
|
1362
1564
|
injectedPrimitives,
|
|
1363
|
-
).Then((
|
|
1565
|
+
).Then(([parsedArg1, newAlreadyParsedTypes2]) =>
|
|
1364
1566
|
ValueOrErrors.Default.return([
|
|
1365
|
-
DispatchParsedType.Default.map([
|
|
1366
|
-
|
|
1367
|
-
parsedArgs1[0],
|
|
1368
|
-
]),
|
|
1369
|
-
alreadyParsedTypes,
|
|
1567
|
+
DispatchParsedType.Default.map([parsedArg0, parsedArg1]),
|
|
1568
|
+
newAlreadyParsedTypes2,
|
|
1370
1569
|
]),
|
|
1371
1570
|
),
|
|
1372
1571
|
);
|
|
@@ -1374,33 +1573,26 @@ export const DispatchParsedType = {
|
|
|
1374
1573
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1375
1574
|
"Sum:Left",
|
|
1376
1575
|
rawType.args[0],
|
|
1377
|
-
typeNames,
|
|
1378
1576
|
serializedTypes,
|
|
1379
1577
|
alreadyParsedTypes,
|
|
1380
1578
|
injectedPrimitives,
|
|
1381
|
-
).Then((
|
|
1579
|
+
).Then(([parsedArg0, newAlreadyParsedTypes]) =>
|
|
1382
1580
|
DispatchParsedType.Operations.ParseRawType(
|
|
1383
1581
|
"Sum:Right",
|
|
1384
1582
|
rawType.args[1],
|
|
1385
|
-
typeNames,
|
|
1386
1583
|
serializedTypes,
|
|
1387
|
-
|
|
1584
|
+
newAlreadyParsedTypes,
|
|
1388
1585
|
injectedPrimitives,
|
|
1389
|
-
).Then((
|
|
1586
|
+
).Then(([parsedArg1, newAlreadyParsedTypes2]) =>
|
|
1390
1587
|
ValueOrErrors.Default.return([
|
|
1391
|
-
DispatchParsedType.Default.sum([
|
|
1392
|
-
|
|
1393
|
-
parsedArgs1[0],
|
|
1394
|
-
]),
|
|
1395
|
-
alreadyParsedTypes,
|
|
1588
|
+
DispatchParsedType.Default.sum([parsedArg0, parsedArg1]),
|
|
1589
|
+
newAlreadyParsedTypes2,
|
|
1396
1590
|
]),
|
|
1397
1591
|
),
|
|
1398
1592
|
);
|
|
1399
1593
|
if (SerializedType.isRecord(rawType))
|
|
1400
1594
|
return DispatchParsedType.Operations.ParseRecord(
|
|
1401
|
-
typeName,
|
|
1402
1595
|
rawType,
|
|
1403
|
-
typeNames,
|
|
1404
1596
|
serializedTypes,
|
|
1405
1597
|
alreadyParsedTypes,
|
|
1406
1598
|
injectedPrimitives,
|
|
@@ -1409,26 +1601,56 @@ export const DispatchParsedType = {
|
|
|
1409
1601
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1410
1602
|
"TableArg",
|
|
1411
1603
|
rawType.args[0],
|
|
1412
|
-
typeNames,
|
|
1413
1604
|
serializedTypes,
|
|
1414
1605
|
alreadyParsedTypes,
|
|
1415
1606
|
injectedPrimitives,
|
|
1416
|
-
).Then((parsedArg) =>
|
|
1417
|
-
parsedArg
|
|
1607
|
+
).Then(([parsedArg, newAlreadyParsedTypes]) =>
|
|
1608
|
+
parsedArg.kind != "lookup"
|
|
1418
1609
|
? ValueOrErrors.Default.throwOne(
|
|
1419
|
-
`Error: ${JSON.stringify(parsedArg
|
|
1610
|
+
`Error: ${JSON.stringify(parsedArg)} is not a lookup type`,
|
|
1420
1611
|
)
|
|
1421
1612
|
: ValueOrErrors.Default.return([
|
|
1422
|
-
DispatchParsedType.Default.table(parsedArg
|
|
1423
|
-
|
|
1613
|
+
DispatchParsedType.Default.table(parsedArg),
|
|
1614
|
+
newAlreadyParsedTypes,
|
|
1424
1615
|
]),
|
|
1425
1616
|
);
|
|
1426
1617
|
}
|
|
1427
|
-
if (SerializedType.isLookup(rawType,
|
|
1428
|
-
|
|
1429
|
-
|
|
1618
|
+
if (SerializedType.isLookup(rawType, injectedPrimitives)) {
|
|
1619
|
+
const resolvedType = serializedTypes[rawType];
|
|
1620
|
+
if (!resolvedType) {
|
|
1621
|
+
return ValueOrErrors.Default.throwOne(
|
|
1622
|
+
`Error: ${JSON.stringify(rawType)} is not a valid lookup type (not found in serializedTypes)`,
|
|
1623
|
+
);
|
|
1624
|
+
}
|
|
1625
|
+
if (!isString(rawType)) {
|
|
1626
|
+
return ValueOrErrors.Default.throwOne(
|
|
1627
|
+
`Error: ${JSON.stringify(rawType)} is not a valid lookup type (not a string)`,
|
|
1628
|
+
);
|
|
1629
|
+
}
|
|
1630
|
+
if (alreadyParsedTypes.has(rawType)) {
|
|
1631
|
+
return ValueOrErrors.Default.return([
|
|
1632
|
+
DispatchParsedType.Default.lookup(rawType),
|
|
1633
|
+
alreadyParsedTypes,
|
|
1634
|
+
]);
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
return DispatchParsedType.Operations.ParseRawType(
|
|
1638
|
+
rawType,
|
|
1639
|
+
resolvedType,
|
|
1640
|
+
serializedTypes,
|
|
1430
1641
|
alreadyParsedTypes,
|
|
1431
|
-
|
|
1642
|
+
injectedPrimitives,
|
|
1643
|
+
).Then(([parsedType, newAlreadyParsedTypes]) =>
|
|
1644
|
+
ValueOrErrors.Default.return([
|
|
1645
|
+
DispatchParsedType.Default.lookup(rawType),
|
|
1646
|
+
newAlreadyParsedTypes.set(
|
|
1647
|
+
rawType,
|
|
1648
|
+
ValueOrErrors.Default.return(parsedType),
|
|
1649
|
+
),
|
|
1650
|
+
]),
|
|
1651
|
+
);
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1432
1654
|
if (SerializedType.isUnit(rawType)) {
|
|
1433
1655
|
return ValueOrErrors.Default.return([
|
|
1434
1656
|
DispatchParsedType.Default.primitive("unit"),
|
|
@@ -1436,91 +1658,121 @@ export const DispatchParsedType = {
|
|
|
1436
1658
|
]);
|
|
1437
1659
|
}
|
|
1438
1660
|
if (SerializedType.isUnion(rawType))
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1661
|
+
return rawType.args
|
|
1662
|
+
.reduce<
|
|
1663
|
+
ValueOrErrors<
|
|
1664
|
+
[
|
|
1665
|
+
Map<string, DispatchParsedType<T>>,
|
|
1666
|
+
Map<
|
|
1667
|
+
DispatchTypeName,
|
|
1668
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1669
|
+
>,
|
|
1670
|
+
],
|
|
1671
|
+
string
|
|
1672
|
+
>
|
|
1673
|
+
>(
|
|
1674
|
+
(acc, unionCase) =>
|
|
1675
|
+
acc.Then(
|
|
1676
|
+
([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) =>
|
|
1677
|
+
DispatchParsedType.Operations.ParseRawType(
|
|
1678
|
+
isString(unionCase.fields)
|
|
1679
|
+
? unionCase.fields
|
|
1680
|
+
: `Union:Case ${unionCase.caseName}`,
|
|
1681
|
+
unionCase.fields == undefined
|
|
1682
|
+
? { fields: {} }
|
|
1683
|
+
: // we allow the record fields to be defined directly in the spec instead of
|
|
1684
|
+
// inside a fields key
|
|
1685
|
+
SerializedType.isRecordFields(unionCase.fields)
|
|
1686
|
+
? { fields: unionCase.fields }
|
|
1687
|
+
: unionCase.fields,
|
|
1688
|
+
serializedTypes,
|
|
1689
|
+
accumulatedAlreadyParsedTypes,
|
|
1690
|
+
injectedPrimitives,
|
|
1691
|
+
).Then(([parsedType, newAlreadyParsedTypes]) =>
|
|
1692
|
+
ValueOrErrors.Default.return<
|
|
1693
|
+
[
|
|
1694
|
+
Map<string, DispatchParsedType<T>>,
|
|
1695
|
+
Map<
|
|
1696
|
+
DispatchTypeName,
|
|
1697
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1698
|
+
>,
|
|
1699
|
+
],
|
|
1700
|
+
string
|
|
1701
|
+
>([
|
|
1702
|
+
parsedUnionCasesMap.set(unionCase.caseName, parsedType),
|
|
1703
|
+
newAlreadyParsedTypes,
|
|
1704
|
+
]),
|
|
1705
|
+
),
|
|
1461
1706
|
),
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1707
|
+
ValueOrErrors.Default.return<
|
|
1708
|
+
[
|
|
1709
|
+
Map<string, DispatchParsedType<T>>,
|
|
1710
|
+
Map<
|
|
1711
|
+
DispatchTypeName,
|
|
1712
|
+
ValueOrErrors<DispatchParsedType<T>, string>
|
|
1713
|
+
>,
|
|
1714
|
+
],
|
|
1715
|
+
string
|
|
1716
|
+
>([Map<string, DispatchParsedType<T>>(), alreadyParsedTypes]),
|
|
1717
|
+
)
|
|
1718
|
+
.Then(([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) =>
|
|
1719
|
+
ValueOrErrors.Default.return([
|
|
1720
|
+
DispatchParsedType.Default.union(parsedUnionCasesMap),
|
|
1721
|
+
accumulatedAlreadyParsedTypes,
|
|
1722
|
+
]),
|
|
1723
|
+
);
|
|
1724
|
+
if (SerializedType.isOne(rawType)) {
|
|
1471
1725
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1472
|
-
|
|
1726
|
+
rawType.args[0] as string,
|
|
1473
1727
|
rawType.args[0],
|
|
1474
|
-
typeNames,
|
|
1475
1728
|
serializedTypes,
|
|
1476
1729
|
alreadyParsedTypes,
|
|
1477
1730
|
injectedPrimitives,
|
|
1478
|
-
).Then((parsedArg) =>
|
|
1479
|
-
parsedArg
|
|
1731
|
+
).Then(([parsedArg, newAlreadyParsedTypes]) =>
|
|
1732
|
+
parsedArg.kind != "lookup"
|
|
1480
1733
|
? ValueOrErrors.Default.throwOne(
|
|
1481
|
-
`one content type ${JSON.stringify(parsedArg
|
|
1734
|
+
`one content type ${JSON.stringify(parsedArg)} is not a lookup type`,
|
|
1482
1735
|
)
|
|
1483
1736
|
: ValueOrErrors.Default.return([
|
|
1484
|
-
DispatchParsedType.Default.one(parsedArg
|
|
1485
|
-
|
|
1737
|
+
DispatchParsedType.Default.one(parsedArg),
|
|
1738
|
+
newAlreadyParsedTypes,
|
|
1486
1739
|
]),
|
|
1487
1740
|
);
|
|
1741
|
+
}
|
|
1488
1742
|
if (SerializedType.isReadOnly(rawType))
|
|
1489
1743
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1490
1744
|
"ReadOnly:Element",
|
|
1491
1745
|
rawType.args[0],
|
|
1492
|
-
typeNames,
|
|
1493
1746
|
serializedTypes,
|
|
1494
1747
|
alreadyParsedTypes,
|
|
1495
1748
|
injectedPrimitives,
|
|
1496
|
-
).Then(([parsedArg,
|
|
1749
|
+
).Then(([parsedArg, newAlreadyParsedTypes]) =>
|
|
1497
1750
|
ValueOrErrors.Default.return([
|
|
1498
1751
|
DispatchParsedType.Default.readOnly(parsedArg),
|
|
1499
|
-
|
|
1752
|
+
newAlreadyParsedTypes,
|
|
1500
1753
|
]),
|
|
1501
1754
|
);
|
|
1502
1755
|
if (SerializedType.isKeyOf(rawType))
|
|
1503
1756
|
return DispatchParsedType.Operations.ParseRawKeyOf(
|
|
1504
1757
|
rawType,
|
|
1505
|
-
typeNames,
|
|
1506
1758
|
serializedTypes,
|
|
1507
1759
|
alreadyParsedTypes,
|
|
1760
|
+
injectedPrimitives,
|
|
1508
1761
|
);
|
|
1509
1762
|
if (SerializedType.isTranslationOverride(rawType))
|
|
1510
1763
|
return DispatchParsedType.Operations.ParseRawType(
|
|
1511
1764
|
"TranslationOverride:Language",
|
|
1512
1765
|
rawType.args[0],
|
|
1513
|
-
typeNames,
|
|
1514
1766
|
serializedTypes,
|
|
1515
1767
|
alreadyParsedTypes,
|
|
1516
1768
|
injectedPrimitives,
|
|
1517
|
-
).Then(([parsedArg0,
|
|
1769
|
+
).Then(([parsedArg0, newAlreadyParsedTypes]) =>
|
|
1518
1770
|
ValueOrErrors.Default.return([
|
|
1519
1771
|
DispatchParsedType.Default.map([
|
|
1520
1772
|
DispatchParsedType.Default.singleSelection([parsedArg0]),
|
|
1521
1773
|
DispatchParsedType.Default.primitive("string"),
|
|
1522
1774
|
]),
|
|
1523
|
-
|
|
1775
|
+
newAlreadyParsedTypes,
|
|
1524
1776
|
]),
|
|
1525
1777
|
);
|
|
1526
1778
|
return ValueOrErrors.Default.throwOne(
|