ponder-with-flashblocks 0.16.3

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 (614) hide show
  1. package/CHANGELOG.md +3427 -0
  2. package/README.md +186 -0
  3. package/dist/esm/bin/commands/codegen.js +46 -0
  4. package/dist/esm/bin/commands/codegen.js.map +1 -0
  5. package/dist/esm/bin/commands/createViews.js +196 -0
  6. package/dist/esm/bin/commands/createViews.js.map +1 -0
  7. package/dist/esm/bin/commands/dev.js +430 -0
  8. package/dist/esm/bin/commands/dev.js.map +1 -0
  9. package/dist/esm/bin/commands/list.js +148 -0
  10. package/dist/esm/bin/commands/list.js.map +1 -0
  11. package/dist/esm/bin/commands/prune.js +223 -0
  12. package/dist/esm/bin/commands/prune.js.map +1 -0
  13. package/dist/esm/bin/commands/serve.js +198 -0
  14. package/dist/esm/bin/commands/serve.js.map +1 -0
  15. package/dist/esm/bin/commands/start.js +253 -0
  16. package/dist/esm/bin/commands/start.js.map +1 -0
  17. package/dist/esm/bin/isolatedController.js +200 -0
  18. package/dist/esm/bin/isolatedController.js.map +1 -0
  19. package/dist/esm/bin/isolatedWorker.js +146 -0
  20. package/dist/esm/bin/isolatedWorker.js.map +1 -0
  21. package/dist/esm/bin/ponder.js +137 -0
  22. package/dist/esm/bin/ponder.js.map +1 -0
  23. package/dist/esm/bin/utils/codegen.js +25 -0
  24. package/dist/esm/bin/utils/codegen.js.map +1 -0
  25. package/dist/esm/bin/utils/exit.js +100 -0
  26. package/dist/esm/bin/utils/exit.js.map +1 -0
  27. package/dist/esm/build/config.js +746 -0
  28. package/dist/esm/build/config.js.map +1 -0
  29. package/dist/esm/build/factory.js +76 -0
  30. package/dist/esm/build/factory.js.map +1 -0
  31. package/dist/esm/build/index.js +567 -0
  32. package/dist/esm/build/index.js.map +1 -0
  33. package/dist/esm/build/plugin.js +53 -0
  34. package/dist/esm/build/plugin.js.map +1 -0
  35. package/dist/esm/build/pre.js +83 -0
  36. package/dist/esm/build/pre.js.map +1 -0
  37. package/dist/esm/build/schema.js +202 -0
  38. package/dist/esm/build/schema.js.map +1 -0
  39. package/dist/esm/build/stacktrace.js +137 -0
  40. package/dist/esm/build/stacktrace.js.map +1 -0
  41. package/dist/esm/client/index.js +441 -0
  42. package/dist/esm/client/index.js.map +1 -0
  43. package/dist/esm/config/address.js +2 -0
  44. package/dist/esm/config/address.js.map +1 -0
  45. package/dist/esm/config/eventFilter.js +2 -0
  46. package/dist/esm/config/eventFilter.js.map +1 -0
  47. package/dist/esm/config/index.js +2 -0
  48. package/dist/esm/config/index.js.map +1 -0
  49. package/dist/esm/config/utilityTypes.js +2 -0
  50. package/dist/esm/config/utilityTypes.js.map +1 -0
  51. package/dist/esm/database/actions.js +445 -0
  52. package/dist/esm/database/actions.js.map +1 -0
  53. package/dist/esm/database/index.js +604 -0
  54. package/dist/esm/database/index.js.map +1 -0
  55. package/dist/esm/database/queryBuilder.js +314 -0
  56. package/dist/esm/database/queryBuilder.js.map +1 -0
  57. package/dist/esm/drizzle/bigint.js +38 -0
  58. package/dist/esm/drizzle/bigint.js.map +1 -0
  59. package/dist/esm/drizzle/bytes.js +47 -0
  60. package/dist/esm/drizzle/bytes.js.map +1 -0
  61. package/dist/esm/drizzle/hex.js +40 -0
  62. package/dist/esm/drizzle/hex.js.map +1 -0
  63. package/dist/esm/drizzle/index.js +28 -0
  64. package/dist/esm/drizzle/index.js.map +1 -0
  65. package/dist/esm/drizzle/json.js +123 -0
  66. package/dist/esm/drizzle/json.js.map +1 -0
  67. package/dist/esm/drizzle/kit/index.js +927 -0
  68. package/dist/esm/drizzle/kit/index.js.map +1 -0
  69. package/dist/esm/drizzle/onchain.js +184 -0
  70. package/dist/esm/drizzle/onchain.js.map +1 -0
  71. package/dist/esm/drizzle/text.js +61 -0
  72. package/dist/esm/drizzle/text.js.map +1 -0
  73. package/dist/esm/graphql/graphiql.html.js +59 -0
  74. package/dist/esm/graphql/graphiql.html.js.map +1 -0
  75. package/dist/esm/graphql/index.js +934 -0
  76. package/dist/esm/graphql/index.js.map +1 -0
  77. package/dist/esm/graphql/json.js +42 -0
  78. package/dist/esm/graphql/json.js.map +1 -0
  79. package/dist/esm/graphql/middleware.js +83 -0
  80. package/dist/esm/graphql/middleware.js.map +1 -0
  81. package/dist/esm/index.js +9 -0
  82. package/dist/esm/index.js.map +1 -0
  83. package/dist/esm/indexing/addStackTrace.js +54 -0
  84. package/dist/esm/indexing/addStackTrace.js.map +1 -0
  85. package/dist/esm/indexing/client.js +675 -0
  86. package/dist/esm/indexing/client.js.map +1 -0
  87. package/dist/esm/indexing/index.js +663 -0
  88. package/dist/esm/indexing/index.js.map +1 -0
  89. package/dist/esm/indexing/profile.js +584 -0
  90. package/dist/esm/indexing/profile.js.map +1 -0
  91. package/dist/esm/indexing-store/cache.js +666 -0
  92. package/dist/esm/indexing-store/cache.js.map +1 -0
  93. package/dist/esm/indexing-store/index.js +461 -0
  94. package/dist/esm/indexing-store/index.js.map +1 -0
  95. package/dist/esm/indexing-store/profile.js +428 -0
  96. package/dist/esm/indexing-store/profile.js.map +1 -0
  97. package/dist/esm/indexing-store/utils.js +111 -0
  98. package/dist/esm/indexing-store/utils.js.map +1 -0
  99. package/dist/esm/internal/common.js +2 -0
  100. package/dist/esm/internal/common.js.map +1 -0
  101. package/dist/esm/internal/errors.js +300 -0
  102. package/dist/esm/internal/errors.js.map +1 -0
  103. package/dist/esm/internal/logger.js +178 -0
  104. package/dist/esm/internal/logger.js.map +1 -0
  105. package/dist/esm/internal/metrics.js +1049 -0
  106. package/dist/esm/internal/metrics.js.map +1 -0
  107. package/dist/esm/internal/options.js +73 -0
  108. package/dist/esm/internal/options.js.map +1 -0
  109. package/dist/esm/internal/shutdown.js +24 -0
  110. package/dist/esm/internal/shutdown.js.map +1 -0
  111. package/dist/esm/internal/telemetry.js +200 -0
  112. package/dist/esm/internal/telemetry.js.map +1 -0
  113. package/dist/esm/internal/types.js +2 -0
  114. package/dist/esm/internal/types.js.map +1 -0
  115. package/dist/esm/rpc/actions.js +988 -0
  116. package/dist/esm/rpc/actions.js.map +1 -0
  117. package/dist/esm/rpc/http.js +130 -0
  118. package/dist/esm/rpc/http.js.map +1 -0
  119. package/dist/esm/rpc/index.js +751 -0
  120. package/dist/esm/rpc/index.js.map +1 -0
  121. package/dist/esm/runtime/events.js +664 -0
  122. package/dist/esm/runtime/events.js.map +1 -0
  123. package/dist/esm/runtime/filter.js +443 -0
  124. package/dist/esm/runtime/filter.js.map +1 -0
  125. package/dist/esm/runtime/fragments.js +478 -0
  126. package/dist/esm/runtime/fragments.js.map +1 -0
  127. package/dist/esm/runtime/historical.js +950 -0
  128. package/dist/esm/runtime/historical.js.map +1 -0
  129. package/dist/esm/runtime/index.js +316 -0
  130. package/dist/esm/runtime/index.js.map +1 -0
  131. package/dist/esm/runtime/isolated.js +463 -0
  132. package/dist/esm/runtime/isolated.js.map +1 -0
  133. package/dist/esm/runtime/multichain.js +510 -0
  134. package/dist/esm/runtime/multichain.js.map +1 -0
  135. package/dist/esm/runtime/omnichain.js +545 -0
  136. package/dist/esm/runtime/omnichain.js.map +1 -0
  137. package/dist/esm/runtime/realtime.js +724 -0
  138. package/dist/esm/runtime/realtime.js.map +1 -0
  139. package/dist/esm/server/error.js +56 -0
  140. package/dist/esm/server/error.js.map +1 -0
  141. package/dist/esm/server/index.js +121 -0
  142. package/dist/esm/server/index.js.map +1 -0
  143. package/dist/esm/sync-historical/index.js +711 -0
  144. package/dist/esm/sync-historical/index.js.map +1 -0
  145. package/dist/esm/sync-realtime/bloom.js +76 -0
  146. package/dist/esm/sync-realtime/bloom.js.map +1 -0
  147. package/dist/esm/sync-realtime/index.js +928 -0
  148. package/dist/esm/sync-realtime/index.js.map +1 -0
  149. package/dist/esm/sync-store/encode.js +105 -0
  150. package/dist/esm/sync-store/encode.js.map +1 -0
  151. package/dist/esm/sync-store/index.js +885 -0
  152. package/dist/esm/sync-store/index.js.map +1 -0
  153. package/dist/esm/sync-store/migrations.js +1595 -0
  154. package/dist/esm/sync-store/migrations.js.map +1 -0
  155. package/dist/esm/sync-store/schema.js +181 -0
  156. package/dist/esm/sync-store/schema.js.map +1 -0
  157. package/dist/esm/types/db.js +2 -0
  158. package/dist/esm/types/db.js.map +1 -0
  159. package/dist/esm/types/eth.js +2 -0
  160. package/dist/esm/types/eth.js.map +1 -0
  161. package/dist/esm/types/utils.js +2 -0
  162. package/dist/esm/types/utils.js.map +1 -0
  163. package/dist/esm/types/virtual.js +2 -0
  164. package/dist/esm/types/virtual.js.map +1 -0
  165. package/dist/esm/ui/app.js +157 -0
  166. package/dist/esm/ui/app.js.map +1 -0
  167. package/dist/esm/ui/index.js +29 -0
  168. package/dist/esm/ui/index.js.map +1 -0
  169. package/dist/esm/ui/patch.js +140 -0
  170. package/dist/esm/ui/patch.js.map +1 -0
  171. package/dist/esm/utils/abi.js +55 -0
  172. package/dist/esm/utils/abi.js.map +1 -0
  173. package/dist/esm/utils/bigint.js +37 -0
  174. package/dist/esm/utils/bigint.js.map +1 -0
  175. package/dist/esm/utils/chains.js +21 -0
  176. package/dist/esm/utils/chains.js.map +1 -0
  177. package/dist/esm/utils/checkpoint.js +139 -0
  178. package/dist/esm/utils/checkpoint.js.map +1 -0
  179. package/dist/esm/utils/chunk.js +8 -0
  180. package/dist/esm/utils/chunk.js.map +1 -0
  181. package/dist/esm/utils/copy.js +129 -0
  182. package/dist/esm/utils/copy.js.map +1 -0
  183. package/dist/esm/utils/date.js +27 -0
  184. package/dist/esm/utils/date.js.map +1 -0
  185. package/dist/esm/utils/debug.js +2 -0
  186. package/dist/esm/utils/debug.js.map +1 -0
  187. package/dist/esm/utils/decodeAbiParameters.js +290 -0
  188. package/dist/esm/utils/decodeAbiParameters.js.map +1 -0
  189. package/dist/esm/utils/decodeEventLog.js +75 -0
  190. package/dist/esm/utils/decodeEventLog.js.map +1 -0
  191. package/dist/esm/utils/dedupe.js +29 -0
  192. package/dist/esm/utils/dedupe.js.map +1 -0
  193. package/dist/esm/utils/duplicates.js +19 -0
  194. package/dist/esm/utils/duplicates.js.map +1 -0
  195. package/dist/esm/utils/estimate.js +6 -0
  196. package/dist/esm/utils/estimate.js.map +1 -0
  197. package/dist/esm/utils/finality.js +38 -0
  198. package/dist/esm/utils/finality.js.map +1 -0
  199. package/dist/esm/utils/format.js +20 -0
  200. package/dist/esm/utils/format.js.map +1 -0
  201. package/dist/esm/utils/generators.js +121 -0
  202. package/dist/esm/utils/generators.js.map +1 -0
  203. package/dist/esm/utils/hash.js +11 -0
  204. package/dist/esm/utils/hash.js.map +1 -0
  205. package/dist/esm/utils/interval.js +171 -0
  206. package/dist/esm/utils/interval.js.map +1 -0
  207. package/dist/esm/utils/lowercase.js +7 -0
  208. package/dist/esm/utils/lowercase.js.map +1 -0
  209. package/dist/esm/utils/mutex.js +26 -0
  210. package/dist/esm/utils/mutex.js.map +1 -0
  211. package/dist/esm/utils/never.js +4 -0
  212. package/dist/esm/utils/never.js.map +1 -0
  213. package/dist/esm/utils/offset.js +101 -0
  214. package/dist/esm/utils/offset.js.map +1 -0
  215. package/dist/esm/utils/order.js +18 -0
  216. package/dist/esm/utils/order.js.map +1 -0
  217. package/dist/esm/utils/partition.js +46 -0
  218. package/dist/esm/utils/partition.js.map +1 -0
  219. package/dist/esm/utils/pg.js +175 -0
  220. package/dist/esm/utils/pg.js.map +1 -0
  221. package/dist/esm/utils/pglite.js +80 -0
  222. package/dist/esm/utils/pglite.js.map +1 -0
  223. package/dist/esm/utils/port.js +30 -0
  224. package/dist/esm/utils/port.js.map +1 -0
  225. package/dist/esm/utils/print.js +23 -0
  226. package/dist/esm/utils/print.js.map +1 -0
  227. package/dist/esm/utils/promiseAllSettledWithThrow.js +19 -0
  228. package/dist/esm/utils/promiseAllSettledWithThrow.js.map +1 -0
  229. package/dist/esm/utils/promiseWithResolvers.js +13 -0
  230. package/dist/esm/utils/promiseWithResolvers.js.map +1 -0
  231. package/dist/esm/utils/queue.js +150 -0
  232. package/dist/esm/utils/queue.js.map +1 -0
  233. package/dist/esm/utils/range.js +8 -0
  234. package/dist/esm/utils/range.js.map +1 -0
  235. package/dist/esm/utils/result.js +10 -0
  236. package/dist/esm/utils/result.js.map +1 -0
  237. package/dist/esm/utils/sql-parse.js +1326 -0
  238. package/dist/esm/utils/sql-parse.js.map +1 -0
  239. package/dist/esm/utils/timer.js +9 -0
  240. package/dist/esm/utils/timer.js.map +1 -0
  241. package/dist/esm/utils/truncate.js +15 -0
  242. package/dist/esm/utils/truncate.js.map +1 -0
  243. package/dist/esm/utils/wait.js +10 -0
  244. package/dist/esm/utils/wait.js.map +1 -0
  245. package/dist/esm/utils/zipper.js +67 -0
  246. package/dist/esm/utils/zipper.js.map +1 -0
  247. package/dist/types/bin/commands/codegen.d.ts +5 -0
  248. package/dist/types/bin/commands/codegen.d.ts.map +1 -0
  249. package/dist/types/bin/commands/createViews.d.ts +8 -0
  250. package/dist/types/bin/commands/createViews.d.ts.map +1 -0
  251. package/dist/types/bin/commands/dev.d.ts +5 -0
  252. package/dist/types/bin/commands/dev.d.ts.map +1 -0
  253. package/dist/types/bin/commands/list.d.ts +5 -0
  254. package/dist/types/bin/commands/list.d.ts.map +1 -0
  255. package/dist/types/bin/commands/prune.d.ts +5 -0
  256. package/dist/types/bin/commands/prune.d.ts.map +1 -0
  257. package/dist/types/bin/commands/serve.d.ts +5 -0
  258. package/dist/types/bin/commands/serve.d.ts.map +1 -0
  259. package/dist/types/bin/commands/start.d.ts +19 -0
  260. package/dist/types/bin/commands/start.d.ts.map +1 -0
  261. package/dist/types/bin/isolatedController.d.ts +13 -0
  262. package/dist/types/bin/isolatedController.d.ts.map +1 -0
  263. package/dist/types/bin/isolatedWorker.d.ts +9 -0
  264. package/dist/types/bin/isolatedWorker.d.ts.map +1 -0
  265. package/dist/types/bin/ponder.d.ts +37 -0
  266. package/dist/types/bin/ponder.d.ts.map +1 -0
  267. package/dist/types/bin/utils/codegen.d.ts +6 -0
  268. package/dist/types/bin/utils/codegen.d.ts.map +1 -0
  269. package/dist/types/bin/utils/exit.d.ts +10 -0
  270. package/dist/types/bin/utils/exit.d.ts.map +1 -0
  271. package/dist/types/build/config.d.ts +97 -0
  272. package/dist/types/build/config.d.ts.map +1 -0
  273. package/dist/types/build/factory.d.ts +13 -0
  274. package/dist/types/build/factory.d.ts.map +1 -0
  275. package/dist/types/build/index.d.ts +84 -0
  276. package/dist/types/build/index.d.ts.map +1 -0
  277. package/dist/types/build/plugin.d.ts +4 -0
  278. package/dist/types/build/plugin.d.ts.map +1 -0
  279. package/dist/types/build/pre.d.ts +29 -0
  280. package/dist/types/build/pre.d.ts.map +1 -0
  281. package/dist/types/build/schema.d.ts +20 -0
  282. package/dist/types/build/schema.d.ts.map +1 -0
  283. package/dist/types/build/stacktrace.d.ts +13 -0
  284. package/dist/types/build/stacktrace.d.ts.map +1 -0
  285. package/dist/types/client/index.d.ts +27 -0
  286. package/dist/types/client/index.d.ts.map +1 -0
  287. package/dist/types/config/address.d.ts +24 -0
  288. package/dist/types/config/address.d.ts.map +1 -0
  289. package/dist/types/config/eventFilter.d.ts +18 -0
  290. package/dist/types/config/eventFilter.d.ts.map +1 -0
  291. package/dist/types/config/index.d.ts +150 -0
  292. package/dist/types/config/index.d.ts.map +1 -0
  293. package/dist/types/config/utilityTypes.d.ts +43 -0
  294. package/dist/types/config/utilityTypes.d.ts.map +1 -0
  295. package/dist/types/database/actions.d.ts +99 -0
  296. package/dist/types/database/actions.d.ts.map +1 -0
  297. package/dist/types/database/index.d.ts +493 -0
  298. package/dist/types/database/index.d.ts.map +1 -0
  299. package/dist/types/database/queryBuilder.d.ts +65 -0
  300. package/dist/types/database/queryBuilder.d.ts.map +1 -0
  301. package/dist/types/drizzle/bigint.d.ts +25 -0
  302. package/dist/types/drizzle/bigint.d.ts.map +1 -0
  303. package/dist/types/drizzle/bytes.d.ts +31 -0
  304. package/dist/types/drizzle/bytes.d.ts.map +1 -0
  305. package/dist/types/drizzle/hex.d.ts +25 -0
  306. package/dist/types/drizzle/hex.d.ts.map +1 -0
  307. package/dist/types/drizzle/index.d.ts +6 -0
  308. package/dist/types/drizzle/index.d.ts.map +1 -0
  309. package/dist/types/drizzle/json.d.ts +51 -0
  310. package/dist/types/drizzle/json.d.ts.map +1 -0
  311. package/dist/types/drizzle/kit/index.d.ts +187 -0
  312. package/dist/types/drizzle/kit/index.d.ts.map +1 -0
  313. package/dist/types/drizzle/onchain.d.ts +298 -0
  314. package/dist/types/drizzle/onchain.d.ts.map +1 -0
  315. package/dist/types/drizzle/text.d.ts +29 -0
  316. package/dist/types/drizzle/text.d.ts.map +1 -0
  317. package/dist/types/graphql/graphiql.html.d.ts +2 -0
  318. package/dist/types/graphql/graphiql.html.d.ts.map +1 -0
  319. package/dist/types/graphql/index.d.ts +12 -0
  320. package/dist/types/graphql/index.d.ts.map +1 -0
  321. package/dist/types/graphql/json.d.ts +3 -0
  322. package/dist/types/graphql/json.d.ts.map +1 -0
  323. package/dist/types/graphql/middleware.d.ts +29 -0
  324. package/dist/types/graphql/middleware.d.ts.map +1 -0
  325. package/dist/types/index.d.ts +23 -0
  326. package/dist/types/index.d.ts.map +1 -0
  327. package/dist/types/indexing/addStackTrace.d.ts +3 -0
  328. package/dist/types/indexing/addStackTrace.d.ts.map +1 -0
  329. package/dist/types/indexing/client.d.ts +154 -0
  330. package/dist/types/indexing/client.d.ts.map +1 -0
  331. package/dist/types/indexing/index.d.ts +72 -0
  332. package/dist/types/indexing/index.d.ts.map +1 -0
  333. package/dist/types/indexing/profile.d.ts +16 -0
  334. package/dist/types/indexing/profile.d.ts.map +1 -0
  335. package/dist/types/indexing-store/cache.d.ts +115 -0
  336. package/dist/types/indexing-store/cache.d.ts.map +1 -0
  337. package/dist/types/indexing-store/index.d.ts +24 -0
  338. package/dist/types/indexing-store/index.d.ts.map +1 -0
  339. package/dist/types/indexing-store/profile.d.ts +7 -0
  340. package/dist/types/indexing-store/profile.d.ts.map +1 -0
  341. package/dist/types/indexing-store/utils.d.ts +19 -0
  342. package/dist/types/indexing-store/utils.d.ts.map +1 -0
  343. package/dist/types/internal/common.d.ts +15 -0
  344. package/dist/types/internal/common.d.ts.map +1 -0
  345. package/dist/types/internal/errors.d.ts +101 -0
  346. package/dist/types/internal/errors.d.ts.map +1 -0
  347. package/dist/types/internal/logger.d.ts +37 -0
  348. package/dist/types/internal/logger.d.ts.map +1 -0
  349. package/dist/types/internal/metrics.d.ts +120 -0
  350. package/dist/types/internal/metrics.d.ts.map +1 -0
  351. package/dist/types/internal/options.d.ts +62 -0
  352. package/dist/types/internal/options.d.ts.map +1 -0
  353. package/dist/types/internal/shutdown.d.ts +8 -0
  354. package/dist/types/internal/shutdown.d.ts.map +1 -0
  355. package/dist/types/internal/telemetry.d.ts +43 -0
  356. package/dist/types/internal/telemetry.d.ts.map +1 -0
  357. package/dist/types/internal/types.d.ts +434 -0
  358. package/dist/types/internal/types.d.ts.map +1 -0
  359. package/dist/types/rpc/actions.d.ts +360 -0
  360. package/dist/types/rpc/actions.d.ts.map +1 -0
  361. package/dist/types/rpc/http.d.ts +17 -0
  362. package/dist/types/rpc/http.d.ts.map +1 -0
  363. package/dist/types/rpc/index.d.ts +43 -0
  364. package/dist/types/rpc/index.d.ts.map +1 -0
  365. package/dist/types/runtime/events.d.ts +40 -0
  366. package/dist/types/runtime/events.d.ts.map +1 -0
  367. package/dist/types/runtime/filter.d.ts +87 -0
  368. package/dist/types/runtime/filter.d.ts.map +1 -0
  369. package/dist/types/runtime/fragments.d.ts +30 -0
  370. package/dist/types/runtime/fragments.d.ts.map +1 -0
  371. package/dist/types/runtime/historical.d.ts +123 -0
  372. package/dist/types/runtime/historical.d.ts.map +1 -0
  373. package/dist/types/runtime/index.d.ts +89 -0
  374. package/dist/types/runtime/index.d.ts.map +1 -0
  375. package/dist/types/runtime/isolated.d.ts +14 -0
  376. package/dist/types/runtime/isolated.d.ts.map +1 -0
  377. package/dist/types/runtime/multichain.d.ts +13 -0
  378. package/dist/types/runtime/multichain.d.ts.map +1 -0
  379. package/dist/types/runtime/omnichain.d.ts +23 -0
  380. package/dist/types/runtime/omnichain.d.ts.map +1 -0
  381. package/dist/types/runtime/realtime.d.ts +93 -0
  382. package/dist/types/runtime/realtime.d.ts.map +1 -0
  383. package/dist/types/server/error.d.ts +5 -0
  384. package/dist/types/server/error.d.ts.map +1 -0
  385. package/dist/types/server/index.d.ts +13 -0
  386. package/dist/types/server/index.d.ts.map +1 -0
  387. package/dist/types/sync-historical/index.d.ts +36 -0
  388. package/dist/types/sync-historical/index.d.ts.map +1 -0
  389. package/dist/types/sync-realtime/bloom.d.ts +18 -0
  390. package/dist/types/sync-realtime/bloom.d.ts.map +1 -0
  391. package/dist/types/sync-realtime/index.d.ts +47 -0
  392. package/dist/types/sync-realtime/index.d.ts.map +1 -0
  393. package/dist/types/sync-store/encode.d.ts +25 -0
  394. package/dist/types/sync-store/encode.d.ts.map +1 -0
  395. package/dist/types/sync-store/index.d.ts +135 -0
  396. package/dist/types/sync-store/index.d.ts.map +1 -0
  397. package/dist/types/sync-store/migrations.d.ts +8 -0
  398. package/dist/types/sync-store/migrations.d.ts.map +1 -0
  399. package/dist/types/sync-store/schema.d.ts +1828 -0
  400. package/dist/types/sync-store/schema.d.ts.map +1 -0
  401. package/dist/types/types/db.d.ts +213 -0
  402. package/dist/types/types/db.d.ts.map +1 -0
  403. package/dist/types/types/eth.d.ts +196 -0
  404. package/dist/types/types/eth.d.ts.map +1 -0
  405. package/dist/types/types/utils.d.ts +38 -0
  406. package/dist/types/types/utils.d.ts.map +1 -0
  407. package/dist/types/types/virtual.d.ts +99 -0
  408. package/dist/types/types/virtual.d.ts.map +1 -0
  409. package/dist/types/ui/app.d.ts +22 -0
  410. package/dist/types/ui/app.d.ts.map +1 -0
  411. package/dist/types/ui/index.d.ts +5 -0
  412. package/dist/types/ui/index.d.ts.map +1 -0
  413. package/dist/types/ui/patch.d.ts +7 -0
  414. package/dist/types/ui/patch.d.ts.map +1 -0
  415. package/dist/types/utils/abi.d.ts +23 -0
  416. package/dist/types/utils/abi.d.ts.map +1 -0
  417. package/dist/types/utils/bigint.d.ts +15 -0
  418. package/dist/types/utils/bigint.d.ts.map +1 -0
  419. package/dist/types/utils/chains.d.ts +42 -0
  420. package/dist/types/utils/chains.d.ts.map +1 -0
  421. package/dist/types/utils/checkpoint.d.ts +52 -0
  422. package/dist/types/utils/checkpoint.d.ts.map +1 -0
  423. package/dist/types/utils/chunk.d.ts +2 -0
  424. package/dist/types/utils/chunk.d.ts.map +1 -0
  425. package/dist/types/utils/copy.d.ts +16 -0
  426. package/dist/types/utils/copy.d.ts.map +1 -0
  427. package/dist/types/utils/date.d.ts +7 -0
  428. package/dist/types/utils/date.d.ts.map +1 -0
  429. package/dist/types/utils/debug.d.ts +105 -0
  430. package/dist/types/utils/debug.d.ts.map +1 -0
  431. package/dist/types/utils/decodeAbiParameters.d.ts +28 -0
  432. package/dist/types/utils/decodeAbiParameters.d.ts.map +1 -0
  433. package/dist/types/utils/decodeEventLog.d.ts +12 -0
  434. package/dist/types/utils/decodeEventLog.d.ts.map +1 -0
  435. package/dist/types/utils/dedupe.d.ts +20 -0
  436. package/dist/types/utils/dedupe.d.ts.map +1 -0
  437. package/dist/types/utils/duplicates.d.ts +7 -0
  438. package/dist/types/utils/duplicates.d.ts.map +1 -0
  439. package/dist/types/utils/estimate.d.ts +11 -0
  440. package/dist/types/utils/estimate.d.ts.map +1 -0
  441. package/dist/types/utils/finality.d.ts +12 -0
  442. package/dist/types/utils/finality.d.ts.map +1 -0
  443. package/dist/types/utils/format.d.ts +3 -0
  444. package/dist/types/utils/format.d.ts.map +1 -0
  445. package/dist/types/utils/generators.d.ts +42 -0
  446. package/dist/types/utils/generators.d.ts.map +1 -0
  447. package/dist/types/utils/hash.d.ts +11 -0
  448. package/dist/types/utils/hash.d.ts.map +1 -0
  449. package/dist/types/utils/interval.d.ts +53 -0
  450. package/dist/types/utils/interval.d.ts.map +1 -0
  451. package/dist/types/utils/lowercase.d.ts +5 -0
  452. package/dist/types/utils/lowercase.d.ts.map +1 -0
  453. package/dist/types/utils/mutex.d.ts +5 -0
  454. package/dist/types/utils/mutex.d.ts.map +1 -0
  455. package/dist/types/utils/never.d.ts +2 -0
  456. package/dist/types/utils/never.d.ts.map +1 -0
  457. package/dist/types/utils/offset.d.ts +8 -0
  458. package/dist/types/utils/offset.d.ts.map +1 -0
  459. package/dist/types/utils/order.d.ts +2 -0
  460. package/dist/types/utils/order.d.ts.map +1 -0
  461. package/dist/types/utils/partition.d.ts +22 -0
  462. package/dist/types/utils/partition.d.ts.map +1 -0
  463. package/dist/types/utils/pg.d.ts +8 -0
  464. package/dist/types/utils/pg.d.ts.map +1 -0
  465. package/dist/types/utils/pglite.d.ts +25 -0
  466. package/dist/types/utils/pglite.d.ts.map +1 -0
  467. package/dist/types/utils/port.d.ts +5 -0
  468. package/dist/types/utils/port.d.ts.map +1 -0
  469. package/dist/types/utils/print.d.ts +2 -0
  470. package/dist/types/utils/print.d.ts.map +1 -0
  471. package/dist/types/utils/promiseAllSettledWithThrow.d.ts +8 -0
  472. package/dist/types/utils/promiseAllSettledWithThrow.d.ts.map +1 -0
  473. package/dist/types/utils/promiseWithResolvers.d.ts +10 -0
  474. package/dist/types/utils/promiseWithResolvers.d.ts.map +1 -0
  475. package/dist/types/utils/queue.d.ts +33 -0
  476. package/dist/types/utils/queue.d.ts.map +1 -0
  477. package/dist/types/utils/range.d.ts +8 -0
  478. package/dist/types/utils/range.d.ts.map +1 -0
  479. package/dist/types/utils/result.d.ts +17 -0
  480. package/dist/types/utils/result.d.ts.map +1 -0
  481. package/dist/types/utils/sql-parse.d.ts +21 -0
  482. package/dist/types/utils/sql-parse.d.ts.map +1 -0
  483. package/dist/types/utils/timer.d.ts +6 -0
  484. package/dist/types/utils/timer.d.ts.map +1 -0
  485. package/dist/types/utils/truncate.d.ts +9 -0
  486. package/dist/types/utils/truncate.d.ts.map +1 -0
  487. package/dist/types/utils/wait.d.ts +6 -0
  488. package/dist/types/utils/wait.d.ts.map +1 -0
  489. package/dist/types/utils/zipper.d.ts +36 -0
  490. package/dist/types/utils/zipper.d.ts.map +1 -0
  491. package/package.json +114 -0
  492. package/src/bin/commands/codegen.ts +56 -0
  493. package/src/bin/commands/createViews.ts +318 -0
  494. package/src/bin/commands/dev.ts +490 -0
  495. package/src/bin/commands/list.ts +208 -0
  496. package/src/bin/commands/prune.ts +322 -0
  497. package/src/bin/commands/serve.ts +236 -0
  498. package/src/bin/commands/start.ts +319 -0
  499. package/src/bin/isolatedController.ts +300 -0
  500. package/src/bin/isolatedWorker.ts +192 -0
  501. package/src/bin/ponder.ts +208 -0
  502. package/src/bin/utils/codegen.ts +32 -0
  503. package/src/bin/utils/exit.ts +112 -0
  504. package/src/build/config.ts +1142 -0
  505. package/src/build/factory.ts +122 -0
  506. package/src/build/index.ts +790 -0
  507. package/src/build/plugin.ts +58 -0
  508. package/src/build/pre.ts +114 -0
  509. package/src/build/schema.ts +358 -0
  510. package/src/build/stacktrace.ts +137 -0
  511. package/src/client/index.ts +551 -0
  512. package/src/config/address.ts +32 -0
  513. package/src/config/eventFilter.ts +33 -0
  514. package/src/config/index.ts +246 -0
  515. package/src/config/utilityTypes.ts +152 -0
  516. package/src/database/actions.ts +873 -0
  517. package/src/database/index.ts +1029 -0
  518. package/src/database/queryBuilder.ts +537 -0
  519. package/src/drizzle/bigint.ts +57 -0
  520. package/src/drizzle/bytes.ts +68 -0
  521. package/src/drizzle/hex.ts +58 -0
  522. package/src/drizzle/index.ts +40 -0
  523. package/src/drizzle/json.ts +159 -0
  524. package/src/drizzle/kit/index.ts +1348 -0
  525. package/src/drizzle/onchain.ts +476 -0
  526. package/src/drizzle/text.ts +77 -0
  527. package/src/graphql/graphiql.html.ts +59 -0
  528. package/src/graphql/index.ts +1351 -0
  529. package/src/graphql/json.ts +62 -0
  530. package/src/graphql/middleware.ts +115 -0
  531. package/src/index.ts +139 -0
  532. package/src/indexing/addStackTrace.ts +69 -0
  533. package/src/indexing/client.ts +1184 -0
  534. package/src/indexing/index.ts +976 -0
  535. package/src/indexing/profile.ts +771 -0
  536. package/src/indexing-store/cache.ts +1057 -0
  537. package/src/indexing-store/index.ts +628 -0
  538. package/src/indexing-store/profile.ts +557 -0
  539. package/src/indexing-store/utils.ts +162 -0
  540. package/src/internal/common.ts +15 -0
  541. package/src/internal/errors.ts +228 -0
  542. package/src/internal/logger.ts +252 -0
  543. package/src/internal/metrics.ts +1030 -0
  544. package/src/internal/options.ts +130 -0
  545. package/src/internal/shutdown.ts +32 -0
  546. package/src/internal/telemetry.ts +303 -0
  547. package/src/internal/types.ts +597 -0
  548. package/src/rpc/actions.ts +1344 -0
  549. package/src/rpc/http.ts +164 -0
  550. package/src/rpc/index.ts +961 -0
  551. package/src/runtime/events.ts +875 -0
  552. package/src/runtime/filter.ts +664 -0
  553. package/src/runtime/fragments.ts +674 -0
  554. package/src/runtime/historical.ts +1509 -0
  555. package/src/runtime/index.ts +569 -0
  556. package/src/runtime/isolated.ts +778 -0
  557. package/src/runtime/multichain.ts +860 -0
  558. package/src/runtime/omnichain.ts +920 -0
  559. package/src/runtime/realtime.ts +1166 -0
  560. package/src/server/error.ts +68 -0
  561. package/src/server/index.ts +173 -0
  562. package/src/sync-historical/index.ts +1072 -0
  563. package/src/sync-realtime/bloom.ts +102 -0
  564. package/src/sync-realtime/index.ts +1312 -0
  565. package/src/sync-store/encode.ts +153 -0
  566. package/src/sync-store/index.ts +1633 -0
  567. package/src/sync-store/migrations.ts +1801 -0
  568. package/src/sync-store/schema.ts +248 -0
  569. package/src/types/db.ts +292 -0
  570. package/src/types/eth.ts +216 -0
  571. package/src/types/utils.ts +47 -0
  572. package/src/types/virtual.ts +244 -0
  573. package/src/types.d.ts +38 -0
  574. package/src/ui/app.ts +207 -0
  575. package/src/ui/index.ts +37 -0
  576. package/src/ui/patch.ts +204 -0
  577. package/src/utils/abi.ts +103 -0
  578. package/src/utils/bigint.ts +41 -0
  579. package/src/utils/chains.ts +22 -0
  580. package/src/utils/checkpoint.ts +203 -0
  581. package/src/utils/chunk.ts +7 -0
  582. package/src/utils/copy.ts +151 -0
  583. package/src/utils/date.ts +26 -0
  584. package/src/utils/debug.ts +110 -0
  585. package/src/utils/decodeAbiParameters.ts +428 -0
  586. package/src/utils/decodeEventLog.ts +100 -0
  587. package/src/utils/dedupe.ts +32 -0
  588. package/src/utils/duplicates.ts +19 -0
  589. package/src/utils/estimate.ts +27 -0
  590. package/src/utils/finality.ts +40 -0
  591. package/src/utils/format.ts +22 -0
  592. package/src/utils/generators.ts +157 -0
  593. package/src/utils/hash.ts +22 -0
  594. package/src/utils/interval.ts +212 -0
  595. package/src/utils/lowercase.ts +6 -0
  596. package/src/utils/mutex.ts +33 -0
  597. package/src/utils/never.ts +3 -0
  598. package/src/utils/offset.ts +133 -0
  599. package/src/utils/order.ts +16 -0
  600. package/src/utils/partition.ts +53 -0
  601. package/src/utils/pg.ts +230 -0
  602. package/src/utils/pglite.ts +97 -0
  603. package/src/utils/port.ts +34 -0
  604. package/src/utils/print.ts +31 -0
  605. package/src/utils/promiseAllSettledWithThrow.ts +27 -0
  606. package/src/utils/promiseWithResolvers.ts +20 -0
  607. package/src/utils/queue.ts +258 -0
  608. package/src/utils/range.ts +8 -0
  609. package/src/utils/result.ts +26 -0
  610. package/src/utils/sql-parse.ts +1477 -0
  611. package/src/utils/timer.ts +8 -0
  612. package/src/utils/truncate.ts +15 -0
  613. package/src/utils/wait.ts +8 -0
  614. package/src/utils/zipper.ts +80 -0
