ponder 0.9.5-debug.1 → 0.9.5

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 (462) hide show
  1. package/dist/{types/bin → bin}/ponder.d.ts +6 -5
  2. package/dist/bin/ponder.js +12933 -0
  3. package/dist/bin/ponder.js.map +1 -0
  4. package/dist/chunk-K2TLRLX3.js +163 -0
  5. package/dist/chunk-K2TLRLX3.js.map +1 -0
  6. package/dist/chunk-LHCA5XFV.js +257 -0
  7. package/dist/chunk-LHCA5XFV.js.map +1 -0
  8. package/dist/{types/drizzle → drizzle}/onchain.d.ts +96 -49
  9. package/dist/drizzle/onchain.js +19 -0
  10. package/dist/drizzle/onchain.js.map +1 -0
  11. package/dist/index.d.ts +819 -0
  12. package/dist/index.js +2217 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/utils-ceNucOJb.d.ts +14 -0
  15. package/package.json +17 -17
  16. package/src/bin/commands/dev.ts +1 -1
  17. package/src/bin/ponder.ts +1 -1
  18. package/src/build/configAndIndexingFunctions.ts +1 -1
  19. package/src/build/factory.ts +1 -1
  20. package/src/client/index.ts +1 -1
  21. package/src/indexing-store/historical.ts +1 -1
  22. package/src/indexing-store/realtime.ts +1 -1
  23. package/src/internal/telemetry.ts +1 -1
  24. package/src/sync/fragments.ts +1 -1
  25. package/src/sync-realtime/index.ts +1 -1
  26. package/src/utils/generators.ts +1 -1
  27. package/src/utils/mutex.ts +1 -1
  28. package/src/utils/requestQueue.ts +1 -1
  29. package/CHANGELOG.md +0 -2201
  30. package/dist/esm/bin/commands/codegen.js +0 -37
  31. package/dist/esm/bin/commands/codegen.js.map +0 -1
  32. package/dist/esm/bin/commands/dev.js +0 -242
  33. package/dist/esm/bin/commands/dev.js.map +0 -1
  34. package/dist/esm/bin/commands/list.js +0 -103
  35. package/dist/esm/bin/commands/list.js.map +0 -1
  36. package/dist/esm/bin/commands/serve.js +0 -123
  37. package/dist/esm/bin/commands/serve.js.map +0 -1
  38. package/dist/esm/bin/commands/start.js +0 -136
  39. package/dist/esm/bin/commands/start.js.map +0 -1
  40. package/dist/esm/bin/ponder.js +0 -118
  41. package/dist/esm/bin/ponder.js.map +0 -1
  42. package/dist/esm/bin/utils/codegen.js +0 -26
  43. package/dist/esm/bin/utils/codegen.js.map +0 -1
  44. package/dist/esm/bin/utils/exit.js +0 -69
  45. package/dist/esm/bin/utils/exit.js.map +0 -1
  46. package/dist/esm/bin/utils/run.js +0 -247
  47. package/dist/esm/bin/utils/run.js.map +0 -1
  48. package/dist/esm/bin/utils/runServer.js +0 -8
  49. package/dist/esm/bin/utils/runServer.js.map +0 -1
  50. package/dist/esm/build/configAndIndexingFunctions.js +0 -654
  51. package/dist/esm/build/configAndIndexingFunctions.js.map +0 -1
  52. package/dist/esm/build/factory.js +0 -43
  53. package/dist/esm/build/factory.js.map +0 -1
  54. package/dist/esm/build/index.js +0 -431
  55. package/dist/esm/build/index.js.map +0 -1
  56. package/dist/esm/build/plugin.js +0 -43
  57. package/dist/esm/build/plugin.js.map +0 -1
  58. package/dist/esm/build/pre.js +0 -112
  59. package/dist/esm/build/pre.js.map +0 -1
  60. package/dist/esm/build/schema.js +0 -89
  61. package/dist/esm/build/schema.js.map +0 -1
  62. package/dist/esm/build/stacktrace.js +0 -137
  63. package/dist/esm/build/stacktrace.js.map +0 -1
  64. package/dist/esm/client/index.js +0 -124
  65. package/dist/esm/client/index.js.map +0 -1
  66. package/dist/esm/client/validate.js +0 -1151
  67. package/dist/esm/client/validate.js.map +0 -1
  68. package/dist/esm/config/address.js +0 -2
  69. package/dist/esm/config/address.js.map +0 -1
  70. package/dist/esm/config/eventFilter.js +0 -2
  71. package/dist/esm/config/eventFilter.js.map +0 -1
  72. package/dist/esm/config/index.js +0 -2
  73. package/dist/esm/config/index.js.map +0 -1
  74. package/dist/esm/config/networks.js +0 -120
  75. package/dist/esm/config/networks.js.map +0 -1
  76. package/dist/esm/config/utilityTypes.js +0 -2
  77. package/dist/esm/config/utilityTypes.js.map +0 -1
  78. package/dist/esm/database/index.js +0 -914
  79. package/dist/esm/database/index.js.map +0 -1
  80. package/dist/esm/drizzle/bigint.js +0 -36
  81. package/dist/esm/drizzle/bigint.js.map +0 -1
  82. package/dist/esm/drizzle/hex.js +0 -38
  83. package/dist/esm/drizzle/hex.js.map +0 -1
  84. package/dist/esm/drizzle/index.js +0 -43
  85. package/dist/esm/drizzle/index.js.map +0 -1
  86. package/dist/esm/drizzle/kit/index.js +0 -658
  87. package/dist/esm/drizzle/kit/index.js.map +0 -1
  88. package/dist/esm/drizzle/onchain.js +0 -102
  89. package/dist/esm/drizzle/onchain.js.map +0 -1
  90. package/dist/esm/graphql/index.js +0 -704
  91. package/dist/esm/graphql/index.js.map +0 -1
  92. package/dist/esm/graphql/json.js +0 -42
  93. package/dist/esm/graphql/json.js.map +0 -1
  94. package/dist/esm/graphql/middleware.js +0 -80
  95. package/dist/esm/graphql/middleware.js.map +0 -1
  96. package/dist/esm/index.js +0 -9
  97. package/dist/esm/index.js.map +0 -1
  98. package/dist/esm/indexing/addStackTrace.js +0 -54
  99. package/dist/esm/indexing/addStackTrace.js.map +0 -1
  100. package/dist/esm/indexing/index.js +0 -10
  101. package/dist/esm/indexing/index.js.map +0 -1
  102. package/dist/esm/indexing/ponderActions.js +0 -60
  103. package/dist/esm/indexing/ponderActions.js.map +0 -1
  104. package/dist/esm/indexing/service.js +0 -312
  105. package/dist/esm/indexing/service.js.map +0 -1
  106. package/dist/esm/indexing-store/historical.js +0 -591
  107. package/dist/esm/indexing-store/historical.js.map +0 -1
  108. package/dist/esm/indexing-store/index.js +0 -19
  109. package/dist/esm/indexing-store/index.js.map +0 -1
  110. package/dist/esm/indexing-store/metadata.js +0 -46
  111. package/dist/esm/indexing-store/metadata.js.map +0 -1
  112. package/dist/esm/indexing-store/realtime.js +0 -295
  113. package/dist/esm/indexing-store/realtime.js.map +0 -1
  114. package/dist/esm/internal/common.js +0 -2
  115. package/dist/esm/internal/common.js.map +0 -1
  116. package/dist/esm/internal/errors.js +0 -175
  117. package/dist/esm/internal/errors.js.map +0 -1
  118. package/dist/esm/internal/logger.js +0 -96
  119. package/dist/esm/internal/logger.js.map +0 -1
  120. package/dist/esm/internal/metrics.js +0 -569
  121. package/dist/esm/internal/metrics.js.map +0 -1
  122. package/dist/esm/internal/options.js +0 -69
  123. package/dist/esm/internal/options.js.map +0 -1
  124. package/dist/esm/internal/shutdown.js +0 -18
  125. package/dist/esm/internal/shutdown.js.map +0 -1
  126. package/dist/esm/internal/telemetry.js +0 -199
  127. package/dist/esm/internal/telemetry.js.map +0 -1
  128. package/dist/esm/internal/types.js +0 -2
  129. package/dist/esm/internal/types.js.map +0 -1
  130. package/dist/esm/server/error.js +0 -55
  131. package/dist/esm/server/error.js.map +0 -1
  132. package/dist/esm/server/index.js +0 -107
  133. package/dist/esm/server/index.js.map +0 -1
  134. package/dist/esm/sync/abi.js +0 -67
  135. package/dist/esm/sync/abi.js.map +0 -1
  136. package/dist/esm/sync/events.js +0 -607
  137. package/dist/esm/sync/events.js.map +0 -1
  138. package/dist/esm/sync/filter.js +0 -356
  139. package/dist/esm/sync/filter.js.map +0 -1
  140. package/dist/esm/sync/fragments.js +0 -300
  141. package/dist/esm/sync/fragments.js.map +0 -1
  142. package/dist/esm/sync/index.js +0 -1001
  143. package/dist/esm/sync/index.js.map +0 -1
  144. package/dist/esm/sync/transport.js +0 -94
  145. package/dist/esm/sync/transport.js.map +0 -1
  146. package/dist/esm/sync-historical/index.js +0 -590
  147. package/dist/esm/sync-historical/index.js.map +0 -1
  148. package/dist/esm/sync-realtime/bloom.js +0 -75
  149. package/dist/esm/sync-realtime/bloom.js.map +0 -1
  150. package/dist/esm/sync-realtime/index.js +0 -794
  151. package/dist/esm/sync-realtime/index.js.map +0 -1
  152. package/dist/esm/sync-store/encoding.js +0 -157
  153. package/dist/esm/sync-store/encoding.js.map +0 -1
  154. package/dist/esm/sync-store/index.js +0 -727
  155. package/dist/esm/sync-store/index.js.map +0 -1
  156. package/dist/esm/sync-store/migrations.js +0 -1186
  157. package/dist/esm/sync-store/migrations.js.map +0 -1
  158. package/dist/esm/types/db.js +0 -2
  159. package/dist/esm/types/db.js.map +0 -1
  160. package/dist/esm/types/eth.js +0 -2
  161. package/dist/esm/types/eth.js.map +0 -1
  162. package/dist/esm/types/sync.js +0 -2
  163. package/dist/esm/types/sync.js.map +0 -1
  164. package/dist/esm/types/utils.js +0 -2
  165. package/dist/esm/types/utils.js.map +0 -1
  166. package/dist/esm/types/virtual.js +0 -2
  167. package/dist/esm/types/virtual.js.map +0 -1
  168. package/dist/esm/ui/ProgressBar.js +0 -11
  169. package/dist/esm/ui/ProgressBar.js.map +0 -1
  170. package/dist/esm/ui/Table.js +0 -50
  171. package/dist/esm/ui/Table.js.map +0 -1
  172. package/dist/esm/ui/app.js +0 -113
  173. package/dist/esm/ui/app.js.map +0 -1
  174. package/dist/esm/ui/graphiql.html.js +0 -59
  175. package/dist/esm/ui/graphiql.html.js.map +0 -1
  176. package/dist/esm/ui/index.js +0 -21
  177. package/dist/esm/ui/index.js.map +0 -1
  178. package/dist/esm/utils/bigint.js +0 -37
  179. package/dist/esm/utils/bigint.js.map +0 -1
  180. package/dist/esm/utils/chains.js +0 -3
  181. package/dist/esm/utils/chains.js.map +0 -1
  182. package/dist/esm/utils/checkpoint.js +0 -114
  183. package/dist/esm/utils/checkpoint.js.map +0 -1
  184. package/dist/esm/utils/chunk.js +0 -8
  185. package/dist/esm/utils/chunk.js.map +0 -1
  186. package/dist/esm/utils/date.js +0 -27
  187. package/dist/esm/utils/date.js.map +0 -1
  188. package/dist/esm/utils/debug.js +0 -2
  189. package/dist/esm/utils/debug.js.map +0 -1
  190. package/dist/esm/utils/dedupe.js +0 -33
  191. package/dist/esm/utils/dedupe.js.map +0 -1
  192. package/dist/esm/utils/duplicates.js +0 -19
  193. package/dist/esm/utils/duplicates.js.map +0 -1
  194. package/dist/esm/utils/estimate.js +0 -6
  195. package/dist/esm/utils/estimate.js.map +0 -1
  196. package/dist/esm/utils/extend.js +0 -28
  197. package/dist/esm/utils/extend.js.map +0 -1
  198. package/dist/esm/utils/format.js +0 -20
  199. package/dist/esm/utils/format.js.map +0 -1
  200. package/dist/esm/utils/generators.js +0 -77
  201. package/dist/esm/utils/generators.js.map +0 -1
  202. package/dist/esm/utils/hash.js +0 -11
  203. package/dist/esm/utils/hash.js.map +0 -1
  204. package/dist/esm/utils/interval.js +0 -171
  205. package/dist/esm/utils/interval.js.map +0 -1
  206. package/dist/esm/utils/lowercase.js +0 -7
  207. package/dist/esm/utils/lowercase.js.map +0 -1
  208. package/dist/esm/utils/mutex.js +0 -25
  209. package/dist/esm/utils/mutex.js.map +0 -1
  210. package/dist/esm/utils/never.js +0 -4
  211. package/dist/esm/utils/never.js.map +0 -1
  212. package/dist/esm/utils/offset.js +0 -73
  213. package/dist/esm/utils/offset.js.map +0 -1
  214. package/dist/esm/utils/order.js +0 -18
  215. package/dist/esm/utils/order.js.map +0 -1
  216. package/dist/esm/utils/partition.js +0 -37
  217. package/dist/esm/utils/partition.js.map +0 -1
  218. package/dist/esm/utils/pg.js +0 -126
  219. package/dist/esm/utils/pg.js.map +0 -1
  220. package/dist/esm/utils/pglite.js +0 -80
  221. package/dist/esm/utils/pglite.js.map +0 -1
  222. package/dist/esm/utils/port.js +0 -30
  223. package/dist/esm/utils/port.js.map +0 -1
  224. package/dist/esm/utils/print.js +0 -23
  225. package/dist/esm/utils/print.js.map +0 -1
  226. package/dist/esm/utils/promiseWithResolvers.js +0 -13
  227. package/dist/esm/utils/promiseWithResolvers.js.map +0 -1
  228. package/dist/esm/utils/queue.js +0 -145
  229. package/dist/esm/utils/queue.js.map +0 -1
  230. package/dist/esm/utils/range.js +0 -8
  231. package/dist/esm/utils/range.js.map +0 -1
  232. package/dist/esm/utils/requestQueue.js +0 -127
  233. package/dist/esm/utils/requestQueue.js.map +0 -1
  234. package/dist/esm/utils/result.js +0 -10
  235. package/dist/esm/utils/result.js.map +0 -1
  236. package/dist/esm/utils/rpc.js +0 -202
  237. package/dist/esm/utils/rpc.js.map +0 -1
  238. package/dist/esm/utils/serialize.js +0 -23
  239. package/dist/esm/utils/serialize.js.map +0 -1
  240. package/dist/esm/utils/timer.js +0 -17
  241. package/dist/esm/utils/timer.js.map +0 -1
  242. package/dist/esm/utils/wait.js +0 -8
  243. package/dist/esm/utils/wait.js.map +0 -1
  244. package/dist/esm/utils/zipper.js +0 -67
  245. package/dist/esm/utils/zipper.js.map +0 -1
  246. package/dist/types/bin/commands/codegen.d.ts +0 -5
  247. package/dist/types/bin/commands/codegen.d.ts.map +0 -1
  248. package/dist/types/bin/commands/dev.d.ts +0 -5
  249. package/dist/types/bin/commands/dev.d.ts.map +0 -1
  250. package/dist/types/bin/commands/list.d.ts +0 -5
  251. package/dist/types/bin/commands/list.d.ts.map +0 -1
  252. package/dist/types/bin/commands/serve.d.ts +0 -5
  253. package/dist/types/bin/commands/serve.d.ts.map +0 -1
  254. package/dist/types/bin/commands/start.d.ts +0 -5
  255. package/dist/types/bin/commands/start.d.ts.map +0 -1
  256. package/dist/types/bin/ponder.d.ts.map +0 -1
  257. package/dist/types/bin/utils/codegen.d.ts +0 -6
  258. package/dist/types/bin/utils/codegen.d.ts.map +0 -1
  259. package/dist/types/bin/utils/exit.d.ts +0 -9
  260. package/dist/types/bin/utils/exit.d.ts.map +0 -1
  261. package/dist/types/bin/utils/run.d.ts +0 -14
  262. package/dist/types/bin/utils/run.d.ts.map +0 -1
  263. package/dist/types/bin/utils/runServer.d.ts +0 -12
  264. package/dist/types/bin/utils/runServer.d.ts.map +0 -1
  265. package/dist/types/build/configAndIndexingFunctions.d.ts +0 -37
  266. package/dist/types/build/configAndIndexingFunctions.d.ts.map +0 -1
  267. package/dist/types/build/factory.d.ts +0 -10
  268. package/dist/types/build/factory.d.ts.map +0 -1
  269. package/dist/types/build/index.d.ts +0 -70
  270. package/dist/types/build/index.d.ts.map +0 -1
  271. package/dist/types/build/plugin.d.ts +0 -4
  272. package/dist/types/build/plugin.d.ts.map +0 -1
  273. package/dist/types/build/pre.d.ts +0 -35
  274. package/dist/types/build/pre.d.ts.map +0 -1
  275. package/dist/types/build/schema.d.ts +0 -18
  276. package/dist/types/build/schema.d.ts.map +0 -1
  277. package/dist/types/build/stacktrace.d.ts +0 -13
  278. package/dist/types/build/stacktrace.d.ts.map +0 -1
  279. package/dist/types/client/index.d.ts +0 -27
  280. package/dist/types/client/index.d.ts.map +0 -1
  281. package/dist/types/client/validate.d.ts +0 -2
  282. package/dist/types/client/validate.d.ts.map +0 -1
  283. package/dist/types/config/address.d.ts +0 -14
  284. package/dist/types/config/address.d.ts.map +0 -1
  285. package/dist/types/config/eventFilter.d.ts +0 -18
  286. package/dist/types/config/eventFilter.d.ts.map +0 -1
  287. package/dist/types/config/index.d.ts +0 -143
  288. package/dist/types/config/index.d.ts.map +0 -1
  289. package/dist/types/config/networks.d.ts +0 -30
  290. package/dist/types/config/networks.d.ts.map +0 -1
  291. package/dist/types/config/utilityTypes.d.ts +0 -43
  292. package/dist/types/config/utilityTypes.d.ts.map +0 -1
  293. package/dist/types/database/index.d.ts +0 -91
  294. package/dist/types/database/index.d.ts.map +0 -1
  295. package/dist/types/drizzle/bigint.d.ts +0 -25
  296. package/dist/types/drizzle/bigint.d.ts.map +0 -1
  297. package/dist/types/drizzle/hex.d.ts +0 -25
  298. package/dist/types/drizzle/hex.d.ts.map +0 -1
  299. package/dist/types/drizzle/index.d.ts +0 -14
  300. package/dist/types/drizzle/index.d.ts.map +0 -1
  301. package/dist/types/drizzle/kit/index.d.ts +0 -49
  302. package/dist/types/drizzle/kit/index.d.ts.map +0 -1
  303. package/dist/types/drizzle/onchain.d.ts.map +0 -1
  304. package/dist/types/graphql/index.d.ts +0 -14
  305. package/dist/types/graphql/index.d.ts.map +0 -1
  306. package/dist/types/graphql/json.d.ts +0 -3
  307. package/dist/types/graphql/json.d.ts.map +0 -1
  308. package/dist/types/graphql/middleware.d.ts +0 -29
  309. package/dist/types/graphql/middleware.d.ts.map +0 -1
  310. package/dist/types/index.d.ts +0 -18
  311. package/dist/types/index.d.ts.map +0 -1
  312. package/dist/types/indexing/addStackTrace.d.ts +0 -3
  313. package/dist/types/indexing/addStackTrace.d.ts.map +0 -1
  314. package/dist/types/indexing/index.d.ts +0 -575
  315. package/dist/types/indexing/index.d.ts.map +0 -1
  316. package/dist/types/indexing/ponderActions.d.ts +0 -47
  317. package/dist/types/indexing/ponderActions.d.ts.map +0 -1
  318. package/dist/types/indexing/service.d.ts +0 -73
  319. package/dist/types/indexing/service.d.ts.map +0 -1
  320. package/dist/types/indexing-store/historical.d.ts +0 -19
  321. package/dist/types/indexing-store/historical.d.ts.map +0 -1
  322. package/dist/types/indexing-store/index.d.ts +0 -10
  323. package/dist/types/indexing-store/index.d.ts.map +0 -1
  324. package/dist/types/indexing-store/metadata.d.ts +0 -10
  325. package/dist/types/indexing-store/metadata.d.ts.map +0 -1
  326. package/dist/types/indexing-store/realtime.d.ts +0 -10
  327. package/dist/types/indexing-store/realtime.d.ts.map +0 -1
  328. package/dist/types/internal/common.d.ts +0 -13
  329. package/dist/types/internal/common.d.ts.map +0 -1
  330. package/dist/types/internal/errors.d.ts +0 -55
  331. package/dist/types/internal/errors.d.ts.map +0 -1
  332. package/dist/types/internal/logger.d.ts +0 -26
  333. package/dist/types/internal/logger.d.ts.map +0 -1
  334. package/dist/types/internal/metrics.d.ts +0 -77
  335. package/dist/types/internal/metrics.d.ts.map +0 -1
  336. package/dist/types/internal/options.d.ts +0 -59
  337. package/dist/types/internal/options.d.ts.map +0 -1
  338. package/dist/types/internal/shutdown.d.ts +0 -8
  339. package/dist/types/internal/shutdown.d.ts.map +0 -1
  340. package/dist/types/internal/telemetry.d.ts +0 -43
  341. package/dist/types/internal/telemetry.d.ts.map +0 -1
  342. package/dist/types/internal/types.d.ts +0 -328
  343. package/dist/types/internal/types.d.ts.map +0 -1
  344. package/dist/types/server/error.d.ts +0 -5
  345. package/dist/types/server/error.d.ts.map +0 -1
  346. package/dist/types/server/index.d.ts +0 -13
  347. package/dist/types/server/index.d.ts.map +0 -1
  348. package/dist/types/sync/abi.d.ts +0 -54
  349. package/dist/types/sync/abi.d.ts.map +0 -1
  350. package/dist/types/sync/events.d.ts +0 -24
  351. package/dist/types/sync/events.d.ts.map +0 -1
  352. package/dist/types/sync/filter.d.ts +0 -71
  353. package/dist/types/sync/filter.d.ts.map +0 -1
  354. package/dist/types/sync/fragments.d.ts +0 -21
  355. package/dist/types/sync/fragments.d.ts.map +0 -1
  356. package/dist/types/sync/index.d.ts +0 -112
  357. package/dist/types/sync/index.d.ts.map +0 -1
  358. package/dist/types/sync/transport.d.ts +0 -8
  359. package/dist/types/sync/transport.d.ts.map +0 -1
  360. package/dist/types/sync-historical/index.d.ts +0 -28
  361. package/dist/types/sync-historical/index.d.ts.map +0 -1
  362. package/dist/types/sync-realtime/bloom.d.ts +0 -19
  363. package/dist/types/sync-realtime/bloom.d.ts.map +0 -1
  364. package/dist/types/sync-realtime/index.d.ts +0 -48
  365. package/dist/types/sync-realtime/index.d.ts.map +0 -1
  366. package/dist/types/sync-store/encoding.d.ts +0 -151
  367. package/dist/types/sync-store/encoding.d.ts.map +0 -1
  368. package/dist/types/sync-store/index.d.ts +0 -104
  369. package/dist/types/sync-store/index.d.ts.map +0 -1
  370. package/dist/types/sync-store/migrations.d.ts +0 -13
  371. package/dist/types/sync-store/migrations.d.ts.map +0 -1
  372. package/dist/types/types/db.d.ts +0 -213
  373. package/dist/types/types/db.d.ts.map +0 -1
  374. package/dist/types/types/eth.d.ts +0 -196
  375. package/dist/types/types/eth.d.ts.map +0 -1
  376. package/dist/types/types/sync.d.ts +0 -15
  377. package/dist/types/types/sync.d.ts.map +0 -1
  378. package/dist/types/types/utils.d.ts +0 -22
  379. package/dist/types/types/utils.d.ts.map +0 -1
  380. package/dist/types/types/virtual.d.ts +0 -95
  381. package/dist/types/types/virtual.d.ts.map +0 -1
  382. package/dist/types/ui/ProgressBar.d.ts +0 -7
  383. package/dist/types/ui/ProgressBar.d.ts.map +0 -1
  384. package/dist/types/ui/Table.d.ts +0 -24
  385. package/dist/types/ui/Table.d.ts.map +0 -1
  386. package/dist/types/ui/app.d.ts +0 -14
  387. package/dist/types/ui/app.d.ts.map +0 -1
  388. package/dist/types/ui/graphiql.html.d.ts +0 -2
  389. package/dist/types/ui/graphiql.html.d.ts.map +0 -1
  390. package/dist/types/ui/index.d.ts +0 -5
  391. package/dist/types/ui/index.d.ts.map +0 -1
  392. package/dist/types/utils/bigint.d.ts +0 -15
  393. package/dist/types/utils/bigint.d.ts.map +0 -1
  394. package/dist/types/utils/chains.d.ts +0 -3
  395. package/dist/types/utils/chains.d.ts.map +0 -1
  396. package/dist/types/utils/checkpoint.d.ts +0 -40
  397. package/dist/types/utils/checkpoint.d.ts.map +0 -1
  398. package/dist/types/utils/chunk.d.ts +0 -2
  399. package/dist/types/utils/chunk.d.ts.map +0 -1
  400. package/dist/types/utils/date.d.ts +0 -7
  401. package/dist/types/utils/date.d.ts.map +0 -1
  402. package/dist/types/utils/debug.d.ts +0 -105
  403. package/dist/types/utils/debug.d.ts.map +0 -1
  404. package/dist/types/utils/dedupe.d.ts +0 -20
  405. package/dist/types/utils/dedupe.d.ts.map +0 -1
  406. package/dist/types/utils/duplicates.d.ts +0 -7
  407. package/dist/types/utils/duplicates.d.ts.map +0 -1
  408. package/dist/types/utils/estimate.d.ts +0 -11
  409. package/dist/types/utils/estimate.d.ts.map +0 -1
  410. package/dist/types/utils/extend.d.ts +0 -13
  411. package/dist/types/utils/extend.d.ts.map +0 -1
  412. package/dist/types/utils/format.d.ts +0 -3
  413. package/dist/types/utils/format.d.ts.map +0 -1
  414. package/dist/types/utils/generators.d.ts +0 -23
  415. package/dist/types/utils/generators.d.ts.map +0 -1
  416. package/dist/types/utils/hash.d.ts +0 -11
  417. package/dist/types/utils/hash.d.ts.map +0 -1
  418. package/dist/types/utils/interval.d.ts +0 -53
  419. package/dist/types/utils/interval.d.ts.map +0 -1
  420. package/dist/types/utils/lowercase.d.ts +0 -5
  421. package/dist/types/utils/lowercase.d.ts.map +0 -1
  422. package/dist/types/utils/mutex.d.ts +0 -8
  423. package/dist/types/utils/mutex.d.ts.map +0 -1
  424. package/dist/types/utils/never.d.ts +0 -2
  425. package/dist/types/utils/never.d.ts.map +0 -1
  426. package/dist/types/utils/offset.d.ts +0 -3
  427. package/dist/types/utils/offset.d.ts.map +0 -1
  428. package/dist/types/utils/order.d.ts +0 -2
  429. package/dist/types/utils/order.d.ts.map +0 -1
  430. package/dist/types/utils/partition.d.ts +0 -22
  431. package/dist/types/utils/partition.d.ts.map +0 -1
  432. package/dist/types/utils/pg.d.ts +0 -5
  433. package/dist/types/utils/pg.d.ts.map +0 -1
  434. package/dist/types/utils/pglite.d.ts +0 -25
  435. package/dist/types/utils/pglite.d.ts.map +0 -1
  436. package/dist/types/utils/port.d.ts +0 -5
  437. package/dist/types/utils/port.d.ts.map +0 -1
  438. package/dist/types/utils/print.d.ts +0 -2
  439. package/dist/types/utils/print.d.ts.map +0 -1
  440. package/dist/types/utils/promiseWithResolvers.d.ts +0 -10
  441. package/dist/types/utils/promiseWithResolvers.d.ts.map +0 -1
  442. package/dist/types/utils/queue.d.ts +0 -33
  443. package/dist/types/utils/queue.d.ts.map +0 -1
  444. package/dist/types/utils/range.d.ts +0 -8
  445. package/dist/types/utils/range.d.ts.map +0 -1
  446. package/dist/types/utils/requestQueue.d.ts +0 -21
  447. package/dist/types/utils/requestQueue.d.ts.map +0 -1
  448. package/dist/types/utils/result.d.ts +0 -17
  449. package/dist/types/utils/result.d.ts.map +0 -1
  450. package/dist/types/utils/rpc.d.ts +0 -57
  451. package/dist/types/utils/rpc.d.ts.map +0 -1
  452. package/dist/types/utils/serialize.d.ts +0 -19
  453. package/dist/types/utils/serialize.d.ts.map +0 -1
  454. package/dist/types/utils/timer.d.ts +0 -11
  455. package/dist/types/utils/timer.d.ts.map +0 -1
  456. package/dist/types/utils/wait.d.ts +0 -6
  457. package/dist/types/utils/wait.d.ts.map +0 -1
  458. package/dist/types/utils/zipper.d.ts +0 -36
  459. package/dist/types/utils/zipper.d.ts.map +0 -1
  460. package/src/utils/dedupe.ts +0 -40
  461. package/src/utils/promiseWithResolvers.ts +0 -20
  462. package/src/utils/queue.ts +0 -250
