@latticexyz/store-indexer 2.2.18-8d0ce55e964e646a1c804c401df01c4deb866f30 → 2.2.18-9fa07c8489f1fbf167d0db01cd9aaa645a29c8e2

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/dist/bin/postgres-decoded-indexer.cjs +322 -0
  2. package/dist/bin/postgres-decoded-indexer.cjs.map +1 -0
  3. package/dist/bin/postgres-decoded-indexer.d.cts +1 -0
  4. package/dist/bin/postgres-decoded-indexer.js +92 -1
  5. package/dist/bin/postgres-decoded-indexer.js.map +1 -1
  6. package/dist/bin/postgres-frontend.cjs +567 -0
  7. package/dist/bin/postgres-frontend.cjs.map +1 -0
  8. package/dist/bin/postgres-frontend.d.cts +1 -0
  9. package/dist/bin/postgres-frontend.js +258 -5
  10. package/dist/bin/postgres-frontend.js.map +1 -1
  11. package/dist/bin/postgres-indexer.cjs +368 -0
  12. package/dist/bin/postgres-indexer.cjs.map +1 -0
  13. package/dist/bin/postgres-indexer.d.cts +1 -0
  14. package/dist/bin/postgres-indexer.js +106 -1
  15. package/dist/bin/postgres-indexer.js.map +1 -1
  16. package/dist/bin/sqlite-indexer.cjs +567 -0
  17. package/dist/bin/sqlite-indexer.cjs.map +1 -0
  18. package/dist/bin/sqlite-indexer.d.cts +1 -0
  19. package/dist/bin/sqlite-indexer.js +243 -1
  20. package/dist/bin/sqlite-indexer.js.map +1 -1
  21. package/dist/chunk-66BWQNF7.js +38 -0
  22. package/dist/{chunk-R7HX5BT2.js.map → chunk-66BWQNF7.js.map} +1 -1
  23. package/dist/chunk-CGE4ONKA.js +44 -0
  24. package/dist/{chunk-YQ7E5W26.js.map → chunk-CGE4ONKA.js.map} +1 -1
  25. package/dist/chunk-GDNGJPVT.js +16 -0
  26. package/dist/{chunk-AYPBOJNL.js.map → chunk-GDNGJPVT.js.map} +1 -1
  27. package/dist/chunk-L5CWEDU6.js +53 -0
  28. package/dist/{chunk-O2SDU7EQ.js.map → chunk-L5CWEDU6.js.map} +1 -1
  29. package/dist/chunk-O4XAWAXU.js +72 -0
  30. package/dist/{chunk-ED45N3IT.js.map → chunk-O4XAWAXU.js.map} +1 -1
  31. package/dist/chunk-R7UQFYRA.js +99 -0
  32. package/dist/{chunk-JDWVOODJ.js.map → chunk-R7UQFYRA.js.map} +1 -1
  33. package/dist/chunk-SJLOWI5M.js +31 -0
  34. package/dist/{chunk-7O2ZWWUX.js.map → chunk-SJLOWI5M.js.map} +1 -1
  35. package/dist/healthcheck-2DQWYXPX.js +7 -0
  36. package/dist/helloWorld-6IXGINV6.js +7 -0
  37. package/dist/index.cjs +2 -0
  38. package/dist/index.d.cts +2 -0
  39. package/dist/metrics-HO5SO4EX.js +7 -0
  40. package/dist/metrics-HO5SO4EX.js.map +1 -0
  41. package/package.json +16 -7
  42. package/dist/chunk-7O2ZWWUX.js +0 -2
  43. package/dist/chunk-AYPBOJNL.js +0 -2
  44. package/dist/chunk-ED45N3IT.js +0 -2
  45. package/dist/chunk-JDWVOODJ.js +0 -2
  46. package/dist/chunk-O2SDU7EQ.js +0 -7
  47. package/dist/chunk-R7HX5BT2.js +0 -2
  48. package/dist/chunk-YQ7E5W26.js +0 -2
  49. package/dist/healthcheck-57YETUEX.js +0 -2
  50. package/dist/helloWorld-4VT4FZ7F.js +0 -2
  51. package/dist/metrics-4BMCDEZZ.js +0 -2
  52. /package/dist/{healthcheck-57YETUEX.js.map → healthcheck-2DQWYXPX.js.map} +0 -0
  53. /package/dist/{helloWorld-4VT4FZ7F.js.map → helloWorld-6IXGINV6.js.map} +0 -0
  54. /package/dist/{metrics-4BMCDEZZ.js.map → index.cjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/koa-middleware/metrics.ts"],"sourcesContent":["import { Middleware } from \"koa\";\nimport promClient from \"prom-client\";\n\ntype MetricsOptions = {\n isHealthy?: () => boolean;\n isReady?: () => boolean;\n getLatestStoredBlockNumber?: () => Promise<bigint | undefined>;\n getDistanceFromFollowBlock?: () => Promise<bigint>;\n followBlockTag?: \"latest\" | \"safe\" | \"finalized\";\n};\n\n/**\n * Middleware to add Prometheus metrics endpoints\n */\nexport function metrics({\n isHealthy,\n isReady,\n getLatestStoredBlockNumber,\n getDistanceFromFollowBlock,\n followBlockTag,\n}: MetricsOptions = {}): Middleware {\n promClient.collectDefaultMetrics();\n if (isHealthy != null) {\n new promClient.Gauge({\n name: \"health_status\",\n help: \"Health status (0 = unhealthy, 1 = healthy)\",\n collect(): void {\n this.set(Number(isHealthy()));\n },\n });\n }\n\n if (isReady != null) {\n new promClient.Gauge({\n name: \"readiness_status\",\n help: \"Readiness status (whether the service is ready to receive requests, 0 = not ready, 1 = ready)\",\n collect(): void {\n this.set(Number(isReady()));\n },\n });\n }\n\n if (getLatestStoredBlockNumber != null) {\n new promClient.Gauge({\n name: \"latest_stored_block_number\",\n help: \"Latest block number stored in the database\",\n async collect(): Promise<void> {\n this.set(Number(await getLatestStoredBlockNumber()));\n },\n });\n }\n\n if (followBlockTag != null) {\n const blockTagGauge = new promClient.Gauge({\n name: \"follow_block_tag\",\n help: \"Block tag the indexer is following (0 = finalized, 1 = safe, 2 = latest)\",\n });\n const blockTagToValue = {\n finalized: 0,\n safe: 1,\n latest: 2,\n };\n blockTagGauge.set(blockTagToValue[followBlockTag]);\n }\n\n if (getDistanceFromFollowBlock != null) {\n new promClient.Gauge({\n name: \"distance_from_follow_block\",\n help: \"Block distance from the block tag this the indexer is following\",\n async collect(): Promise<void> {\n this.set(Number(await getDistanceFromFollowBlock()));\n },\n });\n }\n\n return async function metricsMiddleware(ctx, next): Promise<void> {\n if (ctx.path === \"/metrics\") {\n ctx.status = 200;\n ctx.body = await promClient.register.metrics();\n return;\n }\n\n await next();\n };\n}\n"],"mappings":"AACA,OAAOA,MAAgB,cAahB,SAASC,EAAQ,CACtB,UAAAC,EACA,QAAAC,EACA,2BAAAC,EACA,2BAAAC,EACA,eAAAC,CACF,EAAoB,CAAC,EAAe,CAgClC,GA/BAN,EAAW,sBAAsB,EAC7BE,GAAa,MACf,IAAIF,EAAW,MAAM,CACnB,KAAM,gBACN,KAAM,6CACN,SAAgB,CACd,KAAK,IAAI,OAAOE,EAAU,CAAC,CAAC,CAC9B,CACF,CAAC,EAGCC,GAAW,MACb,IAAIH,EAAW,MAAM,CACnB,KAAM,mBACN,KAAM,gGACN,SAAgB,CACd,KAAK,IAAI,OAAOG,EAAQ,CAAC,CAAC,CAC5B,CACF,CAAC,EAGCC,GAA8B,MAChC,IAAIJ,EAAW,MAAM,CACnB,KAAM,6BACN,KAAM,6CACN,MAAM,SAAyB,CAC7B,KAAK,IAAI,OAAO,MAAMI,EAA2B,CAAC,CAAC,CACrD,CACF,CAAC,EAGCE,GAAkB,KAAM,CAC1B,IAAMC,EAAgB,IAAIP,EAAW,MAAM,CACzC,KAAM,mBACN,KAAM,0EACR,CAAC,EACKQ,EAAkB,CACtB,UAAW,EACX,KAAM,EACN,OAAQ,CACV,EACAD,EAAc,IAAIC,EAAgBF,CAAc,CAAC,CACnD,CAEA,OAAID,GAA8B,MAChC,IAAIL,EAAW,MAAM,CACnB,KAAM,6BACN,KAAM,kEACN,MAAM,SAAyB,CAC7B,KAAK,IAAI,OAAO,MAAMK,EAA2B,CAAC,CAAC,CACrD,CACF,CAAC,EAGI,eAAiCI,EAAKC,EAAqB,CAChE,GAAID,EAAI,OAAS,WAAY,CAC3BA,EAAI,OAAS,IACbA,EAAI,KAAO,MAAMT,EAAW,SAAS,QAAQ,EAC7C,MACF,CAEA,MAAMU,EAAK,CACb,CACF","names":["promClient","metrics","isHealthy","isReady","getLatestStoredBlockNumber","getDistanceFromFollowBlock","followBlockTag","blockTagGauge","blockTagToValue","ctx","next"]}
