envio 3.13.0 → 3.14.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.
Files changed (69) hide show
  1. package/bin.mjs +10 -1
  2. package/index.d.ts +11 -0
  3. package/package.json +8 -20
  4. package/rescript.json +1 -4
  5. package/src/Config.res +69 -100
  6. package/src/Config.res.mjs +50 -63
  7. package/src/Core.res +46 -6
  8. package/src/Core.res.mjs +41 -4
  9. package/src/EventConfigBuilder.res +4 -10
  10. package/src/EventConfigBuilder.res.mjs +1 -3
  11. package/src/ExitOnCaughtUp.res +5 -1
  12. package/src/ExitOnCaughtUp.res.mjs +8 -3
  13. package/src/HandlerLoader.res +74 -32
  14. package/src/HandlerLoader.res.mjs +69 -23
  15. package/src/HandlerTypeCheck.mjs +14 -0
  16. package/src/HandlerTypeCheckWorker.mjs +68 -0
  17. package/src/Internal.res +1 -1
  18. package/src/Main.res +17 -12
  19. package/src/Main.res.mjs +9 -3
  20. package/src/NodeVersion.mjs +13 -0
  21. package/src/Persistence.res +79 -38
  22. package/src/Persistence.res.mjs +41 -10
  23. package/src/PgStorage.res +62 -34
  24. package/src/PgStorage.res.mjs +65 -31
  25. package/src/ResumePlan.res +172 -0
  26. package/src/ResumePlan.res.mjs +122 -0
  27. package/src/Supervisor.res +8 -8
  28. package/src/Supervisor.res.mjs +6 -1
  29. package/src/TestIndexer.res +14 -4
  30. package/src/TestIndexer.res.mjs +3 -2
  31. package/src/TsModuleHooks.mjs +121 -0
  32. package/src/Utils.res +0 -8
  33. package/src/Worker.res +8 -0
  34. package/src/Worker.res.mjs +11 -0
  35. package/src/bindings/NodeJs.res +8 -7
  36. package/src/bindings/NodeJs.res.mjs +0 -3
  37. package/src/bindings/Pino.res +2 -2
  38. package/src/db/InternalTable.res +52 -2
  39. package/src/db/InternalTable.res.mjs +32 -3
  40. package/src/sources/FuelHyperSync.res +2 -0
  41. package/src/sources/FuelHyperSync.res.mjs +1 -0
  42. package/src/sources/FuelHyperSync.resi +1 -0
  43. package/src/sources/FuelHyperSyncClient.res +25 -8
  44. package/src/sources/FuelHyperSyncClient.res.mjs +8 -2
  45. package/src/sources/FuelHyperSyncSource.res +24 -22
  46. package/src/sources/FuelHyperSyncSource.res.mjs +18 -13
  47. package/src/tui/InitApi.res +85 -0
  48. package/src/tui/{components/CustomHooks.res.mjs → InitApi.res.mjs} +11 -64
  49. package/src/tui/Tui.res +142 -249
  50. package/src/tui/Tui.res.mjs +123 -332
  51. package/src/Js.shim.ts +0 -11
  52. package/src/bindings/DateFns.res +0 -74
  53. package/src/bindings/DateFns.res.mjs +0 -22
  54. package/src/sources/FuelSDK.res +0 -38
  55. package/src/sources/FuelSDK.res.mjs +0 -27
  56. package/src/sources/vendored-fuel-abi-coder.js +0 -1792
  57. package/src/tui/bindings/Ink.res +0 -369
  58. package/src/tui/bindings/Ink.res.mjs +0 -66
  59. package/src/tui/bindings/Style.res +0 -123
  60. package/src/tui/bindings/Style.res.mjs +0 -2
  61. package/src/tui/components/BufferedProgressBar.res +0 -40
  62. package/src/tui/components/BufferedProgressBar.res.mjs +0 -57
  63. package/src/tui/components/CustomHooks.res +0 -122
  64. package/src/tui/components/Messages.res +0 -40
  65. package/src/tui/components/Messages.res.mjs +0 -71
  66. package/src/tui/components/SyncETA.res +0 -179
  67. package/src/tui/components/SyncETA.res.mjs +0 -249
  68. package/src/tui/components/TuiData.res +0 -98
  69. package/src/tui/components/TuiData.res.mjs +0 -73
