envio 2.27.6 → 2.28.0-alpha.2
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/package.json +5 -5
- package/rescript.json +3 -0
- package/src/FetchState.res +21 -14
- package/src/FetchState.res.js +14 -5
- package/src/Hasura.res +31 -12
- package/src/Hasura.res.js +31 -13
- package/src/Internal.res +7 -4
- package/src/InternalConfig.res +20 -0
- package/src/InternalConfig.res.js +2 -0
- package/src/Js.shim.ts +11 -0
- package/src/LoadManager.res +12 -6
- package/src/LoadManager.res.js +13 -6
- package/src/Persistence.res +25 -33
- package/src/Persistence.res.js +18 -20
- package/src/PgStorage.res +162 -102
- package/src/PgStorage.res.js +146 -103
- package/src/Prometheus.res +2 -2
- package/src/Prometheus.res.js +2 -3
- package/src/bindings/Pino.res +1 -1
- package/src/bindings/Pino.res.js +2 -1
- package/src/bindings/Postgres.res +1 -1
- package/src/db/EntityHistory.res +18 -17
- package/src/db/EntityHistory.res.js +28 -26
- package/src/db/InternalTable.gen.ts +43 -0
- package/src/db/InternalTable.res +430 -0
- package/src/db/InternalTable.res.js +315 -0
- package/src/vendored/Rest.res +11 -2
- package/src/vendored/Rest.res.js +44 -35
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var Table = require("./Table.res.js");
|
|
5
|
+
var Utils = require("../Utils.res.js");
|
|
6
|
+
var Js_exn = require("rescript/lib/js/js_exn.js");
|
|
7
|
+
var Address = require("../Address.res.js");
|
|
8
|
+
var Js_dict = require("rescript/lib/js/js_dict.js");
|
|
9
|
+
var Js_null = require("rescript/lib/js/js_null.js");
|
|
10
|
+
var Belt_Array = require("rescript/lib/js/belt_Array.js");
|
|
11
|
+
var EntityHistory = require("./EntityHistory.res.js");
|
|
12
|
+
var S$RescriptSchema = require("rescript-schema/src/S.res.js");
|
|
13
|
+
|
|
14
|
+
var blockTimestampFieldName = "block_timestamp";
|
|
15
|
+
|
|
16
|
+
var blockNumberFieldName = "block_number";
|
|
17
|
+
|
|
18
|
+
var logIndexFieldName = "log_index";
|
|
19
|
+
|
|
20
|
+
var isPreRegisteringDynamicContractsFieldName = "is_pre_registering_dynamic_contracts";
|
|
21
|
+
|
|
22
|
+
var table = Table.mkTable("event_sync_state", undefined, [
|
|
23
|
+
Table.mkField("chain_id", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
24
|
+
Table.mkField(blockNumberFieldName, "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
25
|
+
Table.mkField(logIndexFieldName, "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
26
|
+
Table.mkField(blockTimestampFieldName, "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
27
|
+
Table.mkField(isPreRegisteringDynamicContractsFieldName, "BOOLEAN", S$RescriptSchema.bool, "false", undefined, undefined, undefined, undefined, undefined)
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
function resetCurrentCurrentSyncStateQuery(pgSchema) {
|
|
31
|
+
return "UPDATE \"" + pgSchema + "\".\"" + table.tableName + "\"\n SET " + blockNumberFieldName + " = 0, \n " + logIndexFieldName + " = 0, \n " + blockTimestampFieldName + " = 0, \n " + isPreRegisteringDynamicContractsFieldName + " = false;";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var EventSyncState = {
|
|
35
|
+
blockTimestampFieldName: blockTimestampFieldName,
|
|
36
|
+
blockNumberFieldName: blockNumberFieldName,
|
|
37
|
+
logIndexFieldName: logIndexFieldName,
|
|
38
|
+
isPreRegisteringDynamicContractsFieldName: isPreRegisteringDynamicContractsFieldName,
|
|
39
|
+
table: table,
|
|
40
|
+
resetCurrentCurrentSyncStateQuery: resetCurrentCurrentSyncStateQuery
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
var fields = [
|
|
44
|
+
"id",
|
|
45
|
+
"start_block",
|
|
46
|
+
"end_block",
|
|
47
|
+
"source_block",
|
|
48
|
+
"first_event_block",
|
|
49
|
+
"buffer_block",
|
|
50
|
+
"ready_at",
|
|
51
|
+
"events_processed",
|
|
52
|
+
"_is_hyper_sync",
|
|
53
|
+
"_latest_processed_block",
|
|
54
|
+
"_num_batches_fetched"
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
var table$1 = Table.mkTable("envio_chains", undefined, [
|
|
58
|
+
Table.mkField("id", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
59
|
+
Table.mkField("start_block", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
60
|
+
Table.mkField("end_block", "INTEGER", S$RescriptSchema.$$null(S$RescriptSchema.$$int), undefined, undefined, true, undefined, undefined, undefined),
|
|
61
|
+
Table.mkField("buffer_block", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
62
|
+
Table.mkField("source_block", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
63
|
+
Table.mkField("first_event_block", "INTEGER", S$RescriptSchema.$$null(S$RescriptSchema.$$int), undefined, undefined, true, undefined, undefined, undefined),
|
|
64
|
+
Table.mkField("ready_at", "TIMESTAMP WITH TIME ZONE NULL", S$RescriptSchema.$$null(Utils.Schema.dbDate), undefined, undefined, true, undefined, undefined, undefined),
|
|
65
|
+
Table.mkField("events_processed", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
66
|
+
Table.mkField("_is_hyper_sync", "BOOLEAN", S$RescriptSchema.bool, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
67
|
+
Table.mkField("_latest_processed_block", "INTEGER", S$RescriptSchema.$$null(S$RescriptSchema.$$int), undefined, undefined, true, undefined, undefined, undefined),
|
|
68
|
+
Table.mkField("_num_batches_fetched", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
69
|
+
]);
|
|
70
|
+
|
|
71
|
+
function initialFromConfig(chainConfig) {
|
|
72
|
+
return {
|
|
73
|
+
id: chainConfig.id,
|
|
74
|
+
start_block: chainConfig.startBlock,
|
|
75
|
+
end_block: Js_null.fromOption(chainConfig.endBlock),
|
|
76
|
+
source_block: 0,
|
|
77
|
+
first_event_block: null,
|
|
78
|
+
buffer_block: -1,
|
|
79
|
+
ready_at: null,
|
|
80
|
+
events_processed: 0,
|
|
81
|
+
_latest_processed_block: null,
|
|
82
|
+
_is_hyper_sync: false,
|
|
83
|
+
_num_batches_fetched: 0
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function makeInitialValuesQuery(pgSchema, chainConfigs) {
|
|
88
|
+
if (chainConfigs.length === 0) {
|
|
89
|
+
return ;
|
|
90
|
+
}
|
|
91
|
+
var columnNames = Belt_Array.map(fields, (function (field) {
|
|
92
|
+
return "\"" + field + "\"";
|
|
93
|
+
}));
|
|
94
|
+
var valuesRows = Belt_Array.map(chainConfigs, (function (chainConfig) {
|
|
95
|
+
var initialValues = initialFromConfig(chainConfig);
|
|
96
|
+
var values = Belt_Array.map(fields, (function (field) {
|
|
97
|
+
var value = Js_dict.get(initialValues, field);
|
|
98
|
+
var match = typeof value;
|
|
99
|
+
switch (match) {
|
|
100
|
+
case "boolean" :
|
|
101
|
+
if (value) {
|
|
102
|
+
return "true";
|
|
103
|
+
} else {
|
|
104
|
+
return "false";
|
|
105
|
+
}
|
|
106
|
+
case "number" :
|
|
107
|
+
return String(value);
|
|
108
|
+
case "object" :
|
|
109
|
+
return "NULL";
|
|
110
|
+
default:
|
|
111
|
+
return Js_exn.raiseError("Invalid envio_chains value type");
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
return "(" + values.join(", ") + ")";
|
|
115
|
+
}));
|
|
116
|
+
return "INSERT INTO \"" + pgSchema + "\".\"" + table$1.tableName + "\" (" + columnNames.join(", ") + ")\nVALUES " + valuesRows.join(",\n ") + ";";
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
var updateFields = [
|
|
120
|
+
"source_block",
|
|
121
|
+
"first_event_block",
|
|
122
|
+
"buffer_block",
|
|
123
|
+
"ready_at",
|
|
124
|
+
"events_processed",
|
|
125
|
+
"_is_hyper_sync",
|
|
126
|
+
"_latest_processed_block",
|
|
127
|
+
"_num_batches_fetched"
|
|
128
|
+
];
|
|
129
|
+
|
|
130
|
+
function makeSingleUpdateQuery(pgSchema) {
|
|
131
|
+
var setClauses = Belt_Array.mapWithIndex(updateFields, (function (index, field) {
|
|
132
|
+
var paramIndex = index + 2 | 0;
|
|
133
|
+
return "\"" + field + "\" = $" + String(paramIndex);
|
|
134
|
+
}));
|
|
135
|
+
return "UPDATE \"" + pgSchema + "\".\"" + table$1.tableName + "\"\nSET " + setClauses.join(",\n ") + "\nWHERE \"id\" = $1;";
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function setValues(sql, pgSchema, chainsData) {
|
|
139
|
+
var query = makeSingleUpdateQuery(pgSchema);
|
|
140
|
+
return Promise.all(Belt_Array.map(chainsData, (function (chain) {
|
|
141
|
+
var params = [];
|
|
142
|
+
var idValue = Js_dict.get(chain, "id");
|
|
143
|
+
params.push(idValue);
|
|
144
|
+
updateFields.forEach(function (field) {
|
|
145
|
+
var value = Js_dict.get(chain, field);
|
|
146
|
+
params.push(value);
|
|
147
|
+
});
|
|
148
|
+
return sql.unsafe(query, params, {prepare: true});
|
|
149
|
+
})));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
var Chains = {
|
|
153
|
+
fields: fields,
|
|
154
|
+
table: table$1,
|
|
155
|
+
initialFromConfig: initialFromConfig,
|
|
156
|
+
makeInitialValuesQuery: makeInitialValuesQuery,
|
|
157
|
+
updateFields: updateFields,
|
|
158
|
+
makeSingleUpdateQuery: makeSingleUpdateQuery,
|
|
159
|
+
setValues: setValues
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
var table$2 = Table.mkTable("persisted_state", undefined, [
|
|
163
|
+
Table.mkField("id", "SERIAL", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
164
|
+
Table.mkField("envio_version", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
165
|
+
Table.mkField("config_hash", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
166
|
+
Table.mkField("schema_hash", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
167
|
+
Table.mkField("handler_files_hash", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
168
|
+
Table.mkField("abi_files_hash", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
169
|
+
]);
|
|
170
|
+
|
|
171
|
+
var PersistedState = {
|
|
172
|
+
table: table$2
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
var table$3 = Table.mkTable("end_of_block_range_scanned_data", undefined, [
|
|
176
|
+
Table.mkField("chain_id", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
177
|
+
Table.mkField("block_number", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined),
|
|
178
|
+
Table.mkField("block_hash", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
179
|
+
]);
|
|
180
|
+
|
|
181
|
+
var EndOfBlockRangeScannedData = {
|
|
182
|
+
table: table$3
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
var schema = S$RescriptSchema.schema(function (s) {
|
|
186
|
+
return {
|
|
187
|
+
chain_id: s.m(S$RescriptSchema.$$int),
|
|
188
|
+
event_id: s.m(S$RescriptSchema.bigint),
|
|
189
|
+
event_name: s.m(S$RescriptSchema.string),
|
|
190
|
+
contract_name: s.m(S$RescriptSchema.string),
|
|
191
|
+
block_number: s.m(S$RescriptSchema.$$int),
|
|
192
|
+
log_index: s.m(S$RescriptSchema.$$int),
|
|
193
|
+
src_address: s.m(Address.schema),
|
|
194
|
+
block_hash: s.m(S$RescriptSchema.string),
|
|
195
|
+
block_timestamp: s.m(S$RescriptSchema.$$int),
|
|
196
|
+
block_fields: s.m(S$RescriptSchema.json(false)),
|
|
197
|
+
transaction_fields: s.m(S$RescriptSchema.json(false)),
|
|
198
|
+
params: s.m(S$RescriptSchema.json(false))
|
|
199
|
+
};
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
var table$4 = Table.mkTable("raw_events", undefined, [
|
|
203
|
+
Table.mkField("chain_id", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
204
|
+
Table.mkField("event_id", "NUMERIC", S$RescriptSchema.bigint, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
205
|
+
Table.mkField("event_name", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
206
|
+
Table.mkField("contract_name", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
207
|
+
Table.mkField("block_number", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
208
|
+
Table.mkField("log_index", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
209
|
+
Table.mkField("src_address", "TEXT", Address.schema, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
210
|
+
Table.mkField("block_hash", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
211
|
+
Table.mkField("block_timestamp", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
212
|
+
Table.mkField("block_fields", "JSONB", S$RescriptSchema.json(false), undefined, undefined, undefined, undefined, undefined, undefined),
|
|
213
|
+
Table.mkField("transaction_fields", "JSONB", S$RescriptSchema.json(false), undefined, undefined, undefined, undefined, undefined, undefined),
|
|
214
|
+
Table.mkField("params", "JSONB", S$RescriptSchema.json(false), undefined, undefined, undefined, undefined, undefined, undefined),
|
|
215
|
+
Table.mkField("db_write_timestamp", "TIMESTAMP", S$RescriptSchema.$$int, "CURRENT_TIMESTAMP", undefined, undefined, undefined, undefined, undefined),
|
|
216
|
+
Table.mkField("serial", "SERIAL", S$RescriptSchema.$$null(S$RescriptSchema.$$int), undefined, undefined, true, true, undefined, undefined)
|
|
217
|
+
]);
|
|
218
|
+
|
|
219
|
+
var RawEvents = {
|
|
220
|
+
schema: schema,
|
|
221
|
+
table: table$4
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
var metaViewName = "_meta";
|
|
225
|
+
|
|
226
|
+
var chainMetadataViewName = "chain_metadata";
|
|
227
|
+
|
|
228
|
+
function makeMetaViewQuery(pgSchema) {
|
|
229
|
+
return "CREATE VIEW \"" + pgSchema + "\".\"" + metaViewName + "\" AS \n SELECT \n \"" + "id" + "\" AS \"chainId\",\n \"" + "start_block" + "\" AS \"startBlock\", \n \"" + "end_block" + "\" AS \"endBlock\",\n \"" + "buffer_block" + "\" AS \"bufferBlock\",\n \"" + "ready_at" + "\" AS \"readyAt\",\n \"" + "first_event_block" + "\" AS \"firstEventBlock\",\n \"" + "events_processed" + "\" AS \"eventsProcessed\",\n (\"" + "ready_at" + "\" IS NOT NULL) AS \"isReady\"\n FROM \"" + pgSchema + "\".\"" + table$1.tableName + "\"\n ORDER BY \"" + "id" + "\";";
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function makeChainMetadataViewQuery(pgSchema) {
|
|
233
|
+
return "CREATE VIEW \"" + pgSchema + "\".\"" + chainMetadataViewName + "\" AS \n SELECT \n \"" + "source_block" + "\" AS \"block_height\",\n \"" + "id" + "\" AS \"chain_id\",\n \"" + "end_block" + "\" AS \"end_block\", \n \"" + "first_event_block" + "\" AS \"first_event_block_number\",\n \"" + "_is_hyper_sync" + "\" AS \"is_hyper_sync\",\n \"" + "buffer_block" + "\" AS \"latest_fetched_block_number\",\n \"" + "_latest_processed_block" + "\" AS \"latest_processed_block\",\n \"" + "_num_batches_fetched" + "\" AS \"num_batches_fetched\",\n \"" + "events_processed" + "\" AS \"num_events_processed\",\n \"" + "start_block" + "\" AS \"start_block\",\n \"" + "ready_at" + "\" AS \"timestamp_caught_up_to_head_or_endblock\"\n FROM \"" + pgSchema + "\".\"" + table$1.tableName + "\";";
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
var Views = {
|
|
237
|
+
metaViewName: metaViewName,
|
|
238
|
+
chainMetadataViewName: chainMetadataViewName,
|
|
239
|
+
makeMetaViewQuery: makeMetaViewQuery,
|
|
240
|
+
makeChainMetadataViewQuery: makeChainMetadataViewQuery
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
var name = "dynamic_contract_registry";
|
|
244
|
+
|
|
245
|
+
function makeId(chainId, contractAddress) {
|
|
246
|
+
return String(chainId) + "-" + contractAddress;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
var schema$1 = S$RescriptSchema.schema(function (s) {
|
|
250
|
+
return {
|
|
251
|
+
id: s.m(S$RescriptSchema.string),
|
|
252
|
+
chain_id: s.m(S$RescriptSchema.$$int),
|
|
253
|
+
registering_event_block_number: s.m(S$RescriptSchema.$$int),
|
|
254
|
+
registering_event_log_index: s.m(S$RescriptSchema.$$int),
|
|
255
|
+
registering_event_block_timestamp: s.m(S$RescriptSchema.$$int),
|
|
256
|
+
registering_event_contract_name: s.m(S$RescriptSchema.string),
|
|
257
|
+
registering_event_name: s.m(S$RescriptSchema.string),
|
|
258
|
+
registering_event_src_address: s.m(Address.schema),
|
|
259
|
+
contract_address: s.m(Address.schema),
|
|
260
|
+
contract_name: s.m(S$RescriptSchema.string)
|
|
261
|
+
};
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
var rowsSchema = S$RescriptSchema.array(schema$1);
|
|
265
|
+
|
|
266
|
+
var table$5 = Table.mkTable(name, undefined, [
|
|
267
|
+
Table.mkField("id", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, true, undefined, undefined),
|
|
268
|
+
Table.mkField("chain_id", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
269
|
+
Table.mkField("registering_event_block_number", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
270
|
+
Table.mkField("registering_event_log_index", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
271
|
+
Table.mkField("registering_event_block_timestamp", "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
272
|
+
Table.mkField("registering_event_contract_name", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
273
|
+
Table.mkField("registering_event_name", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
274
|
+
Table.mkField("registering_event_src_address", "TEXT", Address.schema, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
275
|
+
Table.mkField("contract_address", "TEXT", Address.schema, undefined, undefined, undefined, undefined, undefined, undefined),
|
|
276
|
+
Table.mkField("contract_name", "TEXT", S$RescriptSchema.string, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
277
|
+
]);
|
|
278
|
+
|
|
279
|
+
var entityHistory = EntityHistory.fromTable(table$5, schema$1);
|
|
280
|
+
|
|
281
|
+
var config = {
|
|
282
|
+
name: name,
|
|
283
|
+
schema: schema$1,
|
|
284
|
+
rowsSchema: rowsSchema,
|
|
285
|
+
table: table$5,
|
|
286
|
+
entityHistory: entityHistory
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
var DynamicContractRegistry = {
|
|
290
|
+
name: name,
|
|
291
|
+
makeId: makeId,
|
|
292
|
+
schema: schema$1,
|
|
293
|
+
rowsSchema: rowsSchema,
|
|
294
|
+
table: table$5,
|
|
295
|
+
entityHistory: entityHistory,
|
|
296
|
+
config: config
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
var isPrimaryKey = true;
|
|
300
|
+
|
|
301
|
+
var isNullable = true;
|
|
302
|
+
|
|
303
|
+
var isIndex = true;
|
|
304
|
+
|
|
305
|
+
exports.isPrimaryKey = isPrimaryKey;
|
|
306
|
+
exports.isNullable = isNullable;
|
|
307
|
+
exports.isIndex = isIndex;
|
|
308
|
+
exports.EventSyncState = EventSyncState;
|
|
309
|
+
exports.Chains = Chains;
|
|
310
|
+
exports.PersistedState = PersistedState;
|
|
311
|
+
exports.EndOfBlockRangeScannedData = EndOfBlockRangeScannedData;
|
|
312
|
+
exports.RawEvents = RawEvents;
|
|
313
|
+
exports.Views = Views;
|
|
314
|
+
exports.DynamicContractRegistry = DynamicContractRegistry;
|
|
315
|
+
/* table Not a pure module */
|
package/src/vendored/Rest.res
CHANGED
|
@@ -44,8 +44,14 @@ module Dict = {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
let
|
|
47
|
+
let panic = (message, ~params: option<{..}>=?) => {
|
|
48
|
+
let error = Exn.makeError(`[rescript-rest] ${message}`)
|
|
49
|
+
switch params {
|
|
50
|
+
| Some(params) => (error->Obj.magic)["params"] = params
|
|
51
|
+
| None => ()
|
|
52
|
+
}
|
|
53
|
+
Exn.raiseError(error)
|
|
54
|
+
}
|
|
49
55
|
|
|
50
56
|
@val
|
|
51
57
|
external encodeURIComponent: string => string = "encodeURIComponent"
|
|
@@ -808,6 +814,9 @@ let fetch = (type input response, route: route<input, response>, input, ~client=
|
|
|
808
814
|
| S.Raised(error) =>
|
|
809
815
|
panic(
|
|
810
816
|
`Failed parsing response at ${error.path->S.Path.toString}. Reason: ${error->S.Error.reason}`,
|
|
817
|
+
~params={
|
|
818
|
+
"response": fetcherResponse,
|
|
819
|
+
},
|
|
811
820
|
)
|
|
812
821
|
}
|
|
813
822
|
}
|
package/src/vendored/Rest.res.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var Caml_option = require("rescript/lib/js/caml_option.js");
|
|
4
5
|
var S$RescriptSchema = require("rescript-schema/src/S.res.js");
|
|
5
6
|
var Caml_js_exceptions = require("rescript/lib/js/caml_js_exceptions.js");
|
|
6
7
|
|
|
8
|
+
function panic(message, params) {
|
|
9
|
+
var error = new Error("[rescript-rest] " + message);
|
|
10
|
+
if (params !== undefined) {
|
|
11
|
+
error.params = Caml_option.valFromOption(params);
|
|
12
|
+
}
|
|
13
|
+
throw error;
|
|
14
|
+
}
|
|
15
|
+
|
|
7
16
|
async function $$default(args) {
|
|
8
17
|
var result = await fetch(args.path, args);
|
|
9
18
|
var contentType = result.headers.get("content-type");
|
|
@@ -34,9 +43,11 @@ var ApiFetcher = {
|
|
|
34
43
|
|
|
35
44
|
function register(map, status, builder) {
|
|
36
45
|
if (map[status]) {
|
|
37
|
-
|
|
46
|
+
return panic("Response for the \"" + status + "\" status registered multiple times", undefined);
|
|
47
|
+
} else {
|
|
48
|
+
map[status] = builder;
|
|
49
|
+
return ;
|
|
38
50
|
}
|
|
39
|
-
map[status] = builder;
|
|
40
51
|
}
|
|
41
52
|
|
|
42
53
|
function parsePath(_path, pathItems, pathParams) {
|
|
@@ -48,24 +59,24 @@ function parsePath(_path, pathItems, pathParams) {
|
|
|
48
59
|
var paramStartIdx = path.indexOf("{");
|
|
49
60
|
if (paramStartIdx !== -1) {
|
|
50
61
|
var paramEndIdx = path.indexOf("}");
|
|
51
|
-
if (paramEndIdx
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (paramName === "") {
|
|
57
|
-
throw new Error("[rescript-rest] Path parameter name cannot be empty");
|
|
58
|
-
}
|
|
59
|
-
var param = {
|
|
60
|
-
name: paramName
|
|
61
|
-
};
|
|
62
|
-
pathItems.push(path.slice(0, paramStartIdx));
|
|
63
|
-
pathItems.push(param);
|
|
64
|
-
pathParams[paramName] = param;
|
|
65
|
-
_path = path.slice(paramEndIdx + 1 | 0);
|
|
66
|
-
continue ;
|
|
62
|
+
if (paramEndIdx === -1) {
|
|
63
|
+
return panic("Path contains an unclosed parameter", undefined);
|
|
64
|
+
}
|
|
65
|
+
if (paramStartIdx > paramEndIdx) {
|
|
66
|
+
panic("Path parameter is not enclosed in curly braces", undefined);
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
var paramName = path.slice(paramStartIdx + 1 | 0, paramEndIdx);
|
|
69
|
+
if (paramName === "") {
|
|
70
|
+
panic("Path parameter name cannot be empty", undefined);
|
|
71
|
+
}
|
|
72
|
+
var param = {
|
|
73
|
+
name: paramName
|
|
74
|
+
};
|
|
75
|
+
pathItems.push(path.slice(0, paramStartIdx));
|
|
76
|
+
pathItems.push(param);
|
|
77
|
+
pathParams[paramName] = param;
|
|
78
|
+
_path = path.slice(paramEndIdx + 1 | 0);
|
|
79
|
+
continue ;
|
|
69
80
|
}
|
|
70
81
|
pathItems.push(path);
|
|
71
82
|
return ;
|
|
@@ -279,7 +290,7 @@ function params(route) {
|
|
|
279
290
|
match.TAG === "literal" && match._0.kind === "String" ? false : true
|
|
280
291
|
);
|
|
281
292
|
if (isNonStringBased) {
|
|
282
|
-
|
|
293
|
+
panic("Only string-based schemas are allowed in rawBody", undefined);
|
|
283
294
|
}
|
|
284
295
|
((isRawBody = true));
|
|
285
296
|
return s.f("body", schema);
|
|
@@ -292,7 +303,7 @@ function params(route) {
|
|
|
292
303
|
}),
|
|
293
304
|
param: (function (fieldName, schema) {
|
|
294
305
|
if (!pathParams[fieldName]) {
|
|
295
|
-
|
|
306
|
+
panic("Path parameter \"" + fieldName + "\" is not defined in the path", undefined);
|
|
296
307
|
}
|
|
297
308
|
return s.nested("params").f(fieldName, coerceSchema(schema));
|
|
298
309
|
}),
|
|
@@ -386,7 +397,7 @@ function params(route) {
|
|
|
386
397
|
responses.push(builder);
|
|
387
398
|
});
|
|
388
399
|
if (responses.length === 0) {
|
|
389
|
-
|
|
400
|
+
panic("At least single response should be registered", undefined);
|
|
390
401
|
}
|
|
391
402
|
params$2 = {
|
|
392
403
|
method: definition.method,
|
|
@@ -444,7 +455,7 @@ function getCompletePath(baseUrl, pathItems, maybeQuery, maybeParams, jsonQueryO
|
|
|
444
455
|
if (param !== undefined) {
|
|
445
456
|
path = path + param;
|
|
446
457
|
} else {
|
|
447
|
-
|
|
458
|
+
panic("Path parameter \"" + name + "\" is not defined in input", undefined);
|
|
448
459
|
}
|
|
449
460
|
}
|
|
450
461
|
}
|
|
@@ -494,11 +505,7 @@ function $$fetch$1(route, input, client) {
|
|
|
494
505
|
client$1 = client;
|
|
495
506
|
} else {
|
|
496
507
|
var client$2 = $$global.c;
|
|
497
|
-
|
|
498
|
-
client$1 = client$2;
|
|
499
|
-
} else {
|
|
500
|
-
throw new Error("[rescript-rest] " + ("Client is not set for the " + match.path + " fetch request. Please, use Rest.setGlobalClient or pass a client explicitly to the Rest.fetch arguments"));
|
|
501
|
-
}
|
|
508
|
+
client$1 = client$2 !== undefined ? client$2 : panic("Client is not set for the " + match.path + " fetch request. Please, use Rest.setGlobalClient or pass a client explicitly to the Rest.fetch arguments", undefined);
|
|
502
509
|
}
|
|
503
510
|
var data = S$RescriptSchema.reverseConvertOrThrow(input, match.inputSchema);
|
|
504
511
|
if (data.body !== (void 0)) {
|
|
@@ -528,11 +535,11 @@ function $$fetch$1(route, input, client) {
|
|
|
528
535
|
var error$1 = error._1;
|
|
529
536
|
var match = error$1.code;
|
|
530
537
|
if (typeof match === "object" && match.TAG === "InvalidType" && error$1.path === S$RescriptSchema.Path.empty) {
|
|
531
|
-
|
|
532
|
-
throw new Error("[rescript-rest] " + message);
|
|
538
|
+
return panic("Failed parsing response data. Reason: Expected " + getSchemaField(match.expected, "data").schema.n() + ", received " + match.received.data, undefined);
|
|
533
539
|
}
|
|
534
|
-
|
|
535
|
-
|
|
540
|
+
return panic("Failed parsing response at " + error$1.path + ". Reason: " + S$RescriptSchema.$$Error.reason(error$1), {
|
|
541
|
+
response: fetcherResponse
|
|
542
|
+
});
|
|
536
543
|
}
|
|
537
544
|
throw error;
|
|
538
545
|
}
|
|
@@ -541,7 +548,7 @@ function $$fetch$1(route, input, client) {
|
|
|
541
548
|
if (fetcherResponse.data && typeof fetcherResponse.data.message === "string") {
|
|
542
549
|
error$2 = error$2 + ". Message: " + fetcherResponse.data.message;
|
|
543
550
|
}
|
|
544
|
-
|
|
551
|
+
return panic(error$2, undefined);
|
|
545
552
|
}
|
|
546
553
|
});
|
|
547
554
|
}
|
|
@@ -557,9 +564,11 @@ function client(baseUrl, fetcherOpt) {
|
|
|
557
564
|
function setGlobalClient(baseUrl, fetcher) {
|
|
558
565
|
var match = $$global.c;
|
|
559
566
|
if (match !== undefined) {
|
|
560
|
-
|
|
567
|
+
return panic("There's already a global client defined. You can have only one global client at a time.", undefined);
|
|
568
|
+
} else {
|
|
569
|
+
$$global.c = client(baseUrl, fetcher);
|
|
570
|
+
return ;
|
|
561
571
|
}
|
|
562
|
-
$$global.c = client(baseUrl, fetcher);
|
|
563
572
|
}
|
|
564
573
|
|
|
565
574
|
var $$Response = {};
|