ponder 0.9.4 → 0.9.5-debug.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 (466) hide show
  1. package/CHANGELOG.md +2201 -0
  2. package/dist/esm/bin/commands/codegen.js +37 -0
  3. package/dist/esm/bin/commands/codegen.js.map +1 -0
  4. package/dist/esm/bin/commands/dev.js +242 -0
  5. package/dist/esm/bin/commands/dev.js.map +1 -0
  6. package/dist/esm/bin/commands/list.js +103 -0
  7. package/dist/esm/bin/commands/list.js.map +1 -0
  8. package/dist/esm/bin/commands/serve.js +123 -0
  9. package/dist/esm/bin/commands/serve.js.map +1 -0
  10. package/dist/esm/bin/commands/start.js +136 -0
  11. package/dist/esm/bin/commands/start.js.map +1 -0
  12. package/dist/esm/bin/ponder.js +118 -0
  13. package/dist/esm/bin/ponder.js.map +1 -0
  14. package/dist/esm/bin/utils/codegen.js +26 -0
  15. package/dist/esm/bin/utils/codegen.js.map +1 -0
  16. package/dist/esm/bin/utils/exit.js +69 -0
  17. package/dist/esm/bin/utils/exit.js.map +1 -0
  18. package/dist/esm/bin/utils/run.js +247 -0
  19. package/dist/esm/bin/utils/run.js.map +1 -0
  20. package/dist/esm/bin/utils/runServer.js +8 -0
  21. package/dist/esm/bin/utils/runServer.js.map +1 -0
  22. package/dist/esm/build/configAndIndexingFunctions.js +654 -0
  23. package/dist/esm/build/configAndIndexingFunctions.js.map +1 -0
  24. package/dist/esm/build/factory.js +43 -0
  25. package/dist/esm/build/factory.js.map +1 -0
  26. package/dist/esm/build/index.js +431 -0
  27. package/dist/esm/build/index.js.map +1 -0
  28. package/dist/esm/build/plugin.js +43 -0
  29. package/dist/esm/build/plugin.js.map +1 -0
  30. package/dist/esm/build/pre.js +112 -0
  31. package/dist/esm/build/pre.js.map +1 -0
  32. package/dist/esm/build/schema.js +89 -0
  33. package/dist/esm/build/schema.js.map +1 -0
  34. package/dist/esm/build/stacktrace.js +137 -0
  35. package/dist/esm/build/stacktrace.js.map +1 -0
  36. package/dist/esm/client/index.js +124 -0
  37. package/dist/esm/client/index.js.map +1 -0
  38. package/dist/esm/client/validate.js +1151 -0
  39. package/dist/esm/client/validate.js.map +1 -0
  40. package/dist/esm/config/address.js +2 -0
  41. package/dist/esm/config/address.js.map +1 -0
  42. package/dist/esm/config/eventFilter.js +2 -0
  43. package/dist/esm/config/eventFilter.js.map +1 -0
  44. package/dist/esm/config/index.js +2 -0
  45. package/dist/esm/config/index.js.map +1 -0
  46. package/dist/esm/config/networks.js +120 -0
  47. package/dist/esm/config/networks.js.map +1 -0
  48. package/dist/esm/config/utilityTypes.js +2 -0
  49. package/dist/esm/config/utilityTypes.js.map +1 -0
  50. package/dist/esm/database/index.js +914 -0
  51. package/dist/esm/database/index.js.map +1 -0
  52. package/dist/esm/drizzle/bigint.js +36 -0
  53. package/dist/esm/drizzle/bigint.js.map +1 -0
  54. package/dist/esm/drizzle/hex.js +38 -0
  55. package/dist/esm/drizzle/hex.js.map +1 -0
  56. package/dist/esm/drizzle/index.js +43 -0
  57. package/dist/esm/drizzle/index.js.map +1 -0
  58. package/dist/esm/drizzle/kit/index.js +658 -0
  59. package/dist/esm/drizzle/kit/index.js.map +1 -0
  60. package/dist/esm/drizzle/onchain.js +102 -0
  61. package/dist/esm/drizzle/onchain.js.map +1 -0
  62. package/dist/esm/graphql/index.js +704 -0
  63. package/dist/esm/graphql/index.js.map +1 -0
  64. package/dist/esm/graphql/json.js +42 -0
  65. package/dist/esm/graphql/json.js.map +1 -0
  66. package/dist/esm/graphql/middleware.js +80 -0
  67. package/dist/esm/graphql/middleware.js.map +1 -0
  68. package/dist/esm/index.js +9 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/indexing/addStackTrace.js +54 -0
  71. package/dist/esm/indexing/addStackTrace.js.map +1 -0
  72. package/dist/esm/indexing/index.js +10 -0
  73. package/dist/esm/indexing/index.js.map +1 -0
  74. package/dist/esm/indexing/ponderActions.js +60 -0
  75. package/dist/esm/indexing/ponderActions.js.map +1 -0
  76. package/dist/esm/indexing/service.js +312 -0
  77. package/dist/esm/indexing/service.js.map +1 -0
  78. package/dist/esm/indexing-store/historical.js +591 -0
  79. package/dist/esm/indexing-store/historical.js.map +1 -0
  80. package/dist/esm/indexing-store/index.js +19 -0
  81. package/dist/esm/indexing-store/index.js.map +1 -0
  82. package/dist/esm/indexing-store/metadata.js +46 -0
  83. package/dist/esm/indexing-store/metadata.js.map +1 -0
  84. package/dist/esm/indexing-store/realtime.js +295 -0
  85. package/dist/esm/indexing-store/realtime.js.map +1 -0
  86. package/dist/esm/internal/common.js +2 -0
  87. package/dist/esm/internal/common.js.map +1 -0
  88. package/dist/esm/internal/errors.js +175 -0
  89. package/dist/esm/internal/errors.js.map +1 -0
  90. package/dist/esm/internal/logger.js +96 -0
  91. package/dist/esm/internal/logger.js.map +1 -0
  92. package/dist/esm/internal/metrics.js +569 -0
  93. package/dist/esm/internal/metrics.js.map +1 -0
  94. package/dist/esm/internal/options.js +69 -0
  95. package/dist/esm/internal/options.js.map +1 -0
  96. package/dist/esm/internal/shutdown.js +18 -0
  97. package/dist/esm/internal/shutdown.js.map +1 -0
  98. package/dist/esm/internal/telemetry.js +199 -0
  99. package/dist/esm/internal/telemetry.js.map +1 -0
  100. package/dist/esm/internal/types.js +2 -0
  101. package/dist/esm/internal/types.js.map +1 -0
  102. package/dist/esm/server/error.js +55 -0
  103. package/dist/esm/server/error.js.map +1 -0
  104. package/dist/esm/server/index.js +107 -0
  105. package/dist/esm/server/index.js.map +1 -0
  106. package/dist/esm/sync/abi.js +67 -0
  107. package/dist/esm/sync/abi.js.map +1 -0
  108. package/dist/esm/sync/events.js +607 -0
  109. package/dist/esm/sync/events.js.map +1 -0
  110. package/dist/esm/sync/filter.js +356 -0
  111. package/dist/esm/sync/filter.js.map +1 -0
  112. package/dist/esm/sync/fragments.js +300 -0
  113. package/dist/esm/sync/fragments.js.map +1 -0
  114. package/dist/esm/sync/index.js +1001 -0
  115. package/dist/esm/sync/index.js.map +1 -0
  116. package/dist/esm/sync/transport.js +94 -0
  117. package/dist/esm/sync/transport.js.map +1 -0
  118. package/dist/esm/sync-historical/index.js +590 -0
  119. package/dist/esm/sync-historical/index.js.map +1 -0
  120. package/dist/esm/sync-realtime/bloom.js +75 -0
  121. package/dist/esm/sync-realtime/bloom.js.map +1 -0
  122. package/dist/esm/sync-realtime/index.js +794 -0
  123. package/dist/esm/sync-realtime/index.js.map +1 -0
  124. package/dist/esm/sync-store/encoding.js +157 -0
  125. package/dist/esm/sync-store/encoding.js.map +1 -0
  126. package/dist/esm/sync-store/index.js +727 -0
  127. package/dist/esm/sync-store/index.js.map +1 -0
  128. package/dist/esm/sync-store/migrations.js +1186 -0
  129. package/dist/esm/sync-store/migrations.js.map +1 -0
  130. package/dist/esm/types/db.js +2 -0
  131. package/dist/esm/types/db.js.map +1 -0
  132. package/dist/esm/types/eth.js +2 -0
  133. package/dist/esm/types/eth.js.map +1 -0
  134. package/dist/esm/types/sync.js +2 -0
  135. package/dist/esm/types/sync.js.map +1 -0
  136. package/dist/esm/types/utils.js +2 -0
  137. package/dist/esm/types/utils.js.map +1 -0
  138. package/dist/esm/types/virtual.js +2 -0
  139. package/dist/esm/types/virtual.js.map +1 -0
  140. package/dist/esm/ui/ProgressBar.js +11 -0
  141. package/dist/esm/ui/ProgressBar.js.map +1 -0
  142. package/dist/esm/ui/Table.js +50 -0
  143. package/dist/esm/ui/Table.js.map +1 -0
  144. package/dist/esm/ui/app.js +113 -0
  145. package/dist/esm/ui/app.js.map +1 -0
  146. package/dist/esm/ui/graphiql.html.js +59 -0
  147. package/dist/esm/ui/graphiql.html.js.map +1 -0
  148. package/dist/esm/ui/index.js +21 -0
  149. package/dist/esm/ui/index.js.map +1 -0
  150. package/dist/esm/utils/bigint.js +37 -0
  151. package/dist/esm/utils/bigint.js.map +1 -0
  152. package/dist/esm/utils/chains.js +3 -0
  153. package/dist/esm/utils/chains.js.map +1 -0
  154. package/dist/esm/utils/checkpoint.js +114 -0
  155. package/dist/esm/utils/checkpoint.js.map +1 -0
  156. package/dist/esm/utils/chunk.js +8 -0
  157. package/dist/esm/utils/chunk.js.map +1 -0
  158. package/dist/esm/utils/date.js +27 -0
  159. package/dist/esm/utils/date.js.map +1 -0
  160. package/dist/esm/utils/debug.js +2 -0
  161. package/dist/esm/utils/debug.js.map +1 -0
  162. package/dist/esm/utils/dedupe.js +33 -0
  163. package/dist/esm/utils/dedupe.js.map +1 -0
  164. package/dist/esm/utils/duplicates.js +19 -0
  165. package/dist/esm/utils/duplicates.js.map +1 -0
  166. package/dist/esm/utils/estimate.js +6 -0
  167. package/dist/esm/utils/estimate.js.map +1 -0
  168. package/dist/esm/utils/extend.js +28 -0
  169. package/dist/esm/utils/extend.js.map +1 -0
  170. package/dist/esm/utils/format.js +20 -0
  171. package/dist/esm/utils/format.js.map +1 -0
  172. package/dist/esm/utils/generators.js +77 -0
  173. package/dist/esm/utils/generators.js.map +1 -0
  174. package/dist/esm/utils/hash.js +11 -0
  175. package/dist/esm/utils/hash.js.map +1 -0
  176. package/dist/esm/utils/interval.js +171 -0
  177. package/dist/esm/utils/interval.js.map +1 -0
  178. package/dist/esm/utils/lowercase.js +7 -0
  179. package/dist/esm/utils/lowercase.js.map +1 -0
  180. package/dist/esm/utils/mutex.js +25 -0
  181. package/dist/esm/utils/mutex.js.map +1 -0
  182. package/dist/esm/utils/never.js +4 -0
  183. package/dist/esm/utils/never.js.map +1 -0
  184. package/dist/esm/utils/offset.js +73 -0
  185. package/dist/esm/utils/offset.js.map +1 -0
  186. package/dist/esm/utils/order.js +18 -0
  187. package/dist/esm/utils/order.js.map +1 -0
  188. package/dist/esm/utils/partition.js +37 -0
  189. package/dist/esm/utils/partition.js.map +1 -0
  190. package/dist/esm/utils/pg.js +126 -0
  191. package/dist/esm/utils/pg.js.map +1 -0
  192. package/dist/esm/utils/pglite.js +80 -0
  193. package/dist/esm/utils/pglite.js.map +1 -0
  194. package/dist/esm/utils/port.js +30 -0
  195. package/dist/esm/utils/port.js.map +1 -0
  196. package/dist/esm/utils/print.js +23 -0
  197. package/dist/esm/utils/print.js.map +1 -0
  198. package/dist/esm/utils/promiseWithResolvers.js +13 -0
  199. package/dist/esm/utils/promiseWithResolvers.js.map +1 -0
  200. package/dist/esm/utils/queue.js +145 -0
  201. package/dist/esm/utils/queue.js.map +1 -0
  202. package/dist/esm/utils/range.js +8 -0
  203. package/dist/esm/utils/range.js.map +1 -0
  204. package/dist/esm/utils/requestQueue.js +127 -0
  205. package/dist/esm/utils/requestQueue.js.map +1 -0
  206. package/dist/esm/utils/result.js +10 -0
  207. package/dist/esm/utils/result.js.map +1 -0
  208. package/dist/esm/utils/rpc.js +202 -0
  209. package/dist/esm/utils/rpc.js.map +1 -0
  210. package/dist/esm/utils/serialize.js +23 -0
  211. package/dist/esm/utils/serialize.js.map +1 -0
  212. package/dist/esm/utils/timer.js +17 -0
  213. package/dist/esm/utils/timer.js.map +1 -0
  214. package/dist/esm/utils/wait.js +8 -0
  215. package/dist/esm/utils/wait.js.map +1 -0
  216. package/dist/esm/utils/zipper.js +67 -0
  217. package/dist/esm/utils/zipper.js.map +1 -0
  218. package/dist/types/bin/commands/codegen.d.ts +5 -0
  219. package/dist/types/bin/commands/codegen.d.ts.map +1 -0
  220. package/dist/types/bin/commands/dev.d.ts +5 -0
  221. package/dist/types/bin/commands/dev.d.ts.map +1 -0
  222. package/dist/types/bin/commands/list.d.ts +5 -0
  223. package/dist/types/bin/commands/list.d.ts.map +1 -0
  224. package/dist/types/bin/commands/serve.d.ts +5 -0
  225. package/dist/types/bin/commands/serve.d.ts.map +1 -0
  226. package/dist/types/bin/commands/start.d.ts +5 -0
  227. package/dist/types/bin/commands/start.d.ts.map +1 -0
  228. package/dist/{bin → types/bin}/ponder.d.ts +5 -6
  229. package/dist/types/bin/ponder.d.ts.map +1 -0
  230. package/dist/types/bin/utils/codegen.d.ts +6 -0
  231. package/dist/types/bin/utils/codegen.d.ts.map +1 -0
  232. package/dist/types/bin/utils/exit.d.ts +9 -0
  233. package/dist/types/bin/utils/exit.d.ts.map +1 -0
  234. package/dist/types/bin/utils/run.d.ts +14 -0
  235. package/dist/types/bin/utils/run.d.ts.map +1 -0
  236. package/dist/types/bin/utils/runServer.d.ts +12 -0
  237. package/dist/types/bin/utils/runServer.d.ts.map +1 -0
  238. package/dist/types/build/configAndIndexingFunctions.d.ts +37 -0
  239. package/dist/types/build/configAndIndexingFunctions.d.ts.map +1 -0
  240. package/dist/types/build/factory.d.ts +10 -0
  241. package/dist/types/build/factory.d.ts.map +1 -0
  242. package/dist/types/build/index.d.ts +70 -0
  243. package/dist/types/build/index.d.ts.map +1 -0
  244. package/dist/types/build/plugin.d.ts +4 -0
  245. package/dist/types/build/plugin.d.ts.map +1 -0
  246. package/dist/types/build/pre.d.ts +35 -0
  247. package/dist/types/build/pre.d.ts.map +1 -0
  248. package/dist/types/build/schema.d.ts +18 -0
  249. package/dist/types/build/schema.d.ts.map +1 -0
  250. package/dist/types/build/stacktrace.d.ts +13 -0
  251. package/dist/types/build/stacktrace.d.ts.map +1 -0
  252. package/dist/types/client/index.d.ts +27 -0
  253. package/dist/types/client/index.d.ts.map +1 -0
  254. package/dist/types/client/validate.d.ts +2 -0
  255. package/dist/types/client/validate.d.ts.map +1 -0
  256. package/dist/types/config/address.d.ts +14 -0
  257. package/dist/types/config/address.d.ts.map +1 -0
  258. package/dist/types/config/eventFilter.d.ts +18 -0
  259. package/dist/types/config/eventFilter.d.ts.map +1 -0
  260. package/dist/types/config/index.d.ts +143 -0
  261. package/dist/types/config/index.d.ts.map +1 -0
  262. package/dist/types/config/networks.d.ts +30 -0
  263. package/dist/types/config/networks.d.ts.map +1 -0
  264. package/dist/types/config/utilityTypes.d.ts +43 -0
  265. package/dist/types/config/utilityTypes.d.ts.map +1 -0
  266. package/dist/types/database/index.d.ts +91 -0
  267. package/dist/types/database/index.d.ts.map +1 -0
  268. package/dist/types/drizzle/bigint.d.ts +25 -0
  269. package/dist/types/drizzle/bigint.d.ts.map +1 -0
  270. package/dist/types/drizzle/hex.d.ts +25 -0
  271. package/dist/types/drizzle/hex.d.ts.map +1 -0
  272. package/dist/types/drizzle/index.d.ts +14 -0
  273. package/dist/types/drizzle/index.d.ts.map +1 -0
  274. package/dist/types/drizzle/kit/index.d.ts +49 -0
  275. package/dist/types/drizzle/kit/index.d.ts.map +1 -0
  276. package/dist/{drizzle → types/drizzle}/onchain.d.ts +49 -96
  277. package/dist/types/drizzle/onchain.d.ts.map +1 -0
  278. package/dist/types/graphql/index.d.ts +14 -0
  279. package/dist/types/graphql/index.d.ts.map +1 -0
  280. package/dist/types/graphql/json.d.ts +3 -0
  281. package/dist/types/graphql/json.d.ts.map +1 -0
  282. package/dist/types/graphql/middleware.d.ts +29 -0
  283. package/dist/types/graphql/middleware.d.ts.map +1 -0
  284. package/dist/types/index.d.ts +18 -0
  285. package/dist/types/index.d.ts.map +1 -0
  286. package/dist/types/indexing/addStackTrace.d.ts +3 -0
  287. package/dist/types/indexing/addStackTrace.d.ts.map +1 -0
  288. package/dist/types/indexing/index.d.ts +575 -0
  289. package/dist/types/indexing/index.d.ts.map +1 -0
  290. package/dist/types/indexing/ponderActions.d.ts +47 -0
  291. package/dist/types/indexing/ponderActions.d.ts.map +1 -0
  292. package/dist/types/indexing/service.d.ts +73 -0
  293. package/dist/types/indexing/service.d.ts.map +1 -0
  294. package/dist/types/indexing-store/historical.d.ts +19 -0
  295. package/dist/types/indexing-store/historical.d.ts.map +1 -0
  296. package/dist/types/indexing-store/index.d.ts +10 -0
  297. package/dist/types/indexing-store/index.d.ts.map +1 -0
  298. package/dist/types/indexing-store/metadata.d.ts +10 -0
  299. package/dist/types/indexing-store/metadata.d.ts.map +1 -0
  300. package/dist/types/indexing-store/realtime.d.ts +10 -0
  301. package/dist/types/indexing-store/realtime.d.ts.map +1 -0
  302. package/dist/types/internal/common.d.ts +13 -0
  303. package/dist/types/internal/common.d.ts.map +1 -0
  304. package/dist/types/internal/errors.d.ts +55 -0
  305. package/dist/types/internal/errors.d.ts.map +1 -0
  306. package/dist/types/internal/logger.d.ts +26 -0
  307. package/dist/types/internal/logger.d.ts.map +1 -0
  308. package/dist/types/internal/metrics.d.ts +77 -0
  309. package/dist/types/internal/metrics.d.ts.map +1 -0
  310. package/dist/types/internal/options.d.ts +59 -0
  311. package/dist/types/internal/options.d.ts.map +1 -0
  312. package/dist/types/internal/shutdown.d.ts +8 -0
  313. package/dist/types/internal/shutdown.d.ts.map +1 -0
  314. package/dist/types/internal/telemetry.d.ts +43 -0
  315. package/dist/types/internal/telemetry.d.ts.map +1 -0
  316. package/dist/types/internal/types.d.ts +328 -0
  317. package/dist/types/internal/types.d.ts.map +1 -0
  318. package/dist/types/server/error.d.ts +5 -0
  319. package/dist/types/server/error.d.ts.map +1 -0
  320. package/dist/types/server/index.d.ts +13 -0
  321. package/dist/types/server/index.d.ts.map +1 -0
  322. package/dist/types/sync/abi.d.ts +54 -0
  323. package/dist/types/sync/abi.d.ts.map +1 -0
  324. package/dist/types/sync/events.d.ts +24 -0
  325. package/dist/types/sync/events.d.ts.map +1 -0
  326. package/dist/types/sync/filter.d.ts +71 -0
  327. package/dist/types/sync/filter.d.ts.map +1 -0
  328. package/dist/types/sync/fragments.d.ts +21 -0
  329. package/dist/types/sync/fragments.d.ts.map +1 -0
  330. package/dist/types/sync/index.d.ts +112 -0
  331. package/dist/types/sync/index.d.ts.map +1 -0
  332. package/dist/types/sync/transport.d.ts +8 -0
  333. package/dist/types/sync/transport.d.ts.map +1 -0
  334. package/dist/types/sync-historical/index.d.ts +28 -0
  335. package/dist/types/sync-historical/index.d.ts.map +1 -0
  336. package/dist/types/sync-realtime/bloom.d.ts +19 -0
  337. package/dist/types/sync-realtime/bloom.d.ts.map +1 -0
  338. package/dist/types/sync-realtime/index.d.ts +48 -0
  339. package/dist/types/sync-realtime/index.d.ts.map +1 -0
  340. package/dist/types/sync-store/encoding.d.ts +151 -0
  341. package/dist/types/sync-store/encoding.d.ts.map +1 -0
  342. package/dist/types/sync-store/index.d.ts +104 -0
  343. package/dist/types/sync-store/index.d.ts.map +1 -0
  344. package/dist/types/sync-store/migrations.d.ts +13 -0
  345. package/dist/types/sync-store/migrations.d.ts.map +1 -0
  346. package/dist/types/types/db.d.ts +213 -0
  347. package/dist/types/types/db.d.ts.map +1 -0
  348. package/dist/types/types/eth.d.ts +196 -0
  349. package/dist/types/types/eth.d.ts.map +1 -0
  350. package/dist/types/types/sync.d.ts +15 -0
  351. package/dist/types/types/sync.d.ts.map +1 -0
  352. package/dist/types/types/utils.d.ts +22 -0
  353. package/dist/types/types/utils.d.ts.map +1 -0
  354. package/dist/types/types/virtual.d.ts +95 -0
  355. package/dist/types/types/virtual.d.ts.map +1 -0
  356. package/dist/types/ui/ProgressBar.d.ts +7 -0
  357. package/dist/types/ui/ProgressBar.d.ts.map +1 -0
  358. package/dist/types/ui/Table.d.ts +24 -0
  359. package/dist/types/ui/Table.d.ts.map +1 -0
  360. package/dist/types/ui/app.d.ts +14 -0
  361. package/dist/types/ui/app.d.ts.map +1 -0
  362. package/dist/types/ui/graphiql.html.d.ts +2 -0
  363. package/dist/types/ui/graphiql.html.d.ts.map +1 -0
  364. package/dist/types/ui/index.d.ts +5 -0
  365. package/dist/types/ui/index.d.ts.map +1 -0
  366. package/dist/types/utils/bigint.d.ts +15 -0
  367. package/dist/types/utils/bigint.d.ts.map +1 -0
  368. package/dist/types/utils/chains.d.ts +3 -0
  369. package/dist/types/utils/chains.d.ts.map +1 -0
  370. package/dist/types/utils/checkpoint.d.ts +40 -0
  371. package/dist/types/utils/checkpoint.d.ts.map +1 -0
  372. package/dist/types/utils/chunk.d.ts +2 -0
  373. package/dist/types/utils/chunk.d.ts.map +1 -0
  374. package/dist/types/utils/date.d.ts +7 -0
  375. package/dist/types/utils/date.d.ts.map +1 -0
  376. package/dist/types/utils/debug.d.ts +105 -0
  377. package/dist/types/utils/debug.d.ts.map +1 -0
  378. package/dist/types/utils/dedupe.d.ts +20 -0
  379. package/dist/types/utils/dedupe.d.ts.map +1 -0
  380. package/dist/types/utils/duplicates.d.ts +7 -0
  381. package/dist/types/utils/duplicates.d.ts.map +1 -0
  382. package/dist/types/utils/estimate.d.ts +11 -0
  383. package/dist/types/utils/estimate.d.ts.map +1 -0
  384. package/dist/types/utils/extend.d.ts +13 -0
  385. package/dist/types/utils/extend.d.ts.map +1 -0
  386. package/dist/types/utils/format.d.ts +3 -0
  387. package/dist/types/utils/format.d.ts.map +1 -0
  388. package/dist/types/utils/generators.d.ts +23 -0
  389. package/dist/types/utils/generators.d.ts.map +1 -0
  390. package/dist/types/utils/hash.d.ts +11 -0
  391. package/dist/types/utils/hash.d.ts.map +1 -0
  392. package/dist/types/utils/interval.d.ts +53 -0
  393. package/dist/types/utils/interval.d.ts.map +1 -0
  394. package/dist/types/utils/lowercase.d.ts +5 -0
  395. package/dist/types/utils/lowercase.d.ts.map +1 -0
  396. package/dist/types/utils/mutex.d.ts +8 -0
  397. package/dist/types/utils/mutex.d.ts.map +1 -0
  398. package/dist/types/utils/never.d.ts +2 -0
  399. package/dist/types/utils/never.d.ts.map +1 -0
  400. package/dist/types/utils/offset.d.ts +3 -0
  401. package/dist/types/utils/offset.d.ts.map +1 -0
  402. package/dist/types/utils/order.d.ts +2 -0
  403. package/dist/types/utils/order.d.ts.map +1 -0
  404. package/dist/types/utils/partition.d.ts +22 -0
  405. package/dist/types/utils/partition.d.ts.map +1 -0
  406. package/dist/types/utils/pg.d.ts +5 -0
  407. package/dist/types/utils/pg.d.ts.map +1 -0
  408. package/dist/types/utils/pglite.d.ts +25 -0
  409. package/dist/types/utils/pglite.d.ts.map +1 -0
  410. package/dist/types/utils/port.d.ts +5 -0
  411. package/dist/types/utils/port.d.ts.map +1 -0
  412. package/dist/types/utils/print.d.ts +2 -0
  413. package/dist/types/utils/print.d.ts.map +1 -0
  414. package/dist/types/utils/promiseWithResolvers.d.ts +10 -0
  415. package/dist/types/utils/promiseWithResolvers.d.ts.map +1 -0
  416. package/dist/types/utils/queue.d.ts +33 -0
  417. package/dist/types/utils/queue.d.ts.map +1 -0
  418. package/dist/types/utils/range.d.ts +8 -0
  419. package/dist/types/utils/range.d.ts.map +1 -0
  420. package/dist/types/utils/requestQueue.d.ts +21 -0
  421. package/dist/types/utils/requestQueue.d.ts.map +1 -0
  422. package/dist/types/utils/result.d.ts +17 -0
  423. package/dist/types/utils/result.d.ts.map +1 -0
  424. package/dist/types/utils/rpc.d.ts +57 -0
  425. package/dist/types/utils/rpc.d.ts.map +1 -0
  426. package/dist/types/utils/serialize.d.ts +19 -0
  427. package/dist/types/utils/serialize.d.ts.map +1 -0
  428. package/dist/types/utils/timer.d.ts +11 -0
  429. package/dist/types/utils/timer.d.ts.map +1 -0
  430. package/dist/types/utils/wait.d.ts +6 -0
  431. package/dist/types/utils/wait.d.ts.map +1 -0
  432. package/dist/types/utils/zipper.d.ts +36 -0
  433. package/dist/types/utils/zipper.d.ts.map +1 -0
  434. package/package.json +17 -17
  435. package/src/bin/commands/dev.ts +1 -1
  436. package/src/bin/ponder.ts +1 -1
  437. package/src/bin/utils/run.ts +7 -18
  438. package/src/build/configAndIndexingFunctions.ts +1 -1
  439. package/src/build/factory.ts +1 -1
  440. package/src/client/index.ts +1 -1
  441. package/src/graphql/index.ts +1 -1
  442. package/src/indexing-store/historical.ts +1 -1
  443. package/src/indexing-store/realtime.ts +1 -1
  444. package/src/internal/telemetry.ts +1 -1
  445. package/src/sync/fragments.ts +1 -1
  446. package/src/sync/index.ts +60 -20
  447. package/src/sync-historical/index.ts +26 -26
  448. package/src/sync-realtime/index.ts +1 -1
  449. package/src/utils/dedupe.ts +40 -0
  450. package/src/utils/generators.ts +1 -1
  451. package/src/utils/mutex.ts +1 -1
  452. package/src/utils/promiseWithResolvers.ts +20 -0
  453. package/src/utils/queue.ts +250 -0
  454. package/src/utils/requestQueue.ts +1 -1
  455. package/dist/bin/ponder.js +0 -12904
  456. package/dist/bin/ponder.js.map +0 -1
  457. package/dist/chunk-K2TLRLX3.js +0 -163
  458. package/dist/chunk-K2TLRLX3.js.map +0 -1
  459. package/dist/chunk-LHCA5XFV.js +0 -257
  460. package/dist/chunk-LHCA5XFV.js.map +0 -1
  461. package/dist/drizzle/onchain.js +0 -19
  462. package/dist/drizzle/onchain.js.map +0 -1
  463. package/dist/index.d.ts +0 -819
  464. package/dist/index.js +0 -2217
  465. package/dist/index.js.map +0 -1
  466. package/dist/utils-ceNucOJb.d.ts +0 -14
