ponder 0.16.9 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/esm/bin/commands/codegen.js +3 -12
  3. package/dist/esm/bin/commands/codegen.js.map +1 -1
  4. package/dist/esm/bin/commands/createViews.js +2 -5
  5. package/dist/esm/bin/commands/createViews.js.map +1 -1
  6. package/dist/esm/bin/commands/dev.js +4 -22
  7. package/dist/esm/bin/commands/dev.js.map +1 -1
  8. package/dist/esm/bin/commands/list.js +4 -8
  9. package/dist/esm/bin/commands/list.js.map +1 -1
  10. package/dist/esm/bin/commands/prune.js +4 -8
  11. package/dist/esm/bin/commands/prune.js.map +1 -1
  12. package/dist/esm/bin/commands/serve.js +5 -20
  13. package/dist/esm/bin/commands/serve.js.map +1 -1
  14. package/dist/esm/bin/commands/start.js +4 -20
  15. package/dist/esm/bin/commands/start.js.map +1 -1
  16. package/dist/esm/bin/isolatedController.js +3 -3
  17. package/dist/esm/bin/isolatedController.js.map +1 -1
  18. package/dist/esm/bin/isolatedWorker.js +0 -5
  19. package/dist/esm/bin/isolatedWorker.js.map +1 -1
  20. package/dist/esm/bin/ponder.js.map +1 -1
  21. package/dist/esm/bin/utils/exit.js +1 -5
  22. package/dist/esm/bin/utils/exit.js.map +1 -1
  23. package/dist/esm/build/config.js +2 -2
  24. package/dist/esm/build/config.js.map +1 -1
  25. package/dist/esm/build/factory.js +1 -1
  26. package/dist/esm/build/factory.js.map +1 -1
  27. package/dist/esm/build/index.js +17 -14
  28. package/dist/esm/build/index.js.map +1 -1
  29. package/dist/esm/build/pre.js +2 -2
  30. package/dist/esm/build/pre.js.map +1 -1
  31. package/dist/esm/build/schema.js +2 -2
  32. package/dist/esm/build/schema.js.map +1 -1
  33. package/dist/esm/build/stacktrace.js +5 -5
  34. package/dist/esm/build/stacktrace.js.map +1 -1
  35. package/dist/esm/client/index.js +8 -9
  36. package/dist/esm/client/index.js.map +1 -1
  37. package/dist/esm/database/actions.js +7 -9
  38. package/dist/esm/database/actions.js.map +1 -1
  39. package/dist/esm/database/index.js +7 -7
  40. package/dist/esm/database/index.js.map +1 -1
  41. package/dist/esm/database/queryBuilder.js +4 -7
  42. package/dist/esm/database/queryBuilder.js.map +1 -1
  43. package/dist/esm/drizzle/bigint.js +3 -5
  44. package/dist/esm/drizzle/bigint.js.map +1 -1
  45. package/dist/esm/drizzle/bytes.js +3 -5
  46. package/dist/esm/drizzle/bytes.js.map +1 -1
  47. package/dist/esm/drizzle/hex.js +3 -5
  48. package/dist/esm/drizzle/hex.js.map +1 -1
  49. package/dist/esm/drizzle/index.js.map +1 -1
  50. package/dist/esm/drizzle/json.js +8 -12
  51. package/dist/esm/drizzle/json.js.map +1 -1
  52. package/dist/esm/drizzle/kit/index.js +24 -38
  53. package/dist/esm/drizzle/kit/index.js.map +1 -1
  54. package/dist/esm/drizzle/onchain.js +15 -17
  55. package/dist/esm/drizzle/onchain.js.map +1 -1
  56. package/dist/esm/drizzle/text.js +3 -5
  57. package/dist/esm/drizzle/text.js.map +1 -1
  58. package/dist/esm/graphql/index.js +6 -6
  59. package/dist/esm/graphql/index.js.map +1 -1
  60. package/dist/esm/graphql/json.js.map +1 -1
  61. package/dist/esm/graphql/middleware.js +2 -2
  62. package/dist/esm/graphql/middleware.js.map +1 -1
  63. package/dist/esm/index.js +5 -5
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/indexing/addStackTrace.js +1 -1
  66. package/dist/esm/indexing/addStackTrace.js.map +1 -1
  67. package/dist/esm/indexing/client.js +11 -12
  68. package/dist/esm/indexing/client.js.map +1 -1
  69. package/dist/esm/indexing/index.js +6 -4
  70. package/dist/esm/indexing/index.js.map +1 -1
  71. package/dist/esm/indexing/profile.js +2 -2
  72. package/dist/esm/indexing/profile.js.map +1 -1
  73. package/dist/esm/indexing-store/cache.js +4 -4
  74. package/dist/esm/indexing-store/cache.js.map +1 -1
  75. package/dist/esm/indexing-store/index.js +10 -13
  76. package/dist/esm/indexing-store/index.js.map +1 -1
  77. package/dist/esm/indexing-store/profile.js +3 -3
  78. package/dist/esm/indexing-store/profile.js.map +1 -1
  79. package/dist/esm/indexing-store/utils.js +3 -3
  80. package/dist/esm/indexing-store/utils.js.map +1 -1
  81. package/dist/esm/internal/logger.js +7 -7
  82. package/dist/esm/internal/logger.js.map +1 -1
  83. package/dist/esm/internal/metrics.js +15 -15
  84. package/dist/esm/internal/metrics.js.map +1 -1
  85. package/dist/esm/internal/options.js +6 -9
  86. package/dist/esm/internal/options.js.map +1 -1
  87. package/dist/esm/internal/shutdown.js.map +1 -1
  88. package/dist/esm/rpc/actions.js +7 -8
  89. package/dist/esm/rpc/actions.js.map +1 -1
  90. package/dist/esm/rpc/http.js +8 -4
  91. package/dist/esm/rpc/http.js.map +1 -1
  92. package/dist/esm/rpc/index.js +19 -19
  93. package/dist/esm/rpc/index.js.map +1 -1
  94. package/dist/esm/runtime/events.js +7 -9
  95. package/dist/esm/runtime/events.js.map +1 -1
  96. package/dist/esm/runtime/filter.js +1 -1
  97. package/dist/esm/runtime/filter.js.map +1 -1
  98. package/dist/esm/runtime/fragments.js.map +1 -1
  99. package/dist/esm/runtime/historical.js +7 -7
  100. package/dist/esm/runtime/historical.js.map +1 -1
  101. package/dist/esm/runtime/index.js +2 -2
  102. package/dist/esm/runtime/index.js.map +1 -1
  103. package/dist/esm/runtime/isolated.js +18 -11
  104. package/dist/esm/runtime/isolated.js.map +1 -1
  105. package/dist/esm/runtime/multichain.js +19 -12
  106. package/dist/esm/runtime/multichain.js.map +1 -1
  107. package/dist/esm/runtime/omnichain.js +19 -12
  108. package/dist/esm/runtime/omnichain.js.map +1 -1
  109. package/dist/esm/runtime/realtime.js +12 -12
  110. package/dist/esm/runtime/realtime.js.map +1 -1
  111. package/dist/esm/server/error.js +1 -1
  112. package/dist/esm/server/error.js.map +1 -1
  113. package/dist/esm/server/index.js +4 -4
  114. package/dist/esm/server/index.js.map +1 -1
  115. package/dist/esm/sync-historical/index.js +2 -2
  116. package/dist/esm/sync-historical/index.js.map +1 -1
  117. package/dist/esm/sync-realtime/bloom.js +1 -1
  118. package/dist/esm/sync-realtime/bloom.js.map +1 -1
  119. package/dist/esm/sync-realtime/index.js +1 -1
  120. package/dist/esm/sync-realtime/index.js.map +1 -1
  121. package/dist/esm/sync-store/encode.js +1 -1
  122. package/dist/esm/sync-store/encode.js.map +1 -1
  123. package/dist/esm/sync-store/index.js +12 -31
  124. package/dist/esm/sync-store/index.js.map +1 -1
  125. package/dist/esm/sync-store/migrations.js +1 -1
  126. package/dist/esm/sync-store/migrations.js.map +1 -1
  127. package/dist/esm/sync-store/schema.js +2 -2
  128. package/dist/esm/sync-store/schema.js.map +1 -1
  129. package/dist/esm/types/db.js.map +1 -1
  130. package/dist/esm/ui/app.js +2 -2
  131. package/dist/esm/ui/app.js.map +1 -1
  132. package/dist/esm/ui/patch.js +1 -2
  133. package/dist/esm/ui/patch.js.map +1 -1
  134. package/dist/esm/utils/abi.js +1 -1
  135. package/dist/esm/utils/abi.js.map +1 -1
  136. package/dist/esm/utils/bigint.js.map +1 -1
  137. package/dist/esm/utils/checkpoint.js.map +1 -1
  138. package/dist/esm/utils/chunk.js.map +1 -1
  139. package/dist/esm/utils/copy.js +1 -1
  140. package/dist/esm/utils/copy.js.map +1 -1
  141. package/dist/esm/utils/decodeAbiParameters.js +2 -3
  142. package/dist/esm/utils/decodeAbiParameters.js.map +1 -1
  143. package/dist/esm/utils/decodeEventLog.js.map +1 -1
  144. package/dist/esm/utils/duplicates.js.map +1 -1
  145. package/dist/esm/utils/finality.js.map +1 -1
  146. package/dist/esm/utils/generators.js.map +1 -1
  147. package/dist/esm/utils/interval.js.map +1 -1
  148. package/dist/esm/utils/mutex.js.map +1 -1
  149. package/dist/esm/utils/offset.js.map +1 -1
  150. package/dist/esm/utils/order.js.map +1 -1
  151. package/dist/esm/utils/partition.js.map +1 -1
  152. package/dist/esm/utils/pg.js +2 -2
  153. package/dist/esm/utils/pg.js.map +1 -1
  154. package/dist/esm/utils/pglite.js +4 -6
  155. package/dist/esm/utils/pglite.js.map +1 -1
  156. package/dist/esm/utils/port.js.map +1 -1
  157. package/dist/esm/utils/promiseAllSettledWithThrow.js.map +1 -1
  158. package/dist/esm/utils/queue.js +7 -7
  159. package/dist/esm/utils/queue.js.map +1 -1
  160. package/dist/esm/utils/result.js +1 -1
  161. package/dist/esm/utils/result.js.map +1 -1
  162. package/dist/esm/utils/sql-parse.js +10 -10
  163. package/dist/esm/utils/sql-parse.js.map +1 -1
  164. package/dist/esm/utils/zipper.js.map +1 -1
  165. package/dist/types/bin/commands/codegen.d.ts.map +1 -1
  166. package/dist/types/bin/commands/createViews.d.ts.map +1 -1
  167. package/dist/types/bin/commands/dev.d.ts.map +1 -1
  168. package/dist/types/bin/commands/list.d.ts.map +1 -1
  169. package/dist/types/bin/commands/prune.d.ts.map +1 -1
  170. package/dist/types/bin/commands/serve.d.ts.map +1 -1
  171. package/dist/types/bin/commands/start.d.ts.map +1 -1
  172. package/dist/types/bin/isolatedController.d.ts.map +1 -1
  173. package/dist/types/bin/isolatedWorker.d.ts.map +1 -1
  174. package/dist/types/bin/ponder.d.ts +1 -1
  175. package/dist/types/bin/ponder.d.ts.map +1 -1
  176. package/dist/types/bin/utils/exit.d.ts +1 -1
  177. package/dist/types/bin/utils/exit.d.ts.map +1 -1
  178. package/dist/types/build/config.d.ts +1 -1
  179. package/dist/types/build/config.d.ts.map +1 -1
  180. package/dist/types/build/factory.d.ts.map +1 -1
  181. package/dist/types/build/index.d.ts +1 -1
  182. package/dist/types/build/index.d.ts.map +1 -1
  183. package/dist/types/build/plugin.d.ts +1 -1
  184. package/dist/types/build/plugin.d.ts.map +1 -1
  185. package/dist/types/build/schema.d.ts.map +1 -1
  186. package/dist/types/client/index.d.ts.map +1 -1
  187. package/dist/types/config/address.d.ts +1 -1
  188. package/dist/types/config/address.d.ts.map +1 -1
  189. package/dist/types/config/index.d.ts +6 -6
  190. package/dist/types/config/index.d.ts.map +1 -1
  191. package/dist/types/database/actions.d.ts +5 -5
  192. package/dist/types/database/actions.d.ts.map +1 -1
  193. package/dist/types/database/index.d.ts +2 -2
  194. package/dist/types/database/index.d.ts.map +1 -1
  195. package/dist/types/database/queryBuilder.d.ts +4 -4
  196. package/dist/types/database/queryBuilder.d.ts.map +1 -1
  197. package/dist/types/drizzle/bigint.d.ts +1 -1
  198. package/dist/types/drizzle/bigint.d.ts.map +1 -1
  199. package/dist/types/drizzle/bytes.d.ts +2 -1
  200. package/dist/types/drizzle/bytes.d.ts.map +1 -1
  201. package/dist/types/drizzle/hex.d.ts +1 -1
  202. package/dist/types/drizzle/hex.d.ts.map +1 -1
  203. package/dist/types/drizzle/index.d.ts.map +1 -1
  204. package/dist/types/drizzle/json.d.ts.map +1 -1
  205. package/dist/types/drizzle/kit/index.d.ts.map +1 -1
  206. package/dist/types/drizzle/onchain.d.ts +1 -1
  207. package/dist/types/drizzle/onchain.d.ts.map +1 -1
  208. package/dist/types/drizzle/text.d.ts +1 -1
  209. package/dist/types/drizzle/text.d.ts.map +1 -1
  210. package/dist/types/graphql/index.d.ts +2 -2
  211. package/dist/types/graphql/index.d.ts.map +1 -1
  212. package/dist/types/graphql/middleware.d.ts +3 -3
  213. package/dist/types/graphql/middleware.d.ts.map +1 -1
  214. package/dist/types/index.d.ts +11 -11
  215. package/dist/types/index.d.ts.map +1 -1
  216. package/dist/types/indexing/addStackTrace.d.ts.map +1 -1
  217. package/dist/types/indexing/client.d.ts +2 -3
  218. package/dist/types/indexing/client.d.ts.map +1 -1
  219. package/dist/types/indexing/index.d.ts +2 -2
  220. package/dist/types/indexing/index.d.ts.map +1 -1
  221. package/dist/types/indexing/profile.d.ts.map +1 -1
  222. package/dist/types/indexing-store/cache.d.ts +2 -2
  223. package/dist/types/indexing-store/cache.d.ts.map +1 -1
  224. package/dist/types/indexing-store/index.d.ts +3 -4
  225. package/dist/types/indexing-store/index.d.ts.map +1 -1
  226. package/dist/types/indexing-store/profile.d.ts +1 -1
  227. package/dist/types/indexing-store/profile.d.ts.map +1 -1
  228. package/dist/types/indexing-store/utils.d.ts.map +1 -1
  229. package/dist/types/internal/common.d.ts +0 -2
  230. package/dist/types/internal/common.d.ts.map +1 -1
  231. package/dist/types/internal/logger.d.ts +1 -1
  232. package/dist/types/internal/logger.d.ts.map +1 -1
  233. package/dist/types/internal/metrics.d.ts +1 -1
  234. package/dist/types/internal/metrics.d.ts.map +1 -1
  235. package/dist/types/internal/options.d.ts +1 -7
  236. package/dist/types/internal/options.d.ts.map +1 -1
  237. package/dist/types/internal/types.d.ts +4 -4
  238. package/dist/types/internal/types.d.ts.map +1 -1
  239. package/dist/types/rpc/actions.d.ts.map +1 -1
  240. package/dist/types/rpc/http.d.ts +1 -1
  241. package/dist/types/rpc/http.d.ts.map +1 -1
  242. package/dist/types/rpc/index.d.ts +2 -2
  243. package/dist/types/rpc/index.d.ts.map +1 -1
  244. package/dist/types/runtime/events.d.ts +1 -1
  245. package/dist/types/runtime/events.d.ts.map +1 -1
  246. package/dist/types/runtime/filter.d.ts +1 -1
  247. package/dist/types/runtime/filter.d.ts.map +1 -1
  248. package/dist/types/runtime/fragments.d.ts +1 -1
  249. package/dist/types/runtime/fragments.d.ts.map +1 -1
  250. package/dist/types/runtime/historical.d.ts.map +1 -1
  251. package/dist/types/runtime/index.d.ts +2 -3
  252. package/dist/types/runtime/index.d.ts.map +1 -1
  253. package/dist/types/runtime/isolated.d.ts.map +1 -1
  254. package/dist/types/runtime/multichain.d.ts.map +1 -1
  255. package/dist/types/runtime/omnichain.d.ts.map +1 -1
  256. package/dist/types/runtime/realtime.d.ts.map +1 -1
  257. package/dist/types/server/error.d.ts +1 -1
  258. package/dist/types/server/error.d.ts.map +1 -1
  259. package/dist/types/server/index.d.ts +1 -1
  260. package/dist/types/server/index.d.ts.map +1 -1
  261. package/dist/types/sync-historical/index.d.ts +1 -1
  262. package/dist/types/sync-historical/index.d.ts.map +1 -1
  263. package/dist/types/sync-realtime/bloom.d.ts +1 -1
  264. package/dist/types/sync-realtime/bloom.d.ts.map +1 -1
  265. package/dist/types/sync-realtime/index.d.ts +1 -1
  266. package/dist/types/sync-realtime/index.d.ts.map +1 -1
  267. package/dist/types/sync-store/encode.d.ts.map +1 -1
  268. package/dist/types/sync-store/index.d.ts +2 -2
  269. package/dist/types/sync-store/index.d.ts.map +1 -1
  270. package/dist/types/sync-store/migrations.d.ts +1 -1
  271. package/dist/types/sync-store/migrations.d.ts.map +1 -1
  272. package/dist/types/sync-store/schema.d.ts +2 -2
  273. package/dist/types/sync-store/schema.d.ts.map +1 -1
  274. package/dist/types/types/db.d.ts +3 -3
  275. package/dist/types/types/db.d.ts.map +1 -1
  276. package/dist/types/ui/app.d.ts +3 -3
  277. package/dist/types/ui/app.d.ts.map +1 -1
  278. package/dist/types/ui/patch.d.ts.map +1 -1
  279. package/dist/types/utils/abi.d.ts.map +1 -1
  280. package/dist/types/utils/chains.d.ts +2 -0
  281. package/dist/types/utils/chains.d.ts.map +1 -1
  282. package/dist/types/utils/checkpoint.d.ts.map +1 -1
  283. package/dist/types/utils/chunk.d.ts.map +1 -1
  284. package/dist/types/utils/copy.d.ts.map +1 -1
  285. package/dist/types/utils/decodeAbiParameters.d.ts.map +1 -1
  286. package/dist/types/utils/estimate.d.ts.map +1 -1
  287. package/dist/types/utils/partition.d.ts.map +1 -1
  288. package/dist/types/utils/pg.d.ts +1 -1
  289. package/dist/types/utils/pg.d.ts.map +1 -1
  290. package/dist/types/utils/pglite.d.ts +1 -1
  291. package/dist/types/utils/pglite.d.ts.map +1 -1
  292. package/dist/types/utils/port.d.ts.map +1 -1
  293. package/dist/types/utils/promiseWithResolvers.d.ts.map +1 -1
  294. package/dist/types/utils/queue.d.ts.map +1 -1
  295. package/dist/types/utils/result.d.ts.map +1 -1
  296. package/dist/types/utils/zipper.d.ts +2 -2
  297. package/dist/types/utils/zipper.d.ts.map +1 -1
  298. package/package.json +8 -8
  299. package/src/bin/commands/codegen.ts +3 -13
  300. package/src/bin/commands/createViews.ts +3 -6
  301. package/src/bin/commands/dev.ts +5 -25
  302. package/src/bin/commands/list.ts +6 -9
  303. package/src/bin/commands/prune.ts +6 -9
  304. package/src/bin/commands/serve.ts +5 -21
  305. package/src/bin/commands/start.ts +5 -22
  306. package/src/bin/isolatedController.ts +1 -1
  307. package/src/bin/isolatedWorker.ts +0 -6
  308. package/src/bin/ponder.ts +1 -1
  309. package/src/bin/utils/exit.ts +1 -9
  310. package/src/build/config.ts +22 -16
  311. package/src/build/factory.ts +2 -2
  312. package/src/build/index.ts +29 -19
  313. package/src/build/plugin.ts +1 -1
  314. package/src/build/pre.ts +2 -2
  315. package/src/build/schema.ts +20 -14
  316. package/src/build/stacktrace.ts +5 -5
  317. package/src/client/index.ts +23 -21
  318. package/src/config/address.ts +1 -1
  319. package/src/config/index.ts +1 -1
  320. package/src/database/actions.ts +18 -20
  321. package/src/database/index.ts +17 -17
  322. package/src/database/queryBuilder.ts +12 -14
  323. package/src/drizzle/bigint.ts +4 -4
  324. package/src/drizzle/bytes.ts +4 -4
  325. package/src/drizzle/hex.ts +4 -4
  326. package/src/drizzle/index.ts +1 -1
  327. package/src/drizzle/json.ts +6 -6
  328. package/src/drizzle/kit/index.ts +30 -44
  329. package/src/drizzle/onchain.ts +27 -23
  330. package/src/drizzle/text.ts +2 -2
  331. package/src/graphql/index.ts +16 -14
  332. package/src/graphql/json.ts +1 -1
  333. package/src/graphql/middleware.ts +6 -4
  334. package/src/index.ts +75 -83
  335. package/src/indexing/addStackTrace.ts +3 -3
  336. package/src/indexing/client.ts +40 -37
  337. package/src/indexing/index.ts +8 -6
  338. package/src/indexing/profile.ts +3 -3
  339. package/src/indexing-store/cache.ts +15 -15
  340. package/src/indexing-store/index.ts +26 -25
  341. package/src/indexing-store/profile.ts +4 -4
  342. package/src/indexing-store/utils.ts +11 -11
  343. package/src/internal/common.ts +0 -2
  344. package/src/internal/logger.ts +12 -9
  345. package/src/internal/metrics.ts +4 -4
  346. package/src/internal/options.ts +2 -10
  347. package/src/internal/types.ts +13 -13
  348. package/src/rpc/actions.ts +16 -17
  349. package/src/rpc/http.ts +9 -5
  350. package/src/rpc/index.ts +20 -16
  351. package/src/runtime/events.ts +22 -21
  352. package/src/runtime/filter.ts +9 -3
  353. package/src/runtime/fragments.ts +1 -1
  354. package/src/runtime/historical.ts +9 -6
  355. package/src/runtime/index.ts +6 -4
  356. package/src/runtime/isolated.ts +26 -20
  357. package/src/runtime/multichain.ts +24 -18
  358. package/src/runtime/omnichain.ts +24 -18
  359. package/src/runtime/realtime.ts +9 -11
  360. package/src/server/error.ts +2 -2
  361. package/src/server/index.ts +5 -5
  362. package/src/sync-historical/index.ts +13 -13
  363. package/src/sync-realtime/bloom.ts +1 -1
  364. package/src/sync-realtime/index.ts +7 -7
  365. package/src/sync-store/encode.ts +2 -2
  366. package/src/sync-store/index.ts +33 -58
  367. package/src/sync-store/migrations.ts +1 -1
  368. package/src/sync-store/schema.ts +1 -1
  369. package/src/types/db.ts +3 -3
  370. package/src/types.d.ts +2 -0
  371. package/src/ui/app.ts +1 -1
  372. package/src/ui/patch.ts +2 -3
  373. package/src/utils/abi.ts +7 -4
  374. package/src/utils/checkpoint.ts +1 -1
  375. package/src/utils/copy.ts +1 -1
  376. package/src/utils/decodeAbiParameters.ts +5 -7
  377. package/src/utils/pg.ts +1 -1
  378. package/src/utils/pglite.ts +5 -6
  379. package/src/utils/queue.ts +4 -4
  380. package/src/utils/result.ts +1 -1
  381. package/src/utils/sql-parse.ts +6 -6
  382. package/dist/esm/internal/telemetry.js +0 -200
  383. package/dist/esm/internal/telemetry.js.map +0 -1
  384. package/dist/types/internal/telemetry.d.ts +0 -43
  385. package/dist/types/internal/telemetry.d.ts.map +0 -1
  386. package/src/internal/telemetry.ts +0 -303
