envio 2.22.0 → 2.22.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.
Files changed (48) hide show
  1. package/package.json +7 -6
  2. package/src/Address.res.js +30 -0
  3. package/src/ChainMap.res.js +77 -0
  4. package/src/Envio.res.js +16 -0
  5. package/src/ErrorHandling.res.js +56 -0
  6. package/src/EventUtils.res.js +75 -0
  7. package/src/EvmTypes.res.js +16 -0
  8. package/src/FetchState.res.js +969 -0
  9. package/src/Hasura.res.js +245 -0
  10. package/src/Internal.res.js +50 -0
  11. package/src/LazyLoader.res.js +117 -0
  12. package/src/LoadManager.res.js +124 -0
  13. package/src/LogSelection.res.js +203 -0
  14. package/src/Logging.res.js +247 -0
  15. package/src/Persistence.res.js +90 -0
  16. package/src/PgStorage.res +18 -4
  17. package/src/PgStorage.res.js +125 -0
  18. package/src/Prometheus.res.js +750 -0
  19. package/src/ReorgDetection.res.js +223 -0
  20. package/src/Throttler.res.js +60 -0
  21. package/src/Time.res.js +41 -0
  22. package/src/TopicFilter.res.js +86 -0
  23. package/src/Utils.res.js +527 -0
  24. package/src/bindings/BigDecimal.res.js +41 -0
  25. package/src/bindings/BigInt.res.js +138 -0
  26. package/src/bindings/Ethers.res.js +109 -0
  27. package/src/bindings/Express.res.js +2 -0
  28. package/src/bindings/Hrtime.res.js +66 -0
  29. package/src/bindings/NodeJs.res.js +29 -0
  30. package/src/bindings/Pino.res.js +95 -0
  31. package/src/bindings/Postgres.res.js +16 -0
  32. package/src/bindings/PromClient.res.js +17 -0
  33. package/src/bindings/Promise.res.js +25 -0
  34. package/src/bindings/SDSL.res.js +8 -0
  35. package/src/bindings/Viem.res.js +45 -0
  36. package/src/db/EntityHistory.res.js +307 -0
  37. package/src/db/Schema.res.js +54 -0
  38. package/src/db/Table.res.js +365 -0
  39. package/src/sources/Fuel.res.js +28 -0
  40. package/src/sources/HyperFuel.res.js +193 -0
  41. package/src/sources/HyperFuelClient.res.js +19 -0
  42. package/src/sources/HyperSync.res.js +301 -0
  43. package/src/sources/HyperSyncClient.res.js +99 -0
  44. package/src/sources/HyperSyncJsonApi.res.js +259 -0
  45. package/src/sources/Rpc.res.js +198 -0
  46. package/src/sources/Source.res.js +9 -0
  47. package/src/sources/SourceManager.res.js +366 -0
  48. package/src/vendored/Rest.res.js +574 -0
