envio 2.32.3 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin.js +5 -3
- package/evm.schema.json +23 -6
- package/fuel.schema.json +17 -5
- package/index.d.ts +1 -27
- package/index.js +9 -6
- package/package.json +12 -7
- package/rescript.json +4 -3
- package/src/{Address.res.js → Address.res.mjs} +7 -6
- package/src/Batch.res +4 -4
- package/src/{Batch.res.js → Batch.res.mjs} +19 -18
- package/src/{ChainMap.res.js → ChainMap.res.mjs} +20 -19
- package/src/Change.res +9 -0
- package/src/Config.res +5 -5
- package/src/{Config.res.js → Config.res.mjs} +13 -10
- package/src/Envio.gen.ts +4 -17
- package/src/Envio.res +13 -38
- package/src/{Envio.res.js → Envio.res.mjs} +5 -16
- package/src/{ErrorHandling.res.js → ErrorHandling.res.mjs} +10 -9
- package/src/EventRegister.res +10 -11
- package/src/{EventRegister.res.js → EventRegister.res.mjs} +33 -26
- package/src/EventRegister.resi +2 -1
- package/src/{EventUtils.res.js → EventUtils.res.mjs} +10 -9
- package/src/{EvmTypes.res.js → EvmTypes.res.mjs} +5 -4
- package/src/{FetchState.res.js → FetchState.res.mjs} +44 -43
- package/src/{Hasura.res.js → Hasura.res.mjs} +25 -24
- package/src/InMemoryStore.res +7 -15
- package/src/{InMemoryStore.res.js → InMemoryStore.res.mjs} +21 -22
- package/src/InMemoryTable.res +50 -35
- package/src/{InMemoryTable.res.js → InMemoryTable.res.mjs} +73 -104
- package/src/Internal.gen.ts +1 -5
- package/src/Internal.res +29 -40
- package/src/Internal.res.mjs +58 -0
- package/src/{LazyLoader.res.js → LazyLoader.res.mjs} +14 -13
- package/src/{LoadManager.res.js → LoadManager.res.mjs} +11 -10
- package/src/{LogSelection.res.js → LogSelection.res.mjs} +14 -13
- package/src/{Logging.res.js → Logging.res.mjs} +37 -36
- package/src/Persistence.res +190 -38
- package/src/Persistence.res.mjs +213 -0
- package/src/PgStorage.res +700 -14
- package/src/{PgStorage.res.js → PgStorage.res.mjs} +478 -65
- package/src/Platform.res +140 -0
- package/src/Platform.res.mjs +170 -0
- package/src/Prometheus.res +41 -0
- package/src/{Prometheus.res.js → Prometheus.res.mjs} +106 -60
- package/src/{ReorgDetection.res.js → ReorgDetection.res.mjs} +12 -11
- package/src/SafeCheckpointTracking.res +5 -4
- package/src/{SafeCheckpointTracking.res.js → SafeCheckpointTracking.res.mjs} +6 -5
- package/src/Sink.res +47 -0
- package/src/Sink.res.mjs +37 -0
- package/src/{TableIndices.res.js → TableIndices.res.mjs} +8 -7
- package/src/{Throttler.res.js → Throttler.res.mjs} +7 -6
- package/src/{Time.res.js → Time.res.mjs} +8 -7
- package/src/{TopicFilter.res.js → TopicFilter.res.mjs} +18 -17
- package/src/Utils.res +42 -0
- package/src/{Utils.res.js → Utils.res.mjs} +71 -34
- package/src/bindings/BigDecimal.gen.ts +2 -2
- package/src/bindings/BigDecimal.res +5 -5
- package/src/bindings/BigDecimal.res.d.mts +5 -0
- package/src/bindings/{BigDecimal.res.js → BigDecimal.res.mjs} +10 -9
- package/src/bindings/BigInt.gen.ts +2 -2
- package/src/bindings/BigInt.res.d.mts +5 -0
- package/src/bindings/{BigInt.res.js → BigInt.res.mjs} +25 -24
- package/src/bindings/ClickHouse.res +387 -0
- package/src/bindings/ClickHouse.res.mjs +275 -0
- package/src/bindings/Ethers.gen.ts +2 -2
- package/src/bindings/Ethers.res.d.mts +5 -0
- package/src/bindings/{Ethers.res.js → Ethers.res.mjs} +18 -17
- package/src/bindings/Express.res.mjs +2 -0
- package/src/bindings/{Hrtime.res.js → Hrtime.res.mjs} +13 -12
- package/src/bindings/{Lodash.res.js → Lodash.res.mjs} +4 -3
- package/src/bindings/NodeJs.res +13 -1
- package/src/bindings/NodeJs.res.mjs +48 -0
- package/src/bindings/Pino.res +4 -4
- package/src/bindings/{Pino.res.js → Pino.res.mjs} +16 -15
- package/src/bindings/Postgres.res +17 -2
- package/src/bindings/{Postgres.res.js → Postgres.res.mjs} +4 -3
- package/src/bindings/{PromClient.res.js → PromClient.res.mjs} +6 -5
- package/src/bindings/{Promise.res.js → Promise.res.mjs} +6 -5
- package/src/bindings/{SDSL.res.js → SDSL.res.mjs} +3 -2
- package/src/bindings/{Viem.res.js → Viem.res.mjs} +9 -8
- package/src/bindings/vendored-lodash-fns.js +3 -35
- package/src/db/EntityHistory.res +33 -156
- package/src/db/EntityHistory.res.mjs +121 -0
- package/src/db/InternalTable.gen.ts +2 -2
- package/src/db/InternalTable.res +55 -56
- package/src/db/{InternalTable.res.js → InternalTable.res.mjs} +68 -71
- package/src/db/{Schema.res.js → Schema.res.mjs} +10 -9
- package/src/db/Table.res +86 -22
- package/src/db/{Table.res.js → Table.res.mjs} +108 -40
- package/src/sources/{EventRouter.res.js → EventRouter.res.mjs} +17 -16
- package/src/sources/{Fuel.res.js → Fuel.res.mjs} +6 -5
- package/src/sources/{HyperFuel.res.js → HyperFuel.res.mjs} +14 -13
- package/src/sources/{HyperFuelClient.res.js → HyperFuelClient.res.mjs} +7 -6
- package/src/sources/{HyperFuelSource.res.js → HyperFuelSource.res.mjs} +28 -27
- package/src/sources/{HyperSync.res.js → HyperSync.res.mjs} +21 -20
- package/src/sources/HyperSyncClient.gen.ts +1 -1
- package/src/sources/HyperSyncClient.res +78 -20
- package/src/sources/{HyperSyncClient.res.js → HyperSyncClient.res.mjs} +32 -15
- package/src/sources/{HyperSyncJsonApi.res.js → HyperSyncJsonApi.res.mjs} +10 -9
- package/src/sources/HyperSyncSource.res +77 -9
- package/src/sources/{HyperSyncSource.res.js → HyperSyncSource.res.mjs} +99 -38
- package/src/sources/{Rpc.res.js → Rpc.res.mjs} +16 -15
- package/src/sources/{RpcSource.res.js → RpcSource.res.mjs} +40 -39
- package/src/sources/Source.res +1 -1
- package/src/sources/{Source.res.js → Source.res.mjs} +4 -3
- package/src/sources/SourceManager.res +12 -1
- package/src/sources/{SourceManager.res.js → SourceManager.res.mjs} +32 -21
- package/src/sources/vendored-fuel-abi-coder.js +94 -149
- package/src/vendored/{Rest.res.js → Rest.res.mjs} +12 -11
- package/src/Internal.res.js +0 -62
- package/src/Persistence.res.js +0 -159
- package/src/bindings/NodeJs.res.js +0 -35
- package/src/db/EntityHistory.res.js +0 -195
- /package/src/{Indexer.res.js → Change.res.mjs} +0 -0
- /package/src/{bindings/Express.res.js → Indexer.res.mjs} +0 -0
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var EntityHistory = require("./EntityHistory.res.js");
|
|
12
|
-
var S$RescriptSchema = require("rescript-schema/src/S.res.js");
|
|
2
|
+
|
|
3
|
+
import * as Table from "./Table.res.mjs";
|
|
4
|
+
import * as Utils from "../Utils.res.mjs";
|
|
5
|
+
import * as Js_exn from "rescript/lib/es6/js_exn.js";
|
|
6
|
+
import * as Address from "../Address.res.mjs";
|
|
7
|
+
import * as Js_dict from "rescript/lib/es6/js_dict.js";
|
|
8
|
+
import * as Js_null from "rescript/lib/es6/js_null.js";
|
|
9
|
+
import * as Belt_Array from "rescript/lib/es6/belt_Array.js";
|
|
10
|
+
import * as S$RescriptSchema from "rescript-schema/src/S.res.mjs";
|
|
13
11
|
|
|
14
12
|
var name = "dynamic_contract_registry";
|
|
15
13
|
|
|
@@ -35,27 +33,24 @@ var schema = S$RescriptSchema.schema(function (s) {
|
|
|
35
33
|
var rowsSchema = S$RescriptSchema.array(schema);
|
|
36
34
|
|
|
37
35
|
var table = Table.mkTable(name, undefined, [
|
|
38
|
-
Table.mkField("id", "
|
|
39
|
-
Table.mkField("chain_id", "
|
|
40
|
-
Table.mkField("registering_event_block_number", "
|
|
41
|
-
Table.mkField("registering_event_log_index", "
|
|
42
|
-
Table.mkField("registering_event_block_timestamp", "
|
|
43
|
-
Table.mkField("registering_event_contract_name", "
|
|
44
|
-
Table.mkField("registering_event_name", "
|
|
45
|
-
Table.mkField("registering_event_src_address", "
|
|
46
|
-
Table.mkField("contract_address", "
|
|
47
|
-
Table.mkField("contract_name", "
|
|
36
|
+
Table.mkField("id", "String", S$RescriptSchema.string, undefined, undefined, undefined, true, undefined, undefined),
|
|
37
|
+
Table.mkField("chain_id", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
38
|
+
Table.mkField("registering_event_block_number", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
39
|
+
Table.mkField("registering_event_log_index", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
40
|
+
Table.mkField("registering_event_block_timestamp", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
41
|
+
Table.mkField("registering_event_contract_name", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
42
|
+
Table.mkField("registering_event_name", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
43
|
+
Table.mkField("registering_event_src_address", "String", Address.schema, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
44
|
+
Table.mkField("contract_address", "String", Address.schema, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
45
|
+
Table.mkField("contract_name", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
48
46
|
]);
|
|
49
47
|
|
|
50
|
-
var entityHistory = EntityHistory.fromTable(table, schema, -1);
|
|
51
|
-
|
|
52
48
|
var config = {
|
|
53
49
|
name: name,
|
|
54
50
|
index: -1,
|
|
55
51
|
schema: schema,
|
|
56
52
|
rowsSchema: rowsSchema,
|
|
57
|
-
table: table
|
|
58
|
-
entityHistory: entityHistory
|
|
53
|
+
table: table
|
|
59
54
|
};
|
|
60
55
|
|
|
61
56
|
var DynamicContractRegistry = {
|
|
@@ -65,7 +60,6 @@ var DynamicContractRegistry = {
|
|
|
65
60
|
schema: schema,
|
|
66
61
|
rowsSchema: rowsSchema,
|
|
67
62
|
table: table,
|
|
68
|
-
entityHistory: entityHistory,
|
|
69
63
|
config: config
|
|
70
64
|
};
|
|
71
65
|
|
|
@@ -85,18 +79,18 @@ var fields = [
|
|
|
85
79
|
];
|
|
86
80
|
|
|
87
81
|
var table$1 = Table.mkTable("envio_chains", undefined, [
|
|
88
|
-
Table.mkField("id", "
|
|
89
|
-
Table.mkField("start_block", "
|
|
90
|
-
Table.mkField("end_block", "
|
|
91
|
-
Table.mkField("max_reorg_depth", "
|
|
92
|
-
Table.mkField("buffer_block", "
|
|
93
|
-
Table.mkField("source_block", "
|
|
94
|
-
Table.mkField("first_event_block", "
|
|
95
|
-
Table.mkField("ready_at", "
|
|
96
|
-
Table.mkField("events_processed", "
|
|
97
|
-
Table.mkField("_is_hyper_sync", "
|
|
98
|
-
Table.mkField("progress_block", "
|
|
99
|
-
Table.mkField("_num_batches_fetched", "
|
|
82
|
+
Table.mkField("id", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
83
|
+
Table.mkField("start_block", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
84
|
+
Table.mkField("end_block", "Int32", S$RescriptSchema.$$null(S$RescriptSchema.$$int), undefined, undefined, true, undefined, undefined, undefined),
|
|
85
|
+
Table.mkField("max_reorg_depth", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
86
|
+
Table.mkField("buffer_block", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
87
|
+
Table.mkField("source_block", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
88
|
+
Table.mkField("first_event_block", "Int32", S$RescriptSchema.$$null(S$RescriptSchema.$$int), undefined, undefined, true, undefined, undefined, undefined),
|
|
89
|
+
Table.mkField("ready_at", "Date", S$RescriptSchema.$$null(Utils.Schema.dbDate), undefined, undefined, true, undefined, undefined, undefined),
|
|
90
|
+
Table.mkField("events_processed", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
91
|
+
Table.mkField("_is_hyper_sync", "Boolean", S$RescriptSchema.bool, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
92
|
+
Table.mkField("progress_block", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
93
|
+
Table.mkField("_num_batches_fetched", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
100
94
|
]);
|
|
101
95
|
|
|
102
96
|
function initialFromConfig(chainConfig) {
|
|
@@ -231,12 +225,11 @@ var Chains = {
|
|
|
231
225
|
};
|
|
232
226
|
|
|
233
227
|
var table$2 = Table.mkTable("persisted_state", undefined, [
|
|
234
|
-
Table.mkField("id", "
|
|
235
|
-
Table.mkField("envio_version", "
|
|
236
|
-
Table.mkField("config_hash", "
|
|
237
|
-
Table.mkField("schema_hash", "
|
|
238
|
-
Table.mkField("
|
|
239
|
-
Table.mkField("abi_files_hash", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
228
|
+
Table.mkField("id", "Serial", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
229
|
+
Table.mkField("envio_version", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
230
|
+
Table.mkField("config_hash", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
231
|
+
Table.mkField("schema_hash", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
232
|
+
Table.mkField("abi_files_hash", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
240
233
|
]);
|
|
241
234
|
|
|
242
235
|
var PersistedState = {
|
|
@@ -244,11 +237,11 @@ var PersistedState = {
|
|
|
244
237
|
};
|
|
245
238
|
|
|
246
239
|
var table$3 = Table.mkTable("envio_checkpoints", undefined, [
|
|
247
|
-
Table.mkField("id", "
|
|
248
|
-
Table.mkField("chain_id", "
|
|
249
|
-
Table.mkField("block_number", "
|
|
250
|
-
Table.mkField("block_hash", "
|
|
251
|
-
Table.mkField("events_processed", "
|
|
240
|
+
Table.mkField("id", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
241
|
+
Table.mkField("chain_id", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
242
|
+
Table.mkField("block_number", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
243
|
+
Table.mkField("block_hash", "String", S$RescriptSchema.$$null(S$RescriptSchema.string), undefined, undefined, true, undefined, undefined, undefined),
|
|
244
|
+
Table.mkField("events_processed", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
252
245
|
]);
|
|
253
246
|
|
|
254
247
|
function makeGetReorgCheckpointsQuery(pgSchema) {
|
|
@@ -339,19 +332,21 @@ var schema$1 = S$RescriptSchema.schema(function (s) {
|
|
|
339
332
|
});
|
|
340
333
|
|
|
341
334
|
var table$4 = Table.mkTable("raw_events", undefined, [
|
|
342
|
-
Table.mkField("chain_id", "
|
|
343
|
-
Table.mkField("event_id",
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
Table.mkField("
|
|
347
|
-
Table.mkField("
|
|
348
|
-
Table.mkField("
|
|
349
|
-
Table.mkField("
|
|
350
|
-
Table.mkField("
|
|
351
|
-
Table.mkField("
|
|
352
|
-
Table.mkField("
|
|
353
|
-
Table.mkField("
|
|
354
|
-
Table.mkField("
|
|
335
|
+
Table.mkField("chain_id", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
336
|
+
Table.mkField("event_id", {
|
|
337
|
+
type: "BigInt"
|
|
338
|
+
}, S$RescriptSchema.bigint, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
339
|
+
Table.mkField("event_name", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
340
|
+
Table.mkField("contract_name", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
341
|
+
Table.mkField("block_number", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
342
|
+
Table.mkField("log_index", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
343
|
+
Table.mkField("src_address", "String", Address.schema, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
344
|
+
Table.mkField("block_hash", "String", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
345
|
+
Table.mkField("block_timestamp", "Int32", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
346
|
+
Table.mkField("block_fields", "Json", S$RescriptSchema.json(false), undefined, undefined, undefined, undefined, undefined, undefined),
|
|
347
|
+
Table.mkField("transaction_fields", "Json", S$RescriptSchema.json(false), undefined, undefined, undefined, undefined, undefined, undefined),
|
|
348
|
+
Table.mkField("params", "Json", S$RescriptSchema.json(false), undefined, undefined, undefined, undefined, undefined, undefined),
|
|
349
|
+
Table.mkField("serial", "Serial", S$RescriptSchema.$$null(S$RescriptSchema.$$int), undefined, undefined, true, true, undefined, undefined)
|
|
355
350
|
]);
|
|
356
351
|
|
|
357
352
|
var RawEvents = {
|
|
@@ -384,13 +379,15 @@ var isNullable = true;
|
|
|
384
379
|
|
|
385
380
|
var isIndex = true;
|
|
386
381
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
382
|
+
export {
|
|
383
|
+
isPrimaryKey ,
|
|
384
|
+
isNullable ,
|
|
385
|
+
isIndex ,
|
|
386
|
+
DynamicContractRegistry ,
|
|
387
|
+
Chains ,
|
|
388
|
+
PersistedState ,
|
|
389
|
+
Checkpoints ,
|
|
390
|
+
RawEvents ,
|
|
391
|
+
Views ,
|
|
392
|
+
}
|
|
396
393
|
/* schema Not a pure module */
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
'use strict';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import * as Table from "./Table.res.mjs";
|
|
4
|
+
import * as Js_dict from "rescript/lib/es6/js_dict.js";
|
|
5
|
+
import * as Belt_Array from "rescript/lib/es6/belt_Array.js";
|
|
6
|
+
import * as Caml_exceptions from "rescript/lib/es6/caml_exceptions.js";
|
|
8
7
|
|
|
9
8
|
function make(tables) {
|
|
10
9
|
return Js_dict.fromArray(Belt_Array.map(tables, (function (table) {
|
|
@@ -47,8 +46,10 @@ function getDerivedFromFieldName(schema, derivedFromField) {
|
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
export {
|
|
50
|
+
make ,
|
|
51
|
+
UndefinedEntity ,
|
|
52
|
+
UndefinedFieldInEntity ,
|
|
53
|
+
getDerivedFromFieldName ,
|
|
54
|
+
}
|
|
54
55
|
/* Table Not a pure module */
|
package/src/db/Table.res
CHANGED
|
@@ -2,20 +2,35 @@ open Belt
|
|
|
2
2
|
|
|
3
3
|
type primitive
|
|
4
4
|
type derived
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
type enum
|
|
7
|
+
type enumConfig<'enum> = {
|
|
8
|
+
name: string,
|
|
9
|
+
variants: array<'enum>,
|
|
10
|
+
schema: S.t<'enum>,
|
|
11
|
+
}
|
|
12
|
+
external fromGenericEnumConfig: enumConfig<'enum> => enumConfig<enum> = "%identity"
|
|
13
|
+
|
|
14
|
+
let makeEnumConfig = (~name, ~variants) => {
|
|
15
|
+
name,
|
|
16
|
+
variants,
|
|
17
|
+
schema: S.enum(variants),
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@tag("type")
|
|
6
21
|
type fieldType =
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
22
|
+
| String
|
|
23
|
+
| Boolean
|
|
24
|
+
| Uint32
|
|
25
|
+
| Int32
|
|
26
|
+
| Number
|
|
27
|
+
| BigInt({precision?: int})
|
|
28
|
+
| BigDecimal({config?: (int, int)}) // (precision, scale)
|
|
29
|
+
| Serial
|
|
30
|
+
| Json
|
|
31
|
+
| Date
|
|
32
|
+
| Enum({config: enumConfig<enum>})
|
|
33
|
+
| Entity({name: string})
|
|
19
34
|
|
|
20
35
|
type field = {
|
|
21
36
|
fieldName: string,
|
|
@@ -84,8 +99,52 @@ let getFieldName = fieldOrDerived =>
|
|
|
84
99
|
| DerivedFrom({fieldName}) => fieldName
|
|
85
100
|
}
|
|
86
101
|
|
|
87
|
-
let
|
|
88
|
-
|
|
102
|
+
let idFieldName = "id"
|
|
103
|
+
|
|
104
|
+
let getPgFieldType = (
|
|
105
|
+
~fieldType: fieldType,
|
|
106
|
+
~pgSchema,
|
|
107
|
+
~isArray,
|
|
108
|
+
~isNumericArrayAsText,
|
|
109
|
+
~isNullable,
|
|
110
|
+
) => {
|
|
111
|
+
let columnType = switch fieldType {
|
|
112
|
+
| String => (Postgres.Text :> string)
|
|
113
|
+
| Boolean => (Postgres.Boolean :> string)
|
|
114
|
+
| Int32 => (Postgres.Integer :> string)
|
|
115
|
+
| Uint32 => (Postgres.BigInt :> string)
|
|
116
|
+
| Number => (Postgres.DoublePrecision :> string)
|
|
117
|
+
| BigInt({?precision}) =>
|
|
118
|
+
(Postgres.Numeric :> string) ++
|
|
119
|
+
switch precision {
|
|
120
|
+
| Some(precision) => `(${precision->Int.toString}, 0)` // scale is always 0 for BigInt
|
|
121
|
+
| None => ""
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
| BigDecimal({?config}) =>
|
|
125
|
+
(Postgres.Numeric :> string) ++
|
|
126
|
+
switch config {
|
|
127
|
+
| Some((precision, scale)) => `(${precision->Int.toString}, ${scale->Int.toString})`
|
|
128
|
+
| None => ""
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
| Serial => (Postgres.Serial :> string)
|
|
132
|
+
| Json => (Postgres.JsonB :> string)
|
|
133
|
+
| Date =>
|
|
134
|
+
(isNullable ? Postgres.TimestampWithTimezoneNull : Postgres.TimestampWithTimezone :> string)
|
|
135
|
+
| Enum({config}) => `"${pgSchema}".${config.name}`
|
|
136
|
+
| Entity(_) => (Postgres.Text :> string) // FIXME: Will it work correctly if id is not a text column?
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Workaround for Hasura bug https://github.com/enviodev/hyperindex/issues/788
|
|
140
|
+
let isNumericAsText = isArray && isNumericArrayAsText
|
|
141
|
+
let columnType = if columnType == (Postgres.Numeric :> string) && isNumericAsText {
|
|
142
|
+
(Postgres.Text :> string)
|
|
143
|
+
} else {
|
|
144
|
+
columnType
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
columnType ++ (isArray ? "[]" : "")
|
|
89
148
|
}
|
|
90
149
|
|
|
91
150
|
type table = {
|
|
@@ -240,15 +299,20 @@ let toSqlParams = (table: table, ~schema, ~pgSchema) => {
|
|
|
240
299
|
->Js.Array2.push(
|
|
241
300
|
switch field {
|
|
242
301
|
| Field(f) =>
|
|
302
|
+
let pgFieldType = getPgFieldType(
|
|
303
|
+
~fieldType=f.fieldType,
|
|
304
|
+
~pgSchema,
|
|
305
|
+
~isArray=true,
|
|
306
|
+
~isNullable=f.isNullable,
|
|
307
|
+
~isNumericArrayAsText=false, // TODO: Test whether it should be passed via args and match the column type
|
|
308
|
+
)
|
|
243
309
|
switch f.fieldType {
|
|
244
|
-
|
|
245
|
-
|
|
|
246
|
-
|
|
|
247
|
-
| Boolean => `${(Integer :> string)}[]::${(f.fieldType :> string)}`
|
|
248
|
-
| fieldType => (fieldType :> string)
|
|
310
|
+
| Enum(_) => `${(Text: Postgres.columnType :> string)}[]::${pgFieldType}`
|
|
311
|
+
| Boolean => `${(Integer: Postgres.columnType :> string)}[]::${pgFieldType}`
|
|
312
|
+
| _ => pgFieldType
|
|
249
313
|
}
|
|
250
|
-
| DerivedFrom(_) => (Text :> string)
|
|
251
|
-
}
|
|
314
|
+
| DerivedFrom(_) => (Text: Postgres.columnType :> string) ++ "[]"
|
|
315
|
+
},
|
|
252
316
|
)
|
|
253
317
|
->ignore
|
|
254
318
|
dict->Js.Dict.set(location, s.matches(schema->coerceSchema))
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
'use strict';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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";
|
|
10
|
+
import * as S$RescriptSchema from "rescript-schema/src/S.res.mjs";
|
|
11
|
+
|
|
12
|
+
function makeEnumConfig(name, variants) {
|
|
13
|
+
return {
|
|
14
|
+
name: name,
|
|
15
|
+
variants: variants,
|
|
16
|
+
schema: S$RescriptSchema.$$enum(variants)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
12
19
|
|
|
13
20
|
function mkField(fieldName, fieldType, fieldSchema, $$default, isArrayOpt, isNullableOpt, isPrimaryKeyOpt, isIndexOpt, linkedEntity) {
|
|
14
21
|
var isArray = isArrayOpt !== undefined ? isArrayOpt : false;
|
|
@@ -66,9 +73,63 @@ function getFieldName(fieldOrDerived) {
|
|
|
66
73
|
}
|
|
67
74
|
}
|
|
68
75
|
|
|
69
|
-
function
|
|
70
|
-
|
|
71
|
-
|
|
76
|
+
function getPgFieldType(fieldType, pgSchema, isArray, isNumericArrayAsText, isNullable) {
|
|
77
|
+
var columnType;
|
|
78
|
+
if (typeof fieldType !== "object") {
|
|
79
|
+
switch (fieldType) {
|
|
80
|
+
case "String" :
|
|
81
|
+
columnType = "TEXT";
|
|
82
|
+
break;
|
|
83
|
+
case "Boolean" :
|
|
84
|
+
columnType = "BOOLEAN";
|
|
85
|
+
break;
|
|
86
|
+
case "Uint32" :
|
|
87
|
+
columnType = "BIGINT";
|
|
88
|
+
break;
|
|
89
|
+
case "Int32" :
|
|
90
|
+
columnType = "INTEGER";
|
|
91
|
+
break;
|
|
92
|
+
case "Number" :
|
|
93
|
+
columnType = "DOUBLE PRECISION";
|
|
94
|
+
break;
|
|
95
|
+
case "Serial" :
|
|
96
|
+
columnType = "SERIAL";
|
|
97
|
+
break;
|
|
98
|
+
case "Json" :
|
|
99
|
+
columnType = "JSONB";
|
|
100
|
+
break;
|
|
101
|
+
case "Date" :
|
|
102
|
+
columnType = isNullable ? "TIMESTAMP WITH TIME ZONE NULL" : "TIMESTAMP WITH TIME ZONE";
|
|
103
|
+
break;
|
|
104
|
+
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
switch (fieldType.type) {
|
|
108
|
+
case "BigInt" :
|
|
109
|
+
var precision = fieldType.precision;
|
|
110
|
+
columnType = "NUMERIC" + (
|
|
111
|
+
precision !== undefined ? "(" + String(precision) + ", 0)" : ""
|
|
112
|
+
);
|
|
113
|
+
break;
|
|
114
|
+
case "BigDecimal" :
|
|
115
|
+
var config = fieldType.config;
|
|
116
|
+
columnType = "NUMERIC" + (
|
|
117
|
+
config !== undefined ? "(" + String(config[0]) + ", " + String(config[1]) + ")" : ""
|
|
118
|
+
);
|
|
119
|
+
break;
|
|
120
|
+
case "Enum" :
|
|
121
|
+
columnType = "\"" + pgSchema + "\"." + fieldType.config.name;
|
|
122
|
+
break;
|
|
123
|
+
case "Entity" :
|
|
124
|
+
columnType = "TEXT";
|
|
125
|
+
break;
|
|
126
|
+
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
var isNumericAsText = isArray && isNumericArrayAsText;
|
|
130
|
+
var columnType$1 = columnType === "NUMERIC" && isNumericAsText ? "TEXT" : columnType;
|
|
131
|
+
return columnType$1 + (
|
|
132
|
+
isArray ? "[]" : ""
|
|
72
133
|
);
|
|
73
134
|
}
|
|
74
135
|
|
|
@@ -258,16 +319,17 @@ function toSqlParams(table, schema, pgSchema) {
|
|
|
258
319
|
var tmp;
|
|
259
320
|
if (field$1.TAG === "Field") {
|
|
260
321
|
var f = field$1._0;
|
|
261
|
-
var
|
|
262
|
-
|
|
263
|
-
|
|
322
|
+
var pgFieldType = getPgFieldType(f.fieldType, pgSchema, true, false, f.isNullable);
|
|
323
|
+
var match = f.fieldType;
|
|
324
|
+
tmp = typeof match !== "object" ? (
|
|
325
|
+
match === "Boolean" ? "INTEGER[]::" + pgFieldType : pgFieldType
|
|
264
326
|
) : (
|
|
265
|
-
|
|
327
|
+
match.type === "Enum" ? "TEXT[]::" + pgFieldType : pgFieldType
|
|
266
328
|
);
|
|
267
329
|
} else {
|
|
268
|
-
tmp = "TEXT";
|
|
330
|
+
tmp = "TEXT[]";
|
|
269
331
|
}
|
|
270
|
-
arrayFieldTypes.push(tmp
|
|
332
|
+
arrayFieldTypes.push(tmp);
|
|
271
333
|
dict[$$location] = s.m(coerceSchema(param.schema));
|
|
272
334
|
}));
|
|
273
335
|
return dict;
|
|
@@ -303,26 +365,32 @@ function getCompositeIndices(table) {
|
|
|
303
365
|
}));
|
|
304
366
|
}
|
|
305
367
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
368
|
+
var idFieldName = "id";
|
|
369
|
+
|
|
370
|
+
export {
|
|
371
|
+
makeEnumConfig ,
|
|
372
|
+
mkField ,
|
|
373
|
+
mkDerivedFromField ,
|
|
374
|
+
getUserDefinedFieldName ,
|
|
375
|
+
isLinkedEntityField ,
|
|
376
|
+
getDbFieldName ,
|
|
377
|
+
getFieldName ,
|
|
378
|
+
idFieldName ,
|
|
379
|
+
getPgFieldType ,
|
|
380
|
+
mkTable ,
|
|
381
|
+
getPrimaryKeyFieldNames ,
|
|
382
|
+
getFields ,
|
|
383
|
+
getFieldNames ,
|
|
384
|
+
getNonDefaultFields ,
|
|
385
|
+
getLinkedEntityFields ,
|
|
386
|
+
getDerivedFromFields ,
|
|
387
|
+
getNonDefaultFieldNames ,
|
|
388
|
+
getFieldByName ,
|
|
389
|
+
getFieldByDbName ,
|
|
390
|
+
NonExistingTableField ,
|
|
391
|
+
getUnfilteredCompositeIndicesUnsafe ,
|
|
392
|
+
toSqlParams ,
|
|
393
|
+
getSingleIndices ,
|
|
394
|
+
getCompositeIndices ,
|
|
395
|
+
}
|
|
328
396
|
/* BigInt Not a pure module */
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
'use strict';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
import * as Js_exn from "rescript/lib/es6/js_exn.js";
|
|
4
|
+
import * as ChainMap from "../ChainMap.res.mjs";
|
|
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 Caml_exceptions from "rescript/lib/es6/caml_exceptions.js";
|
|
9
|
+
import * as Caml_js_exceptions from "rescript/lib/es6/caml_js_exceptions.js";
|
|
11
10
|
|
|
12
11
|
var EventDuplicate = /* @__PURE__ */Caml_exceptions.create("EventRouter.EventDuplicate");
|
|
13
12
|
|
|
@@ -114,12 +113,14 @@ function fromEvmEventModsOrThrow(events, chain) {
|
|
|
114
113
|
return router;
|
|
115
114
|
}
|
|
116
115
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
116
|
+
export {
|
|
117
|
+
EventDuplicate ,
|
|
118
|
+
WildcardCollision ,
|
|
119
|
+
Group ,
|
|
120
|
+
empty$1 as empty,
|
|
121
|
+
addOrThrow$1 as addOrThrow,
|
|
122
|
+
get$1 as get,
|
|
123
|
+
getEvmEventId ,
|
|
124
|
+
fromEvmEventModsOrThrow ,
|
|
125
|
+
}
|
|
125
126
|
/* ChainMap Not a pure module */
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
'use strict';
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
import * as VendoredFuelAbiCoderJs from "./vendored-fuel-abi-coder.js";
|
|
5
4
|
|
|
6
5
|
function transpileAbi(prim) {
|
|
7
6
|
return VendoredFuelAbiCoderJs.transpileAbi(prim);
|
|
@@ -22,7 +21,9 @@ var Receipt = {
|
|
|
22
21
|
getLogDataDecoder: getLogDataDecoder
|
|
23
22
|
};
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
export {
|
|
25
|
+
transpileAbi ,
|
|
26
|
+
getLogDecoder ,
|
|
27
|
+
Receipt ,
|
|
28
|
+
}
|
|
28
29
|
/* ./vendored-fuel-abi-coder.js Not a pure module */
|