envio 3.15.0-sidecars.3 → 3.15.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 (226) hide show
  1. package/evm.schema.json +20 -149
  2. package/fuel.schema.json +20 -149
  3. package/index.d.ts +244 -274
  4. package/index.js +0 -2
  5. package/package.json +8 -27
  6. package/src/Address.res +0 -47
  7. package/src/Address.res.mjs +0 -34
  8. package/src/Batch.res +7 -78
  9. package/src/Batch.res.mjs +13 -52
  10. package/src/BatchProcessing.res +17 -12
  11. package/src/BatchProcessing.res.mjs +6 -6
  12. package/src/Bin.res +16 -21
  13. package/src/Bin.res.mjs +18 -22
  14. package/src/ChainFetching.res +113 -101
  15. package/src/ChainFetching.res.mjs +75 -66
  16. package/src/ChainState.res +106 -65
  17. package/src/ChainState.res.mjs +112 -88
  18. package/src/ChainState.resi +5 -9
  19. package/src/Config.res +77 -129
  20. package/src/Config.res.mjs +78 -98
  21. package/src/ContractRegisterContext.res +84 -86
  22. package/src/ContractRegisterContext.res.mjs +44 -62
  23. package/src/Core.res +17 -11
  24. package/src/CrossChainState.res +10 -12
  25. package/src/CrossChainState.res.mjs +6 -10
  26. package/src/Ecosystem.res +41 -47
  27. package/src/Ecosystem.res.mjs +19 -43
  28. package/src/EntityTables.res +1 -5
  29. package/src/EntityTables.res.mjs +3 -10
  30. package/src/Env.res +27 -67
  31. package/src/Env.res.mjs +28 -61
  32. package/src/Envio.res +1 -1
  33. package/src/Envio.res.mjs +1 -2
  34. package/src/ErrorHandling.res +19 -29
  35. package/src/ErrorHandling.res.mjs +17 -30
  36. package/src/EventConfigBuilder.res +86 -38
  37. package/src/EventConfigBuilder.res.mjs +60 -24
  38. package/src/EventProcessing.res +103 -305
  39. package/src/EventProcessing.res.mjs +103 -185
  40. package/src/ExitOnCaughtUp.res +5 -10
  41. package/src/ExitOnCaughtUp.res.mjs +10 -15
  42. package/src/FetchState.res +116 -92
  43. package/src/FetchState.res.mjs +82 -74
  44. package/src/FinalizeBackfill.res +2 -2
  45. package/src/FinalizeBackfill.res.mjs +4 -6
  46. package/src/HandlerLoader.res +9 -10
  47. package/src/HandlerLoader.res.mjs +9 -11
  48. package/src/HandlerRegister.res +47 -91
  49. package/src/HandlerRegister.res.mjs +35 -68
  50. package/src/HandlerRegister.resi +3 -7
  51. package/src/HandlerRuntime.res +61 -0
  52. package/src/HandlerRuntime.res.mjs +72 -0
  53. package/src/Hasura.res +127 -158
  54. package/src/Hasura.res.mjs +74 -99
  55. package/src/InMemoryStore.res +0 -4
  56. package/src/InMemoryStore.res.mjs +1 -1
  57. package/src/InMemoryTable.res +58 -38
  58. package/src/InMemoryTable.res.mjs +26 -11
  59. package/src/IndexerLoop.res +5 -1
  60. package/src/IndexerLoop.res.mjs +4 -2
  61. package/src/IndexerState.res +56 -131
  62. package/src/IndexerState.res.mjs +54 -126
  63. package/src/IndexerState.resi +11 -10
  64. package/src/Internal.res +69 -93
  65. package/src/Internal.res.mjs +12 -6
  66. package/src/LoadLayer.res +86 -90
  67. package/src/LoadLayer.res.mjs +22 -19
  68. package/src/LoadLayer.resi +0 -6
  69. package/src/LogSelection.res +185 -183
  70. package/src/LogSelection.res.mjs +91 -96
  71. package/src/Logger.res +478 -0
  72. package/src/Logger.res.mjs +453 -0
  73. package/src/Main.res +32 -64
  74. package/src/Main.res.mjs +28 -50
  75. package/src/Metrics.res +7 -186
  76. package/src/Metrics.res.mjs +2 -153
  77. package/src/Persistence.res +86 -44
  78. package/src/Persistence.res.mjs +71 -35
  79. package/src/PruneStaleHistory.res +41 -21
  80. package/src/PruneStaleHistory.res.mjs +23 -18
  81. package/src/ReorgDetection.res +0 -12
  82. package/src/ReorgDetection.res.mjs +1 -18
  83. package/src/ResumePlan.res +3 -1
  84. package/src/ResumePlan.res.mjs +4 -1
  85. package/src/Rollback.res +30 -19
  86. package/src/Rollback.res.mjs +8 -10
  87. package/src/RunScope.res +129 -0
  88. package/src/RunScope.res.mjs +144 -0
  89. package/src/Server.res +6 -37
  90. package/src/Server.res.mjs +6 -32
  91. package/src/SimulateDeadInputTracker.res +3 -2
  92. package/src/SimulateDeadInputTracker.res.mjs +4 -6
  93. package/src/SimulateItems.res +103 -36
  94. package/src/SimulateItems.res.mjs +308 -233
  95. package/src/Staging.res +1 -1
  96. package/src/{PgStorage.res → Storage.res} +524 -574
  97. package/src/{PgStorage.res.mjs → Storage.res.mjs} +358 -365
  98. package/src/Supervisor.res +42 -57
  99. package/src/Supervisor.res.mjs +34 -59
  100. package/src/TestIndexer.res +24 -73
  101. package/src/TestIndexer.res.mjs +22 -55
  102. package/src/Throttler.res +2 -7
  103. package/src/Throttler.res.mjs +3 -4
  104. package/src/Throttler.resi +1 -1
  105. package/src/Time.res +6 -6
  106. package/src/Time.res.mjs +2 -4
  107. package/src/TsModuleHooks.mjs +1 -11
  108. package/src/UserContext.res +220 -425
  109. package/src/UserContext.res.mjs +128 -300
  110. package/src/Utils.res +24 -27
  111. package/src/Utils.res.mjs +16 -23
  112. package/src/Worker.res +3 -10
  113. package/src/Worker.res.mjs +5 -11
  114. package/src/Writing.res +0 -22
  115. package/src/Writing.res.mjs +0 -5
  116. package/src/bindings/BigDecimal.res +3 -1
  117. package/src/bindings/BigDecimal.res.mjs +1 -1
  118. package/src/bindings/ClickHouse.res +184 -281
  119. package/src/bindings/ClickHouse.res.mjs +187 -308
  120. package/src/bindings/Express.res +0 -9
  121. package/src/bindings/NodeJs.res +4 -2
  122. package/src/bindings/{PgClient.res → StorageClient.res} +153 -40
  123. package/src/bindings/{PgClient.res.mjs → StorageClient.res.mjs} +11 -6
  124. package/src/bindings/Vitest.res +3 -0
  125. package/src/db/EntityFilter.res +1 -3
  126. package/src/db/EntityFilter.res.mjs +2 -1
  127. package/src/db/InternalTable.res +3 -97
  128. package/src/db/InternalTable.res.mjs +4 -45
  129. package/src/db/LoadFilter.res +3 -3
  130. package/src/db/LoadFilter.res.mjs +3 -2
  131. package/src/db/Sql.res +35 -15
  132. package/src/db/Sql.res.mjs +24 -8
  133. package/src/db/Table.res +2 -4
  134. package/src/sources/BlockItem.res +53 -0
  135. package/src/sources/BlockItem.res.mjs +51 -0
  136. package/src/sources/ChainSources.res +9 -4
  137. package/src/sources/ChainSources.res.mjs +7 -4
  138. package/src/sources/Evm.res +5 -13
  139. package/src/sources/Evm.res.mjs +8 -11
  140. package/src/sources/EvmChain.res +5 -0
  141. package/src/sources/EvmChain.res.mjs +5 -2
  142. package/src/sources/EvmHyperSyncSource.res +26 -13
  143. package/src/sources/EvmHyperSyncSource.res.mjs +19 -7
  144. package/src/sources/EvmRpcClient.res +11 -2
  145. package/src/sources/EvmRpcClient.res.mjs +4 -2
  146. package/src/sources/Fuel.res +5 -13
  147. package/src/sources/Fuel.res.mjs +5 -11
  148. package/src/sources/FuelHyperSyncClient.res +3 -3
  149. package/src/sources/FuelHyperSyncSource.res +22 -14
  150. package/src/sources/FuelHyperSyncSource.res.mjs +6 -7
  151. package/src/sources/HeightFeed.res +37 -31
  152. package/src/sources/HeightFeed.res.mjs +17 -24
  153. package/src/sources/HyperSync.res +22 -30
  154. package/src/sources/HyperSync.res.mjs +12 -20
  155. package/src/sources/HyperSync.resi +8 -12
  156. package/src/sources/HyperSyncClient.res +45 -43
  157. package/src/sources/HyperSyncClient.res.mjs +20 -19
  158. package/src/sources/RpcSource.res +15 -4
  159. package/src/sources/RpcSource.res.mjs +10 -6
  160. package/src/sources/SimulateSource.res +125 -29
  161. package/src/sources/SimulateSource.res.mjs +92 -20
  162. package/src/sources/Source.res +9 -9
  163. package/src/sources/SourceManager.res +146 -121
  164. package/src/sources/SourceManager.res.mjs +53 -64
  165. package/src/sources/SourceManager.resi +18 -13
  166. package/src/sources/StartBlockResolver.res +17 -19
  167. package/src/sources/StartBlockResolver.res.mjs +10 -11
  168. package/src/sources/Svm.res +29 -25
  169. package/src/sources/Svm.res.mjs +15 -13
  170. package/src/sources/SvmHyperSyncClient.res +29 -40
  171. package/src/sources/SvmHyperSyncClient.res.mjs +5 -7
  172. package/src/sources/SvmHyperSyncSource.res +22 -16
  173. package/src/sources/SvmHyperSyncSource.res.mjs +21 -16
  174. package/src/tui/Tui.res +10 -54
  175. package/src/tui/Tui.res.mjs +6 -41
  176. package/svm.schema.json +13 -149
  177. package/sidecar.d.ts +0 -1
  178. package/sidecar.js +0 -1
  179. package/src/Logging.res +0 -184
  180. package/src/Logging.res.mjs +0 -254
  181. package/src/Sink.res +0 -58
  182. package/src/Sink.res.mjs +0 -38
  183. package/src/TopicFilter.res +0 -3
  184. package/src/TopicFilter.res.mjs +0 -12
  185. package/src/bindings/ClickHouseSink.res +0 -196
  186. package/src/bindings/ClickHouseSink.res.mjs +0 -93
  187. package/src/bindings/Pino.res +0 -188
  188. package/src/bindings/Pino.res.mjs +0 -106
  189. package/src/bindings/Viem.res +0 -6
  190. package/src/bindings/Viem.res.mjs +0 -2
  191. package/src/sidecar/ChildOutput.res +0 -19
  192. package/src/sidecar/ChildOutput.res.mjs +0 -28
  193. package/src/sidecar/ResolverActions.res +0 -27
  194. package/src/sidecar/ResolverActions.res.mjs +0 -17
  195. package/src/sidecar/ServeProcess.res +0 -162
  196. package/src/sidecar/ServeProcess.res.mjs +0 -223
  197. package/src/sidecar/SidecarCall.res +0 -13
  198. package/src/sidecar/SidecarCall.res.mjs +0 -2
  199. package/src/sidecar/SidecarContract.res +0 -77
  200. package/src/sidecar/SidecarContract.res.mjs +0 -85
  201. package/src/sidecar/SidecarProcess.res +0 -220
  202. package/src/sidecar/SidecarProcess.res.mjs +0 -266
  203. package/src/sidecar/SidecarSender.res +0 -590
  204. package/src/sidecar/SidecarSender.res.mjs +0 -666
  205. package/src/sidecar/WebhookListener.res +0 -265
  206. package/src/sidecar/WebhookListener.res.mjs +0 -288
  207. package/src/sidecar/client.d.ts +0 -107
  208. package/src/sidecar/client.js +0 -443
  209. package/src/sidecar/contract.d.ts +0 -67
  210. package/src/sidecar/contract.js +0 -62
  211. package/src/sidecar/emit.d.ts +0 -105
  212. package/src/sidecar/emit.js +0 -284
  213. package/src/sidecar/env.d.ts +0 -75
  214. package/src/sidecar/env.js +0 -120
  215. package/src/sidecar/index.d.ts +0 -8
  216. package/src/sidecar/index.js +0 -8
  217. package/src/sidecar/log.d.ts +0 -23
  218. package/src/sidecar/log.js +0 -50
  219. package/src/sidecar/metrics.d.ts +0 -16
  220. package/src/sidecar/metrics.js +0 -80
  221. package/src/sidecar/resolvers.d.ts +0 -104
  222. package/src/sidecar/resolvers.js +0 -111
  223. package/src/sidecar/runtime.d.ts +0 -168
  224. package/src/sidecar/runtime.js +0 -727
  225. package/src/sidecar/sql.d.ts +0 -60
  226. package/src/sidecar/sql.js +0 -263
