envio 3.0.0-alpha.21 → 3.0.0-alpha.23

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 (220) hide show
  1. package/README.md +3 -3
  2. package/bin.mjs +2 -48
  3. package/evm.schema.json +67 -0
  4. package/fuel.schema.json +67 -0
  5. package/index.d.ts +822 -38
  6. package/index.js +5 -3
  7. package/package.json +10 -8
  8. package/rescript.json +5 -9
  9. package/src/Address.res +4 -5
  10. package/src/Address.res.mjs +9 -12
  11. package/src/Api.res +15 -0
  12. package/src/Api.res.mjs +20 -0
  13. package/src/Batch.res +32 -34
  14. package/src/Batch.res.mjs +172 -187
  15. package/src/Bin.res +89 -0
  16. package/src/Bin.res.mjs +97 -0
  17. package/src/ChainFetcher.res +33 -57
  18. package/src/ChainFetcher.res.mjs +197 -227
  19. package/src/ChainManager.res +6 -14
  20. package/src/ChainManager.res.mjs +74 -85
  21. package/src/ChainMap.res +14 -16
  22. package/src/ChainMap.res.mjs +38 -38
  23. package/src/Config.res +193 -135
  24. package/src/Config.res.mjs +566 -592
  25. package/src/Core.res +182 -0
  26. package/src/Core.res.mjs +207 -0
  27. package/src/Ecosystem.res +25 -4
  28. package/src/Ecosystem.res.mjs +12 -13
  29. package/src/Env.res +20 -13
  30. package/src/Env.res.mjs +124 -113
  31. package/src/EnvSafe.res +269 -0
  32. package/src/EnvSafe.res.mjs +296 -0
  33. package/src/EnvSafe.resi +18 -0
  34. package/src/Envio.res +37 -26
  35. package/src/Envio.res.mjs +59 -60
  36. package/src/ErrorHandling.res +2 -2
  37. package/src/ErrorHandling.res.mjs +15 -15
  38. package/src/EventConfigBuilder.res +219 -81
  39. package/src/EventConfigBuilder.res.mjs +259 -202
  40. package/src/EventProcessing.res +27 -38
  41. package/src/EventProcessing.res.mjs +165 -183
  42. package/src/EventUtils.res +11 -11
  43. package/src/EventUtils.res.mjs +21 -22
  44. package/src/EvmTypes.res +0 -1
  45. package/src/EvmTypes.res.mjs +5 -5
  46. package/src/FetchState.res +360 -256
  47. package/src/FetchState.res.mjs +958 -914
  48. package/src/GlobalState.res +365 -351
  49. package/src/GlobalState.res.mjs +958 -992
  50. package/src/GlobalStateManager.res +1 -2
  51. package/src/GlobalStateManager.res.mjs +36 -44
  52. package/src/HandlerLoader.res +107 -23
  53. package/src/HandlerLoader.res.mjs +128 -38
  54. package/src/HandlerRegister.res +127 -103
  55. package/src/HandlerRegister.res.mjs +164 -164
  56. package/src/HandlerRegister.resi +12 -4
  57. package/src/Hasura.res +35 -22
  58. package/src/Hasura.res.mjs +158 -167
  59. package/src/InMemoryStore.res +20 -27
  60. package/src/InMemoryStore.res.mjs +64 -80
  61. package/src/InMemoryTable.res +34 -39
  62. package/src/InMemoryTable.res.mjs +165 -170
  63. package/src/Internal.res +52 -33
  64. package/src/Internal.res.mjs +84 -81
  65. package/src/LazyLoader.res.mjs +55 -61
  66. package/src/LoadLayer.res +77 -78
  67. package/src/LoadLayer.res.mjs +160 -189
  68. package/src/LoadManager.res +16 -21
  69. package/src/LoadManager.res.mjs +79 -84
  70. package/src/LogSelection.res +236 -68
  71. package/src/LogSelection.res.mjs +211 -141
  72. package/src/Logging.res +13 -9
  73. package/src/Logging.res.mjs +130 -143
  74. package/src/Main.res +430 -51
  75. package/src/Main.res.mjs +530 -271
  76. package/src/Persistence.res +80 -84
  77. package/src/Persistence.res.mjs +131 -132
  78. package/src/PgStorage.res +294 -167
  79. package/src/PgStorage.res.mjs +799 -817
  80. package/src/Prometheus.res +50 -58
  81. package/src/Prometheus.res.mjs +345 -373
  82. package/src/ReorgDetection.res +22 -24
  83. package/src/ReorgDetection.res.mjs +100 -106
  84. package/src/SafeCheckpointTracking.res +7 -7
  85. package/src/SafeCheckpointTracking.res.mjs +40 -43
  86. package/src/SimulateItems.res +41 -49
  87. package/src/SimulateItems.res.mjs +257 -272
  88. package/src/Sink.res +2 -2
  89. package/src/Sink.res.mjs +22 -26
  90. package/src/TableIndices.res +1 -2
  91. package/src/TableIndices.res.mjs +42 -48
  92. package/src/TestIndexer.res +196 -189
  93. package/src/TestIndexer.res.mjs +536 -536
  94. package/src/TestIndexerProxyStorage.res +16 -16
  95. package/src/TestIndexerProxyStorage.res.mjs +99 -122
  96. package/src/TestIndexerWorker.res +4 -0
  97. package/src/TestIndexerWorker.res.mjs +7 -0
  98. package/src/Throttler.res +3 -3
  99. package/src/Throttler.res.mjs +23 -24
  100. package/src/Time.res +1 -1
  101. package/src/Time.res.mjs +18 -21
  102. package/src/TopicFilter.res +3 -3
  103. package/src/TopicFilter.res.mjs +29 -30
  104. package/src/UserContext.res +93 -54
  105. package/src/UserContext.res.mjs +197 -182
  106. package/src/Utils.res +141 -86
  107. package/src/Utils.res.mjs +334 -295
  108. package/src/bindings/BigDecimal.res +0 -2
  109. package/src/bindings/BigDecimal.res.mjs +19 -23
  110. package/src/bindings/ClickHouse.res +28 -27
  111. package/src/bindings/ClickHouse.res.mjs +243 -240
  112. package/src/bindings/DateFns.res +11 -11
  113. package/src/bindings/DateFns.res.mjs +7 -7
  114. package/src/bindings/EventSource.res.mjs +2 -2
  115. package/src/bindings/Express.res +2 -5
  116. package/src/bindings/Hrtime.res +2 -2
  117. package/src/bindings/Hrtime.res.mjs +30 -32
  118. package/src/bindings/Lodash.res.mjs +1 -1
  119. package/src/bindings/NodeJs.res +14 -9
  120. package/src/bindings/NodeJs.res.mjs +20 -20
  121. package/src/bindings/Pino.res +8 -10
  122. package/src/bindings/Pino.res.mjs +40 -43
  123. package/src/bindings/Postgres.res +7 -5
  124. package/src/bindings/Postgres.res.mjs +9 -9
  125. package/src/bindings/PromClient.res +17 -2
  126. package/src/bindings/PromClient.res.mjs +30 -7
  127. package/src/bindings/SDSL.res.mjs +2 -2
  128. package/src/bindings/Viem.res +4 -4
  129. package/src/bindings/Viem.res.mjs +20 -22
  130. package/src/bindings/Vitest.res +1 -1
  131. package/src/bindings/Vitest.res.mjs +2 -2
  132. package/src/bindings/WebSocket.res +1 -1
  133. package/src/db/EntityHistory.res +9 -3
  134. package/src/db/EntityHistory.res.mjs +84 -59
  135. package/src/db/InternalTable.res +62 -60
  136. package/src/db/InternalTable.res.mjs +271 -203
  137. package/src/db/Schema.res +1 -2
  138. package/src/db/Schema.res.mjs +28 -32
  139. package/src/db/Table.res +28 -27
  140. package/src/db/Table.res.mjs +276 -292
  141. package/src/sources/EventRouter.res +21 -16
  142. package/src/sources/EventRouter.res.mjs +55 -57
  143. package/src/sources/Evm.res +17 -1
  144. package/src/sources/Evm.res.mjs +16 -8
  145. package/src/sources/EvmChain.res +15 -17
  146. package/src/sources/EvmChain.res.mjs +40 -42
  147. package/src/sources/Fuel.res +14 -1
  148. package/src/sources/Fuel.res.mjs +16 -8
  149. package/src/sources/FuelSDK.res +1 -1
  150. package/src/sources/FuelSDK.res.mjs +6 -8
  151. package/src/sources/HyperFuel.res +8 -10
  152. package/src/sources/HyperFuel.res.mjs +113 -123
  153. package/src/sources/HyperFuelClient.res.mjs +6 -7
  154. package/src/sources/HyperFuelSource.res +19 -20
  155. package/src/sources/HyperFuelSource.res.mjs +339 -356
  156. package/src/sources/HyperSync.res +11 -13
  157. package/src/sources/HyperSync.res.mjs +206 -220
  158. package/src/sources/HyperSyncClient.res +5 -7
  159. package/src/sources/HyperSyncClient.res.mjs +70 -75
  160. package/src/sources/HyperSyncHeightStream.res +8 -9
  161. package/src/sources/HyperSyncHeightStream.res.mjs +78 -86
  162. package/src/sources/HyperSyncJsonApi.res +18 -15
  163. package/src/sources/HyperSyncJsonApi.res.mjs +201 -231
  164. package/src/sources/HyperSyncSource.res +17 -21
  165. package/src/sources/HyperSyncSource.res.mjs +268 -290
  166. package/src/sources/Rpc.res +5 -5
  167. package/src/sources/Rpc.res.mjs +168 -192
  168. package/src/sources/RpcSource.res +166 -167
  169. package/src/sources/RpcSource.res.mjs +972 -1046
  170. package/src/sources/RpcWebSocketHeightStream.res +10 -11
  171. package/src/sources/RpcWebSocketHeightStream.res.mjs +131 -145
  172. package/src/sources/SimulateSource.res +1 -1
  173. package/src/sources/SimulateSource.res.mjs +35 -38
  174. package/src/sources/Source.res +1 -1
  175. package/src/sources/Source.res.mjs +3 -3
  176. package/src/sources/SourceManager.res +39 -20
  177. package/src/sources/SourceManager.res.mjs +340 -371
  178. package/src/sources/SourceManager.resi +2 -1
  179. package/src/sources/Svm.res +12 -5
  180. package/src/sources/Svm.res.mjs +44 -41
  181. package/src/tui/Tui.res +23 -12
  182. package/src/tui/Tui.res.mjs +292 -290
  183. package/src/tui/bindings/Ink.res +2 -4
  184. package/src/tui/bindings/Ink.res.mjs +35 -41
  185. package/src/tui/components/BufferedProgressBar.res +7 -7
  186. package/src/tui/components/BufferedProgressBar.res.mjs +46 -46
  187. package/src/tui/components/CustomHooks.res +1 -2
  188. package/src/tui/components/CustomHooks.res.mjs +102 -122
  189. package/src/tui/components/Messages.res +1 -2
  190. package/src/tui/components/Messages.res.mjs +38 -42
  191. package/src/tui/components/SyncETA.res +10 -11
  192. package/src/tui/components/SyncETA.res.mjs +178 -196
  193. package/src/tui/components/TuiData.res +1 -1
  194. package/src/tui/components/TuiData.res.mjs +7 -6
  195. package/src/vendored/Rest.res +52 -66
  196. package/src/vendored/Rest.res.mjs +324 -364
  197. package/svm.schema.json +67 -0
  198. package/src/Address.gen.ts +0 -8
  199. package/src/Config.gen.ts +0 -19
  200. package/src/Envio.gen.ts +0 -55
  201. package/src/EvmTypes.gen.ts +0 -6
  202. package/src/InMemoryStore.gen.ts +0 -6
  203. package/src/Internal.gen.ts +0 -64
  204. package/src/PgStorage.gen.ts +0 -10
  205. package/src/PgStorage.res.d.mts +0 -5
  206. package/src/Types.ts +0 -56
  207. package/src/bindings/BigDecimal.gen.ts +0 -14
  208. package/src/bindings/BigDecimal.res.d.mts +0 -5
  209. package/src/bindings/BigInt.gen.ts +0 -10
  210. package/src/bindings/BigInt.res +0 -70
  211. package/src/bindings/BigInt.res.d.mts +0 -5
  212. package/src/bindings/BigInt.res.mjs +0 -154
  213. package/src/bindings/Ethers.res.d.mts +0 -5
  214. package/src/bindings/Pino.gen.ts +0 -17
  215. package/src/bindings/Postgres.gen.ts +0 -8
  216. package/src/bindings/Postgres.res.d.mts +0 -5
  217. package/src/bindings/Promise.res +0 -67
  218. package/src/bindings/Promise.res.mjs +0 -26
  219. package/src/db/InternalTable.gen.ts +0 -36
  220. package/src/sources/HyperSyncClient.gen.ts +0 -19