@@ -0,0 +1,125 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+ 'use strict';
3
+
4
+ var $$Array = require("rescript/lib/js/array.js");
5
+ var Table = require("./db/Table.res.js");
6
+ var Utils = require("./Utils.res.js");
7
+ var Schema = require("./db/Schema.res.js");
8
+ var Belt_Array = require("rescript/lib/js/belt_Array.js");
9
+
10
+ function makeCreateIndexSqlUnsafe(tableName, indexFields, pgSchema) {
11
+ var indexName = tableName + "_" + indexFields.join("_");
12
+ var index = Belt_Array.map(indexFields, (function (idx) {
13
+ return "\"" + idx + "\"";
14
+ })).join(", ");
15
+ return "CREATE INDEX IF NOT EXISTS \"" + indexName + "\" ON \"" + pgSchema + "\".\"" + tableName + "\"(" + index + ");";
16
+ }
17
+
18
+ function makeCreateTableIndicesSqlUnsafe(table, pgSchema) {
19
+ var tableName = table.tableName;
20
+ var createIndex = function (indexField) {
21
+ return makeCreateIndexSqlUnsafe(tableName, [indexField], pgSchema);
22
+ };
23
+ var createCompositeIndex = function (indexFields) {
24
+ return makeCreateIndexSqlUnsafe(tableName, indexFields, pgSchema);
25
+ };
26
+ var singleIndices = Table.getSingleIndices(table);
27
+ var compositeIndices = Table.getCompositeIndices(table);
28
+ return Belt_Array.map(singleIndices, createIndex).join("\n") + Belt_Array.map(compositeIndices, createCompositeIndex).join("\n");
29
+ }
30
+
31
+ function makeCreateTableSqlUnsafe(table, pgSchema) {
32
+ var fieldsMapped = Belt_Array.map(Table.getFields(table), (function (field) {
33
+ var defaultValue = field.defaultValue;
34
+ var fieldType = field.fieldType;
35
+ var fieldName = Table.getDbFieldName(field);
36
+ var tmp;
37
+ tmp = fieldType === "TIMESTAMP" || fieldType === "TIMESTAMP WITH TIME ZONE" || fieldType === "JSONB" || fieldType === "SERIAL" || fieldType === "TEXT" || fieldType === "DOUBLE PRECISION" || fieldType === "NUMERIC" || fieldType === "BOOLEAN" || fieldType === "INTEGER" || fieldType === "TIMESTAMP WITH TIME ZONE NULL" || fieldType.startsWith("NUMERIC(") ? fieldType : "\"" + pgSchema + "\"." + fieldType;
38
+ return "\"" + fieldName + "\" " + tmp + (
39
+ field.isArray ? "[]" : ""
40
+ ) + (
41
+ defaultValue !== undefined ? " DEFAULT " + defaultValue : (
42
+ field.isNullable ? "" : " NOT NULL"
43
+ )
44
+ );
45
+ })).join(", ");
46
+ var primaryKeyFieldNames = Table.getPrimaryKeyFieldNames(table);
47
+ var primaryKey = Belt_Array.map(primaryKeyFieldNames, (function (field) {
48
+ return "\"" + field + "\"";
49
+ })).join(", ");
50
+ return "CREATE TABLE IF NOT EXISTS \"" + pgSchema + "\".\"" + table.tableName + "\"(" + fieldsMapped + (
51
+ primaryKeyFieldNames.length !== 0 ? ", PRIMARY KEY(" + primaryKey + ")" : ""
52
+ ) + ");";
53
+ }
54
+
55
+ function makeInitializeTransaction(pgSchema, pgUser, staticTables, entities, enums, cleanRun) {
56
+ var allTables = $$Array.copy(staticTables);
57
+ var allEntityTables = [];
58
+ entities.forEach(function (entity) {
59
+ allEntityTables.push(entity.table);
60
+ allTables.push(entity.table);
61
+ allTables.push(entity.entityHistory.table);
62
+ });
63
+ var derivedSchema = Schema.make(allEntityTables);
64
+ var query = {
65
+ contents: (
66
+ cleanRun ? "DROP SCHEMA IF EXISTS \"" + pgSchema + "\" CASCADE;\nCREATE SCHEMA \"" + pgSchema + "\";" : "CREATE SCHEMA IF NOT EXISTS \"" + pgSchema + "\";"
67
+ ) + ("GRANT ALL ON SCHEMA \"" + pgSchema + "\" TO " + pgUser + ";\nGRANT ALL ON SCHEMA \"" + pgSchema + "\" TO public;")
68
+ };
69
+ enums.forEach(function (enumConfig) {
70
+ var enumCreateQuery = "CREATE TYPE \"" + pgSchema + "\"." + enumConfig.name + " AS ENUM(" + enumConfig.variants.map(function (v) {
71
+ return "'" + v + "'";
72
+ }).join(", ") + ");";
73
+ query.contents = query.contents + "\n" + (
74
+ cleanRun ? enumCreateQuery : "IF NOT EXISTS (\n SELECT 1 FROM pg_type \n WHERE typname = '" + enumConfig.name.toLowerCase() + "' \n AND typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = '" + pgSchema + "')\n) THEN \n " + enumCreateQuery + "\nEND IF;"
75
+ );
76
+ });
77
+ allTables.forEach(function (table) {
78
+ query.contents = query.contents + "\n" + makeCreateTableSqlUnsafe(table, pgSchema);
79
+ });
80
+ allTables.forEach(function (table) {
81
+ var indices = makeCreateTableIndicesSqlUnsafe(table, pgSchema);
82
+ if (indices !== "") {
83
+ query.contents = query.contents + "\n" + indices;
84
+ return ;
85
+ }
86
+
87
+ });
88
+ var functionsQuery = {
89
+ contents: ""
90
+ };
91
+ entities.forEach(function (entity) {
92
+ functionsQuery.contents = functionsQuery.contents + "\n" + entity.entityHistory.createInsertFnQuery;
93
+ Table.getDerivedFromFields(entity.table).forEach(function (derivedFromField) {
94
+ var indexField = Utils.unwrapResultExn(Schema.getDerivedFromFieldName(derivedSchema, derivedFromField));
95
+ query.contents = query.contents + "\n" + makeCreateIndexSqlUnsafe(derivedFromField.derivedFromEntity, [indexField], pgSchema);
96
+ });
97
+ });
98
+ return [cleanRun ? query.contents : "DO $$ BEGIN " + query.contents + " END $$;"].concat(functionsQuery.contents !== "" ? [functionsQuery.contents] : []);
99
+ }
100
+
101
+ function make(sql, pgSchema, pgUser) {
102
+ var isInitialized = async function () {
103
+ var schemas = await sql.unsafe("SELECT schema_name FROM information_schema.schemata WHERE schema_name = '" + pgSchema + "';");
104
+ return Utils.$$Array.notEmpty(schemas);
105
+ };
106
+ var initialize = async function (entities, staticTables, enums, cleanRun) {
107
+ var queries = makeInitializeTransaction(pgSchema, pgUser, staticTables, entities, enums, cleanRun);
108
+ await sql.begin(function (sql) {
109
+ return queries.map(function (query) {
110
+ return sql.unsafe(query);
111
+ });
112
+ });
113
+ };
114
+ return {
115
+ isInitialized: isInitialized,
116
+ initialize: initialize
117
+ };
118
+ }
119
+
120
+ exports.makeCreateIndexSqlUnsafe = makeCreateIndexSqlUnsafe;
121
+ exports.makeCreateTableIndicesSqlUnsafe = makeCreateTableIndicesSqlUnsafe;
122
+ exports.makeCreateTableSqlUnsafe = makeCreateTableSqlUnsafe;
123
+ exports.makeInitializeTransaction = makeInitializeTransaction;
124
+ exports.make = make;
125
+ /* Table Not a pure module */