package/evm.schema.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "minimum": 0
40
40
  },
41
41
  "storage": {
42
- "description": "Storage backends the indexer writes data to. Defaults to Postgres when omitted. Set `clickhouse: true` to additionally sync the indexed data to ClickHouse. Mark a backend with `default: true` to store entities that don't have an @storage directive in the schema, e.g. `clickhouse: {default: true}`.",
42
+ "description": "Where the indexer keeps entities. Postgres is always enabled and keeps them by default. Set `clickhouse: true` and mark an entity `@storage(clickhouse: true)` in the schema to keep it in ClickHouse, or set `clickhouse: {default: true}` to keep every unmarked entity there. Entities kept only in ClickHouse aren't served over GraphQL.",
43
43
  "anyOf": [
44
44
  {
45
45
  "$ref": "#/$defs/StorageConfig"
@@ -56,40 +56,6 @@
56
56
  "null"
57
57
  ]
58
58
  },
59
- "sidecar": {
60
- "description": "A sidecar: your own long-running TypeScript process, run next to the indexer by `envio sidecar` (and started by `envio dev`). Handlers call its functions through `context.sidecar.<name>(input)` without waiting.",
61
- "anyOf": [
62
- {
63
- "$ref": "#/$defs/SidecarConfig"
64
- },
65
- {
66
- "type": "null"
67
- }
68
- ]
69
- },
70
- "resolvers": {
71
- "description": "Extra root query fields in the GraphQL API, answered by your sidecar or a webhook. Each one is published as a Hasura action, so Hasura and envio serve call the handler with Hasura's action payload.",
72
- "type": [
73
- "object",
74
- "null"
75
- ],
76
- "additionalProperties": {
77
- "$ref": "#/$defs/ResolverConfig"
78
- }
79
- },
80
- "types": {
81
- "description": "Output object types for `resolvers:`: type name to a map of field name to GraphQL type string (for example `address: \"String!\"`).",
82
- "type": [
83
- "object",
84
- "null"
85
- ],
86
- "additionalProperties": {
87
- "type": "object",
88
- "additionalProperties": {
89
- "type": "string"
90
- }
91
- }
92
- },
93
59
  "ecosystem": {
94
60
  "description": "Ecosystem of the project.",
95
61
  "anyOf": [
@@ -171,6 +137,13 @@
171
137
  "type": "null"
172
138
  }
173
139
  ]
140
+ },
141
+ "strict_hex_type": {
142
+ "description": "If true, the `Hex` type of bytes params, block and transaction hashes and `Bytes` fields is `0x${string}` instead of `string` (default: false)",
143
+ "type": [
144
+ "boolean",
145
+ "null"
146
+ ]
174
147
  }