1
+ {"version":3,"sources":["../src/koa-middleware/metrics.ts"],"sourcesContent":["import { Middleware } from \"koa\";\nimport promClient from \"prom-client\";\n\ntype MetricsOptions = {\n isHealthy?: () => boolean;\n isReady?: () => boolean;\n getLatestStoredBlockNumber?: () => Promise<bigint | undefined>;\n getDistanceFromFollowBlock?: () => Promise<bigint>;\n followBlockTag?: \"latest\" | \"safe\" | \"finalized\";\n};\n\n/**\n * Middleware to add Prometheus metrics endpoints\n */\nexport function metrics({\n isHealthy,\n isReady,\n getLatestStoredBlockNumber,\n getDistanceFromFollowBlock,\n followBlockTag,\n}: MetricsOptions = {}): Middleware {\n promClient.collectDefaultMetrics();\n if (isHealthy != null) {\n new promClient.Gauge({\n name: \"health_status\",\n help: \"Health status (0 = unhealthy, 1 = healthy)\",\n collect(): void {\n this.set(Number(isHealthy()));\n },\n });\n }\n\n if (isReady != null) {\n new promClient.Gauge({\n name: \"readiness_status\",\n help: \"Readiness status (whether the service is ready to receive requests, 0 = not ready, 1 = ready)\",\n collect(): void {\n this.set(Number(isReady()));\n },\n });\n }\n\n if (getLatestStoredBlockNumber != null) {\n new promClient.Gauge({\n name: \"latest_stored_block_number\",\n help: \"Latest block number stored in the database\",\n async collect(): Promise<void> {\n this.set(Number(await getLatestStoredBlockNumber()));\n },\n });\n }\n\n if (followBlockTag != null) {\n const blockTagGauge = new promClient.Gauge({\n name: \"follow_block_tag\",\n help: \"Block tag the indexer is following (0 = finalized, 1 = safe, 2 = latest)\",\n });\n const blockTagToValue = {\n finalized: 0,\n safe: 1,\n latest: 2,\n };\n blockTagGauge.set(blockTagToValue[followBlockTag]);\n }\n\n if (getDistanceFromFollowBlock != null) {\n new promClient.Gauge({\n name: \"distance_from_follow_block\",\n help: \"Block distance from the block tag this the indexer is following\",\n async collect(): Promise<void> {\n this.set(Number(await getDistanceFromFollowBlock()));\n },\n });\n }\n\n return async function metricsMiddleware(ctx, next): Promise<void> {\n if (ctx.path === \"/metrics\") {\n ctx.status = 200;\n ctx.body = await promClient.register.metrics();\n return;\n }\n\n await next();\n };\n}\n"],"mappings":";AACA,OAAO,gBAAgB;AAahB,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAoB,CAAC,GAAe;AAClC,aAAW,sBAAsB;AACjC,MAAI,aAAa,MAAM;AACrB,QAAI,WAAW,MAAM;AAAA,MACnB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAgB;AACd,aAAK,IAAI,OAAO,UAAU,CAAC,CAAC;AAAA,MAC9B;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,WAAW,MAAM;AACnB,QAAI,WAAW,MAAM;AAAA,MACnB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAgB;AACd,aAAK,IAAI,OAAO,QAAQ,CAAC,CAAC;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,8BAA8B,MAAM;AACtC,QAAI,WAAW,MAAM;AAAA,MACnB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM,UAAyB;AAC7B,aAAK,IAAI,OAAO,MAAM,2BAA2B,CAAC,CAAC;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,kBAAkB,MAAM;AAC1B,UAAM,gBAAgB,IAAI,WAAW,MAAM;AAAA,MACzC,MAAM;AAAA,MACN,MAAM;AAAA,IACR,CAAC;AACD,UAAM,kBAAkB;AAAA,MACtB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,IACV;AACA,kBAAc,IAAI,gBAAgB,cAAc,CAAC;AAAA,EACnD;AAEA,MAAI,8BAA8B,MAAM;AACtC,QAAI,WAAW,MAAM;AAAA,MACnB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM,UAAyB;AAC7B,aAAK,IAAI,OAAO,MAAM,2BAA2B,CAAC,CAAC;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO,eAAe,kBAAkB,KAAK,MAAqB;AAChE,QAAI,IAAI,SAAS,YAAY;AAC3B,UAAI,SAAS;AACb,UAAI,OAAO,MAAM,WAAW,SAAS,QAAQ;AAC7C;AAAA,IACF;AAEA,UAAM,KAAK;AAAA,EACb;AACF;","names":[]}
@@ -0,0 +1,99 @@
1
+ // src/koa-middleware/sentry.ts
2
+ import * as Sentry from "@sentry/node";
3
+ import { ProfilingIntegration } from "@sentry/profiling-node";
4
+ import { stripUrlQueryAndFragment } from "@sentry/utils";
5
+
6
+ // src/debug.ts
7
+ import createDebug from "debug";
8
+ var debug = createDebug("mud:store-indexer");
9
+ var error = createDebug("mud:store-indexer");
10
+ debug.log = console.debug.bind(console);
11
+ error.log = console.error.bind(console);
12
+
13
+ // src/koa-middleware/sentry.ts
14
+ import compose from "koa-compose";
15
+ function errorHandler() {
16
+ return async function errorHandlerMiddleware(ctx, next) {
17
+ try {
18
+ await next();
19
+ } catch (err) {
20
+ Sentry.withScope((scope) => {
21
+ scope.addEventProcessor((event) => {
22
+ return Sentry.addRequestDataToEvent(event, ctx.request);
23
+ });
24
+ Sentry.captureException(err);
25
+ });
26
+ throw err;
27
+ }
28
+ };
29
+ }
30
+ function requestHandler() {
31
+ return async function requestHandlerMiddleware(ctx, next) {
32
+ await Sentry.runWithAsyncContext(async () => {
33
+ const hub = Sentry.getCurrentHub();
34
+ hub.configureScope(
35
+ (scope) => scope.addEventProcessor(
36
+ (event) => Sentry.addRequestDataToEvent(event, ctx.request, {
37
+ include: {
38
+ user: false
39
+ }
40
+ })
41
+ )
42
+ );
43
+ await next();
44
+ });
45
+ };
46
+ }
47
+ function tracing() {
48
+ return async function tracingMiddleware(ctx, next) {
49
+ const reqMethod = (ctx.method || "").toUpperCase();
50
+ const reqUrl = ctx.url && stripUrlQueryAndFragment(ctx.url);
51
+ let traceparentData;
52
+ if (ctx.request.get("sentry-trace")) {
53
+ traceparentData = Sentry.extractTraceparentData(ctx.request.get("sentry-trace"));
54
+ }
55
+ const transaction = Sentry.startTransaction({
56
+ name: `${reqMethod} ${reqUrl}`,
57
+ op: "http.server",
58
+ ...traceparentData
59
+ });
60
+ ctx.__sentry_transaction = transaction;
61
+ Sentry.getCurrentHub().configureScope((scope) => {
62
+ scope.setSpan(transaction);
63
+ });
64
+ ctx.res.on("finish", () => {
65
+ setImmediate(() => {
66
+ if (ctx._matchedRoute) {
67
+ const mountPath = ctx.mountPath || "";
68
+ transaction.setName(`${reqMethod} ${mountPath}${ctx._matchedRoute}`);
69
+ }
70
+ transaction.setHttpStatus(ctx.status);
71
+ transaction.finish();
72
+ });
73
+ });
74
+ await next();
75
+ };
76
+ }
77
+ function sentry(dsn) {
78
+ debug("Initializing Sentry");
79
+ Sentry.init({
80
+ dsn,
81
+ integrations: [
82
+ // Automatically instrument Node.js libraries and frameworks
83
+ ...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(),
84
+ new ProfilingIntegration()
85
+ ],
86
+ // Performance Monitoring
87
+ tracesSampleRate: 1,
88
+ // Set sampling rate for profiling - this is relative to tracesSampleRate
89
+ profilesSampleRate: 1
90
+ });
91
+ return compose([errorHandler(), requestHandler(), tracing()]);
92
+ }
93
+
94
+ export {
95
+ debug,
96
+ error,
97
+ sentry
98
+ };
99
+ //# sourceMappingURL=chunk-R7UQFYRA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/koa-middleware/sentry.ts","../src/debug.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\nimport { ProfilingIntegration } from \"@sentry/profiling-node\";\nimport { stripUrlQueryAndFragment } from \"@sentry/utils\";\nimport { debug } from \"../debug\";\nimport Koa from \"koa\";\nimport compose from \"koa-compose\";\n\nexport function errorHandler(): Koa.Middleware {\n return async function errorHandlerMiddleware(ctx, next) {\n try {\n await next();\n } catch (err) {\n Sentry.withScope((scope) => {\n scope.addEventProcessor((event) => {\n return Sentry.addRequestDataToEvent(event, ctx.request);\n });\n Sentry.captureException(err);\n });\n throw err;\n }\n };\n}\n\nexport function requestHandler(): Koa.Middleware {\n return async function requestHandlerMiddleware(ctx, next) {\n await Sentry.runWithAsyncContext(async () => {\n const hub = Sentry.getCurrentHub();\n hub.configureScope((scope) =>\n scope.addEventProcessor((event) =>\n Sentry.addRequestDataToEvent(event, ctx.request, {\n include: {\n user: false,\n },\n }),\n ),\n );\n await next();\n });\n };\n}\n\nexport function tracing(): Koa.Middleware {\n // creates a Sentry transaction per request\n return async function tracingMiddleware(ctx, next) {\n const reqMethod = (ctx.method || \"\").toUpperCase();\n const reqUrl = ctx.url && stripUrlQueryAndFragment(ctx.url);\n\n // Connect to trace of upstream app\n let traceparentData;\n if (ctx.request.get(\"sentry-trace\")) {\n traceparentData = Sentry.extractTraceparentData(ctx.request.get(\"sentry-trace\"));\n }\n\n const transaction = Sentry.startTransaction({\n name: `${reqMethod} ${reqUrl}`,\n op: \"http.server\",\n ...traceparentData,\n });\n\n ctx.__sentry_transaction = transaction;\n\n // We put the transaction on the scope so users can attach children to it\n Sentry.getCurrentHub().configureScope((scope) => {\n scope.setSpan(transaction);\n });\n\n ctx.res.on(\"finish\", () => {\n // Push `transaction.finish` to the next event loop so open spans have a chance to finish before the transaction closes\n setImmediate(() => {\n // If you're using koa router, set the matched route as transaction name\n if (ctx._matchedRoute) {\n const mountPath = ctx.mountPath || \"\";\n transaction.setName(`${reqMethod} ${mountPath}${ctx._matchedRoute}`);\n }\n\n transaction.setHttpStatus(ctx.status);\n transaction.finish();\n });\n });\n\n await next();\n };\n}\n\nexport function sentry(dsn: string): Koa.Middleware {\n debug(\"Initializing Sentry\");\n Sentry.init({\n dsn,\n integrations: [\n // Automatically instrument Node.js libraries and frameworks\n ...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(),\n new ProfilingIntegration(),\n ],\n // Performance Monitoring\n tracesSampleRate: 1.0,\n // Set sampling rate for profiling - this is relative to tracesSampleRate\n profilesSampleRate: 1.0,\n });\n\n return compose([errorHandler(), requestHandler(), tracing()]);\n}\n","import createDebug from \"debug\";\n\nexport const debug = createDebug(\"mud:store-indexer\");\nexport const error = createDebug(\"mud:store-indexer\");\n\n// Pipe debug output to stdout instead of stderr\ndebug.log = console.debug.bind(console);\n\n// Pipe error output to stderr\nerror.log = console.error.bind(console);\n"],"mappings":"AAAA,UAAYA,MAAY,eACxB,OAAS,wBAAAC,MAA4B,yBACrC,OAAS,4BAAAC,MAAgC,gBCFzC,OAAOC,MAAiB,QAEjB,IAAMC,EAAQD,EAAY,mBAAmB,EACvCE,EAAQF,EAAY,mBAAmB,EAGpDC,EAAM,IAAM,QAAQ,MAAM,KAAK,OAAO,EAGtCC,EAAM,IAAM,QAAQ,MAAM,KAAK,OAAO,EDJtC,OAAOC,MAAa,cAEb,SAASC,GAA+B,CAC7C,OAAO,eAAsCC,EAAKC,EAAM,CACtD,GAAI,CACF,MAAMA,EAAK,CACb,OAASC,EAAK,CACZ,MAAO,YAAWC,GAAU,CAC1BA,EAAM,kBAAmBC,GACT,wBAAsBA,EAAOJ,EAAI,OAAO,CACvD,EACM,mBAAiBE,CAAG,CAC7B,CAAC,EACKA,CACR,CACF,CACF,CAEO,SAASG,GAAiC,CAC/C,OAAO,eAAwCL,EAAKC,EAAM,CACxD,MAAa,sBAAoB,SAAY,CACxB,gBAAc,EAC7B,eAAgBE,GAClBA,EAAM,kBAAmBC,GAChB,wBAAsBA,EAAOJ,EAAI,QAAS,CAC/C,QAAS,CACP,KAAM,EACR,CACF,CAAC,CACH,CACF,EACA,MAAMC,EAAK,CACb,CAAC,CACH,CACF,CAEO,SAASK,GAA0B,CAExC,OAAO,eAAiCN,EAAKC,EAAM,CACjD,IAAMM,GAAaP,EAAI,QAAU,IAAI,YAAY,EAC3CQ,EAASR,EAAI,KAAOS,EAAyBT,EAAI,GAAG,EAGtDU,EACAV,EAAI,QAAQ,IAAI,cAAc,IAChCU,EAAyB,yBAAuBV,EAAI,QAAQ,IAAI,cAAc,CAAC,GAGjF,IAAMW,EAAqB,mBAAiB,CAC1C,KAAM,GAAGJ,CAAS,IAAIC,CAAM,GAC5B,GAAI,cACJ,GAAGE,CACL,CAAC,EAEDV,EAAI,qBAAuBW,EAGpB,gBAAc,EAAE,eAAgBR,GAAU,CAC/CA,EAAM,QAAQQ,CAAW,CAC3B,CAAC,EAEDX,EAAI,IAAI,GAAG,SAAU,IAAM,CAEzB,aAAa,IAAM,CAEjB,GAAIA,EAAI,cAAe,CACrB,IAAMY,EAAYZ,EAAI,WAAa,GACnCW,EAAY,QAAQ,GAAGJ,CAAS,IAAIK,CAAS,GAAGZ,EAAI,aAAa,EAAE,CACrE,CAEAW,EAAY,cAAcX,EAAI,MAAM,EACpCW,EAAY,OAAO,CACrB,CAAC,CACH,CAAC,EAED,MAAMV,EAAK,CACb,CACF,CAEO,SAASY,EAAOC,EAA6B,CAClD,OAAAC,EAAM,qBAAqB,EACpB,OAAK,CACV,IAAAD,EACA,aAAc,CAEZ,GAAU,oDAAkD,EAC5D,IAAIE,CACN,EAEA,iBAAkB,EAElB,mBAAoB,CACtB,CAAC,EAEMlB,EAAQ,CAACC,EAAa,EAAGM,EAAe,EAAGC,EAAQ,CAAC,CAAC,CAC9D","names":["Sentry","ProfilingIntegration","stripUrlQueryAndFragment","createDebug","debug","error","compose","errorHandler","ctx","next","err","scope","event","requestHandler","tracing","reqMethod","reqUrl","stripUrlQueryAndFragment","traceparentData","transaction","mountPath","sentry","dsn","debug","ProfilingIntegration"]}
1
+ {"version":3,"sources":["../src/koa-middleware/sentry.ts","../src/debug.ts"],"sourcesContent":["import * as Sentry from \"@sentry/node\";\nimport { ProfilingIntegration } from \"@sentry/profiling-node\";\nimport { stripUrlQueryAndFragment } from \"@sentry/utils\";\nimport { debug } from \"../debug\";\nimport Koa from \"koa\";\nimport compose from \"koa-compose\";\n\nexport function errorHandler(): Koa.Middleware {\n return async function errorHandlerMiddleware(ctx, next) {\n try {\n await next();\n } catch (err) {\n Sentry.withScope((scope) => {\n scope.addEventProcessor((event) => {\n return Sentry.addRequestDataToEvent(event, ctx.request);\n });\n Sentry.captureException(err);\n });\n throw err;\n }\n };\n}\n\nexport function requestHandler(): Koa.Middleware {\n return async function requestHandlerMiddleware(ctx, next) {\n await Sentry.runWithAsyncContext(async () => {\n const hub = Sentry.getCurrentHub();\n hub.configureScope((scope) =>\n scope.addEventProcessor((event) =>\n Sentry.addRequestDataToEvent(event, ctx.request, {\n include: {\n user: false,\n },\n }),\n ),\n );\n await next();\n });\n };\n}\n\nexport function tracing(): Koa.Middleware {\n // creates a Sentry transaction per request\n return async function tracingMiddleware(ctx, next) {\n const reqMethod = (ctx.method || \"\").toUpperCase();\n const reqUrl = ctx.url && stripUrlQueryAndFragment(ctx.url);\n\n // Connect to trace of upstream app\n let traceparentData;\n if (ctx.request.get(\"sentry-trace\")) {\n traceparentData = Sentry.extractTraceparentData(ctx.request.get(\"sentry-trace\"));\n }\n\n const transaction = Sentry.startTransaction({\n name: `${reqMethod} ${reqUrl}`,\n op: \"http.server\",\n ...traceparentData,\n });\n\n ctx.__sentry_transaction = transaction;\n\n // We put the transaction on the scope so users can attach children to it\n Sentry.getCurrentHub().configureScope((scope) => {\n scope.setSpan(transaction);\n });\n\n ctx.res.on(\"finish\", () => {\n // Push `transaction.finish` to the next event loop so open spans have a chance to finish before the transaction closes\n setImmediate(() => {\n // If you're using koa router, set the matched route as transaction name\n if (ctx._matchedRoute) {\n const mountPath = ctx.mountPath || \"\";\n transaction.setName(`${reqMethod} ${mountPath}${ctx._matchedRoute}`);\n }\n\n transaction.setHttpStatus(ctx.status);\n transaction.finish();\n });\n });\n\n await next();\n };\n}\n\nexport function sentry(dsn: string): Koa.Middleware {\n debug(\"Initializing Sentry\");\n Sentry.init({\n dsn,\n integrations: [\n // Automatically instrument Node.js libraries and frameworks\n ...Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(),\n new ProfilingIntegration(),\n ],\n // Performance Monitoring\n tracesSampleRate: 1.0,\n // Set sampling rate for profiling - this is relative to tracesSampleRate\n profilesSampleRate: 1.0,\n });\n\n return compose([errorHandler(), requestHandler(), tracing()]);\n}\n","import createDebug from \"debug\";\n\nexport const debug = createDebug(\"mud:store-indexer\");\nexport const error = createDebug(\"mud:store-indexer\");\n\n// Pipe debug output to stdout instead of stderr\ndebug.log = console.debug.bind(console);\n\n// Pipe error output to stderr\nerror.log = console.error.bind(console);\n"],"mappings":";AAAA,YAAY,YAAY;AACxB,SAAS,4BAA4B;AACrC,SAAS,gCAAgC;;;ACFzC,OAAO,iBAAiB;AAEjB,IAAM,QAAQ,YAAY,mBAAmB;AAC7C,IAAM,QAAQ,YAAY,mBAAmB;AAGpD,MAAM,MAAM,QAAQ,MAAM,KAAK,OAAO;AAGtC,MAAM,MAAM,QAAQ,MAAM,KAAK,OAAO;;;ADJtC,OAAO,aAAa;AAEb,SAAS,eAA+B;AAC7C,SAAO,eAAe,uBAAuB,KAAK,MAAM;AACtD,QAAI;AACF,YAAM,KAAK;AAAA,IACb,SAAS,KAAK;AACZ,MAAO,iBAAU,CAAC,UAAU;AAC1B,cAAM,kBAAkB,CAAC,UAAU;AACjC,iBAAc,6BAAsB,OAAO,IAAI,OAAO;AAAA,QACxD,CAAC;AACD,QAAO,wBAAiB,GAAG;AAAA,MAC7B,CAAC;AACD,YAAM;AAAA,IACR;AAAA,EACF;AACF;AAEO,SAAS,iBAAiC;AAC/C,SAAO,eAAe,yBAAyB,KAAK,MAAM;AACxD,UAAa,2BAAoB,YAAY;AAC3C,YAAM,MAAa,qBAAc;AACjC,UAAI;AAAA,QAAe,CAAC,UAClB,MAAM;AAAA,UAAkB,CAAC,UAChB,6BAAsB,OAAO,IAAI,SAAS;AAAA,YAC/C,SAAS;AAAA,cACP,MAAM;AAAA,YACR;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AACA,YAAM,KAAK;AAAA,IACb,CAAC;AAAA,EACH;AACF;AAEO,SAAS,UAA0B;AAExC,SAAO,eAAe,kBAAkB,KAAK,MAAM;AACjD,UAAM,aAAa,IAAI,UAAU,IAAI,YAAY;AACjD,UAAM,SAAS,IAAI,OAAO,yBAAyB,IAAI,GAAG;AAG1D,QAAI;AACJ,QAAI,IAAI,QAAQ,IAAI,cAAc,GAAG;AACnC,wBAAyB,8BAAuB,IAAI,QAAQ,IAAI,cAAc,CAAC;AAAA,IACjF;AAEA,UAAM,cAAqB,wBAAiB;AAAA,MAC1C,MAAM,GAAG,SAAS,IAAI,MAAM;AAAA,MAC5B,IAAI;AAAA,MACJ,GAAG;AAAA,IACL,CAAC;AAED,QAAI,uBAAuB;AAG3B,IAAO,qBAAc,EAAE,eAAe,CAAC,UAAU;AAC/C,YAAM,QAAQ,WAAW;AAAA,IAC3B,CAAC;AAED,QAAI,IAAI,GAAG,UAAU,MAAM;AAEzB,mBAAa,MAAM;AAEjB,YAAI,IAAI,eAAe;AACrB,gBAAM,YAAY,IAAI,aAAa;AACnC,sBAAY,QAAQ,GAAG,SAAS,IAAI,SAAS,GAAG,IAAI,aAAa,EAAE;AAAA,QACrE;AAEA,oBAAY,cAAc,IAAI,MAAM;AACpC,oBAAY,OAAO;AAAA,MACrB,CAAC;AAAA,IACH,CAAC;AAED,UAAM,KAAK;AAAA,EACb;AACF;AAEO,SAAS,OAAO,KAA6B;AAClD,QAAM,qBAAqB;AAC3B,EAAO,YAAK;AAAA,IACV;AAAA,IACA,cAAc;AAAA;AAAA,MAEZ,GAAU,yDAAkD;AAAA,MAC5D,IAAI,qBAAqB;AAAA,IAC3B;AAAA;AAAA,IAEA,kBAAkB;AAAA;AAAA,IAElB,oBAAoB;AAAA,EACtB,CAAC;AAED,SAAO,QAAQ,CAAC,aAAa,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC;AAC9D;","names":[]}
@@ -0,0 +1,31 @@
1
+ // src/koa-middleware/healthcheck.ts
2
+ function healthcheck({ isHealthy, isReady } = {}) {
3
+ return async function healthcheckMiddleware(ctx, next) {
4
+ if (ctx.path === "/healthz") {
5
+ if (isHealthy == null || isHealthy()) {
6
+ ctx.status = 200;
7
+ ctx.body = "healthy";
8
+ } else {
9
+ ctx.status = 503;
10
+ ctx.body = "not healthy";
11
+ }
12
+ return;
13
+ }
14
+ if (ctx.path === "/readyz") {
15
+ if (isReady == null || isReady()) {
16
+ ctx.status = 200;
17
+ ctx.body = "ready";
18
+ } else {
19
+ ctx.status = 503;
20
+ ctx.body = "not ready";
21
+ }
22
+ return;
23
+ }
24
+ await next();
25
+ };
26
+ }
27
+
28
+ export {
29
+ healthcheck
30
+ };
31
+ //# sourceMappingURL=chunk-SJLOWI5M.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/koa-middleware/healthcheck.ts"],"sourcesContent":["import { Middleware } from \"koa\";\n\ntype HealthcheckOptions = {\n isHealthy?: () => boolean;\n isReady?: () => boolean;\n};\n\n/**\n * Middleware to add Kubernetes healthcheck endpoints\n */\nexport function healthcheck({ isHealthy, isReady }: HealthcheckOptions = {}): Middleware {\n return async function healthcheckMiddleware(ctx, next): Promise<void> {\n if (ctx.path === \"/healthz\") {\n if (isHealthy == null || isHealthy()) {\n ctx.status = 200;\n ctx.body = \"healthy\";\n } else {\n ctx.status = 503;\n ctx.body = \"not healthy\";\n }\n return;\n }\n\n if (ctx.path === \"/readyz\") {\n if (isReady == null || isReady()) {\n ctx.status = 200;\n ctx.body = \"ready\";\n } else {\n ctx.status = 503;\n ctx.body = \"not ready\";\n }\n return;\n }\n\n await next();\n };\n}\n"],"mappings":"AAUO,SAASA,EAAY,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAwB,CAAC,EAAe,CACvF,OAAO,eAAqCC,EAAKC,EAAqB,CACpE,GAAID,EAAI,OAAS,WAAY,CACvBF,GAAa,MAAQA,EAAU,GACjCE,EAAI,OAAS,IACbA,EAAI,KAAO,YAEXA,EAAI,OAAS,IACbA,EAAI,KAAO,eAEb,MACF,CAEA,GAAIA,EAAI,OAAS,UAAW,CACtBD,GAAW,MAAQA,EAAQ,GAC7BC,EAAI,OAAS,IACbA,EAAI,KAAO,UAEXA,EAAI,OAAS,IACbA,EAAI,KAAO,aAEb,MACF,CAEA,MAAMC,EAAK,CACb,CACF","names":["healthcheck","isHealthy","isReady","ctx","next"]}
1
+ {"version":3,"sources":["../src/koa-middleware/healthcheck.ts"],"sourcesContent":["import { Middleware } from \"koa\";\n\ntype HealthcheckOptions = {\n isHealthy?: () => boolean;\n isReady?: () => boolean;\n};\n\n/**\n * Middleware to add Kubernetes healthcheck endpoints\n */\nexport function healthcheck({ isHealthy, isReady }: HealthcheckOptions = {}): Middleware {\n return async function healthcheckMiddleware(ctx, next): Promise<void> {\n if (ctx.path === \"/healthz\") {\n if (isHealthy == null || isHealthy()) {\n ctx.status = 200;\n ctx.body = \"healthy\";\n } else {\n ctx.status = 503;\n ctx.body = \"not healthy\";\n }\n return;\n }\n\n if (ctx.path === \"/readyz\") {\n if (isReady == null || isReady()) {\n ctx.status = 200;\n ctx.body = \"ready\";\n } else {\n ctx.status = 503;\n ctx.body = \"not ready\";\n }\n return;\n }\n\n await next();\n };\n}\n"],"mappings":";AAUO,SAAS,YAAY,EAAE,WAAW,QAAQ,IAAwB,CAAC,GAAe;AACvF,SAAO,eAAe,sBAAsB,KAAK,MAAqB;AACpE,QAAI,IAAI,SAAS,YAAY;AAC3B,UAAI,aAAa,QAAQ,UAAU,GAAG;AACpC,YAAI,SAAS;AACb,YAAI,OAAO;AAAA,MACb,OAAO;AACL,YAAI,SAAS;AACb,YAAI,OAAO;AAAA,MACb;AACA;AAAA,IACF;AAEA,QAAI,IAAI,SAAS,WAAW;AAC1B,UAAI,WAAW,QAAQ,QAAQ,GAAG;AAChC,YAAI,SAAS;AACb,YAAI,OAAO;AAAA,MACb,OAAO;AACL,YAAI,SAAS;AACb,YAAI,OAAO;AAAA,MACb;AACA;AAAA,IACF;AAEA,UAAM,KAAK;AAAA,EACb;AACF;","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ healthcheck
3
+ } from "./chunk-SJLOWI5M.js";
4
+ export {
5
+ healthcheck
6
+ };
7
+ //# sourceMappingURL=healthcheck-2DQWYXPX.js.map
@@ -0,0 +1,7 @@
1
+ import {
2
+ helloWorld
3
+ } from "./chunk-GDNGJPVT.js";
4
+ export {
5
+ helloWorld
6
+ };
7
+ //# sourceMappingURL=helloWorld-6IXGINV6.js.map
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,7 @@
1
+ import {
2
+ metrics
3
+ } from "./chunk-O4XAWAXU.js";
4
+ export {
5
+ metrics
6
+ };
7
+ //# sourceMappingURL=metrics-HO5SO4EX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latticexyz/store-indexer",
3
- "version": "2.2.18-8d0ce55e964e646a1c804c401df01c4deb866f30",
3
+ "version": "2.2.18-9fa07c8489f1fbf167d0db01cd9aaa645a29c8e2",
4
4
  "description": "Minimal Typescript indexer for Store",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,7 +10,16 @@
