envio 3.3.0 → 3.3.1

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 (54) hide show
  1. package/package.json +6 -7
  2. package/src/ChainFetching.res +4 -32
  3. package/src/ChainFetching.res.mjs +2 -12
  4. package/src/ChainState.res +73 -53
  5. package/src/ChainState.res.mjs +61 -30
  6. package/src/ChainState.resi +13 -17
  7. package/src/Config.res +5 -0
  8. package/src/Config.res.mjs +1 -0
  9. package/src/CrossChainState.res +2 -8
  10. package/src/CrossChainState.res.mjs +6 -8
  11. package/src/CrossChainState.resi +1 -0
  12. package/src/EffectState.res +183 -44
  13. package/src/EffectState.res.mjs +134 -26
  14. package/src/EffectState.resi +26 -3
  15. package/src/EventProcessing.res +14 -9
  16. package/src/EventProcessing.res.mjs +7 -7
  17. package/src/FetchState.res +18 -29
  18. package/src/FetchState.res.mjs +20 -37
  19. package/src/IndexerState.res +280 -31
  20. package/src/IndexerState.res.mjs +234 -25
  21. package/src/IndexerState.resi +22 -0
  22. package/src/LoadLayer.res +19 -65
  23. package/src/LoadLayer.res.mjs +13 -55
  24. package/src/Main.res +42 -23
  25. package/src/Main.res.mjs +32 -35
  26. package/src/Metrics.res +943 -66
  27. package/src/Metrics.res.mjs +367 -50
  28. package/src/Persistence.res +3 -0
  29. package/src/PgStorage.res +3 -8
  30. package/src/PgStorage.res.mjs +3 -4
  31. package/src/PruneStaleHistory.res +1 -1
  32. package/src/PruneStaleHistory.res.mjs +1 -2
  33. package/src/Rollback.res +4 -5
  34. package/src/Rollback.res.mjs +2 -3
  35. package/src/SimulateItems.res.mjs +3 -21
  36. package/src/TestIndexer.res.mjs +4 -23
  37. package/src/TestIndexerProxyStorage.res +1 -0
  38. package/src/TestIndexerProxyStorage.res.mjs +1 -1
  39. package/src/Writing.res +3 -5
  40. package/src/Writing.res.mjs +3 -6
  41. package/src/bindings/ClickHouse.res +101 -17
  42. package/src/bindings/ClickHouse.res.mjs +58 -19
  43. package/src/bindings/NodeJs.res +64 -0
  44. package/src/bindings/NodeJs.res.mjs +6 -0
  45. package/src/sources/HyperSyncClient.res +5 -11
  46. package/src/sources/SourceManager.res +72 -27
  47. package/src/sources/SourceManager.res.mjs +81 -11
  48. package/src/sources/SourceManager.resi +14 -0
  49. package/src/tui/Tui.res +1 -1
  50. package/src/tui/Tui.res.mjs +2 -2
  51. package/src/Prometheus.res +0 -789
  52. package/src/Prometheus.res.mjs +0 -847
  53. package/src/bindings/PromClient.res +0 -72
  54. package/src/bindings/PromClient.res.mjs +0 -38
@@ -1,72 +0,0 @@
1
- /** All metric types have two mandatory parameters: name and help. Refer to https://prometheus.io/docs/practices/naming/ for guidance on naming metrics. */
2
- type customMetric<'a> = {.."name": string, "help": string} as 'a
3
-
4
- @module("prom-client") external collectDefaultMetrics: 'a => unit = "collectDefaultMetrics"
5
-
6
- type registry
7
- @new @module("prom-client") external makeRegistry: unit => registry = "Registry"
8
-
9
- @module("prom-client") external defaultRegister: registry = "register"
10
-
11
- @send external metrics: registry => Promise.t<string> = "metrics"
12
- @get external getContentType: registry => string = "contentType"
13
-
14
- type metricValue = {
15
- value: int,
16
- labels: dict<string>,
17
- }
18
- type metricInstance = {get: unit => promise<{"values": array<metricValue>}>}
19
- @send external getSingleMetric: (registry, string) => option<metricInstance> = "getSingleMetric"
20
- @send external resetMetrics: registry => unit = "resetMetrics"
21
- @send external clear: registry => unit = "clear"
22
-
23
- // Idempotent metric creation: if the metric already exists in the
24
- // registry (e.g., module loaded twice via different pnpm paths),
25
- // return the existing one instead of throwing.
26
- let getOrCreate = (name: string, create: unit => 'a): 'a => {
27
- switch defaultRegister->getSingleMetric(name) {
28
- | Some(existing) => existing->(Utils.magic: metricInstance => 'a)
29
- | None => create()
30
- }
31
- }
32
-
33
- module Counter = {
34
- type counter
35
- @new @module("prom-client") external makeCounterUnsafe: customMetric<'a> => counter = "Counter"
36
- let makeCounter = (config: customMetric<'a>): counter =>
37
- getOrCreate(config["name"], () => makeCounterUnsafe(config))
38
-
39
- @send external inc: counter => unit = "inc"
40
- @send external incMany: (counter, int) => unit = "inc"
41
-
42
- @send external labels: (counter, 'labelsObject) => counter = "labels"
43
- }
44
-
45
- module Gauge = {
46
- type gauge
47
- @new @module("prom-client") external makeGaugeUnsafe: customMetric<'a> => gauge = "Gauge"
48
- let makeGauge = (config: customMetric<'a>): gauge =>
49
- getOrCreate(config["name"], () => makeGaugeUnsafe(config))
50
-
51
- @send external inc: gauge => unit = "inc"
52
- @send external incMany: (gauge, int) => unit = "inc"
53
-
54
- @send external dec: gauge => unit = "dec"
55
- @send external decMany: (gauge, int) => unit = "dec"
56
-
57
- @send external set: (gauge, int) => unit = "set"
58
-
59
- @send external setFloat: (gauge, float) => unit = "set"
60
-
61
- @send external labels: (gauge, 'labelsObject) => gauge = "labels"
62
-
63
- @send external get: gauge => promise<{"values": array<dict<string>>}> = "get"
64
- }
65
-
66
- module Summary = {
67
- type summary
68
- @new @module("prom-client") external makeSummary: customMetric<'a> => summary = "Summary"
69
-
70
- @send external observe: (summary, float) => unit = "observe"
71
- @send external startTimer: (summary, unit) => float = "startTimer"
72
- }
@@ -1,38 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
-
3
- import * as PromClient from "prom-client";
4
-
5
- function getOrCreate(name, create) {
6
- let existing = PromClient.register.getSingleMetric(name);
7
- if (existing !== undefined) {
8
- return existing;
9
- } else {
10
- return create();
11
- }
12
- }
13
-
14
- function makeCounter(config) {
15
- return getOrCreate(config.name, () => new PromClient.Counter(config));
16
- }
17
-
18
- let Counter = {
19
- makeCounter: makeCounter
20
- };
21
-
22
- function makeGauge(config) {
23
- return getOrCreate(config.name, () => new PromClient.Gauge(config));
24
- }
25
-
26
- let Gauge = {
27
- makeGauge: makeGauge
28
- };
29
-
30
- let Summary = {};
31
-
32
- export {
33
- getOrCreate,
34
- Counter,
35
- Gauge,
36
- Summary,
37
- }
38
- /* prom-client Not a pure module */