175
148
  },
176
149
  "additionalProperties": false,
@@ -183,7 +156,7 @@
183
156
  "type": "object",
184
157
  "properties": {
185
158
  "postgres": {
186
- "description": "Whether to use Postgres as a storage backend (default: true). Accepts a boolean or an options object (the object form implies the backend is enabled).",
159
+ "description": "Always enabled. Accepts `true` or an options object.",
187
160
  "anyOf": [
188
161
  {
189
162
  "type": [
@@ -195,7 +168,7 @@
195
168
  "type": "object",
196
169
  "properties": {
197
170
  "default": {
198
- "description": "Whether entities without an @storage directive are stored in this backend (default: true when Postgres is the only enabled backend, false otherwise).",
171
+ "description": "Whether entities without an @storage directive are kept here (default: true, unless `clickhouse: {default: true}` is set).",
199
172
  "type": [
200
173
  "boolean",
201
174
  "null"
@@ -219,7 +192,7 @@
219
192
  ]
220
193
  },
221
194
  "clickhouse": {
222
- "description": "Whether to additionally sync the indexed data to ClickHouse. Requires Postgres to be enabled (default: false). Accepts a boolean or an options object (the object form implies the backend is enabled).",
195
+ "description": "Whether to enable ClickHouse (default: false). Accepts a boolean or an options object.",
223
196
  "anyOf": [
224
197
  {
225
198
  "type": [
@@ -231,7 +204,7 @@
231
204
  "type": "object",
232
205
  "properties": {
233
206
  "default": {
234
- "description": "Whether entities without an @storage directive are stored in this backend (default: false).",
207
+ "description": "Whether entities without an @storage directive are kept here (default: false). Set it together with `postgres: {default: true}` to keep them in both.",
235
208
  "type": [
236
209
  "boolean",
237
210
  "null"
@@ -256,118 +229,16 @@
256
229
  }
257
230
  },
258
231
  "additionalProperties": false,
259
- "allOf": [
260
- {
261
- "not": {
262
- "properties": {
263
- "postgres": {
264
- "const": false
265
- }
266
- },
267
- "required": [
268
- "postgres"
269
- ]
232
+ "not": {
233
+ "properties": {
234
+ "postgres": {
235
+ "const": false
270
236
  }
271
237
  },
272
- {
273
- "if": {
274
- "properties": {
275
- "clickhouse": {
276
- "anyOf": [
277
- {
278
- "const": true
279
- },
280
- {
281
- "type": "object"
282
- }
283
- ]
284
- }
285
- },
286
- "required": [
287
- "clickhouse"
288
- ]
289
- },
290
- "then": {
291
- "properties": {
292
- "postgres": {
293
- "anyOf": [
294
- {
295
- "const": true
296
- },
297
- {
298
- "type": "object"
299
- }
300
- ]
301
- }
302
- },
303
- "required": [
304
- "postgres"
305
- ]
306
- }
307
- }
308
- ]
309
- },
310
- "SidecarConfig": {
311
- "type": "object",
312
- "properties": {
313
- "contract": {
314
- "description": "Relative path to the contract module: `export default defineSidecar({ functions, webhooks })`. Schemas only, since both the indexer and the sidecar load it. Types `context.sidecar`.",
315
- "type": "string"
316
- },
317
- "entry": {
318
- "description": "Relative path to the sidecar entry module, which default-exports the `createSidecar(contract, {...})` result. Keep it outside the handlers directory, which the indexer auto-loads.",
319
- "type": "string"
320
- }
321
- },
322
- "additionalProperties": false,
323
- "required": [
324
- "contract",
325
- "entry"
326
- ]
327
- },
328
- "ResolverConfig": {
329
- "type": "object",
330
- "properties": {
331
- "description": {
332
- "description": "Shown as the field's description in the GraphQL schema.",
333
- "type": [
334
- "string",
335
- "null"
336
- ]
337
- },
338
- "args": {
339
- "description": "Argument name to GraphQL type string, for example `limit: \"Int!\"`. Scalars or lists of scalars.",
340
- "type": [
341
- "object",
342
- "null"
343
- ],
344
- "additionalProperties": {
345
- "type": "string"
346
- }
347
- },
348
- "output": {
349
- "description": "GraphQL type string of the result, for example `\"[TopTrader!]!\"`. Scalars or types declared under `types:`.",
350
- "type": "string"
351
- },
352
- "handler": {
353
- "description": "`sidecar` (answered by the `resolvers` of your `createSidecar`) or an http(s):// URL that accepts Hasura's action payload.",
354
- "type": "string"
355
- },
356
- "timeoutMs": {
357
- "description": "How long the GraphQL layer waits for the handler. (default: 30000)",
358
- "type": [
359
- "integer",
360
- "null"
361
- ],
362
- "format": "uint64",
363
- "minimum": 0
364
- }
365
- },
366
- "additionalProperties": false,
367
- "required": [
368
- "output",
369
- "handler"
370
- ]
238
+ "required": [
239
+ "postgres"
240
+ ]
241
+ }
371
242
  },
372
243
  "EcosystemTag": {
373
244
  "type": "string",
package/fuel.schema.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "minimum": 0
40
40
  },
41
41
  "storage": {
42
- "description": "Storage backends the indexer writes data to. Defaults to Postgres when omitted. Set `clickhouse: true` to additionally sync the indexed data to ClickHouse. Mark a backend with `default: true` to store entities that don't have an @storage directive in the schema, e.g. `clickhouse: {default: true}`.",
42
+ "description": "Where the indexer keeps entities. Postgres is always enabled and keeps them by default. Set `clickhouse: true` and mark an entity `@storage(clickhouse: true)` in the schema to keep it in ClickHouse, or set `clickhouse: {default: true}` to keep every unmarked entity there. Entities kept only in ClickHouse aren't served over GraphQL.",
43
43
  "anyOf": [
44
44
  {
45
45
  "$ref": "#/$defs/StorageConfig"
@@ -56,40 +56,6 @@
56
56
  "null"
57
57
  ]
58
58
  },
59
- "sidecar": {
60
- "description": "A sidecar: your own long-running TypeScript process, run next to the indexer by `envio sidecar` (and started by `envio dev`). Handlers call its functions through `context.sidecar.<name>(input)` without waiting.",
61
- "anyOf": [
62
- {
63
- "$ref": "#/$defs/SidecarConfig"
64
- },
65
- {
66
- "type": "null"
67
- }
68
- ]
69
- },
70
- "resolvers": {
71
- "description": "Extra root query fields in the GraphQL API, answered by your sidecar or a webhook. Each one is published as a Hasura action, so Hasura and envio serve call the handler with Hasura's action payload.",
72
- "type": [
73
- "object",
74
- "null"
75
- ],
76
- "additionalProperties": {
77
- "$ref": "#/$defs/ResolverConfig"
78
- }
79
- },
80
- "types": {
81
- "description": "Output object types for `resolvers:`: type name to a map of field name to GraphQL type string (for example `address: \"String!\"`).",
82
- "type": [
83
- "object",
84
- "null"
85
- ],
86
- "additionalProperties": {
87
- "type": "object",
88
- "additionalProperties": {
89
- "type": "string"
90
- }
91
- }
92
- },
93
59
  "ecosystem": {
94
60
  "description": "Ecosystem of the project.",
95
61
  "$ref": "#/$defs/EcosystemTag"
@@ -128,6 +94,13 @@
128
94
  "type": "null"
129
95
  }
130
96
  ]
97
+ },
98
+ "strict_hex_type": {
99
+ "description": "If true, the `Hex` type of bytes params, block and transaction hashes and `Bytes` fields is `0x${string}` instead of `string` (default: false)",
100
+ "type": [
101
+ "boolean",
102
+ "null"
103
+ ]
131
104
  }
132
105
  },
133
106
  "additionalProperties": false,
@@ -141,7 +114,7 @@
141
114
  "type": "object",
142
115
  "properties": {
143
116
  "postgres": {
144
- "description": "Whether to use Postgres as a storage backend (default: true). Accepts a boolean or an options object (the object form implies the backend is enabled).",
117
+ "description": "Always enabled. Accepts `true` or an options object.",
145
118
  "anyOf": [
146
119
  {
147
120
  "type": [
@@ -153,7 +126,7 @@
153
126
  "type": "object",
154
127
  "properties": {
155
128
  "default": {
156
- "description": "Whether entities without an @storage directive are stored in this backend (default: true when Postgres is the only enabled backend, false otherwise).",
129
+ "description": "Whether entities without an @storage directive are kept here (default: true, unless `clickhouse: {default: true}` is set).",
157
130
  "type": [
158
131
  "boolean",
159
132
  "null"
@@ -177,7 +150,7 @@
177
150
  ]
178
151
  },
179
152
  "clickhouse": {
180
- "description": "Whether to additionally sync the indexed data to ClickHouse. Requires Postgres to be enabled (default: false). Accepts a boolean or an options object (the object form implies the backend is enabled).",
153
+ "description": "Whether to enable ClickHouse (default: false). Accepts a boolean or an options object.",
181
154
  "anyOf": [
182
155
  {
183
156
  "type": [
@@ -189,7 +162,7 @@
189
162
  "type": "object",
190
163
  "properties": {
191
164
  "default": {
192
- "description": "Whether entities without an @storage directive are stored in this backend (default: false).",
165
+ "description": "Whether entities without an @storage directive are kept here (default: false). Set it together with `postgres: {default: true}` to keep them in both.",
193
166
  "type": [
194
167
  "boolean",
195
168
  "null"
@@ -214,118 +187,16 @@
214
187
  }
215
188
  },
216
189
  "additionalProperties": false,
217
- "allOf": [
218
- {
219
- "not": {
220
- "properties": {
221
- "postgres": {
222
- "const": false
223
- }
224
- },
225
- "required": [
226
- "postgres"
227
- ]
228
- }
229
- },
230
- {
231
- "if": {
232
- "properties": {
233
- "clickhouse": {
234
- "anyOf": [
235
- {
236
- "const": true
237
- },
238
- {
239
- "type": "object"
240
- }
241
- ]
242
- }
243
- },
244
- "required": [
245
- "clickhouse"
246
- ]
247
- },
248
- "then": {
249
- "properties": {
250
- "postgres": {
251
- "anyOf": [
252
- {
253
- "const": true
254
- },
255
- {
256
- "type": "object"
257
- }
258
- ]
259
- }
260
- },
261
- "required": [
262
- "postgres"
263
- ]
264
- }
265
- }
266
- ]
267
- },
268
- "SidecarConfig": {
269
- "type": "object",
270
- "properties": {
271
- "contract": {
272
- "description": "Relative path to the contract module: `export default defineSidecar({ functions, webhooks })`. Schemas only, since both the indexer and the sidecar load it. Types `context.sidecar`.",
273
- "type": "string"
274
- },
275
- "entry": {
276
- "description": "Relative path to the sidecar entry module, which default-exports the `createSidecar(contract, {...})` result. Keep it outside the handlers directory, which the indexer auto-loads.",
277
- "type": "string"
278
- }
279
- },
280
- "additionalProperties": false,
281
- "required": [
282
- "contract",
283
- "entry"
284
- ]
285
- },
286
- "ResolverConfig": {
287
- "type": "object",
288
- "properties": {
289
- "description": {
290
- "description": "Shown as the field's description in the GraphQL schema.",
291
- "type": [
292
- "string",
293
- "null"
294
- ]
295
- },
296
- "args": {
297
- "description": "Argument name to GraphQL type string, for example `limit: \"Int!\"`. Scalars or lists of scalars.",
298
- "type": [
299
- "object",
300
- "null"
301
- ],
302
- "additionalProperties": {
303
- "type": "string"
190
+ "not": {
191
+ "properties": {
192
+ "postgres": {
193
+ "const": false
304
194
  }
305
195
  },
306
- "output": {
307
- "description": "GraphQL type string of the result, for example `\"[TopTrader!]!\"`. Scalars or types declared under `types:`.",
308
- "type": "string"
309
- },
310
- "handler": {
311
- "description": "`sidecar` (answered by the `resolvers` of your `createSidecar`) or an http(s):// URL that accepts Hasura's action payload.",
312
- "type": "string"
313
- },
314
- "timeoutMs": {
315
- "description": "How long the GraphQL layer waits for the handler. (default: 30000)",
316
- "type": [
317
- "integer",
318
- "null"
319
- ],
320
- "format": "uint64",
321
- "minimum": 0
322
- }
323
- },
324
- "additionalProperties": false,
325
- "required": [
326
- "output",
327
- "handler"
328
- ]
196
+ "required": [
197
+ "postgres"
198
+ ]
199
+ }
329
200
  },
330
201
  "EcosystemTag": {
331
202
  "type": "string",