@@ -1,52 +1,52 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
- import * as $$BigInt from "../bindings/BigInt.res.mjs";
4
- import * as Js_exn from "rescript/lib/es6/js_exn.js";
5
- import * as Belt_Array from "rescript/lib/es6/belt_Array.js";
6
- import * as Belt_Option from "rescript/lib/es6/belt_Option.js";
7
- import * as Caml_option from "rescript/lib/es6/caml_option.js";
8
- import * as Belt_SetString from "rescript/lib/es6/belt_SetString.js";
9
- import * as Caml_exceptions from "rescript/lib/es6/caml_exceptions.js";
3
+ import * as Utils from "../Utils.res.mjs";
4
+ import * as Belt_Array from "@rescript/runtime/lib/es6/Belt_Array.js";
5
+ import * as Stdlib_Array from "@rescript/runtime/lib/es6/Stdlib_Array.js";
6
+ import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
7
+ import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js";
8
+ import * as Primitive_string from "@rescript/runtime/lib/es6/Primitive_string.js";
10
9
  import * as S$RescriptSchema from "rescript-schema/src/S.res.mjs";
10
+ import * as Primitive_exceptions from "@rescript/runtime/lib/es6/Primitive_exceptions.js";
11
11
 
12
12
  function makeEnumConfig(name, variants) {
13
13
  return {
14
- name: name,
15
- variants: variants,
16
- schema: S$RescriptSchema.$$enum(variants)
17
- };
14
+ name: name,
15
+ variants: variants,
16
+ schema: S$RescriptSchema.$$enum(variants)
17
+ };
18
18
  }