@@ -1,4 +1,24 @@
1
1
  import crypto from "node:crypto";
2
+ import {
3
+ and,
4
+ asc,
5
+ desc,
6
+ eq,
7
+ gte,
8
+ inArray,
9
+ isNull,
10
+ lt,
11
+ lte,
12
+ or,
13
+ type SQL,
14
+ sql,
15
+ } from "drizzle-orm";
16
+ import {
17
+ type PgColumn,
18
+ type PgSelectBase,
19
+ unionAll,
20
+ } from "drizzle-orm/pg-core";
21
+ import { type Address, hexToNumber, isHex } from "viem";
2
22
  import type { QB } from "@/database/queryBuilder.js";
3
23
  import { extractBlockNumberParam } from "@/indexing/client.js";
4
24
  import type { Common } from "@/internal/common.js";
@@ -49,30 +69,9 @@ import type {
49
69
  IntervalWithFilter,
50
70
  } from "@/runtime/index.js";
51
71
  import type { Interval } from "@/utils/interval.js";
52
- import { intervalUnion } from "@/utils/interval.js";
53
72
  import { toLowerCase } from "@/utils/lowercase.js";
54
73
  import { orderObject } from "@/utils/order.js";
55
74
  import { startClock } from "@/utils/timer.js";
56
- import {
57
- type SQL,
58
- and,
59
- asc,
60
- desc,
61
- eq,
62
- gte,
63
- inArray,
64
- isNull,
65
- lt,
66
- lte,
67
- or,
68
- sql,
69
- } from "drizzle-orm";
70
- import {
71
- type PgColumn,
72
- type PgSelectBase,
73
- unionAll,
74
- } from "drizzle-orm/pg-core";
75
- import { type Address, hexToNumber, isHex } from "viem";
76
75
  import {
77
76
  encodeBlock,
78
77
  encodeLog,
@@ -203,7 +202,10 @@ export type SyncStore = {
203
202
  export const createSyncStore = ({
204
203
  common,
205
204
  qb,
206
- }: { common: Common; qb: QB<typeof PONDER_SYNC> }): SyncStore => {
205
+ }: {
206
+ common: Common;
207
+ qb: QB<typeof PONDER_SYNC>;
208
+ }): SyncStore => {
207
209
  const syncStore = {
208
210
  insertIntervals: async (
209
211
  { intervals, factoryIntervals, chainId },
@@ -420,31 +422,6 @@ export const createSyncStore = ({
420
422
 
421
423
  result.get(factory)!.push({ fragment, intervals });
422
424
  }
423
-
424
- // Note: This is a stand-in for a migration to the `intervals` table
425
- // required in `v0.15`. It is an invariant that filter with factories
426
- // have a row in the intervals table for both the filter and the factory.
427
- // If this invariant is broken, it must be because of the migration from
428
- // `v0.14` to `v0.15`. In this case, we can assume that the factory interval
429
- // is the same as the filter interval.
430
-
431
- const filterIntervals = intervalUnion(
432
- result.get(filter)!.flatMap(({ intervals }) => intervals),
433
- );
434
- const factoryIntervals = intervalUnion(
435
- result.get(factory)!.flatMap(({ intervals }) => intervals),
436
- );
437
-
438
- if (
439
- filterIntervals.length > 0 &&
440
- factoryIntervals.length === 0 &&
441
- filter.fromBlock === factory.fromBlock &&
442
- filter.toBlock === factory.toBlock
443
- ) {
444
- for (const factoryInterval of result.get(factory)!) {
445
- factoryInterval.intervals = filterIntervals;
446
- }
447
- }
448
425
  }
449
426
  }
450
427
 
@@ -835,7 +812,7 @@ export const createSyncStore = ({
835
812
  };
836
813
 
837
814
  for (const column of unionFilterIncludeBlock(filters)) {
838
- // @ts-ignore
815
+ // @ts-expect-error
839
816
  blockSelect[column] = PONDER_SYNC.blocks[column];
840
817
  }
841
818
 
@@ -862,7 +839,7 @@ export const createSyncStore = ({
862
839
  };
863
840
 
864
841
  for (const column of unionFilterIncludeTransaction(filters)) {
865
- // @ts-ignore
842
+ // @ts-expect-error
866
843
  transactionSelect[column] = PONDER_SYNC.transactions[column];
867
844
  }
868
845
 
@@ -891,7 +868,7 @@ export const createSyncStore = ({
891
868
  };
892
869
 
893
870
  for (const column of unionFilterIncludeTransactionReceipt(filters)) {
894
- // @ts-ignore
871
+ // @ts-expect-error
895
872
  transactionReceiptSelect[column] =
896
873
  PONDER_SYNC.transactionReceipts[column];
897
874
  }
@@ -926,7 +903,7 @@ export const createSyncStore = ({
926
903
  };
927
904
 
928
905
  for (const column of unionFilterIncludeTrace(filters)) {
929
- // @ts-ignore
906
+ // @ts-expect-error
930
907
  traceSelect[column] = PONDER_SYNC.traces[column];
931
908
  }
932
909
 
@@ -1213,19 +1190,19 @@ export const createSyncStore = ({
1213
1190
  internalLog.address = toLowerCase(log.address);
1214
1191
  internalLog.removed = false;
1215
1192
  internalLog.topics = [
1216
- // @ts-ignore
1193
+ // @ts-expect-error
1217
1194
  log.topic0,
1218
1195
  log.topic1,
1219
1196
  log.topic2,
1220
1197
  log.topic3,
1221
1198
  ];
1222
- // @ts-ignore
1199
+ // @ts-expect-error
1223
1200
  log.topic0 = undefined;
1224
- // @ts-ignore
1201
+ // @ts-expect-error
1225
1202
  log.topic1 = undefined;
1226
- // @ts-ignore
1203
+ // @ts-expect-error
1227
1204
  log.topic2 = undefined;
1228
- // @ts-ignore
1205
+ // @ts-expect-error
1229
1206
  log.topic3 = undefined;
1230
1207
  }
1231
1208
 
@@ -1499,9 +1476,7 @@ const addressFilter = (
1499
1476
  ): SQL => {
1500
1477
  // `factory` filtering is handled in-memory
1501
1478
  if (isAddressFactory(address)) return sql`true`;
1502
- // @ts-ignore
1503
1479
  if (Array.isArray(address)) return inArray(column, address);
1504
- // @ts-ignore
1505
1480
  if (typeof address === "string") return eq(column, address);
1506
1481
  return sql`true`;
1507
1482
  };
@@ -1,7 +1,7 @@
1
- import { type Logger, createNoopLogger } from "@/internal/logger.js";
2
1
  import type { Kysely, Migration, MigrationProvider } from "kysely";
3
2
  import { sql } from "kysely";
4
3
  import { maxUint256 } from "viem";
4
+ import { createNoopLogger, type Logger } from "@/internal/logger.js";
5
5
 
6
6
  let logger = createNoopLogger();
7
7
 
@@ -1,4 +1,3 @@
1
- import type { Factory, FragmentId } from "@/internal/types.js";
2
1
  import {
3
2
  customType,
4
3
  index,
@@ -7,6 +6,7 @@ import {
7
6
  unique,
8
7
  } from "drizzle-orm/pg-core";
9
8
  import type { Address, Hash, Hex } from "viem";
9
+ import type { Factory, FragmentId } from "@/internal/types.js";
10
10
 
11
11
  const nummultirange = customType<{ data: string }>({
12
12
  dataType() {
package/src/types/db.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { onchain } from "@/drizzle/onchain.js";
2
- import type { OnchainTable, PrimaryKeyBuilder } from "@/drizzle/onchain.js";
3
- import type { Schema } from "@/internal/types.js";
4
1
  import type {
5
2
  Column,
6
3
  GetColumnData,
@@ -11,6 +8,9 @@ import type {
11
8
  import type { NodePgDatabase } from "drizzle-orm/node-postgres";
12
9
  import type { PgTableExtraConfig, TableConfig } from "drizzle-orm/pg-core";
13
10
  import type { PgliteDatabase } from "drizzle-orm/pglite";
11
+ import type { OnchainTable, PrimaryKeyBuilder } from "@/drizzle/onchain.js";
12
+ import { onchain } from "@/drizzle/onchain.js";
13
+ import type { Schema } from "@/internal/types.js";
14
14
  import type { PonderTypeError, Prettify } from "./utils.js";
15
15
 
16
16
  export type Drizzle<TSchema extends Schema = { [name: string]: never }> =
package/src/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  declare module "ponder:registry" {
2
2
  import type { Virtual } from "ponder";
3
+
3
4
  type config = typeof import("ponder:internal").config;
4
5
  type schema = typeof import("ponder:internal").schema;
5
6
 
@@ -21,6 +22,7 @@ declare module "ponder:registry" {
21
22
 
22
23
  declare module "ponder:schema" {
23
24
  const schema: typeof import("ponder:internal").schema;
25
+
24
26
  export { schema as default };
25
27
  }
26
28
 
package/src/ui/app.ts CHANGED
@@ -1,10 +1,10 @@
1
+ import pc from "picocolors";
1
2
  import type {
2
3
  getAppProgress,
3
4
  getIndexingProgress,
4
5
  getSyncProgress,
5
6
  } from "@/internal/metrics.js";
6
7
  import { formatEta, formatPercentage } from "@/utils/format.js";
7
- import pc from "picocolors";
8
8
 
9
9
  export type UiState = {
10
10
  port: number;
package/src/ui/patch.ts CHANGED
@@ -61,7 +61,7 @@ export function patchWriteStreams({ getLines }: { getLines: () => string[] }) {
61
61
  this: NodeJS.WriteStream,
62
62
  buffer: string | Uint8Array,
63
63
  encoding?: BufferEncoding,
64
- cb?: (err?: Error) => void,
64
+ cb?: (err?: Error | null) => void,
65
65
  ) {
66
66
  const originalWrite =
67
67
  this === process.stderr ? originalStderrWrite : originalStdoutWrite;
@@ -123,8 +123,7 @@ export function patchWriteStreams({ getLines }: { getLines: () => string[] }) {
123
123
  const makeConsoleWriter =
124
124
  (stream: NodeJS.WriteStream, _: typeof originalStdoutWrite) =>
125
125
  (...args: unknown[]) => {
126
- // biome-ignore lint/style/useTemplate:
127
- const formatted = util.format(...args) + "\n";
126
+ const formatted = `${util.format(...args)}\n`;
128
127
 
129
128
  // handleOutput so TUI is cleared + re-rendered
130
129
  handleOutput.call(stream, formatted, "utf8", undefined);
package/src/utils/abi.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { getDuplicateElements } from "@/utils/duplicates.js";
2
1
  import {
3
2
  type Abi,
4
3
  type AbiEvent,
@@ -6,12 +5,13 @@ import {
6
5
  formatAbiItem,
7
6
  } from "abitype";
8
7
  import {
9
- type GetEventArgs,
10
- type Hex,
11
8
  encodeEventTopics,
9
+ type GetEventArgs,
12
10
  getAbiItem,
11
+ type Hex,
13
12
  parseAbiItem,
14
13
  } from "viem";
14
+ import { getDuplicateElements } from "@/utils/duplicates.js";
15
15
  import type { Config } from "../config/index.js";
16
16
 
17
17
  /**
@@ -27,7 +27,10 @@ declare global {
27
27
  export const toSafeName = ({
28
28
  abi,
29
29
  item,
30
- }: { abi: Abi; item: AbiEvent | AbiFunction }) => {
30
+ }: {
31
+ abi: Abi;
32
+ item: AbiEvent | AbiFunction;
33
+ }) => {
31
34
  if (item.type === "event") {
32
35
  const abiEvents = abi
33
36
  .filter((item): item is AbiEvent => item.type === "event")
@@ -1,5 +1,5 @@
1
- import type { LightBlock, SyncBlock } from "@/internal/types.js";
2
1
  import { hexToBigInt } from "viem";
2
+ import type { LightBlock, SyncBlock } from "@/internal/types.js";
3
3
 
4
4
  export type Checkpoint = {
5
5
  blockTimestamp: bigint;
package/src/utils/copy.ts CHANGED
@@ -11,7 +11,7 @@ export const COPY_ON_WRITE = Symbol.for("ponder:copyOnWrite");
11
11
  export const copyOnWrite = <T extends object>(obj: T): T => {
12
12
  let copiedObject: T | undefined;
13
13
 
14
- // @ts-ignore
14
+ // @ts-expect-error
15
15
  obj[util.inspect.custom] = () => {
16
16
  return copiedObject ?? obj;
17
17
  };
@@ -1,18 +1,16 @@
1
1
  import {
2
+ AbiDecodingDataSizeTooSmallError,
3
+ AbiDecodingZeroDataError,
2
4
  type AbiParameter,
3
5
  type AbiParameterToPrimitiveType,
6
+ checksumAddress,
4
7
  type DecodeAbiParametersReturnType,
5
8
  type Hex,
6
- InvalidHexBooleanError,
7
- } from "viem";
8
- import {
9
- AbiDecodingDataSizeTooSmallError,
10
- AbiDecodingZeroDataError,
11
- InvalidAbiDecodingTypeError,
12
- checksumAddress,
13
9
  hexToBigInt,
14
10
  hexToNumber,
15
11
  hexToString,
12
+ InvalidAbiDecodingTypeError,
13
+ InvalidHexBooleanError,
16
14
  } from "viem";
17
15
 
18
16
  const TRUE_BOOL =
package/src/utils/pg.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { Logger } from "@/internal/logger.js";
2
1
  import pg, { type PoolConfig } from "pg";
3
2
  import parse from "pg-connection-string";
3
+ import type { Logger } from "@/internal/logger.js";
4
4
 
5
5
  // The default parser for numeric[] (1231) seems to parse values as Number
6
6
  // or perhaps through JSON.parse(). Use the int8[] (1016) parser instead,
@@ -1,5 +1,4 @@
1
1
  import { mkdirSync } from "node:fs";
2
- import type { Prettify } from "@/types/utils.js";
3
2
  import { type PGliteOptions as Options, PGlite } from "@electric-sql/pglite";
4
3
  import {
5
4
  CompiledQuery,
@@ -12,6 +11,7 @@ import {
12
11
  type QueryResult,
13
12
  type TransactionSettings,
14
13
  } from "kysely";
14
+ import type { Prettify } from "@/types/utils.js";
15
15
 
16
16
  export type PGliteOptions = Prettify<Options & { dataDir: string }>;
17
17
 
@@ -19,12 +19,11 @@ export function createPglite(options: PGliteOptions) {
19
19
  // PGlite uses the memory FS by default, and Windows doesn't like the
20
20
  // "memory://" path, so it's better to pass `undefined` here.
21
21
  if (options.dataDir === "memory://") {
22
- // @ts-expect-error
23
- options.dataDir = undefined;
24
- } else {
25
- mkdirSync(options.dataDir, { recursive: true });
22
+ const { dataDir: _, ...pgliteOptions } = options;
23
+ return new PGlite(pgliteOptions);
26
24
  }
27
25
 
26
+ mkdirSync(options.dataDir, { recursive: true });
28
27
  return new PGlite(options);
29
28
  }
30
29
 
@@ -90,7 +89,7 @@ class PGliteConnection implements DatabaseConnection {
90
89
  ]);
91
90
  }
92
91
 
93
- // biome-ignore lint/correctness/useYield: <explanation>
92
+ // biome-ignore lint/correctness/useYield: PGlite never streams, but the interface requires this method.
94
93
  async *streamQuery(): AsyncGenerator<never, void, unknown> {
95
94
  throw new Error("PGlite does not support streaming.");
96
95
  }
@@ -83,7 +83,7 @@ export const createQueue = <returnType, taskType = void>({
83
83
  CreateQueueParameters<unknown, unknown>,
84
84
  "frequency" | "concurrency"
85
85
  > = _parameters;
86
- let queue = new Array<InnerQueue<returnType, taskType>[number]>();
86
+ let queue: InnerQueue<returnType, taskType>[number][] = [];
87
87
  let pending = 0;
88
88
  let timestamp = 0;
89
89
  let requests = 0;
@@ -93,10 +93,10 @@ export const createQueue = <returnType, taskType = void>({
93
93
 
94
94
  let emptyPromiseWithResolvers:
95
95
  | (PromiseWithResolvers<void> & { completed: boolean })
96
- | undefined = undefined;
96
+ | undefined;
97
97
  let idlePromiseWithResolvers:
98
98
  | (PromiseWithResolvers<void> & { completed: boolean })
99
- | undefined = undefined;
99
+ | undefined;
100
100
 
101
101
  const next = () => {
102
102
  if (!isStarted) return;
@@ -191,7 +191,7 @@ export const createQueue = <returnType, taskType = void>({
191
191
  }
192
192
  }
193
193
 
194
- queue = new Array<InnerQueue<returnType, taskType>[number]>();
194
+ queue = [] as InnerQueue<returnType, taskType>[number][];
195
195
  clearTimeout(timer);
196
196
  timer = undefined;
197
197
  },
@@ -21,6 +21,6 @@ export const mergeResults = <const T extends readonly Result<unknown>[]>(
21
21
  }
22
22
  }
23
23
 
24
- // @ts-ignore
24
+ // @ts-expect-error
25
25
  return { status: "success", result: results.map((result) => result.result) };
26
26
  };
@@ -14,7 +14,7 @@ const ALLOW_CACHE = new Map<string, boolean>();
14
14
  const RELATIONS_CACHE = new Map<string, Set<string>>();
15
15
 
16
16
  export const parseSQLQuery = async (sql: string): Promise<Node> => {
17
- // @ts-ignore
17
+ // @ts-expect-error
18
18
  const Parser = await import(/* webpackIgnore: true */ "pg-query-emscripten");
19
19
 
20
20
  if (sql.length > 5_000) {
@@ -85,11 +85,11 @@ export const validateAllowableSQLQuery = async (sql: string) => {
85
85
  throw new Error(`${getNodeType(node)} not supported`);
86
86
  }
87
87
 
88
- // @ts-ignore
88
+ // @ts-expect-error
89
89
  ALLOW_LIST.get(getNodeType(node))!.validate?.(node[getNodeType(node)]);
90
90
 
91
91
  for (const child of ALLOW_LIST.get(getNodeType(node))!.children(
92
- // @ts-ignore
92
+ // @ts-expect-error
93
93
  node[getNodeType(node)],
94
94
  )) {
95
95
  validate(child);
@@ -129,7 +129,7 @@ export const isReadonlySQLQuery = async (sql: string): Promise<boolean> => {
129
129
  }
130
130
 
131
131
  for (const child of ALLOW_LIST.get(getNodeType(node))!.children(
132
- // @ts-ignore
132
+ // @ts-expect-error
133
133
  node[getNodeType(node)],
134
134
  )) {
135
135
  validate(child);
@@ -186,7 +186,7 @@ export const getSQLQueryRelations = async (
186
186
  }
187
187
 
188
188
  for (const child of FIND_LIST.get(getNodeType(node))!.children(
189
- // @ts-ignore
189
+ // @ts-expect-error
190
190
  node[getNodeType(node)],
191
191
  )) {
192
192
  find(child);
@@ -700,7 +700,7 @@ const FUNC_CALL_VALIDATOR: ValidatorNode<"FuncCall"> = {
700
700
  node.funcname?.every(
701
701
  (name) =>
702
702
  getNodeType(name) === "String" &&
703
- // @ts-ignore
703
+ // @ts-expect-error
704
704
  ALLOWED_FUNCTIONS.has(name.String.sval),
705
705
  )
706
706
  ) {
@@ -1,200 +0,0 @@
1
- import { exec } from "node:child_process";
2
- import { createHash, randomBytes } from "node:crypto";
3
- import { existsSync, readFileSync } from "node:fs";
4
- import os from "node:os";
5
- import path from "node:path";
6
- import { promisify } from "node:util";
7
- import { createQueue } from '../utils/queue.js';
8
- import { startClock } from '../utils/timer.js';
9
- import Conf from "conf";
10
- import { detect, getNpmVersion } from "detect-package-manager";
11
- import { ShutdownError } from "./errors.js";
12
- const HEARTBEAT_INTERVAL_MS = 60000;
13
- export function createTelemetry({ options, logger, shutdown, }) {
14
- if (options.telemetryDisabled) {
15
- return {
16
- record: (_event) => { },
17
- flush: async () => { },
18
- };
19
- }
20
- const conf = new Conf({
21
- projectName: "ponder",
22
- cwd: options.telemetryConfigDir,
23
- });
24
- if (conf.get("notifiedAt") === undefined) {
25
- conf.set("notifiedAt", Date.now().toString());
26
- logger.info({
27
- msg: "Ponder collects anonymous telemetry data to identify issues and prioritize features. See https://ponder.sh/docs/advanced/telemetry for more information.",
28
- });
29
- }
30
- const sessionId = randomBytes(8).toString("hex");
31
- let anonymousId = conf.get("anonymousId");
32
- if (anonymousId === undefined) {
33
- anonymousId = randomBytes(8).toString("hex");
34
- conf.set("anonymousId", anonymousId);
35
- }
36
- // Before 0.4.3, the anonymous ID was 64 characters long. Truncate it to 16
37
- // here to align with new ID lengths.
38
- if (anonymousId.length > 16)
39
- anonymousId = anonymousId.slice(0, 16);
40
- let salt = conf.get("salt");
41
- if (salt === undefined) {
42
- salt = randomBytes(8).toString("hex");
43
- conf.set("salt", salt);
44
- }
45
- // Prepend the value with a secret salt to ensure a credible one-way hash.
46
- const oneWayHash = (value) => {
47
- const hash = createHash("sha256");
48
- hash.update(salt);
49
- hash.update(value);
50
- return hash.digest("hex").slice(0, 16);
51
- };
52
- const buildContext = async () => {
53
- // Project ID is a one-way hash of the git remote URL OR the current working directory.
54
- const gitRemoteUrl = await getGitRemoteUrl();
55
- const projectIdRaw = gitRemoteUrl ?? process.cwd();
56
- const projectId = oneWayHash(projectIdRaw);
57
- const { packageManager, packageManagerVersion } = await getPackageManager();
58
- // Attempt to find and read the users package.json file.
59
- const packageJson = getPackageJson(options.rootDir);
60
- const ponderVersion = packageJson?.dependencies?.ponder ?? "unknown";
61
- const viemVersion = packageJson?.dependencies?.viem ?? "unknown";
62
- // Make a guess as to whether the project is internal (within the monorepo) or not.
63
- const isInternal = ponderVersion === "workspace:*";
64
- const cpus = os.cpus();
65
- return {
66
- common: {
67
- session_id: sessionId,
68
- project_id: projectId,
69
- is_internal: isInternal,
70
- },
71
- session: {
72
- ponder_core_version: ponderVersion,
73
- viem_version: viemVersion,
74
- package_manager: packageManager,
75
- package_manager_version: packageManagerVersion,
76
- node_version: process.versions.node,
77
- system_platform: os.platform(),
78
- system_release: os.release(),
79
- system_architecture: os.arch(),
80
- cpu_count: cpus.length,
81
- cpu_model: cpus.length > 0 ? cpus[0].model : "unknown",
82
- cpu_speed: cpus.length > 0 ? cpus[0].speed : 0,
83
- total_memory_bytes: os.totalmem(),
84
- },
85
- };
86
- };
87
- let context = undefined;
88
- const contextPromise = buildContext();
89
- const queue = createQueue({
90
- initialStart: true,
91
- concurrency: 10,
92
- worker: async (event) => {
93
- if (shutdown.isKilled)
94
- return;
95
- const endClock = startClock();
96
- try {
97
- if (context === undefined)
98
- context = await contextPromise;
99
- const properties = event.name === "lifecycle:session_start"
100
- ? { ...event.properties, ...context.common, ...context.session }
101
- : { ...event.properties, ...context.common };
102
- const body = JSON.stringify({
103
- distinctId: anonymousId,
104
- event: event.name,
105
- properties,
106
- });
107
- await fetch(options.telemetryUrl, {
108
- method: "POST",
109
- headers: { "Content-Type": "application/json" },
110
- body,
111
- });
112
- logger.trace({
113
- msg: "Sent telemetry event",
114
- event: event.name,
115
- duration: endClock(),
116
- });
117
- }
118
- catch (error_) {
119
- const error = error_;
120
- if (shutdown.isKilled) {
121
- throw new ShutdownError();
122
- }
123
- logger.trace({
124
- msg: "Failed to send telemetry event",
125
- event: event.name,
126
- duration: endClock(),
127
- error,
128
- });
129
- }
130
- },
131
- });
132
- const record = (event) => {
133
- queue.add(event);
134
- };
135
- const heartbeatInterval = setInterval(() => {
136
- record({
137
- name: "lifecycle:heartbeat_send",
138
- properties: { duration_seconds: process.uptime() },
139
- });
140
- }, HEARTBEAT_INTERVAL_MS);
141
- shutdown.add(() => {
142
- clearInterval(heartbeatInterval);
143
- });
144
- // Note that this method is only used for testing.
145
- const flush = async () => {
146
- await queue.onIdle();
147
- };
148
- return { record, flush };
149
- }
150
- async function getPackageManager() {
151
- let packageManager = "unknown";
152
- let packageManagerVersion = "unknown";
153
- try {
154
- packageManager = await detect();
155
- packageManagerVersion = await getNpmVersion(packageManager);
156
- }
157
- catch (e) { }
158
- return { packageManager, packageManagerVersion };
159
- }
160
- const execa = promisify(exec);
161
- async function getGitRemoteUrl() {
162
- const result = await execa("git config --local --get remote.origin.url", {
163
- timeout: 250,
164
- windowsHide: true,
165
- }).catch(() => undefined);
166
- return result?.stdout.trim();
167
- }
168
- function getPackageJson(rootDir) {
169
- try {
170
- const rootPath = path.join(rootDir, "package.json");
171
- const cwdPath = path.join(process.cwd(), "package.json");
172
- const packageJsonPath = existsSync(rootPath)
173
- ? rootPath
174
- : existsSync(cwdPath)
175
- ? cwdPath
176
- : undefined;
177
- if (packageJsonPath === undefined)
178
- return undefined;
179
- const packageJsonString = readFileSync(packageJsonPath, "utf8");
180
- const packageJson = JSON.parse(packageJsonString);
181
- return packageJson;
182
- }
183
- catch (e) {
184
- return undefined;
185
- }
186
- }
187
- export function buildPayload({ preBuild, schemaBuild, indexingBuild, }) {
188
- const table_count = schemaBuild ? Object.keys(schemaBuild.schema).length : 0;
189
- const indexing_function_count = indexingBuild
190
- ? Object.values(indexingBuild.indexingFunctions).reduce((acc, f) => acc + Object.keys(f).length, 0)
191
- : 0;
192
- return {
193
- database_kind: preBuild?.databaseConfig.kind,
194
- contract_count: 0,
195
- network_count: indexingBuild?.chains.length ?? 0,
196
- table_count,
197
- indexing_function_count,
198
- };
199
- }
200
- //# sourceMappingURL=telemetry.js.map