@@ -1,98 +0,0 @@
1
- type syncing = {
2
- firstEventBlockNumber: int,
3
- latestProcessedBlock: int,
4
- numEventsProcessed: float,
5
- }
6
- type synced = {
7
- ...syncing,
8
- timestampCaughtUpToHeadOrEndblock: Date.t,
9
- }
10
-
11
- type progress = SearchingForEvents | Syncing(syncing) | Synced(synced)
12
-
13
- type chain = {
14
- chainId: string,
15
- eventsProcessed: float,
16
- // Clamped into [startBlock, toBlock]: the source height is 0 until the first
17
- // height fetch lands, and the buffer starts one block below startBlock, so raw
18
- // values can fall outside the range the progress bar counts up to.
19
- progressBlock: int,
20
- bufferBlock: int,
21
- toBlock: int,
22
- startBlock: int,
23
- endBlock: option<int>,
24
- poweredByHyperSync: bool,
25
- progress: progress,
26
- latestFetchedBlockNumber: int,
27
- knownHeight: int,
28
- /** Localized unit noun for this chain's progress. `"Slots"` on SVM,
29
- `"Blocks"` everywhere else. Drives the per-chain progress label. */
30
- blockUnit: string,
31
- rateLimitTimeMs: float,
32
- rateLimitResetInMs: option<float>,
33
- }
34
-
35
- let fromChainMetrics = (m: Metrics.chainMetrics, ~blockUnit): chain => {
36
- // A chain can reach its end block without ever matching an event, so it
37
- // still has to render as synced with no first event block to report.
38
- let firstEventBlockNumber = m.firstEventBlockNumber->Option.getOr(0)
39
- let syncing: syncing = {
40
- firstEventBlockNumber,
41
- latestProcessedBlock: m.progressBlockNumber,
42
- numEventsProcessed: m.numEventsProcessed,
43
- }
44
- let synced = (~timestampCaughtUpToHeadOrEndblock): progress => Synced({
45
- firstEventBlockNumber,
46
- latestProcessedBlock: m.progressBlockNumber,
47
- numEventsProcessed: m.numEventsProcessed,
48
- timestampCaughtUpToHeadOrEndblock,
49
- })
50
- let progress = if m->Metrics.hasProcessedToEndblock {
51
- synced(
52
- ~timestampCaughtUpToHeadOrEndblock=m.timestampCaughtUpToHeadOrEndblock->Option.getOr(
53
- Date.now()->Date.fromTime,
54
- ),
55
- )
56
- } else {
57
- switch (m.firstEventBlockNumber, m.timestampCaughtUpToHeadOrEndblock) {
58
- | (Some(_), Some(timestampCaughtUpToHeadOrEndblock)) =>
59
- synced(~timestampCaughtUpToHeadOrEndblock)
60
- | (Some(_), None) => Syncing(syncing)
61
- | (None, _) => SearchingForEvents
62
- }
63
- }
64
-
65
- let toBlock = Pervasives.max(
66
- switch m.endBlock {
67
- | Some(endBlock) => Pervasives.min(m.sourceBlockNumber, endBlock)
68
- | None => m.sourceBlockNumber
69
- },
70
- m.startBlock,
71
- )
72
- let clampToRange = blockNumber =>
73
- blockNumber->Pervasives.max(m.startBlock)->Pervasives.min(toBlock)
74
-
75
- {
76
- progress,
77
- chainId: m.chainId->ChainId.toString,
78
- eventsProcessed: m.numEventsProcessed,
79
- progressBlock: m.progressBlockNumber->clampToRange,
80
- bufferBlock: m.latestFetchedBlockNumber->clampToRange,
81
- toBlock,
82
- startBlock: m.startBlock,
83
- endBlock: m.endBlock,
84
- poweredByHyperSync: m.poweredByHyperSync,
85
- latestFetchedBlockNumber: m.latestFetchedBlockNumber,
86
- knownHeight: m.knownHeight,
87
- blockUnit,
88
- rateLimitTimeMs: m.rateLimitTimeMs,
89
- rateLimitResetInMs: m.rateLimitResetInMs,
90
- }
91
- }
92
-
93
- type number
94
- @val external number: int => number = "Number"
95
- @val external floatNumber: float => number = "Number"
96
- @send external toLocaleString: number => string = "toLocaleString"
97
- let formatLocaleString = n => n->number->toLocaleString
98
- let formatFloatLocaleString = n => n->floatNumber->toLocaleString
@@ -1,73 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
-
3
- import * as ChainId from "../../ChainId.res.mjs";
4
- import * as Metrics from "../../Metrics.res.mjs";
5
- import * as Primitive_int from "@rescript/runtime/lib/es6/Primitive_int.js";
6
- import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
7
-
8
- function fromChainMetrics(m, blockUnit) {
9
- let firstEventBlockNumber = Stdlib_Option.getOr(m.firstEventBlockNumber, 0);
10
- let syncing_latestProcessedBlock = m.progressBlockNumber;
11
- let syncing_numEventsProcessed = m.numEventsProcessed;
12
- let syncing = {
13
- firstEventBlockNumber: firstEventBlockNumber,
14
- latestProcessedBlock: syncing_latestProcessedBlock,
15
- numEventsProcessed: syncing_numEventsProcessed
16
- };
17
- let synced = timestampCaughtUpToHeadOrEndblock => ({
18
- TAG: "Synced",
19
- _0: {
20
- firstEventBlockNumber: firstEventBlockNumber,
21
- latestProcessedBlock: m.progressBlockNumber,
22
- numEventsProcessed: m.numEventsProcessed,
23
- timestampCaughtUpToHeadOrEndblock: timestampCaughtUpToHeadOrEndblock
24
- }
25
- });
26
- let progress;
27
- if (Metrics.hasProcessedToEndblock(m)) {
28
- progress = synced(Stdlib_Option.getOr(m.timestampCaughtUpToHeadOrEndblock, new Date(Date.now())));
29
- } else {
30
- let match = m.firstEventBlockNumber;
31
- let match$1 = m.timestampCaughtUpToHeadOrEndblock;
32
- progress = match !== undefined ? (
33
- match$1 !== undefined ? synced(match$1) : ({
34
- TAG: "Syncing",
35
- _0: syncing
36
- })
37
- ) : "SearchingForEvents";
38
- }
39
- let endBlock = m.endBlock;
40
- let toBlock = Primitive_int.max(endBlock !== undefined ? Primitive_int.min(m.sourceBlockNumber, endBlock) : m.sourceBlockNumber, m.startBlock);
41
- let clampToRange = blockNumber => Primitive_int.min(Primitive_int.max(blockNumber, m.startBlock), toBlock);
42
- return {
43
- chainId: ChainId.toString(m.chainId),
44
- eventsProcessed: m.numEventsProcessed,
45
- progressBlock: clampToRange(m.progressBlockNumber),
46
- bufferBlock: clampToRange(m.latestFetchedBlockNumber),
47
- toBlock: toBlock,
48
- startBlock: m.startBlock,
49
- endBlock: m.endBlock,
50
- poweredByHyperSync: m.poweredByHyperSync,
51
- progress: progress,
52
- latestFetchedBlockNumber: m.latestFetchedBlockNumber,
53
- knownHeight: m.knownHeight,
54
- blockUnit: blockUnit,
55
- rateLimitTimeMs: m.rateLimitTimeMs,
56
- rateLimitResetInMs: m.rateLimitResetInMs
57
- };
58
- }
59
-
60
- function formatLocaleString(n) {
61
- return Number(n).toLocaleString();
62
- }
63
-
64
- function formatFloatLocaleString(n) {
65
- return Number(n).toLocaleString();
66
- }
67
-
68
- export {
69
- fromChainMetrics,
70
- formatLocaleString,
71
- formatFloatLocaleString,
72
- }
73
- /* ChainId Not a pure module */