@secondlayer/subgraphs 3.11.0 → 3.13.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 (36) hide show
  1. package/dist/src/index.d.ts +36 -1
  2. package/dist/src/index.js +542 -180
  3. package/dist/src/index.js.map +12 -12
  4. package/dist/src/runtime/block-processor.d.ts +34 -1
  5. package/dist/src/runtime/block-processor.js +501 -72
  6. package/dist/src/runtime/block-processor.js.map +9 -8
  7. package/dist/src/runtime/catchup.d.ts +10 -0
  8. package/dist/src/runtime/catchup.js +520 -118
  9. package/dist/src/runtime/catchup.js.map +10 -9
  10. package/dist/src/runtime/context.d.ts +65 -3
  11. package/dist/src/runtime/context.js +390 -8
  12. package/dist/src/runtime/context.js.map +6 -4
  13. package/dist/src/runtime/processor.js +590 -230
  14. package/dist/src/runtime/processor.js.map +13 -13
  15. package/dist/src/runtime/reindex.d.ts +14 -0
  16. package/dist/src/runtime/reindex.js +538 -180
  17. package/dist/src/runtime/reindex.js.map +10 -10
  18. package/dist/src/runtime/reorg.d.ts +10 -0
  19. package/dist/src/runtime/reorg.js +521 -73
  20. package/dist/src/runtime/reorg.js.map +10 -9
  21. package/dist/src/runtime/replay.js.map +2 -2
  22. package/dist/src/runtime/runner.d.ts +73 -2
  23. package/dist/src/runtime/runner.js +56 -58
  24. package/dist/src/runtime/runner.js.map +3 -3
  25. package/dist/src/runtime/source-matcher.d.ts +2 -0
  26. package/dist/src/runtime/source-matcher.js.map +2 -2
  27. package/dist/src/schema/index.d.ts +10 -0
  28. package/dist/src/schema/index.js +19 -1
  29. package/dist/src/schema/index.js.map +5 -5
  30. package/dist/src/service.js +590 -230
  31. package/dist/src/service.js.map +13 -13
  32. package/dist/src/types.d.ts +10 -0
  33. package/dist/src/validate.d.ts +10 -0
  34. package/dist/src/validate.js +2 -1
  35. package/dist/src/validate.js.map +3 -3
  36. package/package.json +2 -2
@@ -165,6 +165,13 @@ interface SubgraphContext {
165
165
  update(table: string, where: Record<string, unknown>, set: Record<string, unknown>): void;
166
166
  upsert(table: string, key: Record<string, unknown>, row: Record<string, unknown>): void;
167
167
  delete(table: string, where: Record<string, unknown>): void;
168
+ /**
169
+ * Atomic counter update — the blessed accumulator primitive. Applies
170
+ * `col = COALESCE(col, 0) + delta` per column (insert-or-add); deltas may
171
+ * be negative. Requires a uniqueKeys constraint matching `key`. Prefer
172
+ * this over patchOrInsert with functional updaters for running totals.
173
+ */
174
+ increment(table: string, key: Record<string, unknown>, deltas: Record<string, bigint | number>): void;
168
175
  /** Partial update — sets only specified fields, preserves others */
169
176
  patch(table: string, where: Record<string, unknown>, set: Record<string, unknown>): void;
170
177
  /** Find-then-merge-or-insert. Values can be functions: (existing) => newValue */
@@ -196,6 +203,9 @@ interface SubgraphDefinition {
196
203
  description?: string;
197
204
  /** Block height to start indexing from (default: 1) */
198
205
  startBlock?: number;
206
+ /** 'concurrent' = tip-first: live at tip now, history backfills behind.
207
+ * Requires order-tolerant handlers. Default 'blocking'. */
208
+ backfillMode?: "blocking" | "concurrent";
199
209
  /** Named source filters — keys become handler keys */
200
210
  sources: Record<string, SubgraphFilter>;
201
211
  /** Tables in this subgraph */
@@ -225,6 +235,8 @@ interface ReindexOptions {
225
235
  fromBlock?: number;
226
236
  toBlock?: number;
227
237
  schemaName?: string;
238
+ /** Op row to receive processed_events on each progress flush. */
239
+ operationId?: string;
228
240
  signal?: AbortSignal;
229
241
  }
230
242
  /**
@@ -242,6 +254,7 @@ declare function reindexSubgraph(def: SubgraphDefinition, opts?: ReindexOptions)
242
254
  */
243
255
  declare function resumeReindex(def: SubgraphDefinition, opts: {
244
256
  schemaName: string
257
+ operationId?: string
245
258
  signal?: AbortSignal
246
259
  }): Promise<{
247
260
  processed: number
@@ -255,6 +268,7 @@ declare function backfillSubgraph(def: SubgraphDefinition, opts: {
255
268
  fromBlock: number
256
269
  toBlock: number
257
270
  schemaName?: string
271
+ operationId?: string
258
272
  signal?: AbortSignal
259
273
  }): Promise<{
260
274
  processed: number