19
19
 
20
20
  function mkField(fieldName, fieldType, fieldSchema, $$default, isArrayOpt, isNullableOpt, isPrimaryKeyOpt, isIndexOpt, linkedEntity) {
21
- var isArray = isArrayOpt !== undefined ? isArrayOpt : false;
22
- var isNullable = isNullableOpt !== undefined ? isNullableOpt : false;
23
- var isPrimaryKey = isPrimaryKeyOpt !== undefined ? isPrimaryKeyOpt : false;
24
- var isIndex = isIndexOpt !== undefined ? isIndexOpt : false;
21
+ let isArray = isArrayOpt !== undefined ? isArrayOpt : false;
22
+ let isNullable = isNullableOpt !== undefined ? isNullableOpt : false;
23
+ let isPrimaryKey = isPrimaryKeyOpt !== undefined ? isPrimaryKeyOpt : false;
24
+ let isIndex = isIndexOpt !== undefined ? isIndexOpt : false;
25
25
  return {
26
- TAG: "Field",
27
- _0: {
28
- fieldName: fieldName,
29
- fieldType: fieldType,
30
- fieldSchema: fieldSchema,
31
- isArray: isArray,
32
- isNullable: isNullable,
33
- isPrimaryKey: isPrimaryKey,
34
- isIndex: isIndex,
35
- linkedEntity: linkedEntity,
36
- defaultValue: $$default
37
- }
38
- };
26
+ TAG: "Field",
27
+ _0: {
28
+ fieldName: fieldName,
29
+ fieldType: fieldType,
30
+ fieldSchema: fieldSchema,
31
+ isArray: isArray,
32
+ isNullable: isNullable,
33
+ isPrimaryKey: isPrimaryKey,
34
+ isIndex: isIndex,
35
+ linkedEntity: linkedEntity,
36
+ defaultValue: $$default
37
+ }
38
+ };
39
39
  }