10
10
  "license": "MIT",
11
11
  "type": "module",
12
12
  "exports": {
13
- ".": "./dist/index.js"
13
+ ".": {
14
+ "import": {
15
+ "import": "./dist/index.js",
16
+ "types": "./dist/index.d.ts"
17
+ },
18
+ "require": {
19
+ "require": "./dist/index.cjs",
20
+ "types": "./dist/index.d.cts"
21
+ }
22
+ }
14
23
  },
15
24
  "typesVersions": {
16
25
  "*": {
@@ -50,11 +59,11 @@
50
59
  "superjson": "^1.12.4",
51
60
  "trpc-koa-adapter": "^1.1.3",
52
61
  "zod": "3.23.8",
53
- "@latticexyz/block-logs-stream": "2.2.18-8d0ce55e964e646a1c804c401df01c4deb866f30",
54
- "@latticexyz/protocol-parser": "2.2.18-8d0ce55e964e646a1c804c401df01c4deb866f30",
55
- "@latticexyz/common": "2.2.18-8d0ce55e964e646a1c804c401df01c4deb866f30",
56
- "@latticexyz/store-sync": "2.2.18-8d0ce55e964e646a1c804c401df01c4deb866f30",
57
- "@latticexyz/store": "2.2.18-8d0ce55e964e646a1c804c401df01c4deb866f30"
62
+ "@latticexyz/block-logs-stream": "2.2.18-9fa07c8489f1fbf167d0db01cd9aaa645a29c8e2",
63
+ "@latticexyz/common": "2.2.18-9fa07c8489f1fbf167d0db01cd9aaa645a29c8e2",
64
+ "@latticexyz/protocol-parser": "2.2.18-9fa07c8489f1fbf167d0db01cd9aaa645a29c8e2",
65
+ "@latticexyz/store": "2.2.18-9fa07c8489f1fbf167d0db01cd9aaa645a29c8e2",
66
+ "@latticexyz/store-sync": "2.2.18-9fa07c8489f1fbf167d0db01cd9aaa645a29c8e2"
58
67
  },
59
68
  "devDependencies": {
60
69
  "@types/accepts": "^1.3.7",
@@ -1,2 +0,0 @@
1
- function l({isHealthy:a,isReady:t}={}){return async function(e,o){if(e.path==="/healthz"){a==null||a()?(e.status=200,e.body="healthy"):(e.status=503,e.body="not healthy");return}if(e.path==="/readyz"){t==null||t()?(e.status=200,e.body="ready"):(e.status=503,e.body="not ready");return}await o()}}export{l as a};
2
- //# sourceMappingURL=chunk-7O2ZWWUX.js.map
@@ -1,2 +0,0 @@
1
- function l(){return async function(e,o){if(e.path==="/"){e.status=200,e.body="emit HelloWorld();";return}await o()}}export{l as a};
2
- //# sourceMappingURL=chunk-AYPBOJNL.js.map
@@ -1,2 +0,0 @@
1
- import e from"prom-client";function u({isHealthy:i,isReady:a,getLatestStoredBlockNumber:s,getDistanceFromFollowBlock:l,followBlockTag:o}={}){if(e.collectDefaultMetrics(),i!=null&&new e.Gauge({name:"health_status",help:"Health status (0 = unhealthy, 1 = healthy)",collect(){this.set(Number(i()))}}),a!=null&&new e.Gauge({name:"readiness_status",help:"Readiness status (whether the service is ready to receive requests, 0 = not ready, 1 = ready)",collect(){this.set(Number(a()))}}),s!=null&&new e.Gauge({name:"latest_stored_block_number",help:"Latest block number stored in the database",async collect(){this.set(Number(await s()))}}),o!=null){let n=new e.Gauge({name:"follow_block_tag",help:"Block tag the indexer is following (0 = finalized, 1 = safe, 2 = latest)"}),t={finalized:0,safe:1,latest:2};n.set(t[o])}return l!=null&&new e.Gauge({name:"distance_from_follow_block",help:"Block distance from the block tag this the indexer is following",async collect(){this.set(Number(await l()))}}),async function(t,r){if(t.path==="/metrics"){t.status=200,t.body=await e.register.metrics();return}await r()}}export{u as a};
2
- //# sourceMappingURL=chunk-ED45N3IT.js.map
@@ -1,2 +0,0 @@
1
- import*as e from"@sentry/node";import{ProfilingIntegration as m}from"@sentry/profiling-node";import{stripUrlQueryAndFragment as l}from"@sentry/utils";import c from"debug";var d=c("mud:store-indexer"),p=c("mud:store-indexer");d.log=console.debug.bind(console);p.log=console.error.bind(console);import f from"koa-compose";function y(){return async function(r,o){try{await o()}catch(t){throw e.withScope(a=>{a.addEventProcessor(n=>e.addRequestDataToEvent(n,r.request)),e.captureException(t)}),t}}}function g(){return async function(r,o){await e.runWithAsyncContext(async()=>{e.getCurrentHub().configureScope(a=>a.addEventProcessor(n=>e.addRequestDataToEvent(n,r.request,{include:{user:!1}}))),await o()})}}function S(){return async function(r,o){let t=(r.method||"").toUpperCase(),a=r.url&&l(r.url),n;r.request.get("sentry-trace")&&(n=e.extractTraceparentData(r.request.get("sentry-trace")));let i=e.startTransaction({name:`${t} ${a}`,op:"http.server",...n});r.__sentry_transaction=i,e.getCurrentHub().configureScope(u=>{u.setSpan(i)}),r.res.on("finish",()=>{setImmediate(()=>{if(r._matchedRoute){let u=r.mountPath||"";i.setName(`${t} ${u}${r._matchedRoute}`)}i.setHttpStatus(r.status),i.finish()})}),await o()}}function v(s){return d("Initializing Sentry"),e.init({dsn:s,integrations:[...e.autoDiscoverNodePerformanceMonitoringIntegrations(),new m],tracesSampleRate:1,profilesSampleRate:1}),f([y(),g(),S()])}export{d as a,p as b,v as c};
2
- //# sourceMappingURL=chunk-JDWVOODJ.js.map
@@ -1,7 +0,0 @@
1
- import{isHex as t}from"viem";import{z as e,ZodError as i}from"zod";var _=e.object({HOST:e.string().default("0.0.0.0"),PORT:e.coerce.number().positive().default(3001)}),T=e.intersection(e.object({FOLLOW_BLOCK_TAG:e.enum(["latest","safe","finalized"]).default("safe"),START_BLOCK:e.coerce.bigint().nonnegative().default(0n),MAX_BLOCK_RANGE:e.coerce.bigint().positive().default(1000n),POLLING_INTERVAL:e.coerce.number().positive().default(1e3),STORE_ADDRESS:e.string().optional().transform(n=>n===""?void 0:n).refine(s),INTERNAL__VALIDATE_BLOCK_RANGE:e.string().optional().transform(n=>n==="true"||n==="1")}),e.union([e.object({RPC_HTTP_URL:e.string(),RPC_WS_URL:e.string().optional()}),e.object({RPC_HTTP_URL:e.string().optional(),RPC_WS_URL:e.string()})]));function u(n){try{return n.parse(process.env)}catch(r){if(r instanceof i){let{...o}=r.format();console.error(`
2
- Missing or invalid environment variables:
3
-
4
- ${Object.keys(o).join(`
5
- `)}
6
- `),process.exit(1)}throw r}}function s(n){return n===void 0||t(n)}export{_ as a,T as b,u as c};
7
- //# sourceMappingURL=chunk-O2SDU7EQ.js.map
@@ -1,2 +0,0 @@
1
- import{Stream as a}from"node:stream";import c from"accepts";import{createBrotliCompress as p,createDeflate as m,createGzip as f}from"node:zlib";import{includes as l}from"@latticexyz/common/utils";var d={br:p,gzip:f,deflate:m},i=Object.keys(d);function b(o,s){let e=0;return o.on("data",n=>{e+=n.length,e>s&&(e=0,o.flush())}),o}function E({flushThreshold:o=1024*4}={}){return async function(e,n){e.vary("Accept-Encoding"),await n();let r=c(e.req).encoding(i);if(!l(i,r))return;let t=b(d[r](),o);e.set("Content-Encoding",r),e.body=e.body instanceof a?e.body.pipe(t):t.end(e.body)}}export{E as a};
2
- //# sourceMappingURL=chunk-R7HX5BT2.js.map
@@ -1,2 +0,0 @@
1
- import{createClient as n,fallback as o,http as e,webSocket as a}from"viem";import{isDefined as _}from"@latticexyz/common/utils";import{getChainId as c}from"viem/actions";async function f(t){if(t.INTERNAL__VALIDATE_BLOCK_RANGE){let i=t.RPC_HTTP_URL;if(!i)throw new Error("Must provide RPC_HTTP_URL when using INTERNAL__VALIDATE_BLOCK_RANGE.");return{internal_clientOptions:{chain:{id:await c(n({transport:e(i)})),name:"Unknown",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:[i]}}},pollingInterval:t.POLLING_INTERVAL,validateBlockRange:t.INTERNAL__VALIDATE_BLOCK_RANGE}}}let r=o([t.RPC_WS_URL?a(t.RPC_WS_URL):void 0,t.RPC_HTTP_URL?e(t.RPC_HTTP_URL):void 0].filter(_));return{publicClient:n({transport:r,pollingInterval:t.POLLING_INTERVAL})}}export{f as a};
2
- //# sourceMappingURL=chunk-YQ7E5W26.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-7O2ZWWUX.js";export{a as healthcheck};
2
- //# sourceMappingURL=healthcheck-57YETUEX.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-AYPBOJNL.js";export{a as helloWorld};
2
- //# sourceMappingURL=helloWorld-4VT4FZ7F.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-ED45N3IT.js";export{a as metrics};
2
- //# sourceMappingURL=metrics-4BMCDEZZ.js.map
File without changes