@@ -1,21 +0,0 @@
1
- import type { Common } from '../internal/common.js';
2
- import type { Network } from '../internal/types.js';
3
- import { type Queue } from './queue.js';
4
- import { type EIP1193Parameters, type PublicRpcSchema } from "viem";
5
- import type { DebugRpcSchema } from "./debug.js";
6
- type Schema = [...PublicRpcSchema, ...DebugRpcSchema];
7
- type RequestReturnType<method extends EIP1193Parameters<Schema>["method"]> = Extract<Schema[number], {
8
- Method: method;
9
- }>["ReturnType"];
10
- export type RequestQueue = Omit<Queue<RequestReturnType<EIP1193Parameters<Schema>["method"]>, EIP1193Parameters<Schema>>, "add"> & {
11
- request: <TParameters extends EIP1193Parameters<Schema>>(parameters: TParameters) => Promise<RequestReturnType<TParameters["method"]>>;
12
- };
13
- /**
14
- * Creates a queue built to manage rpc requests.
15
- */
16
- export declare const createRequestQueue: ({ common, network, }: {
17
- common: Common;
18
- network: Network;
19
- }) => RequestQueue;
20
- export {};
21
- //# sourceMappingURL=requestQueue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestQueue.d.ts","sourceRoot":"","sources":["../../../src/utils/requestQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,kBAAkB,CAAC;AAK3D,OAAO,EACL,KAAK,iBAAiB,EAMtB,KAAK,eAAe,EAGrB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,KAAK,MAAM,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC;AAEtD,KAAK,iBAAiB,CAAC,MAAM,SAAS,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IACvE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,YAAY,CAAC,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,KAAK,CACH,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EACtD,iBAAiB,CAAC,MAAM,CAAC,CAC1B,EACD,KAAK,CACN,GAAG;IACF,OAAO,EAAE,CAAC,WAAW,SAAS,iBAAiB,CAAC,MAAM,CAAC,EACrD,UAAU,EAAE,WAAW,KACpB,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAKF;;GAEG;AACH,eAAO,MAAM,kBAAkB;YAGlB,MAAM;aAAW,OAAO;MAAK,YA8GzC,CAAC"}
@@ -1,17 +0,0 @@
1
- export type Result<T> = ([T] extends [never] ? {
2
- status: "success";
3
- } : {
4
- status: "success";
5
- result: T;
6
- }) | {
7
- status: "error";
8
- error: Error;
9
- };
10
- export type MergeResults<T extends readonly Result<any>[]> = T extends readonly [
11
- infer Head extends Result<unknown>,
12
- ...infer Tail extends Result<unknown>[]
13
- ] ? [Extract<Head, {
14
- status: "success";
15
- }>["result"], ...MergeResults<Tail>] : [];
16
- export declare const mergeResults: <const T extends readonly Result<unknown>[]>(results: T) => Result<MergeResults<T>>;
17
- //# sourceMappingURL=result.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,IAChB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAChB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,GACrC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,MAAM,CAAC,GAAG,CAAC,EAAE,IACvD,CAAC,SAAS,SAAS;IACjB,MAAM,IAAI,SAAS,MAAM,CAAC,OAAO,CAAC;IAClC,GAAG,MAAM,IAAI,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE;CACxC,GACG,CAAC,OAAO,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,GACvE,EAAE,CAAC;AAET,eAAO,MAAM,YAAY,qFAWxB,CAAC"}
@@ -1,57 +0,0 @@
1
- import type { SyncBlock, SyncLog, SyncTrace, SyncTransactionReceipt } from '../types/sync.js';
2
- import type { RequestQueue } from './requestQueue.js';
3
- import { type Address, type Hash, type Hex, type LogTopic } from "viem";
4
- /**
5
- * Helper function for "eth_getBlockByNumber" request.
6
- */
7
- export declare const _eth_getBlockByNumber: (requestQueue: RequestQueue, { blockNumber, blockTag, }: {
8
- blockNumber: Hex | number;
9
- blockTag?: undefined;
10
- } | {
11
- blockNumber?: undefined;
12
- blockTag: "latest";
13
- }) => Promise<SyncBlock>;
14
- /**
15
- * Helper function for "eth_getBlockByNumber" request.
16
- */
17
- export declare const _eth_getBlockByHash: (requestQueue: RequestQueue, { hash }: {
18
- hash: Hex;
19
- }) => Promise<SyncBlock>;
20
- /**
21
- * Helper function for "eth_getLogs" rpc request.
22
- * Handles different error types and retries the request if applicable.
23
- */
24
- export declare const _eth_getLogs: (requestQueue: RequestQueue, params: {
25
- address?: Address | Address[];
26
- topics?: LogTopic[];
27
- } & ({
28
- fromBlock: Hex | number;
29
- toBlock: Hex | number;
30
- } | {
31
- blockHash: Hash;
32
- })) => Promise<SyncLog[]>;
33
- /**
34
- * Helper function for "eth_getTransactionReceipt" request.
35
- */
36
- export declare const _eth_getTransactionReceipt: (requestQueue: RequestQueue, { hash }: {
37
- hash: Hex;
38
- }) => Promise<SyncTransactionReceipt>;
39
- /**
40
- * Helper function for "eth_getBlockReceipts" request.
41
- */
42
- export declare const _eth_getBlockReceipts: (requestQueue: RequestQueue, { blockHash }: {
43
- blockHash: Hash;
44
- }) => Promise<SyncTransactionReceipt[]>;
45
- /**
46
- * Helper function for "debug_traceBlockByNumber" request.
47
- */
48
- export declare const _debug_traceBlockByNumber: (requestQueue: RequestQueue, { blockNumber, }: {
49
- blockNumber: Hex | number;
50
- }) => Promise<SyncTrace[]>;
51
- /**
52
- * Helper function for "debug_traceBlockByHash" request.
53
- */
54
- export declare const _debug_traceBlockByHash: (requestQueue: RequestQueue, { hash, }: {
55
- hash: Hash;
56
- }) => Promise<SyncTrace[]>;
57
- //# sourceMappingURL=rpc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/utils/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,SAAS,EACT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,IAAI,EACT,KAAK,GAAG,EACR,KAAK,QAAQ,EAGd,MAAM,MAAM,CAAC;AAEd;;GAEG;AACH,eAAO,MAAM,qBAAqB,iBAClB,YAAY;iBAKP,GAAG,GAAG,MAAM;;;;cACM,QAAQ;MAC5C,QAAQ,SAAS,CAiBd,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,mBAAmB,iBAChB,YAAY;UACR,GAAG;MACpB,QAAQ,SAAS,CAYd,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,YAAY,iBACT,YAAY,UAClB;IACN,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;CACrB,GAAG,CACA;IAAE,SAAS,EAAE,GAAG,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAA;CAAE,GAClD;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CACtB,KACA,QAAQ,OAAO,EAAE,CA6CnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,iBACvB,YAAY;UACR,GAAG;MACpB,QAAQ,sBAAsB,CAY3B,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,qBAAqB,iBAClB,YAAY;eACE,IAAI;MAC/B,QAAQ,sBAAsB,EAAE,CAMqC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,yBAAyB,iBACtB,YAAY;iBAIX,GAAG,GAAG,MAAM;MAE1B,QAAQ,SAAS,EAAE,CA8DhB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,uBAAuB,iBACpB,YAAY;UAIlB,IAAI;MAEX,QAAQ,SAAS,EAAE,CAyDhB,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Serialize function that handles BigInt.
3
- *
4
- * Forked from https://github.com/wevm/wagmi
5
- *
6
- * @param value to stringify
7
- * @returns the stringified output
8
- */
9
- export declare function serialize(value: any): string;
10
- /**
11
- * Deserialize function that handles BigInt.
12
- *
13
- * Forked from https://github.com/wevm/wagmi
14
- *
15
- * @param value to parse
16
- * @returns the output object
17
- */
18
- export declare function deserialize<type>(value: string): type;
19
- //# sourceMappingURL=serialize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,UAInC;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrD"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Measures the elapsed wall clock time in milliseconds (ms) between two points.
3
- * @returns A function returning the elapsed time in milliseconds (ms).
4
- */
5
- export declare function startClock(): () => number;
6
- /**
7
- * Converts a process.hrtime() measurement to milliseconds (ms).
8
- * @returns The timestamp in milliseconds (ms).
9
- */
10
- export declare function hrTimeToMs(diff: [number, number]): number;
11
- //# sourceMappingURL=timer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../../src/utils/timer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,UAAU,iBAGzB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,UAGhD"}
@@ -1,6 +0,0 @@
1
- /** Waits at least a specified amount of time.
2
- *
3
- * @param milliseconds Minimum number of milliseconds to wait.
4
- */
5
- export declare function wait(milliseconds: number): Promise<void>;
6
- //# sourceMappingURL=wait.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/utils/wait.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAsB,IAAI,CAAC,YAAY,EAAE,MAAM,iBAE9C"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Merges two sorted arrays into a single sorted array.
3
- *
4
- * @param array1 - The first array to merge.
5
- * @param array2 - The second array to merge.
6
- * @param compare - The comparison function to use.
7
- *
8
- * @returns The merged array.
9
- *
10
- * @example
11
- * ```ts
12
- * const result = zipper([1, 3, 5], [2, 4, 6]);
13
- * // result = [1, 2, 3, 4, 5, 6]
14
- * ```
15
- */
16
- export declare const zipper: <T>(array1: T[], array2: T[], compare?: ((a: T, b: T) => number) | undefined) => T[];
17
- /**
18
- * Merges many sorted arrays into a single sorted array.
19
- *
20
- * @param arrays - The arrays to merge.
21
- * @param compare - The comparison function to use.
22
- *
23
- * @returns The merged array.
24
- *
25
- * @example
26
- * ```ts
27
- * const result = zipperMany([
28
- * [1, 3, 5],
29
- * [2, 4, 6],
30
- * [7, 8, 9],
31
- * ]);
32
- * // result = [1, 2, 3, 4, 5, 6, 7, 8, 9]
33
- * ```
34
- */
35
- export declare const zipperMany: <T>(arrays: T[][], compare?: ((a: T, b: T) => number) | undefined) => T[];
36
- //# sourceMappingURL=zipper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zipper.d.ts","sourceRoot":"","sources":["../../../src/utils/zipper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,2DAGS,MAAM,qBA2BjC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,gDAEK,MAAM,qBAYjC,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Remove duplicate values from an array.
3
- *
4
- * @param getId callback used to calculate a unique value for an element of the array.
5
- *
6
- * @example
7
- * dedupe([1,1,2,3]) // [1,2,3]
8
- *
9
- * dedupe(
10
- * [
11
- * { a: 1, b: 2 },
12
- * { a: 1, b: 2 },
13
- * { a: 2, b: 2 },
14
- * ],
15
- * (e) => `${e.a}_${e.b}`,
16
- * ) // [{a: 1, b: 2}, {a: 2, b: 2}]
17
- *
18
- */
19
- export function dedupe<item, id>(
20
- arr: item[] | readonly item[],
21
- getId?: (x: item) => id,
22
- ): item[] {
23
- const seen = new Set<id | item>();
24
-
25
- return arr.filter((x) => {
26
- if (seen.has(getId ? getId(x) : x)) return false;
27
-
28
- seen.add(x);
29
- return true;
30
- });
31
- }
32
-
33
- dedupe(
34
- [
35
- { a: 1, b: 2 },
36
- { a: 1, b: 2 },
37
- { a: 2, b: 2 },
38
- ],
39
- (e) => `${e.a}_${e.b}`,
40
- );
@@ -1,20 +0,0 @@
1
- export type PromiseWithResolvers<TPromise> = {
2
- resolve: (arg: TPromise) => void;
3
- reject: (error: Error) => void;
4
- promise: Promise<TPromise>;
5
- };
6
-
7
- /**
8
- * @description Application level polyfill.
9
- */
10
- export const promiseWithResolvers = <
11
- TPromise,
12
- >(): PromiseWithResolvers<TPromise> => {
13
- let resolve: (arg: TPromise) => void;
14
- let reject: (error: Error) => void;
15
- const promise = new Promise<TPromise>((_resolve, _reject) => {
16
- resolve = _resolve;
17
- reject = _reject;
18
- });
19
- return { resolve: resolve!, reject: reject!, promise };
20
- };
@@ -1,250 +0,0 @@
1
- import {
2
- type PromiseWithResolvers,
3
- promiseWithResolvers,
4
- } from "./promiseWithResolvers.js";
5
-
6
- export type InnerQueue<returnType, taskType> = {
7
- task: taskType;
8
- resolve: (arg: returnType) => void;
9
- reject: (error: Error) => void;
10
- }[];
11
-
12
- export type Queue<returnType, taskType> = {
13
- size: () => number;
14
- pending: () => Promise<number>;
15
- add: (task: taskType) => Promise<returnType>;
16
- clear: () => void;
17
- isStarted: () => boolean;
18
- start: () => Promise<void>;
19
- pause: () => void;
20
- onIdle: () => Promise<void>;
21
- onEmpty: () => Promise<void>;
22
- setParameters: (
23
- parameters: Pick<
24
- CreateQueueParameters<unknown, unknown>,
25
- "frequency" | "concurrency"
26
- >,
27
- ) => void;
28
- };
29
-
30
- export type CreateQueueParameters<returnType, taskType> = {
31
- worker: (task: taskType) => Promise<returnType>;
32
- initialStart?: boolean;
33
- browser?: boolean;
34
- } & (
35
- | {
36
- concurrency: number;
37
- frequency: number;
38
- }
39
- | { concurrency: number; frequency?: undefined }
40
- | { concurrency?: undefined; frequency: number }
41
- );
42
-
43
- const validateParameters = ({
44
- concurrency,
45
- frequency,
46
- }: Pick<
47
- CreateQueueParameters<unknown, unknown>,
48
- "frequency" | "concurrency"
49
- >) => {
50
- if (concurrency === undefined && frequency === undefined) {
51
- throw new Error(
52
- "Invalid queue configuration, must specify either 'concurrency' or 'frequency'.",
53
- );
54
- }
55
-
56
- if (concurrency !== undefined && concurrency <= 0) {
57
- throw new Error(
58
- `Invalid value for queue 'concurrency' option. Got ${concurrency}, expected a number greater than zero.`,
59
- );
60
- }
61
-
62
- if (frequency !== undefined && frequency <= 0) {
63
- throw new Error(
64
- `Invalid value for queue 'frequency' option. Got ${frequency}, expected a number greater than zero.`,
65
- );
66
- }
67
- };
68
-
69
- export const createQueue = <returnType, taskType = void>({
70
- worker,
71
- initialStart = false,
72
- browser = true,
73
- ..._parameters
74
- }: CreateQueueParameters<returnType, taskType>): Queue<
75
- returnType,
76
- taskType
77
- > => {
78
- validateParameters(_parameters);
79
-
80
- const parameters: Pick<
81
- CreateQueueParameters<unknown, unknown>,
82
- "frequency" | "concurrency"
83
- > = _parameters;
84
- let queue = new Array<InnerQueue<returnType, taskType>[number]>();
85
- let pending = 0;
86
- let timestamp = 0;
87
- let requests = 0;
88
- let isStarted = initialStart;
89
-
90
- let timer: NodeJS.Timeout | undefined;
91
-
92
- let emptyPromiseWithResolvers:
93
- | (PromiseWithResolvers<void> & { completed: boolean })
94
- | undefined = undefined;
95
- let idlePromiseWithResolvers:
96
- | (PromiseWithResolvers<void> & { completed: boolean })
97
- | undefined = undefined;
98
-
99
- const next = () => {
100
- if (!isStarted) return;
101
-
102
- const _timestamp = Date.now();
103
-
104
- if (Math.floor(_timestamp / 1_000) !== timestamp) {
105
- requests = 0;
106
- timestamp = Math.floor(_timestamp / 1_000);
107
- }
108
-
109
- if (timer) return;
110
-
111
- while (
112
- (parameters.frequency !== undefined
113
- ? requests < parameters.frequency
114
- : true) &&
115
- (parameters.concurrency !== undefined
116
- ? pending < parameters.concurrency
117
- : true) &&
118
- queue.length > 0
119
- ) {
120
- const { task, resolve, reject } = queue.shift()!;
121
-
122
- requests++;
123
- pending++;
124
-
125
- worker(task)
126
- .then(resolve)
127
- .catch(reject)
128
- .finally(() => {
129
- pending--;
130
-
131
- if (
132
- idlePromiseWithResolvers !== undefined &&
133
- queue.length === 0 &&
134
- pending === 0
135
- ) {
136
- idlePromiseWithResolvers.resolve();
137
- idlePromiseWithResolvers.completed = true;
138
- }
139
-
140
- browser ? next() : process.nextTick(next);
141
- });
142
-
143
- if (emptyPromiseWithResolvers !== undefined && queue.length === 0) {
144
- emptyPromiseWithResolvers.resolve();
145
- emptyPromiseWithResolvers.completed = true;
146
- }
147
- }
148
-
149
- if (
150
- parameters.frequency !== undefined &&
151
- requests >= parameters.frequency
152
- ) {
153
- timer = setTimeout(
154
- () => {
155
- timer = undefined;
156
- next();
157
- },
158
- 1_000 - (_timestamp % 1_000),
159
- );
160
- return;
161
- }
162
- };
163
-
164
- return {
165
- size: () => queue.length,
166
- pending: () => {
167
- if (browser) {
168
- return new Promise<number>((resolve) =>
169
- setTimeout(() => resolve(pending)),
170
- );
171
- } else {
172
- return new Promise<number>((resolve) =>
173
- setImmediate(() => resolve(pending)),
174
- );
175
- }
176
- },
177
- add: (task: taskType) => {
178
- const { promise, resolve, reject } = promiseWithResolvers<returnType>();
179
- queue.push({ task, resolve, reject });
180
-
181
- next();
182
-
183
- return promise;
184
- },
185
- clear: () => {
186
- queue = new Array<InnerQueue<returnType, taskType>[number]>();
187
- clearTimeout(timer);
188
- timer = undefined;
189
- },
190
- isStarted: () => isStarted,
191
- start: () => {
192
- if (browser) {
193
- return new Promise<number>((resolve) =>
194
- setTimeout(() => resolve(pending)),
195
- ).then(() => {
196
- isStarted = true;
197
- next();
198
- });
199
- } else {
200
- return new Promise<number>((resolve) =>
201
- process.nextTick(() => resolve(pending)),
202
- ).then(() => {
203
- isStarted = true;
204
- next();
205
- });
206
- }
207
- },
208
- pause: () => {
209
- isStarted = false;
210
- },
211
- onIdle: () => {
212
- if (
213
- idlePromiseWithResolvers === undefined ||
214
- idlePromiseWithResolvers.completed
215
- ) {
216
- if (queue.length === 0 && pending === 0) return Promise.resolve();
217
-
218
- idlePromiseWithResolvers = {
219
- ...promiseWithResolvers<void>(),
220
- completed: false,
221
- };
222
- }
223
- return idlePromiseWithResolvers.promise;
224
- },
225
- onEmpty: () => {
226
- if (
227
- emptyPromiseWithResolvers === undefined ||
228
- emptyPromiseWithResolvers.completed
229
- ) {
230
- if (queue.length === 0) return Promise.resolve();
231
-
232
- emptyPromiseWithResolvers = {
233
- ...promiseWithResolvers<void>(),
234
- completed: false,
235
- };
236
- }
237
- return emptyPromiseWithResolvers.promise;
238
- },
239
- setParameters: (_parameters) => {
240
- validateParameters(_parameters);
241
-
242
- if ("frequency" in _parameters) {
243
- parameters.frequency = _parameters.frequency;
244
- }
245
- if ("concurrency" in _parameters) {
246
- parameters.concurrency = _parameters.concurrency;
247
- }
248
- },
249
- } as Queue<returnType, taskType>;
250
- };