ballerina-core 1.0.260 → 1.0.261

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 (152) hide show
  1. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.d.ts.map +1 -1
  2. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.js +1 -1
  3. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.js.map +1 -1
  4. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.d.ts +57 -0
  5. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.d.ts.map +1 -0
  6. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.js +85 -0
  7. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.js.map +1 -0
  8. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.d.ts +4 -7
  9. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.d.ts.map +1 -1
  10. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.js +12 -15
  11. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.js.map +1 -1
  12. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.d.ts +2 -0
  13. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.d.ts.map +1 -1
  14. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.js +2 -3
  15. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.js.map +1 -1
  16. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.d.ts +2 -0
  17. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.d.ts.map +1 -1
  18. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js +2 -0
  19. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js.map +1 -1
  20. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts +2 -3
  21. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.d.ts.map +1 -1
  22. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js +18 -21
  23. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.js.map +1 -1
  24. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.d.ts.map +1 -1
  25. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.js +1 -1
  26. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.js.map +1 -1
  27. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.d.ts +1 -1
  28. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.d.ts.map +1 -1
  29. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js +6 -7
  30. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.js.map +1 -1
  31. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.d.ts.map +1 -1
  32. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.js +1 -1
  33. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.js.map +1 -1
  34. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/statev2.d.ts +51 -23
  35. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/statev2.js +165 -109
  36. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/enum/state.d.ts +35 -19
  37. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/enum/state.js +40 -27
  38. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/list/state.d.ts +63 -29
  39. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/list/state.js +85 -44
  40. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/lookup/state.d.ts +121 -56
  41. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/lookup/state.js +133 -67
  42. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/map/state.d.ts +44 -15
  43. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/map/state.js +73 -32
  44. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/nestedRenderer/state.d.ts +72 -29
  45. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/nestedRenderer/state.js +83 -34
  46. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/one/state.d.ts +67 -18
  47. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/one/state.js +104 -36
  48. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/primitive/state.d.ts +20 -10
  49. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/primitive/state.js +21 -13
  50. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/readOnly/state.d.ts +52 -19
  51. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/readOnly/state.js +60 -26
  52. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.d.ts +47 -11
  53. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js +68 -21
  54. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/state.d.ts +51 -19
  55. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/state.js +139 -60
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/stream/state.d.ts +29 -14
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/stream/state.js +43 -27
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sum/state.d.ts +50 -19
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sum/state.js +72 -26
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sumUnitDate/state.d.ts +21 -13
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sumUnitDate/state.js +39 -22
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.d.ts +44 -10
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.js +55 -14
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/state.d.ts +91 -39
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/state.js +184 -57
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/tuple/state.d.ts +38 -13
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/tuple/state.js +79 -37
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/union/state.d.ts +41 -15
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/union/state.js +84 -38
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/state.d.ts +109 -19
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/state.js +203 -74
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/types/state.d.ts +424 -228
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/types/state.js +1016 -572
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/state.d.ts +124 -60
  75. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/state.js +330 -145
  76. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.d.ts +1 -1
  77. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.d.ts.map +1 -1
  78. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js +1 -1
  79. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.js.map +1 -1
  80. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.d.ts +1 -1
  81. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.d.ts.map +1 -1
  82. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js +2 -5
  83. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.js.map +1 -1
  84. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.d.ts +1 -1
  85. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.d.ts.map +1 -1
  86. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js +2 -2
  87. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.js.map +1 -1
  88. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.d.ts +2 -2
  89. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.d.ts.map +1 -1
  90. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js +2 -2
  91. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.js.map +1 -1
  92. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.d.ts +2 -2
  93. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.d.ts.map +1 -1
  94. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js +4 -4
  95. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.js.map +1 -1
  96. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.d.ts +1 -1
  97. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.d.ts.map +1 -1
  98. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js +1 -1
  99. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.js.map +1 -1
  100. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.d.ts +1 -1
  101. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.d.ts.map +1 -1
  102. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js +1 -1
  103. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.js.map +1 -1
  104. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.d.ts +1 -1
  105. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.d.ts.map +1 -1
  106. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js +2 -2
  107. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.js.map +1 -1
  108. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.d.ts +1 -1
  109. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.d.ts.map +1 -1
  110. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js +3 -3
  111. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.js.map +1 -1
  112. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts +2 -2
  113. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.d.ts.map +1 -1
  114. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js +74 -77
  115. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.js.map +1 -1
  116. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.d.ts +1 -1
  117. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.d.ts.map +1 -1
  118. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js +1 -1
  119. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.js.map +1 -1
  120. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.d.ts +1 -1
  121. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.d.ts.map +1 -1
  122. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js +2 -2
  123. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.js.map +1 -1
  124. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.d.ts +2 -2
  125. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.d.ts.map +1 -1
  126. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js +13 -16
  127. package/bin/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.js.map +1 -1
  128. package/bin/src/forms/domains/dispatched-forms/runner/template.d.ts.map +1 -1
  129. package/bin/src/forms/domains/launcher/coroutines/runner.d.ts.map +1 -1
  130. package/bin/src/forms/domains/launcher/template.d.ts.map +1 -1
  131. package/package.json +1 -1
  132. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/apis/state.ts +0 -1
  133. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/lookup/state.ts +0 -18
  134. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/nestedRenderer/state.ts +3 -3
  135. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.ts +6 -0
  136. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/table/state.ts +99 -111
  137. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/domains/union/state.ts +0 -1
  138. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/renderer/state.ts +0 -6
  139. package/src/forms/domains/dispatched-forms/deserializer/domains/specification/state.ts +0 -1
  140. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/list/state.ts +0 -2
  141. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/lookup/state.ts +2 -3
  142. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/map/state.ts +0 -3
  143. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/nestedDispatcher/state.ts +1 -4
  144. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/one/state.ts +0 -6
  145. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/readOnly/state.ts +0 -2
  146. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/recordField/state.ts +0 -2
  147. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/record/state.ts +0 -2
  148. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/sum/state.ts +0 -3
  149. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/table/state.ts +240 -235
  150. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/tupleDispatcher/state.ts +0 -2
  151. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/domains/unionDispatcher/state.ts +1 -2
  152. package/src/forms/domains/dispatched-forms/runner/domains/dispatcher/state.ts +6 -14
@@ -1,642 +1,1086 @@
1
1
  import { Map } from "immutable";
2
2
  import { ValueOrErrors } from "../../../../../../../../collections/domains/valueOrErrors/state";
3
- import { DispatchGenericTypes, MapRepo, isString, } from "../../../../../../../../../main";
3
+ import {
4
+ DispatchGenericTypes,
5
+ MapRepo,
6
+ isString,
7
+ } from "../../../../../../../../../main";
4
8
  export const DispatchisString = (_) => typeof _ == "string";
5
9
  export const DispatchIsObject = (_) => typeof _ == "object";
6
- export const DispatchIsGenericType = (_) => _ && DispatchGenericTypes.includes(_);
7
- export const DispatchHasFun = (_) => DispatchIsObject(_) && "fun" in _ && DispatchisString(_.fun);
8
- export const DispatchHasArgs = (_) => DispatchIsObject(_) && "args" in _ && Array.isArray(_.args);
10
+ export const DispatchIsGenericType = (_) =>
11
+ _ && DispatchGenericTypes.includes(_);
12
+ export const DispatchHasFun = (_) =>
13
+ DispatchIsObject(_) && "fun" in _ && DispatchisString(_.fun);
14
+ export const DispatchHasArgs = (_) =>
15
+ DispatchIsObject(_) && "args" in _ && Array.isArray(_.args);
9
16
  export const DispatchPrimitiveTypeNames = [
10
- "unit",
11
- "guid", //resolves to string
12
- "entityIdString", //resolves to string
13
- "entityIdUUID", //resolves to string
14
- "calculatedDisplayValue", //resolves to string
15
- "string",
16
- "number",
17
- "boolean",
18
- "Date",
19
- "base64File",
20
- "secret",
17
+ "unit",
18
+ "guid", //resolves to string
19
+ "entityIdString", //resolves to string
20
+ "entityIdUUID", //resolves to string
21
+ "calculatedDisplayValue", //resolves to string
22
+ "string",
23
+ "number",
24
+ "boolean",
25
+ "Date",
26
+ "base64File",
27
+ "secret",
21
28
  ];
22
29
  const STRINGY_TYPES = [
23
- "guid",
24
- "entityIdUUID",
25
- "entityIdString",
26
- "calculatedDisplayValue",
30
+ "guid",
31
+ "entityIdUUID",
32
+ "entityIdString",
33
+ "calculatedDisplayValue",
27
34
  ];