@@ -1,4 +1,5 @@
1
1
  import type { Common } from "@/internal/common.js";
2
+ import { ShutdownError } from "@/internal/errors.js";
2
3
  import type {
3
4
  BlockFilter,
4
5
  Factory,
@@ -109,18 +110,17 @@ export const createHistoricalSync = async (
109
110
  >();
110
111
 
111
112
  /**
112
- * Data about the range passed to "eth_getLogs" for all log
113
- * filters and log factories.
113
+ * Data about the range passed to "eth_getLogs" share among all log
114
+ * filters and log factories.
114
115
  */
115
- const getLogsRequestMetadata = new Map<
116
- LogFilter | LogFactory,
117
- {
118
- /** Estimate optimal range to use for "eth_getLogs" requests */
119
- estimatedRange: number;
120
- /** Range suggested by an error message */
121
- confirmedRange?: number;
122
- }
123
- >();
116
+ let logsRequestMetadata: {
117
+ /** Estimate optimal range to use for "eth_getLogs" requests */
118
+ estimatedRange: number;
119
+ /** Range suggested by an error message */
120
+ confirmedRange?: number;
121
+ } = {
122
+ estimatedRange: 500,
123
+ };
124
124
  /**
125
125
  * Intervals that have been completed for all filters in `args.sources`.
126
126
  *
@@ -164,13 +164,12 @@ export const createHistoricalSync = async (
164
164
  }): Promise<SyncLog[]> => {
165
165
  // Use the recommended range if available, else don't chunk the interval at all.
166
166
 
167
- const metadata = getLogsRequestMetadata.get(filter);
168
- const intervals = metadata
169
- ? getChunks({
170
- interval,
171
- maxChunkSize: metadata.confirmedRange ?? metadata.estimatedRange,
172
- })
173
- : [interval];
167
+ const intervals = getChunks({
168
+ interval,
169
+ maxChunkSize:
170
+ logsRequestMetadata.confirmedRange ??
171
+ logsRequestMetadata.estimatedRange,
172
+ });
174
173
 
175
174
  const topics =
176
175
  "eventSelector" in filter
@@ -254,12 +253,12 @@ export const createHistoricalSync = async (
254
253
  }', updating recommended range to ${range}.`,
255
254
  });
256
255
 
257
- getLogsRequestMetadata.set(filter, {
256
+ logsRequestMetadata = {
258
257
  estimatedRange: range,
259
258
  confirmedRange: getLogsErrorResponse.isSuggestedRange
260
259
  ? range
261
260
  : undefined,
262
- });
261
+ };
263
262
 
264
263
  return syncLogsDynamic({ address, interval, filter });
265
264
  }),
@@ -285,12 +284,9 @@ export const createHistoricalSync = async (
285
284
  * error has been received but the error didn't suggest a range.
286
285
  */
287
286
 
288
- if (
289
- getLogsRequestMetadata.has(filter) &&
290
- getLogsRequestMetadata.get(filter)!.confirmedRange === undefined
291
- ) {
292
- getLogsRequestMetadata.get(filter)!.estimatedRange = Math.round(
293
- getLogsRequestMetadata.get(filter)!.estimatedRange * 1.05,
287
+ if (logsRequestMetadata.confirmedRange === undefined) {
288
+ logsRequestMetadata.estimatedRange = Math.round(
289
+ logsRequestMetadata.estimatedRange * 1.05,
294
290
  );
295
291
  }
296
292
 
@@ -819,6 +815,10 @@ export const createHistoricalSync = async (
819
815
  } catch (_error) {
820
816
  const error = _error as Error;
821
817
 
818
+ if (args.common.shutdown.isKilled) {
819
+ throw new ShutdownError();
820
+ }
821
+
822
822
  args.common.logger.error({
823
823
  service: "sync",
824
824
  msg: `Fatal error: Unable to sync '${args.network.name}' from ${interval[0]} to ${interval[1]}.`,
@@ -32,6 +32,7 @@ import type {
32
32
  SyncTransactionReceipt,
33
33
  } from "@/types/sync.js";
34
34
  import { mutex } from "@/utils/mutex.js";
35
+ import type { Queue } from "@/utils/queue.js";
35
36
  import { range } from "@/utils/range.js";
36
37
  import type { RequestQueue } from "@/utils/requestQueue.js";
37
38
  import {
@@ -44,7 +45,6 @@ import {
44
45
  } from "@/utils/rpc.js";
45
46
  import { startClock } from "@/utils/timer.js";
46
47
  import { wait } from "@/utils/wait.js";
47
- import type { Queue } from "@ponder/common";
48
48
  import { type Address, type Hash, hexToNumber, zeroHash } from "viem";
49
49
  import { isFilterInBloom, zeroLogsBloom } from "./bloom.js";
50
50
 
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Remove duplicate values from an array.
3
+ *
4
+ * @param getId callback used to calculate a unique value for an element of the array.
5
+ *
6
+ * @example
7
+ * dedupe([1,1,2,3]) // [1,2,3]
8
+ *
9
+ * dedupe(
10
+ * [
11
+ * { a: 1, b: 2 },
12
+ * { a: 1, b: 2 },
13
+ * { a: 2, b: 2 },
14
+ * ],
15
+ * (e) => `${e.a}_${e.b}`,
16
+ * ) // [{a: 1, b: 2}, {a: 2, b: 2}]
17
+ *
18
+ */
19
+ export function dedupe<item, id>(
20
+ arr: item[] | readonly item[],
21
+ getId?: (x: item) => id,
22
+ ): item[] {
23
+ const seen = new Set<id | item>();
24
+
25
+ return arr.filter((x) => {
26
+ if (seen.has(getId ? getId(x) : x)) return false;
27
+
28
+ seen.add(x);
29
+ return true;
30
+ });
31
+ }
32
+
33
+ dedupe(
34
+ [
35
+ { a: 1, b: 2 },
36
+ { a: 1, b: 2 },
37
+ { a: 2, b: 2 },
38
+ ],
39
+ (e) => `${e.a}_${e.b}`,
40
+ );
@@ -1,4 +1,4 @@
1
- import { promiseWithResolvers } from "@ponder/common";
1
+ import { promiseWithResolvers } from "@/utils/promiseWithResolvers.js";
2
2
 
3
3
  /**
4
4
  * Merges multiple async generators into a single async generator.
@@ -1,4 +1,4 @@
1
- import { type Queue, createQueue } from "@ponder/common";
1
+ import { type Queue, createQueue } from "@/utils/queue.js";
2
2
 
3
3
  export type Mutex<T, P> = ((params: T) => Promise<P>) & Queue<P, T>;
4
4
 
@@ -0,0 +1,20 @@
1
+ export type PromiseWithResolvers<TPromise> = {
2
+ resolve: (arg: TPromise) => void;
3
+ reject: (error: Error) => void;
4
+ promise: Promise<TPromise>;
5
+ };
6
+
7
+ /**
8
+ * @description Application level polyfill.
9
+ */
10
+ export const promiseWithResolvers = <
11
+ TPromise,
12
+ >(): PromiseWithResolvers<TPromise> => {
13
+ let resolve: (arg: TPromise) => void;
14
+ let reject: (error: Error) => void;
15
+ const promise = new Promise<TPromise>((_resolve, _reject) => {
16
+ resolve = _resolve;
17
+ reject = _reject;
18
+ });
19
+ return { resolve: resolve!, reject: reject!, promise };
20
+ };
@@ -0,0 +1,250 @@
1
+ import {
2
+ type PromiseWithResolvers,
3
+ promiseWithResolvers,
4
+ } from "./promiseWithResolvers.js";
5
+
6
+ export type InnerQueue<returnType, taskType> = {
7
+ task: taskType;
8
+ resolve: (arg: returnType) => void;
9
+ reject: (error: Error) => void;
10
+ }[];
11
+
12
+ export type Queue<returnType, taskType> = {
13
+ size: () => number;
14
+ pending: () => Promise<number>;
15
+ add: (task: taskType) => Promise<returnType>;
16
+ clear: () => void;
17
+ isStarted: () => boolean;
18
+ start: () => Promise<void>;
19
+ pause: () => void;
20
+ onIdle: () => Promise<void>;
21
+ onEmpty: () => Promise<void>;
22
+ setParameters: (
23
+ parameters: Pick<
24
+ CreateQueueParameters<unknown, unknown>,
25
+ "frequency" | "concurrency"
26
+ >,
27
+ ) => void;
28
+ };
29
+
30
+ export type CreateQueueParameters<returnType, taskType> = {
31
+ worker: (task: taskType) => Promise<returnType>;
32
+ initialStart?: boolean;
33
+ browser?: boolean;
34
+ } & (
35
+ | {
36
+ concurrency: number;
37
+ frequency: number;
38
+ }
39
+ | { concurrency: number; frequency?: undefined }
40
+ | { concurrency?: undefined; frequency: number }
41
+ );
42
+
43
+ const validateParameters = ({
44
+ concurrency,
45
+ frequency,
46
+ }: Pick<
47
+ CreateQueueParameters<unknown, unknown>,
48
+ "frequency" | "concurrency"
49
+ >) => {
50
+ if (concurrency === undefined && frequency === undefined) {
51
+ throw new Error(
52
+ "Invalid queue configuration, must specify either 'concurrency' or 'frequency'.",
53
+ );
54
+ }
55
+
56
+ if (concurrency !== undefined && concurrency <= 0) {
57
+ throw new Error(
58
+ `Invalid value for queue 'concurrency' option. Got ${concurrency}, expected a number greater than zero.`,
59
+ );
60
+ }
61
+
62
+ if (frequency !== undefined && frequency <= 0) {
63
+ throw new Error(
64
+ `Invalid value for queue 'frequency' option. Got ${frequency}, expected a number greater than zero.`,
65
+ );
66
+ }
67
+ };
68
+
69
+ export const createQueue = <returnType, taskType = void>({
70
+ worker,
71
+ initialStart = false,
72
+ browser = true,
73
+ ..._parameters
74
+ }: CreateQueueParameters<returnType, taskType>): Queue<
75
+ returnType,
76
+ taskType
77
+ > => {
78
+ validateParameters(_parameters);
79
+
80
+ const parameters: Pick<
81
+ CreateQueueParameters<unknown, unknown>,
82
+ "frequency" | "concurrency"
83
+ > = _parameters;
84
+ let queue = new Array<InnerQueue<returnType, taskType>[number]>();
85
+ let pending = 0;
86
+ let timestamp = 0;
87
+ let requests = 0;
88
+ let isStarted = initialStart;
89
+
90
+ let timer: NodeJS.Timeout | undefined;
91
+
92
+ let emptyPromiseWithResolvers:
93
+ | (PromiseWithResolvers<void> & { completed: boolean })
94
+ | undefined = undefined;
95
+ let idlePromiseWithResolvers:
96
+ | (PromiseWithResolvers<void> & { completed: boolean })
97
+ | undefined = undefined;
98
+
99
+ const next = () => {
100
+ if (!isStarted) return;
101
+
102
+ const _timestamp = Date.now();
103
+
104
+ if (Math.floor(_timestamp / 1_000) !== timestamp) {
105
+ requests = 0;
106
+ timestamp = Math.floor(_timestamp / 1_000);
107
+ }
108
+
109
+ if (timer) return;
110
+
111
+ while (
112
+ (parameters.frequency !== undefined
113
+ ? requests < parameters.frequency
114
+ : true) &&
115
+ (parameters.concurrency !== undefined
116
+ ? pending < parameters.concurrency
117
+ : true) &&
118
+ queue.length > 0
119
+ ) {
120
+ const { task, resolve, reject } = queue.shift()!;
121
+
122
+ requests++;
123
+ pending++;
124
+
125
+ worker(task)
126
+ .then(resolve)
127
+ .catch(reject)
128
+ .finally(() => {
129
+ pending--;
130
+
131
+ if (
132
+ idlePromiseWithResolvers !== undefined &&
133
+ queue.length === 0 &&
134
+ pending === 0
135
+ ) {
136
+ idlePromiseWithResolvers.resolve();
137
+ idlePromiseWithResolvers.completed = true;
138
+ }
139
+
140
+ browser ? next() : process.nextTick(next);
141
+ });
142
+
143
+ if (emptyPromiseWithResolvers !== undefined && queue.length === 0) {
144
+ emptyPromiseWithResolvers.resolve();
145
+ emptyPromiseWithResolvers.completed = true;
146
+ }
147
+ }
148
+
149
+ if (
150
+ parameters.frequency !== undefined &&
151
+ requests >= parameters.frequency
152
+ ) {
153
+ timer = setTimeout(
154
+ () => {
155
+ timer = undefined;
156
+ next();
157
+ },
158
+ 1_000 - (_timestamp % 1_000),
159
+ );
160
+ return;
161
+ }
162
+ };
163
+
164
+ return {
165
+ size: () => queue.length,
166
+ pending: () => {
167
+ if (browser) {
168
+ return new Promise<number>((resolve) =>
169
+ setTimeout(() => resolve(pending)),
170
+ );
171
+ } else {
172
+ return new Promise<number>((resolve) =>
173
+ setImmediate(() => resolve(pending)),
174
+ );
175
+ }
176
+ },
177
+ add: (task: taskType) => {
178
+ const { promise, resolve, reject } = promiseWithResolvers<returnType>();
179
+ queue.push({ task, resolve, reject });
180
+
181
+ next();
182
+
183
+ return promise;
184
+ },
185
+ clear: () => {
186
+ queue = new Array<InnerQueue<returnType, taskType>[number]>();
187
+ clearTimeout(timer);
188
+ timer = undefined;
189
+ },
190
+ isStarted: () => isStarted,
191
+ start: () => {
192
+ if (browser) {
193
+ return new Promise<number>((resolve) =>
194
+ setTimeout(() => resolve(pending)),
195
+ ).then(() => {
196
+ isStarted = true;
197
+ next();
198
+ });
199
+ } else {
200
+ return new Promise<number>((resolve) =>
201
+ process.nextTick(() => resolve(pending)),
202
+ ).then(() => {
203
+ isStarted = true;
204
+ next();
205
+ });
206
+ }
207
+ },
208
+ pause: () => {
209
+ isStarted = false;
210
+ },
211
+ onIdle: () => {
212
+ if (
213
+ idlePromiseWithResolvers === undefined ||
214
+ idlePromiseWithResolvers.completed
215
+ ) {
216
+ if (queue.length === 0 && pending === 0) return Promise.resolve();
217
+
218
+ idlePromiseWithResolvers = {
219
+ ...promiseWithResolvers<void>(),
220
+ completed: false,
221
+ };
222
+ }
223
+ return idlePromiseWithResolvers.promise;
224
+ },
225
+ onEmpty: () => {
226
+ if (
227
+ emptyPromiseWithResolvers === undefined ||
228
+ emptyPromiseWithResolvers.completed
229
+ ) {
230
+ if (queue.length === 0) return Promise.resolve();
231
+
232
+ emptyPromiseWithResolvers = {
233
+ ...promiseWithResolvers<void>(),
234
+ completed: false,
235
+ };
236
+ }
237
+ return emptyPromiseWithResolvers.promise;
238
+ },
239
+ setParameters: (_parameters) => {
240
+ validateParameters(_parameters);
241
+
242
+ if ("frequency" in _parameters) {
243
+ parameters.frequency = _parameters.frequency;
244
+ }
245
+ if ("concurrency" in _parameters) {
246
+ parameters.concurrency = _parameters.concurrency;
247
+ }
248
+ },
249
+ } as Queue<returnType, taskType>;
250
+ };
@@ -1,7 +1,7 @@
1
1
  import type { Common } from "@/internal/common.js";
2
2
  import { ShutdownError } from "@/internal/errors.js";
3
3
  import type { Network } from "@/internal/types.js";
4
- import { type Queue, createQueue } from "@ponder/common";
4
+ import { type Queue, createQueue } from "@/utils/queue.js";
5
5
  import {
6
6
  type GetLogsRetryHelperParameters,
7
7
  getLogsRetryHelper,