40
40
 
41
41
  function mkDerivedFromField(fieldName, derivedFromEntity, derivedFromField) {
42
42
  return {
43
- TAG: "DerivedFrom",
44
- _0: {
45
- fieldName: fieldName,
46
- derivedFromEntity: derivedFromEntity,
47
- derivedFromField: derivedFromField
48
- }
49
- };
43
+ TAG: "DerivedFrom",
44
+ _0: {
45
+ fieldName: fieldName,
46
+ derivedFromEntity: derivedFromEntity,
47
+ derivedFromField: derivedFromField
48
+ }
49
+ };
50
50
  }
51
51
 
52
52
  function getUserDefinedFieldName(fieldOrDerived) {
@@ -54,11 +54,11 @@ function getUserDefinedFieldName(fieldOrDerived) {
54
54
  }
55
55
 
56
56
  function isLinkedEntityField(field) {
57
- return Belt_Option.isSome(field.linkedEntity);
57
+ return Stdlib_Option.isSome(field.linkedEntity);
58
58
  }
59
59
 
60
60
  function getDbFieldName(field) {
61
- if (Belt_Option.isSome(field.linkedEntity)) {
61
+ if (Stdlib_Option.isSome(field.linkedEntity)) {
62
62
  return field.fieldName + "_id";
63
63
  } else {
64
64
  return field.fieldName;
@@ -74,334 +74,318 @@ function getFieldName(fieldOrDerived) {
74
74
  }
75
75
 
76
76
  function getPgFieldType(fieldType, pgSchema, isArray, isNumericArrayAsText, isNullable) {
77
- var columnType;
77
+ let columnType;
78
78
  if (typeof fieldType !== "object") {
79
79
  switch (fieldType) {
80
80
  case "String" :
81
- columnType = "TEXT";
82
- break;
81
+ columnType = "TEXT";
82
+ break;
83
83
  case "Boolean" :
84
- columnType = "BOOLEAN";
85
- break;
84
+ columnType = "BOOLEAN";
85
+ break;
86
86
  case "Int32" :
87
- columnType = "INTEGER";
88
- break;
87
+ columnType = "INTEGER";
88
+ break;
89
89
  case "Number" :
90
- columnType = "DOUBLE PRECISION";
91
- break;
90
+ columnType = "DOUBLE PRECISION";
91
+ break;
92
92
  case "Serial" :
93
- columnType = "SERIAL";
94
- break;
93
+ columnType = "SERIAL";
94
+ break;
95
95
  case "BigSerial" :
96
- columnType = "BIGSERIAL";
97
- break;
96
+ columnType = "BIGSERIAL";
97
+ break;
98
98
  case "Json" :
99
- columnType = "JSONB";
100
- break;
99
+ columnType = "JSONB";
100
+ break;
101
101
  case "Date" :
102
- columnType = isNullable ? "TIMESTAMP WITH TIME ZONE NULL" : "TIMESTAMP WITH TIME ZONE";
103
- break;
102
+ columnType = isNullable ? "TIMESTAMP WITH TIME ZONE NULL" : "TIMESTAMP WITH TIME ZONE";
103
+ break;
104
104
  default:
105
105
  columnType = "BIGINT";
106
106
  }
107
107
  } else {
108
108
  switch (fieldType.type) {
109
109
  case "BigInt" :
110
- var precision = fieldType.precision;
111
- columnType = "NUMERIC" + (
112
- precision !== undefined ? "(" + String(precision) + ", 0)" : ""
113
- );
114
- break;
110
+ let precision = fieldType.precision;
111
+ columnType = "NUMERIC" + (
112
+ precision !== undefined ? `(` + precision.toString() + `, 0)` : ""
113
+ );
114
+ break;
115
115
  case "BigDecimal" :
116
- var config = fieldType.config;
117
- columnType = "NUMERIC" + (
118
- config !== undefined ? "(" + String(config[0]) + ", " + String(config[1]) + ")" : ""
119
- );
120
- break;
116
+ let config = fieldType.config;
117
+ columnType = "NUMERIC" + (
118
+ config !== undefined ? `(` + config[0].toString() + `, ` + config[1].toString() + `)` : ""
119
+ );
120
+ break;
121
121
  case "Enum" :
122
- columnType = "\"" + pgSchema + "\"." + fieldType.config.name;
123
- break;
122
+ columnType = `"` + pgSchema + `".` + fieldType.config.name;
123
+ break;
124
124
  case "Entity" :
125
- columnType = "TEXT";
126
- break;
127
-
125
+ columnType = "TEXT";
126
+ break;
128
127
  }
129
128
  }
130
- var isNumericAsText = isArray && isNumericArrayAsText;
131
- var columnType$1 = columnType === "NUMERIC" && isNumericAsText ? "TEXT" : columnType;
129
+ let isNumericAsText = isArray && isNumericArrayAsText;
130
+ let columnType$1 = columnType === "NUMERIC" && isNumericAsText ? "TEXT" : columnType;
132
131
  return columnType$1 + (
133
- isArray ? "[]" : ""
134
- );
132
+ isArray ? "[]" : ""
133
+ );
135
134
  }
136
135
 
137
136
  function mkTable(tableName, compositeIndicesOpt, fields) {
138
- var compositeIndices = compositeIndicesOpt !== undefined ? compositeIndicesOpt : [];
137
+ let compositeIndices = compositeIndicesOpt !== undefined ? compositeIndicesOpt : [];
139
138
  return {
140
- tableName: tableName,
141
- fields: fields,
142
- compositeIndices: compositeIndices
143
- };
139
+ tableName: tableName,
140
+ fields: fields,
141
+ compositeIndices: compositeIndices
142
+ };
144
143
  }
145
144
 
146
145
  function getPrimaryKeyFieldNames(table) {
147
- return Belt_Array.keepMap(table.fields, (function (field) {
148
- if (field.TAG !== "Field") {
149
- return ;
150
- }
151
- var match = field._0;
152
- if (match.isPrimaryKey) {
153
- return match.fieldName;
154
- }
155
-
156
- }));
146
+ return Stdlib_Array.filterMap(table.fields, field => {
147
+ if (field.TAG !== "Field") {
148
+ return;
149
+ }
150
+ let match = field._0;
151
+ if (match.isPrimaryKey) {
152
+ return match.fieldName;
153
+ }
154
+ });
157
155
  }
158
156
 
159
157
  function getFields(table) {
160
- return Belt_Array.keepMap(table.fields, (function (field) {
161
- if (field.TAG === "Field") {
162
- return field._0;
163
- }
164
-
165
- }));
158
+ return Stdlib_Array.filterMap(table.fields, field => {
159
+ if (field.TAG === "Field") {
160
+ return field._0;
161
+ }
162
+ });
166
163
  }
167
164
 
168
165
  function getFieldNames(table) {
169
- return Belt_Array.map(getFields(table), getDbFieldName);
166
+ return getFields(table).map(getDbFieldName);
170
167
  }
171
168
 
172
169
  function getNonDefaultFields(table) {
173
- return Belt_Array.keepMap(table.fields, (function (field) {
174
- if (field.TAG !== "Field") {
175
- return ;
176
- }
177
- var field$1 = field._0;
178
- if (Belt_Option.isNone(field$1.defaultValue)) {
179
- return field$1;
180
- }
181
-
182
- }));
170
+ return Stdlib_Array.filterMap(table.fields, field => {
171
+ if (field.TAG !== "Field") {
172
+ return;
173
+ }
174
+ let field$1 = field._0;
175
+ if (Stdlib_Option.isNone(field$1.defaultValue)) {
176
+ return field$1;
177
+ }
178
+ });
183
179
  }
184
180
 
185
181
  function getLinkedEntityFields(table) {
186
- return Belt_Array.keepMap(table.fields, (function (field) {
187
- if (field.TAG !== "Field") {
188
- return ;
189
- }
190
- var field$1 = field._0;
191
- var linkedEntityName = field$1.linkedEntity;
192
- if (linkedEntityName !== undefined) {
193
- return [
194
- field$1,
195
- linkedEntityName
196
- ];
197
- }
198
-
199
- }));
182
+ return Stdlib_Array.filterMap(table.fields, field => {
183
+ if (field.TAG !== "Field") {
184
+ return;
185
+ }
186
+ let field$1 = field._0;
187
+ let linkedEntityName = field$1.linkedEntity;
188
+ if (linkedEntityName !== undefined) {
189
+ return [
190
+ field$1,
191
+ linkedEntityName
192
+ ];
193
+ }
194
+ });
200
195
  }
201
196
 
202
197
  function getDerivedFromFields(table) {
203
- return Belt_Array.keepMap(table.fields, (function (field) {
204
- if (field.TAG === "Field") {
205
- return ;
206
- } else {
207
- return field._0;
208
- }
209
- }));
198
+ return Stdlib_Array.filterMap(table.fields, field => {
199
+ if (field.TAG === "Field") {
200
+ return;
201
+ } else {
202
+ return field._0;
203
+ }
204
+ });
210
205
  }
211
206
 
212
207
  function getNonDefaultFieldNames(table) {
213
- return Belt_Array.map(getNonDefaultFields(table), getDbFieldName);
208
+ return getNonDefaultFields(table).map(getDbFieldName);
214
209
  }
215
210
 
216
211
  function getFieldByName(table, fieldName) {
217
- return Caml_option.undefined_to_opt(table.fields.find(function (field) {
218
- return field._0.fieldName === fieldName;
219
- }));
212
+ return table.fields.find(field => field._0.fieldName === fieldName);
220
213
  }
221
214
 
222
215
  function getFieldByDbName(table, dbFieldName) {
223
- return Caml_option.undefined_to_opt(table.fields.find(function (field) {
224
- var tmp;
225
- tmp = field.TAG === "Field" ? getDbFieldName(field._0) : field._0.fieldName;
226
- return tmp === dbFieldName;
227
- }));
216
+ return table.fields.find(field => {
217
+ let tmp;
218
+ tmp = field.TAG === "Field" ? getDbFieldName(field._0) : field._0.fieldName;
219
+ return tmp === dbFieldName;
220
+ });
228
221
  }
229
222
 
230
- var NonExistingTableField = /* @__PURE__ */Caml_exceptions.create("Table.NonExistingTableField");
223
+ let NonExistingTableField = /* @__PURE__ */Primitive_exceptions.create("Table.NonExistingTableField");
231
224
 
232
225
  function getUnfilteredCompositeIndicesUnsafe(table) {
233
- return Belt_Array.map(table.compositeIndices, (function (compositeIndex) {
234
- return Belt_Array.map(compositeIndex, (function (indexField) {
235
- var field = getFieldByName(table, indexField.fieldName);
236
- var dbFieldName;
237
- if (field !== undefined) {
238
- dbFieldName = getFieldName(field);
239
- } else {
240
- throw {
241
- RE_EXN_ID: NonExistingTableField,
242
- _1: indexField.fieldName,
243
- Error: new Error()
244
- };
245
- }
246
- return {
247
- fieldName: dbFieldName,
248
- direction: indexField.direction
249
- };
250
- }));
251
- }));
226
+ return table.compositeIndices.map(compositeIndex => compositeIndex.map(indexField => {
227
+ let field = getFieldByName(table, indexField.fieldName);
228
+ let dbFieldName;
229
+ if (field !== undefined) {
230
+ dbFieldName = getFieldName(field);
231
+ } else {
232
+ throw {
233
+ RE_EXN_ID: NonExistingTableField,
234
+ _1: indexField.fieldName,
235
+ Error: new Error()
236
+ };
237
+ }
238
+ return {
239
+ fieldName: dbFieldName,
240
+ direction: indexField.direction
241
+ };
242
+ }));
252
243
  }
253
244
 
254
245
  function toSqlParams(table, schema, pgSchema) {
255
- var quotedFieldNames = [];
256
- var quotedNonPrimaryFieldNames = [];
257
- var arrayFieldTypes = [];
258
- var hasArrayField = {
246
+ let quotedFieldNames = [];
247
+ let quotedNonPrimaryFieldNames = [];
248
+ let arrayFieldTypes = [];
249
+ let hasArrayField = {
259
250
  contents: false
260
251
  };
261
- var dbSchema = S$RescriptSchema.schema(function (s) {
262
- var match = schema.t;
263
- if (typeof match !== "object") {
264
- return Js_exn.raiseError("Failed creating db schema. Expected an object schema for table");
252
+ let dbSchema = S$RescriptSchema.schema(s => {
253
+ let match = schema.t;
254
+ if (typeof match !== "object") {
255
+ return Stdlib_JsError.throwWithMessage("Failed creating db schema. Expected an object schema for table");
256
+ }
257
+ if (match.TAG !== "object") {
258
+ return Stdlib_JsError.throwWithMessage("Failed creating db schema. Expected an object schema for table");
259
+ }
260
+ let dict = {};
261
+ Belt_Array.forEach(match.items, param => {
262
+ let inlinedLocation = param.inlinedLocation;
263
+ let location = param.location;
264
+ let coerceSchema = schema => {
265
+ let child = schema.t;
266
+ if (typeof child !== "object") {
267
+ switch (child) {
268
+ case "bigint" :
269
+ return Utils.$$BigInt.schema;
270
+ case "boolean" :
271
+ return S$RescriptSchema.union([
272
+ S$RescriptSchema.shape(S$RescriptSchema.literal(1), param => true),
273
+ S$RescriptSchema.shape(S$RescriptSchema.literal(0), param => false)
274
+ ]);
275
+ default:
276
+ return schema;
277
+ }
278
+ } else {
279
+ switch (child.TAG) {
280
+ case "option" :
281
+ case "null" :
282
+ return S$RescriptSchema.$$null(coerceSchema(child._0));
283
+ case "array" :
284
+ hasArrayField.contents = true;
285
+ return S$RescriptSchema.array(coerceSchema(child._0));
286
+ case "JSON" :
287
+ hasArrayField.contents = true;
288
+ return schema;
289
+ default:
290
+ return schema;
291
+ }
265
292
  }
266
- if (match.TAG !== "object") {
267
- return Js_exn.raiseError("Failed creating db schema. Expected an object schema for table");
293
+ };
294
+ let field = getFieldByDbName(table, location);
295
+ let field$1;
296
+ if (field !== undefined) {
297
+ field$1 = field;
298
+ } else {
299
+ throw {
300
+ RE_EXN_ID: NonExistingTableField,
301
+ _1: location,
302
+ Error: new Error()
303
+ };
304
+ }
305
+ quotedFieldNames.push(inlinedLocation);
306
+ if (field$1.TAG === "Field") {
307
+ if (field$1._0.isPrimaryKey) {
308
+
309
+ } else {
310
+ quotedNonPrimaryFieldNames.push(inlinedLocation);
268
311
  }
269
- var dict = {};
270
- Belt_Array.forEach(match.items, (function (param) {
271
- var inlinedLocation = param.inlinedLocation;
272
- var $$location = param.location;
273
- var coerceSchema = function (schema) {
274
- var child = schema.t;
275
- if (typeof child !== "object") {
276
- switch (child) {
277
- case "bigint" :
278
- return $$BigInt.schema;
279
- case "boolean" :
280
- return S$RescriptSchema.union([
281
- S$RescriptSchema.shape(S$RescriptSchema.literal(1), (function (param) {
282
- return true;
283
- })),
284
- S$RescriptSchema.shape(S$RescriptSchema.literal(0), (function (param) {
285
- return false;
286
- }))
287
- ]);
288
- default:
289
- return schema;
290
- }
291
- } else {
292
- switch (child.TAG) {
293
- case "option" :
294
- case "null" :
295
- return S$RescriptSchema.$$null(coerceSchema(child._0));
296
- case "array" :
297
- hasArrayField.contents = true;
298
- return S$RescriptSchema.array(coerceSchema(child._0));
299
- case "JSON" :
300
- hasArrayField.contents = true;
301
- return schema;
302
- default:
303
- return schema;
304
- }
305
- }
306
- };
307
- var field = getFieldByDbName(table, $$location);
308
- var field$1;
309
- if (field !== undefined) {
310
- field$1 = field;
311
- } else {
312
- throw {
313
- RE_EXN_ID: NonExistingTableField,
314
- _1: $$location,
315
- Error: new Error()
316
- };
317
- }
318
- quotedFieldNames.push(inlinedLocation);
319
- if (field$1.TAG === "Field") {
320
- if (field$1._0.isPrimaryKey) {
321
-
322
- } else {
323
- quotedNonPrimaryFieldNames.push(inlinedLocation);
324
- }
325
- }
326
- var tmp;
327
- if (field$1.TAG === "Field") {
328
- var f = field$1._0;
329
- var pgFieldType = getPgFieldType(f.fieldType, pgSchema, true, false, f.isNullable);
330
- var match = f.fieldType;
331
- tmp = typeof match !== "object" ? (
332
- match === "Boolean" ? "INTEGER[]::" + pgFieldType : pgFieldType
333
- ) : (
334
- match.type === "Enum" ? "TEXT[]::" + pgFieldType : pgFieldType
335
- );
336
- } else {
337
- tmp = "TEXT[]";
338
- }
339
- arrayFieldTypes.push(tmp);
340
- dict[$$location] = s.m(coerceSchema(param.schema));
341
- }));
342
- return dict;
343
- });
312
+ }
313
+ let tmp;
314
+ if (field$1.TAG === "Field") {
315
+ let f = field$1._0;
316
+ let pgFieldType = getPgFieldType(f.fieldType, pgSchema, true, false, f.isNullable);
317
+ let match = f.fieldType;
318
+ tmp = typeof match !== "object" ? (
319
+ match === "Boolean" ? "INTEGER" + `[]::` + pgFieldType : pgFieldType
320
+ ) : (
321
+ match.type === "Enum" ? "TEXT" + `[]::` + pgFieldType : pgFieldType
322
+ );
323
+ } else {
324
+ tmp = "TEXT[]";
325
+ }
326
+ arrayFieldTypes.push(tmp);
327
+ dict[location] = s.m(coerceSchema(param.schema));
328
+ });
329
+ return dict;
330
+ });
344
331
  return {
345
- dbSchema: dbSchema,
346
- quotedFieldNames: quotedFieldNames,
347
- quotedNonPrimaryFieldNames: quotedNonPrimaryFieldNames,
348
- arrayFieldTypes: arrayFieldTypes,
349
- hasArrayField: hasArrayField.contents
350
- };
332
+ dbSchema: dbSchema,
333
+ quotedFieldNames: quotedFieldNames,
334
+ quotedNonPrimaryFieldNames: quotedNonPrimaryFieldNames,
335
+ arrayFieldTypes: arrayFieldTypes,
336
+ hasArrayField: hasArrayField.contents
337
+ };
351
338
  }
352
339
 
353
340
  function getSingleIndices(table) {
354
- var indexFields = Belt_Array.keepMap(table.fields, (function (field) {
355
- if (field.TAG !== "Field") {
356
- return ;
357
- }
358
- var field$1 = field._0;
359
- if (field$1.isIndex) {
360
- return getDbFieldName(field$1);
361
- }
362
-
363
- }));
364
- return Belt_SetString.toArray(Belt_SetString.fromArray(Belt_Array.concatMany(Belt_Array.concat(Belt_Array.keepMap(getUnfilteredCompositeIndicesUnsafe(table), (function (cidx) {
365
- if (cidx.length !== 1) {
366
- return ;
367
- }
368
- var match = cidx[0];
369
- return [match.fieldName];
370
- })), [indexFields])))).sort();
341
+ let indexFields = Stdlib_Array.filterMap(table.fields, field => {
342
+ if (field.TAG !== "Field") {
343
+ return;
344
+ }
345
+ let field$1 = field._0;
346
+ if (field$1.isIndex) {
347
+ return getDbFieldName(field$1);
348
+ }
349
+ });
350
+ return Array.from(new Set(Stdlib_Array.filterMap(getUnfilteredCompositeIndicesUnsafe(table), cidx => {
351
+ if (cidx.length !== 1) {
352
+ return;
353
+ }
354
+ let match = cidx[0];
355
+ return [match.fieldName];
356
+ }).concat([indexFields]).flat())).toSorted(Primitive_string.compare);
371
357
  }
372
358
 
373
359
  function getCompositeIndices(table) {
374
- return Belt_Array.keep(getUnfilteredCompositeIndicesUnsafe(table), (function (ind) {
375
- return ind.length > 1;
376
- }));
360
+ return getUnfilteredCompositeIndicesUnsafe(table).filter(ind => ind.length > 1);
377
361
  }
378
362
 
379
- var idFieldName = "id";
363
+ let idFieldName = "id";
380
364
 
381
365
  export {
382
- makeEnumConfig ,
383
- mkField ,
384
- mkDerivedFromField ,
385
- getUserDefinedFieldName ,
386
- isLinkedEntityField ,
387
- getDbFieldName ,
388
- getFieldName ,
389
- idFieldName ,
390
- getPgFieldType ,
391
- mkTable ,
392
- getPrimaryKeyFieldNames ,
393
- getFields ,
394
- getFieldNames ,
395
- getNonDefaultFields ,
396
- getLinkedEntityFields ,
397
- getDerivedFromFields ,
398
- getNonDefaultFieldNames ,
399
- getFieldByName ,
400
- getFieldByDbName ,
401
- NonExistingTableField ,
402
- getUnfilteredCompositeIndicesUnsafe ,
403
- toSqlParams ,
404
- getSingleIndices ,
405
- getCompositeIndices ,
366
+ makeEnumConfig,
367
+ mkField,
368
+ mkDerivedFromField,
369
+ getUserDefinedFieldName,
370
+ isLinkedEntityField,
371
+ getDbFieldName,
372
+ getFieldName,
373
+ idFieldName,
374
+ getPgFieldType,
375
+ mkTable,
376
+ getPrimaryKeyFieldNames,
377
+ getFields,
378
+ getFieldNames,
379
+ getNonDefaultFields,
380
+ getLinkedEntityFields,
381
+ getDerivedFromFields,
382
+ getNonDefaultFieldNames,
383
+ getFieldByName,
384
+ getFieldByDbName,
385
+ NonExistingTableField,
386
+ getUnfilteredCompositeIndicesUnsafe,
387
+ toSqlParams,
388
+ getSingleIndices,
389
+ getCompositeIndices,
406
390
  }
407
- /* BigInt Not a pure module */
391
+ /* Utils Not a pure module */