28
35
  export const SerializedType = {
29
- isExtendedType: (type) => typeof type == "object" &&
30
- "extends" in type &&
31
- Array.isArray(type.extends) &&
32
- type.extends.length > 0 &&
33
- type.extends.every(DispatchisString),
34
- hasFields: (type) => typeof type == "object" && "fields" in type,
35
- isPrimitive: (_, injectedPrimitives) => Boolean(DispatchPrimitiveTypeNames.some((__) => _ == __) ||
36
- (injectedPrimitives === null || injectedPrimitives === void 0 ? void 0 : injectedPrimitives.has(_))),
37
- isApplication: (_) => DispatchHasFun(_) && DispatchIsGenericType(_.fun) && DispatchHasArgs(_),
38
- isLookup: (_, forms) => DispatchisString(_) && forms.has(_),
39
- isList: (_) => SerializedType.isApplication(_) && _.fun == "List" && _.args.length == 1,
40
- isMap: (_) => SerializedType.isApplication(_) && _.fun == "Map" && _.args.length == 2,
41
- isSum: (_) => SerializedType.isApplication(_) && _.fun == "Sum" && _.args.length == 2,
42
- isSumUnitDate: (_) => typeof _ == "string" && _ == "SumUnitDate",
43
- isSingleSelection: (_) => SerializedType.isApplication(_) &&
44
- _.fun == "SingleSelection" &&
45
- _.args.length == 1,
46
- isMultiSelection: (_) => SerializedType.isApplication(_) &&
47
- _.fun == "MultiSelection" &&
48
- _.args.length == 1,
49
- isUnion: (_) => DispatchHasFun(_) &&
50
- DispatchIsGenericType(_.fun) &&
51
- DispatchHasArgs(_) &&
52
- _.fun == "Union" &&
53
- _.args.length > 0 &&
54
- _.args.every((arg) => (DispatchIsObject(arg) && "caseName" in arg && !("fields" in arg)) ||
55
- ("fields" in arg &&
56
- (DispatchisString(arg.fields) || DispatchIsObject(arg.fields)))),
57
- isTuple: (_) => SerializedType.isApplication(_) && _.fun == "Tuple",
58
- isRecord: (_) => _ != null &&
59
- typeof _ == "object" &&
60
- "fields" in _ &&
61
- (DispatchIsObject(_.fields) || DispatchisString(_.fields)),
62
- isTable: (_) => SerializedType.isApplication(_) && _.fun == "Table" && _.args.length == 1,
63
- isOption: (_) => typeof _ == "object" &&
64
- "fun" in _ &&
65
- _.fun == "Option" &&
66
- "args" in _ &&
67
- Array.isArray(_.args) &&
68
- _.args.length == 1,
69
- isUnit: (_) => _ == "unit",
70
- isKeyOf: (_) => typeof _ == "object" &&
71
- "fun" in _ &&
72
- _.fun == "KeyOf" &&
73
- "args" in _ &&
74
- Array.isArray(_.args) &&
75
- (_.args.length == 1 || (_.args.length == 2 && Array.isArray(_.args[1]))) &&
76
- DispatchisString(_.args[0]),
77
- isOne: (_) => SerializedType.isApplication(_) && _.fun == "One" && _.args.length == 1,
78
- isReadOnly: (_) => SerializedType.isApplication(_) &&
79
- _.fun == "ReadOnly" &&
80
- _.args.length == 1,
81
- isRecordFields: (_) => typeof _ == "object" && _ != null && !("fun" in _) && !("args" in _),
82
- isTranslationOverride: (_) => typeof _ == "object" &&
83
- _ != null &&
84
- "fun" in _ &&
85
- _.fun == "TranslationOverride" &&
86
- "args" in _ &&
87
- Array.isArray(_.args) &&
88
- _.args.length == 2 &&
89
- DispatchisString(_.args[0]),
36
+ isExtendedType: (type) =>
37
+ typeof type == "object" &&
38
+ "extends" in type &&
39
+ Array.isArray(type.extends) &&
40
+ type.extends.length > 0 &&
41
+ type.extends.every(DispatchisString),
42
+ hasFields: (type) => typeof type == "object" && "fields" in type,
43
+ isPrimitive: (_, injectedPrimitives) =>
44
+ Boolean(
45
+ DispatchPrimitiveTypeNames.some((__) => _ == __) ||
46
+ (injectedPrimitives === null || injectedPrimitives === void 0
47
+ ? void 0
48
+ : injectedPrimitives.has(_)),
49
+ ),
50
+ isApplication: (_) =>
51
+ DispatchHasFun(_) && DispatchIsGenericType(_.fun) && DispatchHasArgs(_),
52
+ isLookup: (_, forms) => DispatchisString(_) && forms.has(_),
53
+ isList: (_) =>
54
+ SerializedType.isApplication(_) && _.fun == "List" && _.args.length == 1,
55
+ isMap: (_) =>
56
+ SerializedType.isApplication(_) && _.fun == "Map" && _.args.length == 2,
57
+ isSum: (_) =>
58
+ SerializedType.isApplication(_) && _.fun == "Sum" && _.args.length == 2,
59
+ isSumUnitDate: (_) => typeof _ == "string" && _ == "SumUnitDate",
60
+ isSingleSelection: (_) =>
61
+ SerializedType.isApplication(_) &&
62
+ _.fun == "SingleSelection" &&
63
+ _.args.length == 1,
64
+ isMultiSelection: (_) =>
65
+ SerializedType.isApplication(_) &&
66
+ _.fun == "MultiSelection" &&
67
+ _.args.length == 1,
68
+ isUnion: (_) =>
69
+ DispatchHasFun(_) &&
70
+ DispatchIsGenericType(_.fun) &&
71
+ DispatchHasArgs(_) &&
72
+ _.fun == "Union" &&
73
+ _.args.length > 0 &&
74
+ _.args.every(
75
+ (arg) =>
76
+ (DispatchIsObject(arg) && "caseName" in arg && !("fields" in arg)) ||
77
+ ("fields" in arg &&
78
+ (DispatchisString(arg.fields) || DispatchIsObject(arg.fields))),
79
+ ),
80
+ isTuple: (_) => SerializedType.isApplication(_) && _.fun == "Tuple",
81
+ isRecord: (_) =>
82
+ _ != null &&
83
+ typeof _ == "object" &&
84
+ "fields" in _ &&
85
+ (DispatchIsObject(_.fields) || DispatchisString(_.fields)),
86
+ isTable: (_) =>
87
+ SerializedType.isApplication(_) && _.fun == "Table" && _.args.length == 1,
88
+ isOption: (_) =>
89
+ typeof _ == "object" &&
90
+ "fun" in _ &&
91
+ _.fun == "Option" &&
92
+ "args" in _ &&
93
+ Array.isArray(_.args) &&
94
+ _.args.length == 1,
95
+ isUnit: (_) => _ == "unit",
96
+ isKeyOf: (_) =>
97
+ typeof _ == "object" &&
98
+ "fun" in _ &&
99
+ _.fun == "KeyOf" &&
100
+ "args" in _ &&
101
+ Array.isArray(_.args) &&
102
+ (_.args.length == 1 || (_.args.length == 2 && Array.isArray(_.args[1]))) &&
103
+ DispatchisString(_.args[0]),
104
+ isOne: (_) =>
105
+ SerializedType.isApplication(_) && _.fun == "One" && _.args.length == 1,
106
+ isReadOnly: (_) =>
107
+ SerializedType.isApplication(_) &&
108
+ _.fun == "ReadOnly" &&
109
+ _.args.length == 1,
110
+ isRecordFields: (_) =>
111
+ typeof _ == "object" && _ != null && !("fun" in _) && !("args" in _),
112
+ isTranslationOverride: (_) =>
113
+ typeof _ == "object" &&
114
+ _ != null &&
115
+ "fun" in _ &&
116
+ _.fun == "TranslationOverride" &&
117
+ "args" in _ &&
118
+ Array.isArray(_.args) &&
119
+ _.args.length == 2 &&
120
+ DispatchisString(_.args[0]),
90
121
  };
91
122
  export const UnionType = {
92
- SerializeToString: (serializedArgs) => {
93
- return `[union; cases: {${serializedArgs.map((v, k) => `${k}: ${v}`).join(", ")}}]`;
94
- },
123
+ SerializeToString: (serializedArgs) => {
124
+ return `[union; cases: {${serializedArgs.map((v, k) => `${k}: ${v}`).join(", ")}}]`;
125
+ },
95
126
  };
96
127
  export const RecordType = {
97
- SerializeToString: (serializedFields) => {
98
- return `[record; fields: {${serializedFields.map((v, k) => `${k}: ${v}`).join(", ")}}]`;
99
- },
128
+ SerializeToString: (serializedFields) => {
129
+ return `[record; fields: {${serializedFields.map((v, k) => `${k}: ${v}`).join(", ")}}]`;
130
+ },
100
131
  };
101
132
  export const LookupType = {
102
- SerializeToString: (name) => {
103
- return `${name}`;
104
- },
133
+ SerializeToString: (name) => {
134
+ return `${name}`;
135
+ },
105
136
  };
106
137
  export const DispatchPrimitiveType = {
107
- SerializeToString: (name) => {
108
- return `[primitive; name: ${String(name)}]`;
109
- },
138
+ SerializeToString: (name) => {
139
+ return `[primitive; name: ${String(name)}]`;
140
+ },
110
141
  };
111
142
  export const SingleSelectionType = {
112
- SerializeToString: (serializedArgs) => {
113
- return `[singleSelection; args: [${serializedArgs.join(", ")}]]`;
114
- },
143
+ SerializeToString: (serializedArgs) => {
144
+ return `[singleSelection; args: [${serializedArgs.join(", ")}]]`;
145
+ },
115
146
  };
116
147
  export const MultiSelectionType = {
117
- SerializeToString: (serializedArgs) => {
118
- return `[multiSelection; args: [${serializedArgs.join(", ")}]]`;
119
- },
148
+ SerializeToString: (serializedArgs) => {
149
+ return `[multiSelection; args: [${serializedArgs.join(", ")}]]`;
150
+ },
120
151
  };
121
152
  export const ListType = {
122
- SerializeToString: (serializedArgs) => {
123
- return `[list; args: [${serializedArgs.join(", ")}]]`;
124
- },
153
+ SerializeToString: (serializedArgs) => {
154
+ return `[list; args: [${serializedArgs.join(", ")}]]`;
155
+ },
125
156
  };
126
157
  export const TupleType = {
127
- SerializeToString: (serializedArgs) => {
128
- return `[tuple; args: [${serializedArgs.join(", ")}]]`;
129
- },
158
+ SerializeToString: (serializedArgs) => {
159
+ return `[tuple; args: [${serializedArgs.join(", ")}]]`;
160
+ },
130
161
  };
131
162
  export const SumType = {
132
- SerializeToString: (serializedArgs) => {
133
- return `[sum; args: [${serializedArgs.join(", ")}]]`;
134
- },
163
+ SerializeToString: (serializedArgs) => {
164
+ return `[sum; args: [${serializedArgs.join(", ")}]]`;
165
+ },
135
166
  };
136
167
  export const SumNType = {
137
- SerializeToString: (serializedArgs, arity) => {
138
- return `[sumN; arity: ${arity}; args: [${serializedArgs.join(", ")}]]`;
139
- },
168
+ SerializeToString: (serializedArgs, arity) => {
169
+ return `[sumN; arity: ${arity}; args: [${serializedArgs.join(", ")}]]`;
170
+ },
140
171
  };
141
172
  export const MapType = {
142
- SerializeToString: (serializedArgs) => {
143
- return `[map; args: [${serializedArgs.join(", ")}]]`;
144
- },
173
+ SerializeToString: (serializedArgs) => {
174
+ return `[map; args: [${serializedArgs.join(", ")}]]`;
175
+ },
145
176
  };
146
177
  export const TableType = {
147
- SerializeToString: (serializedArg) => {
148
- return `[table; arg: ${serializedArg}]`;
149
- },
178
+ SerializeToString: (serializedArg) => {
179
+ return `[table; arg: ${serializedArg}]`;
180
+ },
150
181
  };