@@ -0,0 +1,11 @@
1
+ import { createHash } from "node:crypto";
2
+ /**
3
+ * Generates a 10-character hexadecimal hash of a JSON-serializable value.
4
+ */
5
+ export function hash(value) {
6
+ return createHash("sha256")
7
+ .update(JSON.stringify(value))
8
+ .digest("hex")
9
+ .slice(0, 10);
10
+ }
11
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/utils/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAazC;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,KAAuB;IAC1C,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC7B,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,171 @@
1
+ import { range } from "./range.js";
2
+ /**
3
+ * Return the total sum of a list of numeric intervals.
4
+ *
5
+ * @param intervals List of numeric intervals to find the sum of.
6
+ * @returns Sum of the intervals.
7
+ */
8
+ export function intervalSum(intervals) {
9
+ let totalSum = 0;
10
+ for (const [start, end] of intervals) {
11
+ totalSum += end - start + 1;
12
+ }
13
+ return totalSum;
14
+ }
15
+ /**
16
+ * Return the union of a list of numeric intervals.
17
+ *
18
+ * @param intervals List of numeric intervals to find the union of.
19
+ * @returns Union of the intervals, represented as a list of intervals.
20
+ */
21
+ export function intervalUnion(intervals_) {
22
+ if (intervals_.length === 0)
23
+ return [];
24
+ // Create copies to avoid mutating the originals.
25
+ const intervals = intervals_.map((interval) => [...interval]);
26
+ // Sort intervals based on the left end.
27
+ intervals.sort((a, b) => a[0] - b[0]);
28
+ const result = [];
29
+ let currentInterval = intervals[0];
30
+ for (let i = 1; i < intervals.length; i++) {
31
+ const nextInterval = intervals[i];
32
+ if (currentInterval[1] >= nextInterval[0] - 1) {
33
+ // Merge overlapping intervals
34
+ currentInterval[1] = Math.max(currentInterval[1], nextInterval[1]);
35
+ }
36
+ else {
37
+ // No overlap, add current interval to result
38
+ result.push(currentInterval);
39
+ currentInterval = nextInterval;
40
+ }
41
+ }
42
+ result.push(currentInterval); // Add the last interval
43
+ return result;
44
+ }
45
+ /**
46
+ * Return the intersection of two lists of numeric intervals.
47
+ *
48
+ * @param list1 First list of numeric intervals.
49
+ * @param list2 Second list of numeric intervals.
50
+ * @returns Intersection of the intervals, represented as a list of intervals.
51
+ */
52
+ export function intervalIntersection(list1, list2) {
53
+ const result = [];
54
+ let i = 0;
55
+ let j = 0;
56
+ while (i < list1.length && j < list2.length) {
57
+ const [start1, end1] = list1[i];
58
+ const [start2, end2] = list2[j];
59
+ const intersectionStart = Math.max(start1, start2);
60
+ const intersectionEnd = Math.min(end1, end2);
61
+ if (intersectionStart <= intersectionEnd) {
62
+ result.push([intersectionStart, intersectionEnd]);
63
+ }
64
+ if (end1 < end2) {
65
+ i++;
66
+ }
67
+ else {
68
+ j++;
69
+ }
70
+ }
71
+ // Merge potentially overlapping intervals before returning.
72
+ return intervalUnion(result);
73
+ }
74
+ /**
75
+ * Return the intersection of many lists of numeric intervals.
76
+ *
77
+ * @param list1 First list of numeric intervals.
78
+ * @param list2 Second list of numeric intervals.
79
+ * @returns Intersection of the intervals, represented as a list of intervals.
80
+ */
81
+ export function intervalIntersectionMany(lists) {
82
+ if (lists.length === 0)
83
+ return [];
84
+ if (lists.length === 1)
85
+ return lists[0];
86
+ let result = lists[0];
87
+ for (let i = 1; i < lists.length; i++) {
88
+ result = intervalIntersection(result, lists[i]);
89
+ }
90
+ return intervalUnion(result);
91
+ }
92
+ /**
93
+ * Return the difference between two lists of numeric intervals (initial - remove).
94
+ *
95
+ * @param initial Starting/base list of numeric intervals.
96
+ * @param remove List of numeric intervals to remove.
97
+ * @returns Difference of the intervals, represented as a list of intervals.
98
+ */
99
+ export function intervalDifference(initial, remove) {
100
+ // Create copies to avoid mutating the originals.
101
+ const initial_ = initial.map((interval) => [...interval]);
102
+ const remove_ = remove.map((interval) => [...interval]);
103
+ const result = [];
104
+ let i = 0;
105
+ let j = 0;
106
+ while (i < initial.length && j < remove.length) {
107
+ const interval1 = initial_[i];
108
+ const interval2 = remove_[j];
109
+ if (interval1[1] < interval2[0]) {
110
+ // No overlap, add interval1 to the result
111
+ result.push(interval1);
112
+ i++;
113
+ }
114
+ else if (interval2[1] < interval1[0]) {
115
+ // No overlap, move to the next interval in remove
116
+ j++;
117
+ }
118
+ else {
119
+ // There is an overlap
120
+ if (interval1[0] < interval2[0]) {
121
+ // Add the left part of interval1
122
+ result.push([interval1[0], interval2[0] - 1]);
123
+ }
124
+ if (interval1[1] > interval2[1]) {
125
+ // Update interval1's start to exclude the overlap
126
+ interval1[0] = interval2[1] + 1;
127
+ j++;
128
+ }
129
+ else {
130
+ // No more overlap, move to the next interval in initial
131
+ i++;
132
+ }
133
+ }
134
+ }
135
+ // Add any remaining intervals from initial
136
+ while (i < initial_.length) {
137
+ result.push(initial_[i]);
138
+ i++;
139
+ }
140
+ return result;
141
+ }
142
+ /**
143
+ * Return an interval that encompasses all the intervals in the list.
144
+ *
145
+ * @param intervals List of numeric intervals to find the bounds of.
146
+ * @returns Bounds of the intervals.
147
+ */
148
+ export function intervalBounds(intervals) {
149
+ const start = Math.min(...intervals.map((interval) => interval[0]));
150
+ const end = Math.max(...intervals.map((interval) => interval[1]));
151
+ return [start, end];
152
+ }
153
+ export function sortIntervals(intervals) {
154
+ return intervals.sort((a, b) => (a[0] < b[0] ? -1 : 1));
155
+ }
156
+ export function getChunks({ interval, maxChunkSize, }) {
157
+ const _chunks = [];
158
+ const [startBlock, endBlock] = interval;
159
+ let fromBlock = startBlock;
160
+ let toBlock = Math.min(fromBlock + maxChunkSize - 1, endBlock);
161
+ while (fromBlock <= endBlock) {
162
+ _chunks.push([fromBlock, toBlock]);
163
+ fromBlock = toBlock + 1;
164
+ toBlock = Math.min(fromBlock + maxChunkSize - 1, endBlock);
165
+ }
166
+ return _chunks;
167
+ }
168
+ export function intervalRange(interval) {
169
+ return range(interval[0], interval[1] + 1);
170
+ }
171
+ //# sourceMappingURL=interval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval.js","sourceRoot":"","sources":["../../../src/utils/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,SAAqB;IAC/C,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,SAAS,EAAE;QACpC,QAAQ,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;KAC7B;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,iDAAiD;IACjD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAa,CAAC,CAAC;IAC1E,wCAAwC;IACxC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,eAAe,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAEnC,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAC7C,8BAA8B;YAC9B,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SACpE;aAAM;YACL,6CAA6C;YAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,eAAe,GAAG,YAAY,CAAC;SAChC;KACF;IAED,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,wBAAwB;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAiB,EACjB,KAAiB;IAEjB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;QAC3C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAEjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,iBAAiB,IAAI,eAAe,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;SACnD;QAED,IAAI,IAAI,GAAG,IAAI,EAAE;YACf,CAAC,EAAE,CAAC;SACL;aAAM;YACL,CAAC,EAAE,CAAC;SACL;KACF;IAED,4DAA4D;IAC5D,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAmB;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;IAEzC,IAAI,MAAM,GAAe,KAAK,CAAC,CAAC,CAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;KAClD;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAmB,EACnB,MAAkB;IAElB,iDAAiD;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAa,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAa,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAE9B,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;YAC/B,0CAA0C;YAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC,EAAE,CAAC;SACL;aAAM,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;YACtC,kDAAkD;YAClD,CAAC,EAAE,CAAC;SACL;aAAM;YACL,sBAAsB;YACtB,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;gBAC/B,iCAAiC;gBACjC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC/C;YACD,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;gBAC/B,kDAAkD;gBAClD,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC,EAAE,CAAC;aACL;iBAAM;gBACL,wDAAwD;gBACxD,CAAC,EAAE,CAAC;aACL;SACF;KACF;IAED,2CAA2C;IAC3C,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QAC1B,CAAC,EAAE,CAAC;KACL;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAqB;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAqB;IACjD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,QAAQ,EACR,YAAY,GAIb;IACC,MAAM,OAAO,GAAe,EAAE,CAAC;IAE/B,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAExC,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE/D,OAAO,SAAS,IAAI,QAAQ,EAAE;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAEnC,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC;QACxB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC5D;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Transforms the input string to lower case.
3
+ */
4
+ export function toLowerCase(value) {
5
+ return value.toLowerCase();
6
+ }
7
+ //# sourceMappingURL=lowercase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lowercase.js","sourceRoot":"","sources":["../../../src/utils/lowercase.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAmB,KAAQ;IACpD,OAAO,KAAK,CAAC,WAAW,EAAkB,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { promiseWithResolvers, } from "./promiseWithResolvers.js";
2
+ export const createLock = () => {
3
+ const queue = [];
4
+ let locked = false;
5
+ return {
6
+ lock: async () => {
7
+ if (locked === false) {
8
+ locked = true;
9
+ return;
10
+ }
11
+ const pwr = promiseWithResolvers();
12
+ queue.push(pwr);
13
+ return pwr.promise;
14
+ },
15
+ unlock: () => {
16
+ if (queue.length > 0) {
17
+ const pwr = queue.shift();
18
+ pwr.resolve();
19
+ }
20
+ else {
21
+ locked = false;
22
+ }
23
+ },
24
+ };
25
+ };
26
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../../src/utils/mutex.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,UAAU,GAAG,GAGxB,EAAE;IACF,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,MAAM,GAAG,IAAI,CAAC;gBACd,OAAO;aACR;YAED,MAAM,GAAG,GAAG,oBAAoB,EAAQ,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC3B,GAAG,CAAC,OAAO,EAAE,CAAC;aACf;iBAAM;gBACL,MAAM,GAAG,KAAK,CAAC;aAChB;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const never = (_x) => {
2
+ throw "unreachable";
3
+ };
4
+ //# sourceMappingURL=never.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"never.js","sourceRoot":"","sources":["../../../src/utils/never.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAS,EAAE,EAAE;IACjC,MAAM,aAAa,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { InvalidAbiDecodingTypeError } from "viem";
2
+ // Adapted from viem.
3
+ // https://github.com/wagmi-dev/viem/blob/5c95fafceffe7f399b5b5ee32119e2d78a0c8acd/src/utils/abi/decodeEventLog.ts
4
+ export function getBytesConsumedByParam(param) {
5
+ const arrayComponents = getArrayComponents(param.type);
6
+ if (arrayComponents) {
7
+ const [length, innerType] = arrayComponents;
8
+ // If the array is dynamic or has dynamic children, it uses the
9
+ // dynamic encoding scheme (32 byte header).
10
+ if (!length || hasDynamicChild(param)) {
11
+ return 32;
12
+ }
13
+ // If the length of the array is known in advance,
14
+ // and the length of each element in the array is known,
15
+ // the array data is encoded contiguously after the array.
16
+ const bytesConsumedByInnerType = getBytesConsumedByParam({
17
+ ...param,
18
+ type: innerType,
19
+ });
20
+ return length * bytesConsumedByInnerType;
21
+ }
22
+ if (param.type === "tuple") {
23
+ // If the tuple has dynamic children, it uses the dynamic encoding
24
+ // scheme (32 byte header).
25
+ if (hasDynamicChild(param)) {
26
+ return 32;
27
+ }
28
+ // Otherwise the tuple has static children, so we can just decode
29
+ // each component in sequence.
30
+ let consumed = 0;
31
+ for (const component of param.components ?? []) {
32
+ consumed += getBytesConsumedByParam(component);
33
+ }
34
+ return consumed;
35
+ }
36
+ // Otherwise, it's a dynamic string or bytes (32 bytes),
37
+ // or a static number, address, or bool (32 bytes).
38
+ if (param.type === "string" ||
39
+ param.type.startsWith("bytes") ||
40
+ param.type.startsWith("uint") ||
41
+ param.type.startsWith("int") ||
42
+ param.type === "address" ||
43
+ param.type === "bool") {
44
+ return 32;
45
+ }
46
+ throw new InvalidAbiDecodingTypeError(param.type, {
47
+ docsPath: "/docs/contract/decodeAbiParameters",
48
+ });
49
+ }
50
+ export function getNestedParamOffset(param, names) {
51
+ let consumed = 0;
52
+ let isFound = false;
53
+ for (const component of param.components) {
54
+ if (component.name === names[0]) {
55
+ // the end of the branch
56
+ if (names.length === 1) {
57
+ isFound = true;
58
+ break;
59
+ }
60
+ // additional nesting
61
+ if (component.type === "tuple") {
62
+ const nestedConsumed = getNestedParamOffset(component, names.slice(1));
63
+ return consumed + nestedConsumed;
64
+ }
65
+ else {
66
+ throw new Error(`Factory event parameter '${param.name}.${names.join(".")}' is not valid for ${param.name} struct signature.`);
67
+ }
68
+ }
69
+ else {
70
+ consumed += getBytesConsumedByParam(component);
71
+ }
72
+ }
73
+ if (!isFound) {
74
+ throw new Error(`Factory event parameter '${param.name}.${names.join(".")}' not found in ${param.name} struct signature.`);
75
+ }
76
+ return consumed;
77
+ }
78
+ function hasDynamicChild(param) {
79
+ const { type } = param;
80
+ if (type === "string")
81
+ return true;
82
+ if (type === "bytes")
83
+ return true;
84
+ if (type.endsWith("[]"))
85
+ return true;
86
+ if (type === "tuple")
87
+ return param.components?.some(hasDynamicChild);
88
+ const arrayComponents = getArrayComponents(param.type);
89
+ if (arrayComponents &&
90
+ hasDynamicChild({ ...param, type: arrayComponents[1] }))
91
+ return true;
92
+ return false;
93
+ }
94
+ function getArrayComponents(type) {
95
+ const matches = type.match(/^(.*)\[(\d+)?\]$/);
96
+ return matches
97
+ ? // Return `null` if the array is dynamic.
98
+ [matches[2] ? Number(matches[2]) : null, matches[1]]
99
+ : undefined;
100
+ }
101
+ //# sourceMappingURL=offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offset.js","sourceRoot":"","sources":["../../../src/utils/offset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export const orderObject = (obj) => {
2
+ if (Array.isArray(obj))
3
+ return obj.map((x) => orderObject(x));
4
+ if (typeof obj !== "object")
5
+ return obj;
6
+ const newObj = {};
7
+ for (const key of Object.keys(obj).sort()) {
8
+ const val = obj[key];
9
+ if (typeof val === "object") {
10
+ newObj[key] = orderObject(obj[key]);
11
+ }
12
+ else {
13
+ newObj[key] = obj[key];
14
+ }
15
+ }
16
+ return newObj;
17
+ };
18
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/utils/order.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAO,EAAE;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAExC,MAAM,MAAM,GAAG,EAAS,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SACxB;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Divides an array into two arrays, where the first array
3
+ * contains all elements that satisfy the predicate, and the
4
+ * second array contains all elements that do not satisfy the
5
+ * predicate.
6
+ *
7
+ * Note: It is assumed that the array monotonically goes from true to false.
8
+ *
9
+ * @param array - The array to partition.
10
+ * @param predicate - The predicate to partition the array by.
11
+ *
12
+ * @returns A tuple containing the left and right arrays.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const [left, right] = partition([1, 2, 3, 4, 5], (n) => n <= 2);
17
+ * // left = [1, 2]
18
+ * // right = [3, 4, 5]
19
+ * ```
20
+ */
21
+ export const partition = (array, predicate) => {
22
+ if (array.length === 0) {
23
+ return [[], []];
24
+ }
25
+ if (predicate(array[0]) === false) {
26
+ return [[], array];
27
+ }
28
+ if (predicate(array[array.length - 1])) {
29
+ return [array, []];
30
+ }
31
+ let low = 0;
32
+ let high = array.length;
33
+ while (low < high) {
34
+ const mid = Math.floor((low + high) / 2);
35
+ if (predicate(array[mid])) {
36
+ low = mid + 1;
37
+ }
38
+ else {
39
+ high = mid;
40
+ }
41
+ }
42
+ const left = array.slice(0, low);
43
+ const right = array.slice(low);
44
+ return [left, right];
45
+ };
46
+ //# sourceMappingURL=partition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition.js","sourceRoot":"","sources":["../../../src/utils/partition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAU,EACV,SAA+B,EACnB,EAAE;IACd,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KACjB;IAED,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,KAAK,EAAE;QAClC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KACpB;IAED,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,EAAE;QACvC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KACpB;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;IAExB,OAAO,GAAG,GAAG,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC,EAAE;YAC1B,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;SACf;aAAM;YACL,IAAI,GAAG,GAAG,CAAC;SACZ;KACF;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC"}
@@ -0,0 +1,175 @@
1
+ import pg, {} from "pg";
2
+ import parse from "pg-connection-string";
3
+ // The default parser for numeric[] (1231) seems to parse values as Number
4
+ // or perhaps through JSON.parse(). Use the int8[] (1016) parser instead,
5
+ // which properly returns an array of strings.
6
+ const bigIntArrayParser = pg.types.getTypeParser(1016);
7
+ pg.types.setTypeParser(1231, bigIntArrayParser);
8
+ export const PG_BIGINT_MAX = 9223372036854775807n;
9
+ export const PG_INTEGER_MAX = 2147483647;
10
+ export function getDatabaseName(conf) {
11
+ const config = parseBaseConfig(conf);
12
+ // https://github.com/brianc/node-postgres/blob/ecff60dc8aa0bd1ad5ea8f4623af0756a86dc110/packages/pg/lib/defaults.js#L3-L73
13
+ const defaults = {
14
+ hostname: "localhost",
15
+ port: "5432",
16
+ database: undefined,
17
+ };
18
+ const envVars = {
19
+ hostname: process.env.PGHOST,
20
+ database: process.env.PGDATABASE,
21
+ port: process.env.PGPORT,
22
+ };
23
+ // https://github.com/brianc/node-postgres/blob/ecff60dc8aa0bd1ad5ea8f4623af0756a86dc110/packages/pg/lib/connection-parameters.js#L18
24
+ // precedence is config > env vars > default
25
+ const hostname = config.hostname || envVars.hostname || defaults.hostname;
26
+ const database = config.database || envVars.database || defaults.database;
27
+ const port = config.port || envVars.port || defaults.port;
28
+ return `${hostname}:${port}/${database ?? ""}`;
29
+ }
30
+ const parseBaseConfig = (config) => {
31
+ const conf = {
32
+ hostname: config.host,
33
+ port: config.port?.toString(),
34
+ database: config.database,
35
+ };
36
+ if (!config.connectionString)
37
+ return conf;
38
+ // https://github.com/brianc/node-postgres/blob/ecff60dc8aa0bd1ad5ea8f4623af0756a86dc110/packages/pg/lib/connection-parameters.js#L53-L57
39
+ // connString values override other values, even if a value from connstring is missing
40
+ const parsed = parse(config.connectionString);
41
+ return {
42
+ hostname: parsed.host ?? undefined,
43
+ database: parsed.database ?? undefined,
44
+ port: parsed.port ?? undefined,
45
+ };
46
+ };
47
+ export function createPool(config, logger) {
48
+ class Client extends pg.Client {
49
+ // @ts-expect-error
50
+ connect(callback) {
51
+ if (callback) {
52
+ super.connect(() => {
53
+ this.query(`
54
+ SET synchronous_commit = off;
55
+ SET idle_in_transaction_session_timeout = 3600000;`, callback);
56
+ });
57
+ }
58
+ else {
59
+ return super.connect().then(() => this.query(`
60
+ SET synchronous_commit = off;
61
+ SET idle_in_transaction_session_timeout = 3600000;`).then(() => { }));
62
+ }
63
+ }
64
+ }
65
+ const pool = new pg.Pool({
66
+ // https://stackoverflow.com/questions/59155572/how-to-set-query-timeout-in-relation-to-statement-timeout
67
+ statement_timeout: 2 * 60 * 1000,
68
+ // @ts-expect-error: The custom Client is an undocumented option.
69
+ Client: Client,
70
+ ...config,
71
+ });
72
+ function onPoolError(error) {
73
+ const client = error.client;
74
+ const pid = client?.processID ?? "unknown";
75
+ const applicationName = client?.connectionParameters?.application_name ??
76
+ "unknown";
77
+ logger.warn({
78
+ msg: "Postgres pool error",
79
+ application_name: applicationName,
80
+ pid,
81
+ error,
82
+ });
83
+ // NOTE: Errors thrown here cause an uncaughtException. It's better to just log and ignore -
84
+ // if the underlying problem persists, the process will crash due to downstream effects.
85
+ }
86
+ function onClientError(error) {
87
+ logger.warn({ msg: "Postgres client error", error });
88
+ // NOTE: Errors thrown here cause an uncaughtException. It's better to just log and ignore -
89
+ // if the underlying problem persists, the process will crash due to downstream effects.
90
+ }
91
+ function onNotice(notice) {
92
+ const level = typeof notice.code === "string" &&
93
+ ["42P06", "42P07"].includes(notice.code)
94
+ ? "trace"
95
+ : "debug";
96
+ logger[level]({
97
+ msg: "Postgres notice",
98
+ message: notice.message,
99
+ code: notice.code,
100
+ });
101
+ }
102
+ pool.on("error", onPoolError);
103
+ pool.on("connect", (client) => {
104
+ client.on("notice", onNotice);
105
+ client.on("error", onClientError);
106
+ });
107
+ return pool;
108
+ }
109
+ export function createReadonlyPool(config, logger, namespace) {
110
+ class ReadonlyClient extends pg.Client {
111
+ // @ts-expect-error
112
+ connect(callback) {
113
+ if (callback) {
114
+ super.connect(() => {
115
+ this.query(`
116
+ SET search_path = "${namespace}";
117
+ SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY;
118
+ SET work_mem = '512MB';
119
+ SET lock_timeout = '500ms';`, callback);
120
+ });
121
+ }
122
+ else {
123
+ return super.connect().then(() => this.query(`
124
+ SET search_path = "${namespace}";
125
+ SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY;
126
+ SET work_mem = '512MB';
127
+ SET lock_timeout = '500ms';`).then(() => { }));
128
+ }
129
+ }
130
+ }
131
+ const pool = new pg.Pool({
132
+ // https://stackoverflow.com/questions/59155572/how-to-set-query-timeout-in-relation-to-statement-timeout
133
+ statement_timeout: 30 * 1000,
134
+ // @ts-expect-error: The custom Client is an undocumented option.
135
+ Client: ReadonlyClient,
136
+ ...config,
137
+ });
138
+ function onPoolError(error) {
139
+ const client = error.client;
140
+ const pid = client?.processID ?? "unknown";
141
+ const applicationName = client?.connectionParameters?.application_name ??
142
+ "unknown";
143
+ logger.warn({
144
+ msg: "Postgres pool error",
145
+ application_name: applicationName,
146
+ pid,
147
+ error,
148
+ });
149
+ // NOTE: Errors thrown here cause an uncaughtException. It's better to just log and ignore -
150
+ // if the underlying problem persists, the process will crash due to downstream effects.
151
+ }
152
+ function onClientError(error) {
153
+ logger.warn({ msg: "Postgres client error", error });
154
+ // NOTE: Errors thrown here cause an uncaughtException. It's better to just log and ignore -
155
+ // if the underlying problem persists, the process will crash due to downstream effects.
156
+ }
157
+ function onNotice(notice) {
158
+ const level = typeof notice.code === "string" &&
159
+ ["42P06", "42P07"].includes(notice.code)
160
+ ? "trace"
161
+ : "debug";
162
+ logger[level]({
163
+ msg: "Postgres notice",
164
+ message: notice.message,
165
+ code: notice.code,
166
+ });
167
+ }
168
+ pool.on("error", onPoolError);
169
+ pool.on("connect", (client) => {
170
+ client.on("notice", onNotice);
171
+ client.on("error", onClientError);
172
+ });
173
+ return pool;
174
+ }
175
+ //# sourceMappingURL=pg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../src/utils/pg.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAmB,MAAM,IAAI,CAAC;AACzC,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAEzC,0EAA0E;AAC1E,yEAAyE;AACzE,8CAA8C;AAC9C,MAAM,iBAAiB,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvD,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AAEzC,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,2HAA2H;IAC3H,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS;KACpB,CAAC;IACF,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAChC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;KACzB,CAAC;IAEF,qIAAqI;IACrI,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;IAE1D,OAAO,GAAG,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,eAAe,GAAG,CACtB,MAAkB,EAKlB,EAAE;IACF,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,MAAM,CAAC,IAAI;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAC1C,yIAAyI;IACzI,sFAAsF;IACtF,MAAM,MAAM,GAAI,KAAuC,CACrD,MAAM,CAAC,gBAAgB,CACxB,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;QAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,MAAkB,EAAE,MAAc;IAC3D,MAAM,MAAO,SAAQ,EAAE,CAAC,MAAM;QAC5B,mBAAmB;QACV,OAAO,CACd,QAA0C;YAE1C,IAAI,QAAQ,EAAE;gBACZ,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;oBACjB,IAAI,CAAC,KAAK,CACR;;+DAEmD,EACnD,QAAQ,CACT,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/B,IAAI,CAAC,KAAK,CAAC;;+DAE0C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACtE,CAAC;aACH;QACH,CAAC;KACF;IAED,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;QACvB,yGAAyG;QACzG,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QAChC,iEAAiE;QACjE,MAAM,EAAE,MAAM;QACd,GAAG,MAAM;KACV,CAAC,CAAC;IAEH,SAAS,WAAW,CAAC,KAAY;QAC/B,MAAM,MAAM,GAAI,KAAa,CAAC,MAAyB,CAAC;QACxD,MAAM,GAAG,GAAI,MAAM,EAAE,SAAgC,IAAI,SAAS,CAAC;QACnE,MAAM,eAAe,GAClB,MAAM,EAAE,oBAAoB,EAAE,gBAAuC;YACtE,SAAS,CAAC;QAEZ,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,qBAAqB;YAC1B,gBAAgB,EAAE,eAAe;YACjC,GAAG;YACH,KAAK;SACN,CAAC,CAAC;QAEH,4FAA4F;QAC5F,wFAAwF;IAC1F,CAAC;IAED,SAAS,aAAa,CAAC,KAAY;QACjC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;QAErD,4FAA4F;QAC5F,wFAAwF;IAC1F,CAAC;IAED,SAAS,QAAQ,CAAC,MAA2C;QAC3D,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC/B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,CAAC;YACZ,GAAG,EAAE,iBAAiB;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAkB,EAClB,MAAc,EACd,SAAiB;IAEjB,MAAM,cAAe,SAAQ,EAAE,CAAC,MAAM;QACpC,mBAAmB;QACV,OAAO,CACd,QAA0C;YAE1C,IAAI,QAAQ,EAAE;gBACZ,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;oBACjB,IAAI,CAAC,KAAK,CACR;+BACmB,SAAS;;;sCAGF,EAC1B,QAAQ,CACT,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/B,IAAI,CAAC,KAAK,CACR;+BACmB,SAAS;;;sCAGF,CAC3B,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACjB,CAAC;aACH;QACH,CAAC;KACF;IAED,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;QACvB,yGAAyG;QACzG,iBAAiB,EAAE,EAAE,GAAG,IAAI;QAC5B,iEAAiE;QACjE,MAAM,EAAE,cAAc;QACtB,GAAG,MAAM;KACV,CAAC,CAAC;IAEH,SAAS,WAAW,CAAC,KAAY;QAC/B,MAAM,MAAM,GAAI,KAAa,CAAC,MAAyB,CAAC;QACxD,MAAM,GAAG,GAAI,MAAM,EAAE,SAAgC,IAAI,SAAS,CAAC;QACnE,MAAM,eAAe,GAClB,MAAM,EAAE,oBAAoB,EAAE,gBAAuC;YACtE,SAAS,CAAC;QAEZ,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,qBAAqB;YAC1B,gBAAgB,EAAE,eAAe;YACjC,GAAG;YACH,KAAK;SACN,CAAC,CAAC;QAEH,4FAA4F;QAC5F,wFAAwF;IAC1F,CAAC;IAED,SAAS,aAAa,CAAC,KAAY;QACjC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;QAErD,4FAA4F;QAC5F,wFAAwF;IAC1F,CAAC;IAED,SAAS,QAAQ,CAAC,MAA2C;QAC3D,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC/B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,CAAC;YACZ,GAAG,EAAE,iBAAiB;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}