151
182
  export const ReadOnlyType = {
152
- SerializeToString: (serializedArg) => {
153
- return `[readOnly; arg: ${serializedArg}]`;
154
- },
183
+ SerializeToString: (serializedArg) => {
184
+ return `[readOnly; arg: ${serializedArg}]`;
185
+ },
155
186
  };
156
187
  export const OneType = {
157
- SerializeToString: (serializedArg) => {
158
- return `[one; arg: ${serializedArg}]`;
159
- },
188
+ SerializeToString: (serializedArg) => {
189
+ return `[one; arg: ${serializedArg}]`;
190
+ },
160
191
  };
161
192
  export const FilterContainsType = {
162
- SerializeToString: (serializedContains) => {
163
- return `[filter; contains: ${serializedContains}]`;
164
- },
193
+ SerializeToString: (serializedContains) => {
194
+ return `[filter; contains: ${serializedContains}]`;
195
+ },
165
196
  };
166
197
  export const FilterEqualsToType = {
167
- SerializeToString: (serializedEqualsTo) => {
168
- return `[filter; equalsTo: ${serializedEqualsTo}]`;
169
- },
198
+ SerializeToString: (serializedEqualsTo) => {
199
+ return `[filter; equalsTo: ${serializedEqualsTo}]`;
200
+ },
170
201
  };
171
202
  export const FilterNotEqualsToType = {
172
- SerializeToString: (serializedNotEqualsTo) => {
173
- return `[filter; != ${serializedNotEqualsTo}]`;
174
- },
203
+ SerializeToString: (serializedNotEqualsTo) => {
204
+ return `[filter; != ${serializedNotEqualsTo}]`;
205
+ },
175
206
  };
176
207
  export const FilterGreaterThanOrEqualsToType = {
177
- SerializeToString: (serializedGreaterThanOrEqualsTo) => {
178
- return `[filter; >= ${serializedGreaterThanOrEqualsTo}]`;
179
- },
208
+ SerializeToString: (serializedGreaterThanOrEqualsTo) => {
209
+ return `[filter; >= ${serializedGreaterThanOrEqualsTo}]`;
210
+ },
180
211
  };
181
212
  export const FilterGreaterThanType = {
182
- SerializeToString: (serializedGreaterThan) => {
183
- return `[filter; > ${serializedGreaterThan}]`;
184
- },
213
+ SerializeToString: (serializedGreaterThan) => {
214
+ return `[filter; > ${serializedGreaterThan}]`;
215
+ },
185
216
  };
186
217
  export const FilterIsNotNullType = {
187
- SerializeToString: () => {
188
- return `[filter; !=null]`;
189
- },
218
+ SerializeToString: () => {
219
+ return `[filter; !=null]`;
220
+ },
190
221
  };
191
222
  export const FilterIsNullType = {
192
- SerializeToString: () => {
193
- return `[filter; =null]`;
194
- },
223
+ SerializeToString: () => {
224
+ return `[filter; =null]`;
225
+ },
195
226
  };
196
227
  export const FilterSmallerThanOrEqualsToType = {
197
- SerializeToString: (serializedSmallerThanOrEqualsTo) => {
198
- return `[filter; <= ${serializedSmallerThanOrEqualsTo}]`;
199
- },
228
+ SerializeToString: (serializedSmallerThanOrEqualsTo) => {
229
+ return `[filter; <= ${serializedSmallerThanOrEqualsTo}]`;
230
+ },
200
231
  };
201
232
  export const FilterSmallerThanType = {
202
- SerializeToString: (serializedSmallerThan) => {
203
- return `[filter; < ${serializedSmallerThan}]`;
204
- },
233
+ SerializeToString: (serializedSmallerThan) => {
234
+ return `[filter; < ${serializedSmallerThan}]`;
235
+ },
205
236
  };
206
237
  export const FilterStartsWithType = {
207
- SerializeToString: (serializedStartsWith) => {
208
- return `[filter; startsWith ${serializedStartsWith}]`;
209
- },
238
+ SerializeToString: (serializedStartsWith) => {
239
+ return `[filter; startsWith ${serializedStartsWith}]`;
240
+ },
210
241
  };
211
242
  export const FilterTypeKinds = [
212
- "contains",
213
- "=",
214
- "!=",
215
- ">=",
216
- ">",
217
- "!=null",
218
- "=null",
219
- "<=",
220
- "<",
221
- "startsWith",
243
+ "contains",
244
+ "=",
245
+ "!=",
246
+ ">=",
247
+ ">",
248
+ "!=null",
249
+ "=null",
250
+ "<=",
251
+ "<",
252
+ "startsWith",
222
253
  ];
223
254
  export const DispatchParsedType = {
224
- Default: {
225
- table: (arg) => ({
226
- kind: "table",
227
- arg,
228
- asString: () => TableType.SerializeToString(arg.asString()),
229
- }),
230
- record: (fields) => ({
231
- kind: "record",
232
- fields,
233
- asString: () => RecordType.SerializeToString(fields.map((v) => v.asString())),
234
- }),
235
- primitive: (name) => ({
236
- kind: "primitive",
237
- name,
238
- asString: () => DispatchPrimitiveType.SerializeToString(name),
239
- }),
240
- singleSelection: (args) => ({
241
- kind: "singleSelection",
242
- args,
243
- asString: () => SingleSelectionType.SerializeToString(args.map((v) => v.asString())),
244
- }),
245
- multiSelection: (args) => ({
246
- kind: "multiSelection",
247
- args,
248
- asString: () => MultiSelectionType.SerializeToString(args.map((v) => v.asString())),
249
- }),
250
- list: (args) => ({
251
- kind: "list",
252
- args,
253
- asString: () => ListType.SerializeToString(args.map((v) => v.asString())),
254
- }),
255
- tuple: (args) => ({
256
- kind: "tuple",
257
- args,
258
- asString: () => TupleType.SerializeToString(args.map((v) => v.asString())),
259
- }),
260
- sum: (args) => ({
261
- kind: "sum",
262
- args,
263
- asString: () => SumType.SerializeToString(args.map((v) => v.asString())),
264
- }),
265
- sumN: (args) => ({
266
- kind: "sumN",
267
- args,
268
- asString: () => SumNType.SerializeToString(args.map((v) => v.asString()), args.length),
269
- }),
270
- map: (args) => ({
271
- kind: "map",
272
- args,
273
- asString: () => MapType.SerializeToString(args.map((v) => v.asString())),
274
- }),
275
- union: (args) => ({
276
- kind: "union",
277
- args,
278
- asString: () => UnionType.SerializeToString(args.map((v) => v.asString())),
279
- }),
280
- readOnly: (arg) => ({
281
- kind: "readOnly",
282
- arg,
283
- asString: () => ReadOnlyType.SerializeToString(arg.asString()),
284
- }),
285
- lookup: (name) => ({
286
- kind: "lookup",
287
- name,
288
- asString: () => LookupType.SerializeToString(name),
289
- }),
290
- one: (arg) => ({
291
- kind: "one",
292
- arg,
293
- asString: () => OneType.SerializeToString(arg.asString()),
294
- }),
295
- filterContains: (contains) => ({
296
- kind: "contains",
297
- contains,
298
- asString: () => FilterContainsType.SerializeToString(contains.asString()),
299
- }),
300
- filterEqualsTo: (equalsTo) => ({
301
- kind: "=",
302
- equalsTo,
303
- asString: () => FilterEqualsToType.SerializeToString(equalsTo.asString()),
304
- }),
305
- filterNotEqualsTo: (notEqualsTo) => ({
306
- kind: "!=",
307
- notEqualsTo,
308
- asString: () => FilterNotEqualsToType.SerializeToString(notEqualsTo.asString()),
309
- }),
310
- filterGreaterThanOrEqualsTo: (greaterThanOrEqualsTo) => ({
311
- kind: ">=",
312
- greaterThanOrEqualsTo,
313
- asString: () => FilterGreaterThanOrEqualsToType.SerializeToString(greaterThanOrEqualsTo.asString()),
314
- }),
315
- filterGreaterThan: (greaterThan) => ({
316
- kind: ">",
317
- greaterThan,
318
- asString: () => FilterGreaterThanType.SerializeToString(greaterThan.asString()),
319
- }),
320
- filterIsNotNull: () => ({
321
- kind: "!=null",
322
- asString: () => FilterIsNotNullType.SerializeToString(),
323
- }),
324
- filterIsNull: () => ({
325
- kind: "=null",
326
- asString: () => FilterIsNullType.SerializeToString(),
327
- }),
328
- filterSmallerThanOrEqualsTo: (smallerThanOrEqualsTo) => ({
329
- kind: "<=",
330
- smallerThanOrEqualsTo,
331
- asString: () => FilterSmallerThanOrEqualsToType.SerializeToString(smallerThanOrEqualsTo.asString()),
332
- }),
333
- filterSmallerThan: (smallerThan) => ({
334
- kind: "<",
335
- smallerThan,
336
- asString: () => FilterSmallerThanType.SerializeToString(smallerThan.asString()),
337
- }),
338
- filterStartsWith: (startsWith) => ({
339
- kind: "startsWith",
340
- startsWith,
341
- asString: () => FilterStartsWithType.SerializeToString(startsWith.asString()),
342
- }),
343
- },
344
- Operations: {
345
- // We don't use this at the moment, if we need it, then we can fix
346
- // Equals: <T>(
347
- // fst: DispatchParsedType<T>,
348
- // snd: DispatchParsedType<T>,
349
- // ): boolean =>
350
- // fst.kind == "record" && snd.kind == "record"
351
- // ? fst.name == snd.name
352
- // : fst.kind == "table" && snd.kind == "table"
353
- // ? fst.name == snd.name
354
- // : fst.kind == "one" && snd.kind == "one"
355
- // ? fst.name == snd.name
356
- // : fst.kind == "lookup" && snd.kind == "lookup"
357
- // ? fst.name == snd.name
358
- // : fst.kind == "primitive" && snd.kind == "primitive"
359
- // ? fst.name == snd.name
360
- // : fst.kind == "list" && snd.kind == "list"
361
- // ? fst.name == snd.name
362
- // : fst.kind == "singleSelection" &&
363
- // snd.kind == "singleSelection"
364
- // ? fst.name == snd.name
365
- // : fst.kind == "multiSelection" &&
366
- // snd.kind == "multiSelection"
367
- // ? fst.name == snd.name
368
- // : fst.kind == "map" && snd.kind == "map"
369
- // ? fst.name == snd.name
370
- // : fst.kind == "sum" && snd.kind == "sum"
371
- // ? fst.name == snd.name
372
- // : fst.kind == "tuple" && snd.kind == "tuple"
373
- // ? fst.name == snd.name &&
374
- // fst.args.length == snd.args.length &&
375
- // fst.args.every((v, i) =>
376
- // DispatchParsedType.Operations.Equals(
377
- // v,
378
- // snd.args[i],
379
- // ),
380
- // )
381
- // : fst.kind == "union" && snd.kind == "union"
382
- // ? fst.args.size == snd.args.size &&
383
- // fst.args.every(
384
- // (v, i) => v.name == snd.args.get(i)!.name,
385
- // )
386
- // : false,
387
- ParseRawKeyOf: (rawType, typeNames, serializedTypes, alreadyParsedTypes) => (alreadyParsedTypes.has(rawType.args[0])
388
- ? alreadyParsedTypes
389
- .get(rawType.args[0])
390
- .Then((parsedType) => ValueOrErrors.Default.return([parsedType, alreadyParsedTypes]))
391
- : DispatchParsedType.Operations.ParseRawType(rawType.args[0], serializedTypes[rawType.args[0]], typeNames, serializedTypes, alreadyParsedTypes))
392
- .Then((parsingResult) => parsingResult[0].kind != "record"
393
- ? ValueOrErrors.Default.throwOne(`Error: ${JSON.stringify(parsingResult[0])} is not a record type`)
255
+ Default: {
256
+ table: (arg) => ({
257
+ kind: "table",
258
+ arg,
259
+ asString: () => TableType.SerializeToString(arg.asString()),
260
+ }),
261
+ record: (fields) => ({
262
+ kind: "record",
263
+ fields,
264
+ asString: () =>
265
+ RecordType.SerializeToString(fields.map((v) => v.asString())),
266
+ }),
267
+ primitive: (name) => ({
268
+ kind: "primitive",
269
+ name,
270
+ asString: () => DispatchPrimitiveType.SerializeToString(name),
271
+ }),
272
+ singleSelection: (args) => ({
273
+ kind: "singleSelection",
274
+ args,
275
+ asString: () =>
276
+ SingleSelectionType.SerializeToString(args.map((v) => v.asString())),
277
+ }),
278
+ multiSelection: (args) => ({
279
+ kind: "multiSelection",
280
+ args,
281
+ asString: () =>
282
+ MultiSelectionType.SerializeToString(args.map((v) => v.asString())),
283
+ }),
284
+ list: (args) => ({
285
+ kind: "list",
286
+ args,
287
+ asString: () => ListType.SerializeToString(args.map((v) => v.asString())),
288
+ }),
289
+ tuple: (args) => ({
290
+ kind: "tuple",
291
+ args,
292
+ asString: () =>
293
+ TupleType.SerializeToString(args.map((v) => v.asString())),
294
+ }),
295
+ sum: (args) => ({
296
+ kind: "sum",
297
+ args,
298
+ asString: () => SumType.SerializeToString(args.map((v) => v.asString())),
299
+ }),
300
+ sumN: (args) => ({
301
+ kind: "sumN",
302
+ args,
303
+ asString: () =>
304
+ SumNType.SerializeToString(
305
+ args.map((v) => v.asString()),
306
+ args.length,
307
+ ),
308
+ }),
309
+ map: (args) => ({
310
+ kind: "map",
311
+ args,
312
+ asString: () => MapType.SerializeToString(args.map((v) => v.asString())),
313
+ }),
314
+ union: (args) => ({
315
+ kind: "union",
316
+ args,
317
+ asString: () =>
318
+ UnionType.SerializeToString(args.map((v) => v.asString())),
319
+ }),
320
+ readOnly: (arg) => ({
321
+ kind: "readOnly",
322
+ arg,
323
+ asString: () => ReadOnlyType.SerializeToString(arg.asString()),
324
+ }),
325
+ lookup: (name) => ({
326
+ kind: "lookup",
327
+ name,
328
+ asString: () => LookupType.SerializeToString(name),
329
+ }),
330
+ one: (arg) => ({
331
+ kind: "one",
332
+ arg,
333
+ asString: () => OneType.SerializeToString(arg.asString()),
334
+ }),
335
+ filterContains: (contains) => ({
336
+ kind: "contains",
337
+ contains,
338
+ asString: () => FilterContainsType.SerializeToString(contains.asString()),
339
+ }),
340
+ filterEqualsTo: (equalsTo) => ({
341
+ kind: "=",
342
+ equalsTo,
343
+ asString: () => FilterEqualsToType.SerializeToString(equalsTo.asString()),
344
+ }),
345
+ filterNotEqualsTo: (notEqualsTo) => ({
346
+ kind: "!=",
347
+ notEqualsTo,
348
+ asString: () =>
349
+ FilterNotEqualsToType.SerializeToString(notEqualsTo.asString()),
350
+ }),
351
+ filterGreaterThanOrEqualsTo: (greaterThanOrEqualsTo) => ({
352
+ kind: ">=",
353
+ greaterThanOrEqualsTo,
354
+ asString: () =>
355
+ FilterGreaterThanOrEqualsToType.SerializeToString(
356
+ greaterThanOrEqualsTo.asString(),
357
+ ),
358
+ }),
359
+ filterGreaterThan: (greaterThan) => ({
360
+ kind: ">",
361
+ greaterThan,
362
+ asString: () =>
363
+ FilterGreaterThanType.SerializeToString(greaterThan.asString()),
364
+ }),
365
+ filterIsNotNull: () => ({
366
+ kind: "!=null",
367
+ asString: () => FilterIsNotNullType.SerializeToString(),
368
+ }),
369
+ filterIsNull: () => ({
370
+ kind: "=null",
371
+ asString: () => FilterIsNullType.SerializeToString(),
372
+ }),
373
+ filterSmallerThanOrEqualsTo: (smallerThanOrEqualsTo) => ({
374
+ kind: "<=",
375
+ smallerThanOrEqualsTo,
376
+ asString: () =>
377
+ FilterSmallerThanOrEqualsToType.SerializeToString(
378
+ smallerThanOrEqualsTo.asString(),
379
+ ),
380
+ }),
381
+ filterSmallerThan: (smallerThan) => ({
382
+ kind: "<",
383
+ smallerThan,
384
+ asString: () =>
385
+ FilterSmallerThanType.SerializeToString(smallerThan.asString()),
386
+ }),
387
+ filterStartsWith: (startsWith) => ({
388
+ kind: "startsWith",
389
+ startsWith,
390
+ asString: () =>
391
+ FilterStartsWithType.SerializeToString(startsWith.asString()),
392
+ }),
393
+ },
394
+ Operations: {
395
+ // We don't use this at the moment, if we need it, then we can fix
396
+ // Equals: <T>(
397
+ // fst: DispatchParsedType<T>,
398
+ // snd: DispatchParsedType<T>,
399
+ // ): boolean =>
400
+ // fst.kind == "record" && snd.kind == "record"
401
+ // ? fst.name == snd.name
402
+ // : fst.kind == "table" && snd.kind == "table"
403
+ // ? fst.name == snd.name
404
+ // : fst.kind == "one" && snd.kind == "one"
405
+ // ? fst.name == snd.name
406
+ // : fst.kind == "lookup" && snd.kind == "lookup"
407
+ // ? fst.name == snd.name
408
+ // : fst.kind == "primitive" && snd.kind == "primitive"
409
+ // ? fst.name == snd.name
410
+ // : fst.kind == "list" && snd.kind == "list"
411
+ // ? fst.name == snd.name
412
+ // : fst.kind == "singleSelection" &&
413
+ // snd.kind == "singleSelection"
414
+ // ? fst.name == snd.name
415
+ // : fst.kind == "multiSelection" &&
416
+ // snd.kind == "multiSelection"
417
+ // ? fst.name == snd.name
418
+ // : fst.kind == "map" && snd.kind == "map"
419
+ // ? fst.name == snd.name
420
+ // : fst.kind == "sum" && snd.kind == "sum"
421
+ // ? fst.name == snd.name
422
+ // : fst.kind == "tuple" && snd.kind == "tuple"
423
+ // ? fst.name == snd.name &&
424
+ // fst.args.length == snd.args.length &&
425
+ // fst.args.every((v, i) =>
426
+ // DispatchParsedType.Operations.Equals(
427
+ // v,
428
+ // snd.args[i],
429
+ // ),
430
+ // )
431
+ // : fst.kind == "union" && snd.kind == "union"
432
+ // ? fst.args.size == snd.args.size &&
433
+ // fst.args.every(
434
+ // (v, i) => v.name == snd.args.get(i)!.name,
435
+ // )
436
+ // : false,
437
+ ParseRawKeyOf: (rawType, typeNames, serializedTypes, alreadyParsedTypes) =>
438
+ (alreadyParsedTypes.has(rawType.args[0])
439
+ ? alreadyParsedTypes
440
+ .get(rawType.args[0])
441
+ .Then((parsedType) =>
442
+ ValueOrErrors.Default.return([parsedType, alreadyParsedTypes]),
443
+ )
444
+ : DispatchParsedType.Operations.ParseRawType(
445
+ rawType.args[0],
446
+ serializedTypes[rawType.args[0]],
447
+ typeNames,
448
+ serializedTypes,
449
+ alreadyParsedTypes,
450
+ )
451
+ )
452
+ .Then((parsingResult) =>
453
+ parsingResult[0].kind != "record"
454
+ ? ValueOrErrors.Default.throwOne(
455
+ `Error: ${JSON.stringify(parsingResult[0])} is not a record type`,
456
+ )
394
457
  : ValueOrErrors.Default.return([
395
- DispatchParsedType.Default.union(Map(parsingResult[0].fields
396
- .keySeq()
397
- .filter((key) => rawType.args[1] == undefined ||
398
- !rawType.args[1].includes(key))
399
- .toArray()
400
- .map((key) => [
401
- key,
402
- DispatchParsedType.Default.record(Map()),
403
- ]))),
458
+ DispatchParsedType.Default.union(
459
+ Map(
460
+ parsingResult[0].fields
461
+ .keySeq()
462
+ .filter(
463
+ (key) =>
464
+ rawType.args[1] == undefined ||
465
+ !rawType.args[1].includes(key),
466
+ )
467
+ .toArray()
468
+ .map((key) => [
469
+ key,
470
+ DispatchParsedType.Default.record(Map()),
471
+ ]),
472
+ ),
473
+ ),
404
474
  parsingResult[1],
405
- ]))
406
- .MapErrors((errors) => errors.map((error) => `${error}\n...When parsing keyOf type`)),
407
- SerializeToString: (type) => {
408
- switch (type.kind) {
409
- case "primitive":
410
- return DispatchPrimitiveType.SerializeToString(type.name);
411
- case "record":
412
- return RecordType.SerializeToString(type.fields.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
413
- case "table":
414
- return TableType.SerializeToString(DispatchParsedType.Operations.SerializeToString(type.arg));
415
- case "one":
416
- return OneType.SerializeToString(DispatchParsedType.Operations.SerializeToString(type.arg));
417
- case "singleSelection":
418
- return SingleSelectionType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
419
- case "multiSelection":
420
- return MultiSelectionType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
421
- case "list":
422
- return ListType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
423
- case "tuple":
424
- return TupleType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
425
- case "sum":
426
- return SumType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
427
- case "sumN":
428
- return SumNType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)), type.args.length);
429
- case "map":
430
- return MapType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
431
- case "union":
432
- return UnionType.SerializeToString(type.args.map((v) => DispatchParsedType.Operations.SerializeToString(v)));
433
- case "lookup":
434
- return LookupType.SerializeToString(type.name);
435
- case "contains":
436
- return FilterContainsType.SerializeToString(type.contains.asString());
437
- case "=":
438
- return FilterEqualsToType.SerializeToString(type.equalsTo.asString());
439
- case "!=":
440
- return FilterNotEqualsToType.SerializeToString(type.notEqualsTo.asString());
441
- case ">=":
442
- return FilterGreaterThanOrEqualsToType.SerializeToString(type.greaterThanOrEqualsTo.asString());
443
- case ">":
444
- return FilterGreaterThanType.SerializeToString(type.greaterThan.asString());
445
- case "!=null":
446
- return FilterIsNotNullType.SerializeToString();
447
- case "=null":
448
- return FilterIsNullType.SerializeToString();
449
- case "<=":
450
- return FilterSmallerThanOrEqualsToType.SerializeToString(type.smallerThanOrEqualsTo.asString());
451
- case "<":
452
- return FilterSmallerThanType.SerializeToString(type.smallerThan.asString());
453
- case "startsWith":
454
- return FilterStartsWithType.SerializeToString(type.startsWith.asString());
455
- default:
456
- throw new Error(`Unknown type: ${JSON.stringify(type)}`);
457
- }
458
- },
459
- GetExtendedRecordTypes: (extendedTypeName, alreadyParsedTypes) => {
460
- return MapRepo.Operations.tryFindWithError(extendedTypeName, alreadyParsedTypes, () => `cannot find extended type ${extendedTypeName} in types`).Then((extendedType) => extendedType.Then((extendedType) => extendedType.kind != "record"
461
- ? ValueOrErrors.Default.throwOne(`Error: ${JSON.stringify(extendedType)} is not a record type`)
462
- : ValueOrErrors.Default.return([extendedTypeName, extendedType])));
463
- },
464
- ParseRecord: (typeName, rawType, typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives) => !SerializedType.isRecord(rawType)
465
- ? ValueOrErrors.Default.throwOne(`Error: ${JSON.stringify(rawType)} is not a valid record`)
466
- : (SerializedType.isExtendedType(rawType)
467
- ? rawType.extends.reduce((acc, extendedTypeName) => acc.Then(([resultMap, accumulatedAlreadyParsedTypes]) => accumulatedAlreadyParsedTypes.has(extendedTypeName)
468
- ? DispatchParsedType.Operations.GetExtendedRecordTypes(extendedTypeName, accumulatedAlreadyParsedTypes).Then(([extendedTypeName, recordType]) => ValueOrErrors.Default.return([
469
- resultMap.set(extendedTypeName, recordType),
470
- accumulatedAlreadyParsedTypes,
471
- ]))
472
- : serializedTypes[extendedTypeName] == undefined
473
- ? ValueOrErrors.Default.throwOne(`Error: cannot find extended type ${extendedTypeName} in types`)
474
- : DispatchParsedType.Operations.ParseRawType(extendedTypeName, serializedTypes[extendedTypeName], typeNames, serializedTypes, accumulatedAlreadyParsedTypes, injectedPrimitives).Then((parsedType) => parsedType[0].kind == "record"
475
- ? ValueOrErrors.Default.return([
476
- resultMap.set(extendedTypeName, parsedType[0]),
477
- parsedType[1],
478
- ])
479
- : ValueOrErrors.Default.throwOne(`Error: ${JSON.stringify(parsedType[0])} is not a record type`))), ValueOrErrors.Default.return([Map(), alreadyParsedTypes]))
480
- .MapErrors((errors) => errors.map((error) => `${error}\n...When parsing extended types`))
481
- .Then(([parsedExtendedRecordTypesMap, accumulatedAlreadyParsedTypes]) => ValueOrErrors.Default.return([parsedExtendedRecordTypesMap, accumulatedAlreadyParsedTypes]))
482
- : ValueOrErrors.Default.return([Map(), alreadyParsedTypes])).Then(([parsedExtendedRecordTypesMap, accumulatedAlreadyParsedTypes]) => Object.entries(rawType.fields).reduce((acc, [fieldName, fieldType]) => acc.Then(([parsedFieldsMap, accumulatedAlreadyParsedTypesForFields]) => DispatchParsedType.Operations.ParseRawType(fieldName, fieldType, typeNames, serializedTypes, accumulatedAlreadyParsedTypesForFields, injectedPrimitives).Then((parsedField) => ValueOrErrors.Default.return([
483
- parsedFieldsMap.set(fieldName, parsedField[0]),
484
- parsedField[1],
485
- ]))), ValueOrErrors.Default.return([
486
- Map(),
475
+ ]),
476
+ )
477
+ .MapErrors((errors) =>
478
+ errors.map((error) => `${error}\n...When parsing keyOf type`),
479
+ ),
480
+ SerializeToString: (type) => {
481
+ switch (type.kind) {
482
+ case "primitive":
483
+ return DispatchPrimitiveType.SerializeToString(type.name);
484
+ case "record":
485
+ return RecordType.SerializeToString(
486
+ type.fields.map((v) =>
487
+ DispatchParsedType.Operations.SerializeToString(v),
488
+ ),
489
+ );
490
+ case "table":
491
+ return TableType.SerializeToString(
492
+ DispatchParsedType.Operations.SerializeToString(type.arg),
493
+ );
494
+ case "one":
495
+ return OneType.SerializeToString(
496
+ DispatchParsedType.Operations.SerializeToString(type.arg),
497
+ );
498
+ case "singleSelection":
499
+ return SingleSelectionType.SerializeToString(
500
+ type.args.map((v) =>
501
+ DispatchParsedType.Operations.SerializeToString(v),
502
+ ),
503
+ );
504
+ case "multiSelection":
505
+ return MultiSelectionType.SerializeToString(
506
+ type.args.map((v) =>
507
+ DispatchParsedType.Operations.SerializeToString(v),
508
+ ),
509
+ );
510
+ case "list":
511
+ return ListType.SerializeToString(
512
+ type.args.map((v) =>
513
+ DispatchParsedType.Operations.SerializeToString(v),
514
+ ),
515
+ );
516
+ case "tuple":
517
+ return TupleType.SerializeToString(
518
+ type.args.map((v) =>
519
+ DispatchParsedType.Operations.SerializeToString(v),
520
+ ),
521
+ );
522
+ case "sum":
523
+ return SumType.SerializeToString(
524
+ type.args.map((v) =>
525
+ DispatchParsedType.Operations.SerializeToString(v),
526
+ ),
527
+ );
528
+ case "sumN":
529
+ return SumNType.SerializeToString(
530
+ type.args.map((v) =>
531
+ DispatchParsedType.Operations.SerializeToString(v),
532
+ ),
533
+ type.args.length,
534
+ );
535
+ case "map":
536
+ return MapType.SerializeToString(
537
+ type.args.map((v) =>
538
+ DispatchParsedType.Operations.SerializeToString(v),
539
+ ),
540
+ );
541
+ case "union":
542
+ return UnionType.SerializeToString(
543
+ type.args.map((v) =>
544
+ DispatchParsedType.Operations.SerializeToString(v),
545
+ ),
546
+ );
547
+ case "lookup":
548
+ return LookupType.SerializeToString(type.name);
549
+ case "contains":
550
+ return FilterContainsType.SerializeToString(type.contains.asString());
551
+ case "=":
552
+ return FilterEqualsToType.SerializeToString(type.equalsTo.asString());
553
+ case "!=":
554
+ return FilterNotEqualsToType.SerializeToString(
555
+ type.notEqualsTo.asString(),
556
+ );
557
+ case ">=":
558
+ return FilterGreaterThanOrEqualsToType.SerializeToString(
559
+ type.greaterThanOrEqualsTo.asString(),
560
+ );
561
+ case ">":
562
+ return FilterGreaterThanType.SerializeToString(
563
+ type.greaterThan.asString(),
564
+ );
565
+ case "!=null":
566
+ return FilterIsNotNullType.SerializeToString();
567
+ case "=null":
568
+ return FilterIsNullType.SerializeToString();
569
+ case "<=":
570
+ return FilterSmallerThanOrEqualsToType.SerializeToString(
571
+ type.smallerThanOrEqualsTo.asString(),
572
+ );
573
+ case "<":
574
+ return FilterSmallerThanType.SerializeToString(
575
+ type.smallerThan.asString(),
576
+ );
577
+ case "startsWith":
578
+ return FilterStartsWithType.SerializeToString(
579
+ type.startsWith.asString(),
580
+ );
581
+ default:
582
+ throw new Error(`Unknown type: ${JSON.stringify(type)}`);
583
+ }
584
+ },
585
+ GetExtendedRecordTypes: (extendedTypeName, alreadyParsedTypes) => {
586
+ return MapRepo.Operations.tryFindWithError(
587
+ extendedTypeName,
588
+ alreadyParsedTypes,
589
+ () => `cannot find extended type ${extendedTypeName} in types`,
590
+ ).Then((extendedType) =>
591
+ extendedType.Then((extendedType) =>
592
+ extendedType.kind != "record"
593
+ ? ValueOrErrors.Default.throwOne(
594
+ `Error: ${JSON.stringify(extendedType)} is not a record type`,
595
+ )
596
+ : ValueOrErrors.Default.return([extendedTypeName, extendedType]),
597
+ ),
598
+ );
599
+ },
600
+ ParseRecord: (
601
+ typeName,
602
+ rawType,
603
+ typeNames,
604
+ serializedTypes,
605
+ alreadyParsedTypes,
606
+ injectedPrimitives,
607
+ ) =>
608
+ !SerializedType.isRecord(rawType)
609
+ ? ValueOrErrors.Default.throwOne(
610
+ `Error: ${JSON.stringify(rawType)} is not a valid record`,
611
+ )
612
+ : (SerializedType.isExtendedType(rawType)
613
+ ? rawType.extends
614
+ .reduce(
615
+ (acc, extendedTypeName) =>
616
+ acc.Then(([resultMap, accumulatedAlreadyParsedTypes]) =>
617
+ accumulatedAlreadyParsedTypes.has(extendedTypeName)
618
+ ? DispatchParsedType.Operations.GetExtendedRecordTypes(
619
+ extendedTypeName,
620
+ accumulatedAlreadyParsedTypes,
621
+ ).Then(([extendedTypeName, recordType]) =>
622
+ ValueOrErrors.Default.return([
623
+ resultMap.set(extendedTypeName, recordType),
624
+ accumulatedAlreadyParsedTypes,
625
+ ]),
626
+ )
627
+ : serializedTypes[extendedTypeName] == undefined
628
+ ? ValueOrErrors.Default.throwOne(
629
+ `Error: cannot find extended type ${extendedTypeName} in types`,
630
+ )
631
+ : DispatchParsedType.Operations.ParseRawType(
632
+ extendedTypeName,
633
+ serializedTypes[extendedTypeName],
634
+ typeNames,
635
+ serializedTypes,
636
+ accumulatedAlreadyParsedTypes,
637
+ injectedPrimitives,
638
+ ).Then((parsedType) =>
639
+ parsedType[0].kind == "record"
640
+ ? ValueOrErrors.Default.return([
641
+ resultMap.set(
642
+ extendedTypeName,
643
+ parsedType[0],
644
+ ),
645
+ parsedType[1],
646
+ ])
647
+ : ValueOrErrors.Default.throwOne(
648
+ `Error: ${JSON.stringify(parsedType[0])} is not a record type`,
649
+ ),
650
+ ),
651
+ ),
652
+ ValueOrErrors.Default.return([Map(), alreadyParsedTypes]),
653
+ )
654
+ .MapErrors((errors) =>
655
+ errors.map(
656
+ (error) => `${error}\n...When parsing extended types`,
657
+ ),
658
+ )
659
+ .Then(
660
+ ([
661
+ parsedExtendedRecordTypesMap,
662
+ accumulatedAlreadyParsedTypes,
663
+ ]) =>
664
+ ValueOrErrors.Default.return([
665
+ parsedExtendedRecordTypesMap,
666
+ accumulatedAlreadyParsedTypes,
667
+ ]),
668
+ )
669
+ : ValueOrErrors.Default.return([Map(), alreadyParsedTypes])
670
+ ).Then(
671
+ ([parsedExtendedRecordTypesMap, accumulatedAlreadyParsedTypes]) =>
672
+ Object.entries(rawType.fields)
673
+ .reduce(
674
+ (acc, [fieldName, fieldType]) =>
675
+ acc.Then(
676
+ ([
677
+ parsedFieldsMap,
678
+ accumulatedAlreadyParsedTypesForFields,
679
+ ]) =>
680
+ DispatchParsedType.Operations.ParseRawType(
681
+ fieldName,
682
+ fieldType,
683
+ typeNames,
684
+ serializedTypes,
685
+ accumulatedAlreadyParsedTypesForFields,
686
+ injectedPrimitives,
687
+ ).Then((parsedField) =>
688
+ ValueOrErrors.Default.return([
689
+ parsedFieldsMap.set(fieldName, parsedField[0]),
690
+ parsedField[1],
691
+ ]),
692
+ ),
693
+ ),
694
+ ValueOrErrors.Default.return([
695
+ Map(),
696
+ accumulatedAlreadyParsedTypes,
697
+ ]),
698
+ )
699
+ .Then(
700
+ ([parsedFieldsMap, accumulatedAlreadyParsedTypesForFields]) =>
701
+ ValueOrErrors.Default.return(
702
+ DispatchParsedType.Default.record(
703
+ parsedFieldsMap.merge(
704
+ parsedExtendedRecordTypesMap.reduce(
705
+ (acc, type) => acc.merge(type.fields),
706
+ Map(),
707
+ ),
708
+ ),
709
+ ),
710
+ ).Then((parsedRecord) =>
711
+ ValueOrErrors.Default.return([
712
+ parsedRecord,
713
+ parsedExtendedRecordTypesMap.reduce(
714
+ (acc, type, name) =>
715
+ acc.set(name, ValueOrErrors.Default.return(type)),
716
+ accumulatedAlreadyParsedTypesForFields,
717
+ ),
718
+ ]),
719
+ ),
720
+ ),
721
+ ),
722
+ ParseRawFilterType: (rawFilterType, arg) => {
723
+ if (typeof rawFilterType != "string") {
724
+ return ValueOrErrors.Default.throwOne(`rawType is not a string`);
725
+ }
726
+ switch (rawFilterType) {
727
+ case "contains":
728
+ return ValueOrErrors.Default.return(
729
+ DispatchParsedType.Default.filterContains(arg),
730
+ );
731
+ case "equalsTo":
732
+ return ValueOrErrors.Default.return(
733
+ DispatchParsedType.Default.filterEqualsTo(arg),
734
+ );
735
+ case "startswith":
736
+ return ValueOrErrors.Default.return(
737
+ DispatchParsedType.Default.filterStartsWith(arg),
738
+ );
739
+ case "!=":
740
+ return ValueOrErrors.Default.return(
741
+ DispatchParsedType.Default.filterNotEqualsTo(arg),
742
+ );
743
+ case "=":
744
+ return ValueOrErrors.Default.return(
745
+ DispatchParsedType.Default.filterEqualsTo(arg),
746
+ );
747
+ case ">=":
748
+ return ValueOrErrors.Default.return(
749
+ DispatchParsedType.Default.filterGreaterThanOrEqualsTo(arg),
750
+ );
751
+ case ">":
752
+ return ValueOrErrors.Default.return(
753
+ DispatchParsedType.Default.filterGreaterThan(arg),
754
+ );
755
+ case "<=":
756
+ return ValueOrErrors.Default.return(
757
+ DispatchParsedType.Default.filterSmallerThanOrEqualsTo(arg),
758
+ );
759
+ case "<":
760
+ return ValueOrErrors.Default.return(
761
+ DispatchParsedType.Default.filterSmallerThan(arg),
762
+ );
763
+ case "=null":
764
+ return ValueOrErrors.Default.return(
765
+ DispatchParsedType.Default.filterIsNull(),
766
+ );
767
+ case "!=null":
768
+ return ValueOrErrors.Default.return(
769
+ DispatchParsedType.Default.filterIsNotNull(),
770
+ );
771
+ default:
772
+ return ValueOrErrors.Default.throwOne(
773
+ `Unknown filter type: ${rawFilterType}`,
774
+ );
775
+ }
776
+ },
777
+ ParseRawType: (
778
+ typeName,
779
+ rawType,
780
+ typeNames,
781
+ serializedTypes,
782
+ alreadyParsedTypes,
783
+ injectedPrimitives,
784
+ ) => {
785
+ if (
786
+ alreadyParsedTypes.has(typeName) &&
787
+ !SerializedType.isLookup(rawType, typeNames)
788
+ )
789
+ return alreadyParsedTypes
790
+ .get(typeName)
791
+ .Then((parsedType) =>
792
+ ValueOrErrors.Default.return([parsedType, alreadyParsedTypes]),
793
+ );
794
+ const result = (() => {
795
+ if (SerializedType.isPrimitive(rawType, injectedPrimitives))
796
+ return ValueOrErrors.Default.return([
797
+ DispatchParsedType.Default.primitive(
798
+ typeof rawType === "string" && STRINGY_TYPES.includes(rawType)
799
+ ? "string"
800
+ : rawType,
801
+ ),
802
+ alreadyParsedTypes,
803
+ ]);
804
+ if (SerializedType.isSingleSelection(rawType))
805
+ return DispatchParsedType.Operations.ParseRawType(
806
+ `SingleSelection:Element`,
807
+ rawType.args[0],
808
+ typeNames,
809
+ serializedTypes,
810
+ alreadyParsedTypes,
811
+ injectedPrimitives,
812
+ ).Then(([parsedArg, newAlreadyParsedTypes]) =>
813
+ ValueOrErrors.Default.return([
814
+ DispatchParsedType.Default.singleSelection([parsedArg]),
815
+ newAlreadyParsedTypes,
816
+ ]),
817
+ );
818
+ if (SerializedType.isMultiSelection(rawType))
819
+ return DispatchParsedType.Operations.ParseRawType(
820
+ `MultiSelection:Element`,
821
+ rawType.args[0],
822
+ typeNames,
823
+ serializedTypes,
824
+ alreadyParsedTypes,
825
+ injectedPrimitives,
826
+ ).Then(([parsedArg, newAlreadyParsedTypes]) =>
827
+ ValueOrErrors.Default.return([
828
+ DispatchParsedType.Default.multiSelection([parsedArg]),
829
+ newAlreadyParsedTypes,
830
+ ]),
831
+ );
832
+ if (SerializedType.isList(rawType))
833
+ return DispatchParsedType.Operations.ParseRawType(
834
+ `List:Element`,
835
+ rawType.args[0],
836
+ typeNames,
837
+ serializedTypes,
838
+ alreadyParsedTypes,
839
+ injectedPrimitives,
840
+ ).Then(([parsedArg, newAlreadyParsedTypes]) =>
841
+ ValueOrErrors.Default.return([
842
+ DispatchParsedType.Default.list([parsedArg]),
843
+ newAlreadyParsedTypes,
844
+ ]),
845
+ );
846
+ if (SerializedType.isTuple(rawType))
847
+ return rawType.args
848
+ .reduce(
849
+ (acc, arg, index) =>
850
+ acc.Then(([parsedArgsArray, accumulatedAlreadyParsedTypes]) =>
851
+ DispatchParsedType.Operations.ParseRawType(
852
+ `Tuple:Item ${index + 1}`,
853
+ arg,
854
+ typeNames,
855
+ serializedTypes,
856
+ accumulatedAlreadyParsedTypes,
857
+ injectedPrimitives,
858
+ ).Then((parsedArg) =>
859
+ ValueOrErrors.Default.return([
860
+ [...parsedArgsArray, parsedArg[0]],
861
+ parsedArg[1],
862
+ ]),
863
+ ),
864
+ ),
865
+ ValueOrErrors.Default.return([[], alreadyParsedTypes]),
866
+ )
867
+ .Then(([parsedArgsArray, accumulatedAlreadyParsedTypes]) =>
868
+ ValueOrErrors.Default.return([
869
+ DispatchParsedType.Default.tuple(parsedArgsArray),
487
870
  accumulatedAlreadyParsedTypes,
488
- ]))
489
- .Then(([parsedFieldsMap, accumulatedAlreadyParsedTypesForFields]) => ValueOrErrors.Default.return(DispatchParsedType.Default.record(parsedFieldsMap.merge(parsedExtendedRecordTypesMap.reduce((acc, type) => acc.merge(type.fields), Map())))).Then((parsedRecord) => ValueOrErrors.Default.return([
490
- parsedRecord,
491
- parsedExtendedRecordTypesMap.reduce((acc, type, name) => acc.set(name, ValueOrErrors.Default.return(type)), accumulatedAlreadyParsedTypesForFields),
492
- ])))),
493
- ParseRawFilterType: (rawFilterType, arg) => {
494
- if (typeof rawFilterType != "string") {
495
- return ValueOrErrors.Default.throwOne(`rawType is not a string`);
496
- }
497
- switch (rawFilterType) {
498
- case "contains":
499
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterContains(arg));
500
- case "equalsTo":
501
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterEqualsTo(arg));
502
- case "startswith":
503
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterStartsWith(arg));
504
- case "!=":
505
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterNotEqualsTo(arg));
506
- case "=":
507
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterEqualsTo(arg));
508
- case ">=":
509
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterGreaterThanOrEqualsTo(arg));
510
- case ">":
511
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterGreaterThan(arg));
512
- case "<=":
513
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterSmallerThanOrEqualsTo(arg));
514
- case "<":
515
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterSmallerThan(arg));
516
- case "=null":
517
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterIsNull());
518
- case "!=null":
519
- return ValueOrErrors.Default.return(DispatchParsedType.Default.filterIsNotNull());
520
- default:
521
- return ValueOrErrors.Default.throwOne(`Unknown filter type: ${rawFilterType}`);
522
- }
523
- },
524
- ParseRawType: (typeName, rawType, typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives) => {
525
- if (alreadyParsedTypes.has(typeName) && !SerializedType.isLookup(rawType, typeNames))
526
- return alreadyParsedTypes
527
- .get(typeName)
528
- .Then((parsedType) => ValueOrErrors.Default.return([parsedType, alreadyParsedTypes]));
529
- const result = (() => {
530
- if (SerializedType.isPrimitive(rawType, injectedPrimitives))
531
- return ValueOrErrors.Default.return([
532
- DispatchParsedType.Default.primitive(typeof rawType === "string" &&
533
- STRINGY_TYPES.includes(rawType)
534
- ? "string"
535
- : rawType),
536
- alreadyParsedTypes,
537
- ]);
538
- if (SerializedType.isSingleSelection(rawType))
539
- return DispatchParsedType.Operations.ParseRawType(`SingleSelection:Element`, rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg, newAlreadyParsedTypes]) => ValueOrErrors.Default.return([
540
- DispatchParsedType.Default.singleSelection([parsedArg]),
541
- newAlreadyParsedTypes,
542
- ]));
543
- if (SerializedType.isMultiSelection(rawType))
544
- return DispatchParsedType.Operations.ParseRawType(`MultiSelection:Element`, rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg, newAlreadyParsedTypes]) => ValueOrErrors.Default.return([
545
- DispatchParsedType.Default.multiSelection([parsedArg]),
546
- newAlreadyParsedTypes,
547
- ]));
548
- if (SerializedType.isList(rawType))
549
- return DispatchParsedType.Operations.ParseRawType(`List:Element`, rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg, newAlreadyParsedTypes]) => ValueOrErrors.Default.return([
550
- DispatchParsedType.Default.list([parsedArg]),
551
- newAlreadyParsedTypes,
552
- ]));
553
- if (SerializedType.isTuple(rawType))
554
- return rawType.args.reduce((acc, arg, index) => acc.Then(([parsedArgsArray, accumulatedAlreadyParsedTypes]) => DispatchParsedType.Operations.ParseRawType(`Tuple:Item ${index + 1}`, arg, typeNames, serializedTypes, accumulatedAlreadyParsedTypes, injectedPrimitives).Then((parsedArg) => ValueOrErrors.Default.return([
555
- [...parsedArgsArray, parsedArg[0]],
556
- parsedArg[1],
557
- ]))), ValueOrErrors.Default.return([[], alreadyParsedTypes])).Then(([parsedArgsArray, accumulatedAlreadyParsedTypes]) => ValueOrErrors.Default.return([
558
- DispatchParsedType.Default.tuple(parsedArgsArray),
559
- accumulatedAlreadyParsedTypes,
560
- ]));
561
- if (SerializedType.isMap(rawType))
562
- return DispatchParsedType.Operations.ParseRawType("Map:Key", rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg0, newAlreadyParsedTypes]) => DispatchParsedType.Operations.ParseRawType("Map:Value", rawType.args[1], typeNames, serializedTypes, newAlreadyParsedTypes, injectedPrimitives).Then(([parsedArg1, newAlreadyParsedTypes2]) => ValueOrErrors.Default.return([
563
- DispatchParsedType.Default.map([parsedArg0, parsedArg1]),
564
- newAlreadyParsedTypes2,
565
- ])));
566
- if (SerializedType.isSum(rawType))
567
- return DispatchParsedType.Operations.ParseRawType("Sum:Left", rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg0, newAlreadyParsedTypes]) => DispatchParsedType.Operations.ParseRawType("Sum:Right", rawType.args[1], typeNames, serializedTypes, newAlreadyParsedTypes, injectedPrimitives).Then(([parsedArg1, newAlreadyParsedTypes2]) => ValueOrErrors.Default.return([
568
- DispatchParsedType.Default.sum([parsedArg0, parsedArg1]),
569
- newAlreadyParsedTypes2,
570
- ])));
571
- if (SerializedType.isRecord(rawType))
572
- return DispatchParsedType.Operations.ParseRecord(typeName, rawType, typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives);
573
- if (SerializedType.isTable(rawType)) {
574
- return DispatchParsedType.Operations.ParseRawType("TableArg", rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg, newAlreadyParsedTypes]) => parsedArg.kind != "lookup"
575
- ? ValueOrErrors.Default.throwOne(`Error: ${JSON.stringify(parsedArg)} is not a lookup type`)
576
- : ValueOrErrors.Default.return([
577
- DispatchParsedType.Default.table(parsedArg),
578
- newAlreadyParsedTypes,
579
- ]));
580
- }
581
- if (SerializedType.isLookup(rawType, typeNames)) {
582
- const resolvedType = serializedTypes[rawType];
583
- console.debug(typeName, rawType, resolvedType);
584
- return DispatchParsedType.Operations.ParseRawType(typeName, resolvedType, typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedType, newAlreadyParsedTypes]) => ValueOrErrors.Default.return([
585
- DispatchParsedType.Default.lookup(rawType),
586
- newAlreadyParsedTypes.set(rawType, ValueOrErrors.Default.return(parsedType)),
587
- ]));
588
- }
589
- if (SerializedType.isUnit(rawType)) {
590
- return ValueOrErrors.Default.return([
591
- DispatchParsedType.Default.primitive("unit"),
592
- alreadyParsedTypes,
593
- ]);
594
- }
595
- if (SerializedType.isUnion(rawType))
596
- return rawType.args.reduce((acc, unionCase) => acc.Then(([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) => DispatchParsedType.Operations.ParseRawType(isString(unionCase.fields) ? unionCase.fields : `Union:Case ${unionCase.caseName}`, unionCase.fields == undefined
871
+ ]),
872
+ );
873
+ if (SerializedType.isMap(rawType))
874
+ return DispatchParsedType.Operations.ParseRawType(
875
+ "Map:Key",
876
+ rawType.args[0],
877
+ typeNames,
878
+ serializedTypes,
879
+ alreadyParsedTypes,
880
+ injectedPrimitives,
881
+ ).Then(([parsedArg0, newAlreadyParsedTypes]) =>
882
+ DispatchParsedType.Operations.ParseRawType(
883
+ "Map:Value",
884
+ rawType.args[1],
885
+ typeNames,
886
+ serializedTypes,
887
+ newAlreadyParsedTypes,
888
+ injectedPrimitives,
889
+ ).Then(([parsedArg1, newAlreadyParsedTypes2]) =>
890
+ ValueOrErrors.Default.return([
891
+ DispatchParsedType.Default.map([parsedArg0, parsedArg1]),
892
+ newAlreadyParsedTypes2,
893
+ ]),
894
+ ),
895
+ );
896
+ if (SerializedType.isSum(rawType))
897
+ return DispatchParsedType.Operations.ParseRawType(
898
+ "Sum:Left",
899
+ rawType.args[0],
900
+ typeNames,
901
+ serializedTypes,
902
+ alreadyParsedTypes,
903
+ injectedPrimitives,
904
+ ).Then(([parsedArg0, newAlreadyParsedTypes]) =>
905
+ DispatchParsedType.Operations.ParseRawType(
906
+ "Sum:Right",
907
+ rawType.args[1],
908
+ typeNames,
909
+ serializedTypes,
910
+ newAlreadyParsedTypes,
911
+ injectedPrimitives,
912
+ ).Then(([parsedArg1, newAlreadyParsedTypes2]) =>
913
+ ValueOrErrors.Default.return([
914
+ DispatchParsedType.Default.sum([parsedArg0, parsedArg1]),
915
+ newAlreadyParsedTypes2,
916
+ ]),
917
+ ),
918
+ );
919
+ if (SerializedType.isRecord(rawType))
920
+ return DispatchParsedType.Operations.ParseRecord(
921
+ typeName,
922
+ rawType,
923
+ typeNames,
924
+ serializedTypes,
925
+ alreadyParsedTypes,
926
+ injectedPrimitives,
927
+ );
928
+ if (SerializedType.isTable(rawType)) {
929
+ return DispatchParsedType.Operations.ParseRawType(
930
+ "TableArg",
931
+ rawType.args[0],
932
+ typeNames,
933
+ serializedTypes,
934
+ alreadyParsedTypes,
935
+ injectedPrimitives,
936
+ ).Then(([parsedArg, newAlreadyParsedTypes]) =>
937
+ parsedArg.kind != "lookup"
938
+ ? ValueOrErrors.Default.throwOne(
939
+ `Error: ${JSON.stringify(parsedArg)} is not a lookup type`,
940
+ )
941
+ : ValueOrErrors.Default.return([
942
+ DispatchParsedType.Default.table(parsedArg),
943
+ newAlreadyParsedTypes,
944
+ ]),
945
+ );
946
+ }
947
+ if (SerializedType.isLookup(rawType, typeNames)) {
948
+ const resolvedType = serializedTypes[rawType];
949
+ console.debug(typeName, rawType, resolvedType);
950
+ return DispatchParsedType.Operations.ParseRawType(
951
+ typeName,
952
+ resolvedType,
953
+ typeNames,
954
+ serializedTypes,
955
+ alreadyParsedTypes,
956
+ injectedPrimitives,
957
+ ).Then(([parsedType, newAlreadyParsedTypes]) =>
958
+ ValueOrErrors.Default.return([
959
+ DispatchParsedType.Default.lookup(rawType),
960
+ newAlreadyParsedTypes.set(
961
+ rawType,
962
+ ValueOrErrors.Default.return(parsedType),
963
+ ),
964
+ ]),
965
+ );
966
+ }
967
+ if (SerializedType.isUnit(rawType)) {
968
+ return ValueOrErrors.Default.return([
969
+ DispatchParsedType.Default.primitive("unit"),
970
+ alreadyParsedTypes,
971
+ ]);
972
+ }
973
+ if (SerializedType.isUnion(rawType))
974
+ return rawType.args
975
+ .reduce(
976
+ (acc, unionCase) =>
977
+ acc.Then(
978
+ ([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) =>
979
+ DispatchParsedType.Operations.ParseRawType(
980
+ isString(unionCase.fields)
981
+ ? unionCase.fields
982
+ : `Union:Case ${unionCase.caseName}`,
983
+ unionCase.fields == undefined
597
984
  ? { fields: {} }
598
985
  : // we allow the record fields to be defined directly in the spec instead of
599
- // inside a fields key
600
- SerializedType.isRecordFields(unionCase.fields)
601
- ? { fields: unionCase.fields }
602
- : unionCase.fields, typeNames, serializedTypes, accumulatedAlreadyParsedTypes, injectedPrimitives).Then(([parsedType, newAlreadyParsedTypes]) => ValueOrErrors.Default.return([
986
+ // inside a fields key
987
+ SerializedType.isRecordFields(unionCase.fields)
988
+ ? { fields: unionCase.fields }
989
+ : unionCase.fields,
990
+ typeNames,
991
+ serializedTypes,
992
+ accumulatedAlreadyParsedTypes,
993
+ injectedPrimitives,
994
+ ).Then(([parsedType, newAlreadyParsedTypes]) =>
995
+ ValueOrErrors.Default.return([
603
996
  parsedUnionCasesMap.set(unionCase.caseName, parsedType),
604
997
  newAlreadyParsedTypes,
605
- ]))), ValueOrErrors.Default.return([Map(), alreadyParsedTypes])).Then(([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) => ValueOrErrors.Default.return([
606
- DispatchParsedType.Default.union(parsedUnionCasesMap),
607
- accumulatedAlreadyParsedTypes,
608
- ]));
609
- if (SerializedType.isOne(rawType)) {
610
- return DispatchParsedType.Operations.ParseRawType(rawType.args[0], rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg, newAlreadyParsedTypes]) => parsedArg.kind != "lookup"
611
- ? ValueOrErrors.Default.throwOne(`one content type ${JSON.stringify(parsedArg)} is not a lookup type`)
612
- : ValueOrErrors.Default.return([
613
- DispatchParsedType.Default.one(parsedArg),
614
- newAlreadyParsedTypes,
615
- ]));
616
- }
617
- if (SerializedType.isReadOnly(rawType))
618
- return DispatchParsedType.Operations.ParseRawType("ReadOnly:Element", rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg, newAlreadyParsedTypes]) => ValueOrErrors.Default.return([
619
- DispatchParsedType.Default.readOnly(parsedArg),
620
- newAlreadyParsedTypes,
621
- ]));
622
- if (SerializedType.isKeyOf(rawType))
623
- return DispatchParsedType.Operations.ParseRawKeyOf(rawType, typeNames, serializedTypes, alreadyParsedTypes);
624
- if (SerializedType.isTranslationOverride(rawType))
625
- return DispatchParsedType.Operations.ParseRawType("TranslationOverride:Language", rawType.args[0], typeNames, serializedTypes, alreadyParsedTypes, injectedPrimitives).Then(([parsedArg0, newAlreadyParsedTypes]) => ValueOrErrors.Default.return([
626
- DispatchParsedType.Default.map([
627
- DispatchParsedType.Default.singleSelection([parsedArg0]),
628
- DispatchParsedType.Default.primitive("string"),
629
- ]),
630
- newAlreadyParsedTypes,
631
- ]));
632
- return ValueOrErrors.Default.throwOne(`Unrecognised type "${typeName}" : ${JSON.stringify(rawType)}`);
633
- })();
634
- return result.MapErrors((errors) => errors.map((error) => `${error}\n...When parsing type "${typeName}"`));
635
- },
636
- ResolveLookupType: (typeName, types) => MapRepo.Operations.tryFindWithError(typeName, types, () => `cannot find lookup type ${typeName} in types`),
637
- AsResolvedType: (type, types) => type.kind == "lookup"
638
- ? DispatchParsedType.Operations.ResolveLookupType(type.name, types)
639
- : ValueOrErrors.Default.return(type),
998
+ ]),
999
+ ),
1000
+ ),
1001
+ ValueOrErrors.Default.return([Map(), alreadyParsedTypes]),
1002
+ )
1003
+ .Then(([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) =>
1004
+ ValueOrErrors.Default.return([
1005
+ DispatchParsedType.Default.union(parsedUnionCasesMap),
1006
+ accumulatedAlreadyParsedTypes,
1007
+ ]),
1008
+ );
1009
+ if (SerializedType.isOne(rawType)) {
1010
+ return DispatchParsedType.Operations.ParseRawType(
1011
+ rawType.args[0],
1012
+ rawType.args[0],
1013
+ typeNames,
1014
+ serializedTypes,
1015
+ alreadyParsedTypes,
1016
+ injectedPrimitives,
1017
+ ).Then(([parsedArg, newAlreadyParsedTypes]) =>
1018
+ parsedArg.kind != "lookup"
1019
+ ? ValueOrErrors.Default.throwOne(
1020
+ `one content type ${JSON.stringify(parsedArg)} is not a lookup type`,
1021
+ )
1022
+ : ValueOrErrors.Default.return([
1023
+ DispatchParsedType.Default.one(parsedArg),
1024
+ newAlreadyParsedTypes,
1025
+ ]),
1026
+ );
1027
+ }
1028
+ if (SerializedType.isReadOnly(rawType))
1029
+ return DispatchParsedType.Operations.ParseRawType(
1030
+ "ReadOnly:Element",
1031
+ rawType.args[0],
1032
+ typeNames,
1033
+ serializedTypes,
1034
+ alreadyParsedTypes,
1035
+ injectedPrimitives,
1036
+ ).Then(([parsedArg, newAlreadyParsedTypes]) =>
1037
+ ValueOrErrors.Default.return([
1038
+ DispatchParsedType.Default.readOnly(parsedArg),
1039
+ newAlreadyParsedTypes,
1040
+ ]),
1041
+ );
1042
+ if (SerializedType.isKeyOf(rawType))
1043
+ return DispatchParsedType.Operations.ParseRawKeyOf(
1044
+ rawType,
1045
+ typeNames,
1046
+ serializedTypes,
1047
+ alreadyParsedTypes,
1048
+ );
1049
+ if (SerializedType.isTranslationOverride(rawType))
1050
+ return DispatchParsedType.Operations.ParseRawType(
1051
+ "TranslationOverride:Language",
1052
+ rawType.args[0],
1053
+ typeNames,
1054
+ serializedTypes,
1055
+ alreadyParsedTypes,
1056
+ injectedPrimitives,
1057
+ ).Then(([parsedArg0, newAlreadyParsedTypes]) =>
1058
+ ValueOrErrors.Default.return([
1059
+ DispatchParsedType.Default.map([
1060
+ DispatchParsedType.Default.singleSelection([parsedArg0]),
1061
+ DispatchParsedType.Default.primitive("string"),
1062
+ ]),
1063
+ newAlreadyParsedTypes,
1064
+ ]),
1065
+ );
1066
+ return ValueOrErrors.Default.throwOne(
1067
+ `Unrecognised type "${typeName}" : ${JSON.stringify(rawType)}`,
1068
+ );
1069
+ })();
1070
+ return result.MapErrors((errors) =>
1071
+ errors.map((error) => `${error}\n...When parsing type "${typeName}"`),
1072
+ );
640
1073
  },
1074
+ ResolveLookupType: (typeName, types) =>
1075
+ MapRepo.Operations.tryFindWithError(
1076
+ typeName,
1077
+ types,
1078
+ () => `cannot find lookup type ${typeName} in types`,
1079
+ ),
1080
+ AsResolvedType: (type, types) =>
1081
+ type.kind == "lookup"
1082
+ ? DispatchParsedType.Operations.ResolveLookupType(type.name, types)
1083
+ : ValueOrErrors.Default.return(type),
1084
+ },
641
1085
  };
642
- //# sourceMappingURL=state.js.map
1086
+ //# sourceMappingURL=state.js.map