@aztec/foundation 0.0.1-commit.c31f2472 → 0.0.1-commit.c52d6e7

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 (327) hide show
  1. package/dest/array/sorted_array.d.ts +6 -1
  2. package/dest/array/sorted_array.d.ts.map +1 -1
  3. package/dest/array/sorted_array.js +18 -15
  4. package/dest/bigint-buffer/index.d.ts +1 -1
  5. package/dest/bigint-buffer/index.d.ts.map +1 -1
  6. package/dest/bigint-buffer/index.js +6 -1
  7. package/dest/branded-types/block_number.d.ts +3 -3
  8. package/dest/branded-types/block_number.d.ts.map +1 -1
  9. package/dest/branded-types/block_number.js +15 -4
  10. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  11. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  12. package/dest/branded-types/buffer32_hash.js +12 -0
  13. package/dest/branded-types/checkpoint_number.d.ts +9 -3
  14. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  15. package/dest/branded-types/checkpoint_number.js +11 -0
  16. package/dest/branded-types/epoch.d.ts +2 -2
  17. package/dest/branded-types/epoch.d.ts.map +1 -1
  18. package/dest/branded-types/index.d.ts +2 -1
  19. package/dest/branded-types/index.d.ts.map +1 -1
  20. package/dest/branded-types/index.js +1 -0
  21. package/dest/branded-types/index_within_checkpoint.d.ts +2 -2
  22. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
  23. package/dest/branded-types/slot.d.ts +5 -2
  24. package/dest/branded-types/slot.d.ts.map +1 -1
  25. package/dest/branded-types/slot.js +3 -0
  26. package/dest/buffer/buffer16.d.ts +3 -1
  27. package/dest/buffer/buffer16.d.ts.map +1 -1
  28. package/dest/buffer/buffer32.d.ts +28 -61
  29. package/dest/buffer/buffer32.d.ts.map +1 -1
  30. package/dest/buffer/buffer32.js +29 -63
  31. package/dest/buffer/index.d.ts +2 -1
  32. package/dest/buffer/index.d.ts.map +1 -1
  33. package/dest/buffer/index.js +1 -0
  34. package/dest/buffer/utils.d.ts +3 -0
  35. package/dest/buffer/utils.d.ts.map +1 -0
  36. package/dest/buffer/utils.js +7 -0
  37. package/dest/collection/array.d.ts +11 -1
  38. package/dest/collection/array.d.ts.map +1 -1
  39. package/dest/collection/array.js +33 -0
  40. package/dest/collection/index.d.ts +3 -1
  41. package/dest/collection/index.d.ts.map +1 -1
  42. package/dest/collection/index.js +2 -0
  43. package/dest/collection/lru_map.d.ts +41 -0
  44. package/dest/collection/lru_map.d.ts.map +1 -0
  45. package/dest/collection/lru_map.js +119 -0
  46. package/dest/collection/lru_set.d.ts +35 -0
  47. package/dest/collection/lru_set.d.ts.map +1 -0
  48. package/dest/collection/lru_set.js +95 -0
  49. package/dest/committable/committable.js +1 -1
  50. package/dest/config/env_var.d.ts +2 -2
  51. package/dest/config/env_var.d.ts.map +1 -1
  52. package/dest/config/index.d.ts +67 -37
  53. package/dest/config/index.d.ts.map +1 -1
  54. package/dest/config/index.js +86 -70
  55. package/dest/config/network_config.d.ts +15 -41
  56. package/dest/config/network_config.d.ts.map +1 -1
  57. package/dest/config/network_config.js +4 -1
  58. package/dest/config/network_name.d.ts +2 -2
  59. package/dest/config/network_name.d.ts.map +1 -1
  60. package/dest/config/network_name.js +3 -3
  61. package/dest/config/secret_value.d.ts +2 -2
  62. package/dest/config/secret_value.d.ts.map +1 -1
  63. package/dest/crypto/aes128/index.d.ts +2 -1
  64. package/dest/crypto/aes128/index.d.ts.map +1 -1
  65. package/dest/crypto/aes128/index.js +11 -2
  66. package/dest/crypto/bls/bn254_keystore.d.ts +10 -177
  67. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  68. package/dest/crypto/bls/bn254_keystore.js +22 -34
  69. package/dest/crypto/keys/index.d.ts +3 -2
  70. package/dest/crypto/keys/index.d.ts.map +1 -1
  71. package/dest/crypto/keys/index.js +30 -6
  72. package/dest/crypto/poseidon/index.d.ts +1 -1
  73. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  74. package/dest/crypto/poseidon/index.js +40 -33
  75. package/dest/crypto/schnorr/index.d.ts +8 -7
  76. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  77. package/dest/crypto/schnorr/index.js +6 -6
  78. package/dest/crypto/schnorr/signature.d.ts +9 -29
  79. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  80. package/dest/crypto/schnorr/signature.js +20 -36
  81. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  82. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  83. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  84. package/dest/curves/bls12/field.d.ts +3 -3
  85. package/dest/curves/bls12/field.d.ts.map +1 -1
  86. package/dest/curves/bls12/field.js +0 -5
  87. package/dest/curves/bls12/point.d.ts +2 -2
  88. package/dest/curves/bls12/point.d.ts.map +1 -1
  89. package/dest/curves/bn254/field.d.ts +24 -19
  90. package/dest/curves/bn254/field.d.ts.map +1 -1
  91. package/dest/curves/bn254/field.js +28 -19
  92. package/dest/curves/grumpkin/point.d.ts +14 -28
  93. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  94. package/dest/curves/grumpkin/point.js +29 -43
  95. package/dest/eth-address/index.d.ts +2 -2
  96. package/dest/eth-address/index.d.ts.map +1 -1
  97. package/dest/eth-address/index.js +0 -3
  98. package/dest/eth-signature/eth_signature.d.ts +3 -2
  99. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  100. package/dest/eth-signature/eth_signature.js +7 -2
  101. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  102. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  103. package/dest/fifo/fifo_frame_reader.js +91 -0
  104. package/dest/fifo/index.d.ts +2 -0
  105. package/dest/fifo/index.d.ts.map +1 -0
  106. package/dest/fifo/index.js +1 -0
  107. package/dest/fifo_set/fifo_set.d.ts +15 -0
  108. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  109. package/dest/fifo_set/fifo_set.js +39 -0
  110. package/dest/fifo_set/index.d.ts +2 -0
  111. package/dest/fifo_set/index.d.ts.map +1 -0
  112. package/dest/fifo_set/index.js +1 -0
  113. package/dest/jest/setup.js +24 -0
  114. package/dest/json-rpc/client/fetch.d.ts +1 -1
  115. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  116. package/dest/json-rpc/client/fetch.js +4 -3
  117. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  118. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  119. package/dest/json-rpc/client/safe_json_rpc_client.js +6 -5
  120. package/dest/json-rpc/client/undici.d.ts +1 -1
  121. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  122. package/dest/json-rpc/client/undici.js +5 -3
  123. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  124. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  125. package/dest/json-rpc/fixtures/test_state.js +57 -17
  126. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  127. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  128. package/dest/json-rpc/server/api_key_auth.js +57 -0
  129. package/dest/json-rpc/server/index.d.ts +2 -1
  130. package/dest/json-rpc/server/index.d.ts.map +1 -1
  131. package/dest/json-rpc/server/index.js +1 -0
  132. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
  133. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  134. package/dest/json-rpc/server/safe_json_rpc_server.js +32 -14
  135. package/dest/log/aws-logger-config.d.ts +8 -0
  136. package/dest/log/aws-logger-config.d.ts.map +1 -0
  137. package/dest/log/aws-logger-config.js +55 -0
  138. package/dest/log/bigint-utils.d.ts +5 -0
  139. package/dest/log/bigint-utils.d.ts.map +1 -0
  140. package/dest/log/bigint-utils.js +21 -0
  141. package/dest/log/gcloud-logger-config.d.ts +1 -1
  142. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  143. package/dest/log/gcloud-logger-config.js +3 -0
  144. package/dest/log/log-filters.d.ts +17 -4
  145. package/dest/log/log-filters.d.ts.map +1 -1
  146. package/dest/log/log-filters.js +26 -12
  147. package/dest/log/pino-logger.d.ts +1 -1
  148. package/dest/log/pino-logger.d.ts.map +1 -1
  149. package/dest/log/pino-logger.js +33 -8
  150. package/dest/noir/noir_package_config.d.ts +19 -104
  151. package/dest/noir/noir_package_config.d.ts.map +1 -1
  152. package/dest/noir/noir_package_config.js +1 -1
  153. package/dest/promise/running-promise.d.ts +5 -4
  154. package/dest/promise/running-promise.d.ts.map +1 -1
  155. package/dest/promise/running-promise.js +7 -3
  156. package/dest/queue/base_memory_queue.d.ts +2 -2
  157. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  158. package/dest/queue/batch_queue.d.ts +1 -1
  159. package/dest/queue/batch_queue.d.ts.map +1 -1
  160. package/dest/queue/batch_queue.js +1 -0
  161. package/dest/retry/index.d.ts +31 -3
  162. package/dest/retry/index.d.ts.map +1 -1
  163. package/dest/retry/index.js +44 -2
  164. package/dest/schemas/api.d.ts +12 -10
  165. package/dest/schemas/api.d.ts.map +1 -1
  166. package/dest/schemas/api.js +7 -1
  167. package/dest/schemas/parse.d.ts +4 -4
  168. package/dest/schemas/parse.d.ts.map +1 -1
  169. package/dest/schemas/parse.js +6 -5
  170. package/dest/schemas/schemas.d.ts +15 -15
  171. package/dest/schemas/types.d.ts +3 -3
  172. package/dest/schemas/types.d.ts.map +1 -1
  173. package/dest/schemas/utils.d.ts +7 -11
  174. package/dest/schemas/utils.d.ts.map +1 -1
  175. package/dest/schemas/utils.js +2 -18
  176. package/dest/serialize/buffer_reader.d.ts +8 -1
  177. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  178. package/dest/serialize/buffer_reader.js +18 -0
  179. package/dest/serialize/buffer_sink.d.ts +134 -0
  180. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  181. package/dest/serialize/buffer_sink.js +297 -0
  182. package/dest/serialize/index.d.ts +2 -1
  183. package/dest/serialize/index.d.ts.map +1 -1
  184. package/dest/serialize/index.js +1 -0
  185. package/dest/serialize/serialize.d.ts +19 -32
  186. package/dest/serialize/serialize.d.ts.map +1 -1
  187. package/dest/serialize/serialize.js +31 -21
  188. package/dest/sleep/index.d.ts +2 -1
  189. package/dest/sleep/index.d.ts.map +1 -1
  190. package/dest/sleep/index.js +10 -1
  191. package/dest/string/index.d.ts +3 -1
  192. package/dest/string/index.d.ts.map +1 -1
  193. package/dest/string/index.js +13 -1
  194. package/dest/testing/files/index.d.ts +3 -4
  195. package/dest/testing/files/index.d.ts.map +1 -1
  196. package/dest/testing/files/index.js +3 -4
  197. package/dest/timer/date.d.ts +25 -1
  198. package/dest/timer/date.d.ts.map +1 -1
  199. package/dest/timer/date.js +33 -0
  200. package/dest/timer/index.d.ts +2 -2
  201. package/dest/timer/index.d.ts.map +1 -1
  202. package/dest/timer/index.js +1 -1
  203. package/dest/timer/timeout.d.ts +3 -1
  204. package/dest/timer/timeout.d.ts.map +1 -1
  205. package/dest/timer/timeout.js +26 -0
  206. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  207. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  208. package/dest/transport/index.d.ts +1 -2
  209. package/dest/transport/index.d.ts.map +1 -1
  210. package/dest/transport/index.js +0 -1
  211. package/dest/transport/transport_client.js +2 -2
  212. package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
  213. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
  214. package/dest/trees/balanced_merkle_tree_root.js +2 -3
  215. package/dest/trees/hasher.d.ts +3 -2
  216. package/dest/trees/hasher.d.ts.map +1 -1
  217. package/dest/trees/hasher.js +5 -5
  218. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  219. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  220. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  221. package/dest/trees/membership_witness.d.ts +2 -6
  222. package/dest/trees/membership_witness.d.ts.map +1 -1
  223. package/dest/trees/membership_witness.js +0 -9
  224. package/dest/trees/merkle_tree_calculator.d.ts +4 -2
  225. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  226. package/dest/trees/merkle_tree_calculator.js +1 -5
  227. package/dest/trees/sibling_path.d.ts +13 -14
  228. package/dest/trees/sibling_path.d.ts.map +1 -1
  229. package/dest/trees/sibling_path.js +23 -28
  230. package/dest/trees/unbalanced_merkle_tree_root.d.ts +2 -3
  231. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -1
  232. package/dest/trees/unbalanced_merkle_tree_root.js +2 -3
  233. package/dest/types/index.d.ts +25 -1
  234. package/dest/types/index.d.ts.map +1 -1
  235. package/dest/types/index.js +18 -0
  236. package/package.json +26 -4
  237. package/src/array/sorted_array.ts +22 -17
  238. package/src/bigint-buffer/index.ts +6 -1
  239. package/src/branded-types/block_number.ts +20 -2
  240. package/src/branded-types/buffer32_hash.ts +38 -0
  241. package/src/branded-types/checkpoint_number.ts +16 -1
  242. package/src/branded-types/epoch.ts +1 -1
  243. package/src/branded-types/index.ts +1 -0
  244. package/src/branded-types/index_within_checkpoint.ts +1 -1
  245. package/src/branded-types/slot.ts +6 -1
  246. package/src/buffer/buffer16.ts +3 -0
  247. package/src/buffer/buffer32.ts +39 -68
  248. package/src/buffer/index.ts +1 -0
  249. package/src/buffer/utils.ts +8 -0
  250. package/src/collection/array.ts +34 -0
  251. package/src/collection/index.ts +2 -0
  252. package/src/collection/lru_map.ts +143 -0
  253. package/src/collection/lru_set.ts +115 -0
  254. package/src/committable/committable.ts +1 -1
  255. package/src/config/env_var.ts +92 -23
  256. package/src/config/index.ts +157 -121
  257. package/src/config/network_config.ts +3 -0
  258. package/src/config/network_name.ts +6 -6
  259. package/src/config/secret_value.ts +1 -1
  260. package/src/crypto/aes128/index.ts +11 -2
  261. package/src/crypto/bls/bn254_keystore.ts +33 -43
  262. package/src/crypto/keys/index.ts +20 -4
  263. package/src/crypto/poseidon/index.ts +42 -34
  264. package/src/crypto/schnorr/index.ts +9 -8
  265. package/src/crypto/schnorr/signature.ts +17 -46
  266. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  267. package/src/curves/bls12/field.ts +0 -7
  268. package/src/curves/bn254/field.ts +41 -36
  269. package/src/curves/grumpkin/point.ts +23 -40
  270. package/src/eth-address/index.ts +0 -4
  271. package/src/eth-signature/eth_signature.ts +7 -1
  272. package/src/fifo/fifo_frame_reader.ts +113 -0
  273. package/src/fifo/index.ts +1 -0
  274. package/src/fifo_set/fifo_set.ts +52 -0
  275. package/src/fifo_set/index.ts +1 -0
  276. package/src/jest/setup.mjs +27 -0
  277. package/src/json-rpc/client/fetch.ts +4 -3
  278. package/src/json-rpc/client/safe_json_rpc_client.ts +7 -4
  279. package/src/json-rpc/client/undici.ts +5 -3
  280. package/src/json-rpc/fixtures/test_state.ts +10 -10
  281. package/src/json-rpc/server/api_key_auth.ts +63 -0
  282. package/src/json-rpc/server/index.ts +1 -0
  283. package/src/json-rpc/server/safe_json_rpc_server.ts +36 -14
  284. package/src/log/aws-logger-config.ts +32 -0
  285. package/src/log/bigint-utils.ts +25 -0
  286. package/src/log/gcloud-logger-config.ts +5 -0
  287. package/src/log/log-filters.ts +29 -11
  288. package/src/log/pino-logger.ts +39 -8
  289. package/src/noir/noir_package_config.ts +32 -20
  290. package/src/promise/running-promise.ts +8 -5
  291. package/src/queue/base_memory_queue.ts +1 -1
  292. package/src/queue/batch_queue.ts +1 -0
  293. package/src/retry/index.ts +66 -4
  294. package/src/schemas/api.ts +25 -25
  295. package/src/schemas/parse.ts +9 -6
  296. package/src/schemas/schemas.ts +4 -4
  297. package/src/schemas/types.ts +2 -2
  298. package/src/schemas/utils.ts +4 -38
  299. package/src/serialize/buffer_reader.ts +20 -0
  300. package/src/serialize/buffer_sink.ts +350 -0
  301. package/src/serialize/index.ts +1 -0
  302. package/src/serialize/serialize.ts +32 -50
  303. package/src/sleep/index.ts +10 -1
  304. package/src/string/index.ts +15 -1
  305. package/src/testing/files/index.ts +3 -4
  306. package/src/timer/date.ts +48 -0
  307. package/src/timer/index.ts +1 -1
  308. package/src/timer/timeout.ts +31 -0
  309. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  310. package/src/transport/index.ts +0 -1
  311. package/src/transport/transport_client.ts +2 -2
  312. package/src/trees/balanced_merkle_tree_root.ts +2 -5
  313. package/src/trees/hasher.ts +6 -3
  314. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  315. package/src/trees/membership_witness.ts +0 -8
  316. package/src/trees/merkle_tree_calculator.ts +4 -10
  317. package/src/trees/sibling_path.ts +24 -30
  318. package/src/trees/unbalanced_merkle_tree_root.ts +2 -5
  319. package/src/types/index.ts +52 -0
  320. package/dest/crypto/serialize.d.ts +0 -51
  321. package/dest/crypto/serialize.d.ts.map +0 -1
  322. package/dest/crypto/serialize.js +0 -68
  323. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  324. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  325. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  326. package/src/crypto/serialize.ts +0 -85
  327. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
@@ -3,111 +3,10 @@ declare const noirGitDependencySchema: z.ZodObject<{
3
3
  git: z.ZodString;
4
4
  tag: z.ZodString;
5
5
  directory: z.ZodOptional<z.ZodString>;
6
- }, "strip", z.ZodTypeAny, {
7
- git: string;
8
- tag: string;
9
- directory?: string | undefined;
10
- }, {
11
- git: string;
12
- tag: string;
13
- directory?: string | undefined;
14
- }>;
6
+ }, z.core.$strip>;
15
7
  declare const noirLocalDependencySchema: z.ZodObject<{
16
8
  path: z.ZodString;
17
- }, "strip", z.ZodTypeAny, {
18
- path: string;
19
- }, {
20
- path: string;
21
- }>;
22
- declare const noirPackageConfigSchema: z.ZodObject<{
23
- package: z.ZodObject<{
24
- name: z.ZodDefault<z.ZodString>;
25
- type: z.ZodDefault<z.ZodEnum<["lib", "contract", "bin"]>>;
26
- entry: z.ZodOptional<z.ZodString>;
27
- description: z.ZodOptional<z.ZodString>;
28
- authors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
29
- compiler_version: z.ZodOptional<z.ZodString>;
30
- backend: z.ZodOptional<z.ZodString>;
31
- license: z.ZodOptional<z.ZodString>;
32
- }, "strip", z.ZodTypeAny, {
33
- name: string;
34
- type: "bin" | "contract" | "lib";
35
- entry?: string | undefined;
36
- description?: string | undefined;
37
- authors?: string[] | undefined;
38
- compiler_version?: string | undefined;
39
- backend?: string | undefined;
40
- license?: string | undefined;
41
- }, {
42
- name?: string | undefined;
43
- type?: "bin" | "contract" | "lib" | undefined;
44
- entry?: string | undefined;
45
- description?: string | undefined;
46
- authors?: string[] | undefined;
47
- compiler_version?: string | undefined;
48
- backend?: string | undefined;
49
- license?: string | undefined;
50
- }>;
51
- dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
52
- git: z.ZodString;
53
- tag: z.ZodString;
54
- directory: z.ZodOptional<z.ZodString>;
55
- }, "strip", z.ZodTypeAny, {
56
- git: string;
57
- tag: string;
58
- directory?: string | undefined;
59
- }, {
60
- git: string;
61
- tag: string;
62
- directory?: string | undefined;
63
- }>, z.ZodObject<{
64
- path: z.ZodString;
65
- }, "strip", z.ZodTypeAny, {
66
- path: string;
67
- }, {
68
- path: string;
69
- }>]>>>;
70
- }, "strip", z.ZodTypeAny, {
71
- package: {
72
- name: string;
73
- type: "bin" | "contract" | "lib";
74
- entry?: string | undefined;
75
- description?: string | undefined;
76
- authors?: string[] | undefined;
77
- compiler_version?: string | undefined;
78
- backend?: string | undefined;
79
- license?: string | undefined;
80
- };
81
- dependencies: Record<string, {
82
- git: string;
83
- tag: string;
84
- directory?: string | undefined;
85
- } | {
86
- path: string;
87
- }>;
88
- }, {
89
- package: {
90
- name?: string | undefined;
91
- type?: "bin" | "contract" | "lib" | undefined;
92
- entry?: string | undefined;
93
- description?: string | undefined;
94
- authors?: string[] | undefined;
95
- compiler_version?: string | undefined;
96
- backend?: string | undefined;
97
- license?: string | undefined;
98
- };
99
- dependencies?: Record<string, {
100
- git: string;
101
- tag: string;
102
- directory?: string | undefined;
103
- } | {
104
- path: string;
105
- }> | undefined;
106
- }>;
107
- /**
108
- * Noir package configuration.
109
- */
110
- export type NoirPackageConfig = z.infer<typeof noirPackageConfigSchema>;
9
+ }, z.core.$strip>;
111
10
  /**
112
11
  * A remote package dependency.
113
12
  */
@@ -120,10 +19,26 @@ export type NoirLocalDependencyConfig = z.infer<typeof noirLocalDependencySchema
120
19
  * A package dependency.
121
20
  */
122
21
  export type NoirDependencyConfig = NoirGitDependencyConfig | NoirLocalDependencyConfig;
22
+ /**
23
+ * Noir package configuration.
24
+ */
25
+ export type NoirPackageConfig = {
26
+ package: {
27
+ name: string;
28
+ type: 'lib' | 'contract' | 'bin';
29
+ entry?: string | undefined;
30
+ description?: string | undefined;
31
+ authors?: string[] | undefined;
32
+ compiler_version?: string | undefined;
33
+ backend?: string | undefined;
34
+ license?: string | undefined;
35
+ };
36
+ dependencies: Record<string, NoirDependencyConfig>;
37
+ };
123
38
  /**
124
39
  * Checks that an object is a package configuration.
125
40
  * @param config - Config to check
126
41
  */
127
42
  export declare function parseNoirPackageConfig(config: any): NoirPackageConfig;
128
43
  export {};
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pcl9wYWNrYWdlX2NvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vaXIvbm9pcl9wYWNrYWdlX2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLFFBQUEsTUFBTSx1QkFBdUI7Ozs7Ozs7Ozs7OztFQUkzQixDQUFDO0FBRUgsUUFBQSxNQUFNLHlCQUF5Qjs7Ozs7O0VBRTdCLENBQUM7QUFFSCxRQUFBLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFhM0IsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDO0FBRXhFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx5QkFBeUIsQ0FBQyxDQUFDO0FBRWxGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLG9CQUFvQixHQUFHLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBRXZGOzs7R0FHRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLGlCQUFpQixDQUVyRSJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pcl9wYWNrYWdlX2NvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vaXIvbm9pcl9wYWNrYWdlX2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLFFBQUEsTUFBTSx1QkFBdUI7Ozs7aUJBSTNCLENBQUM7QUFFSCxRQUFBLE1BQU0seUJBQXlCOztpQkFFN0IsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx5QkFBeUIsQ0FBQyxDQUFDO0FBRWxGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLG9CQUFvQixHQUFHLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBRXZGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0lBQzlCLE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxNQUFNLENBQUM7UUFDYixJQUFJLEVBQUUsS0FBSyxHQUFHLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDakMsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUMzQixXQUFXLENBQUMsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUMvQixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDdEMsT0FBTyxDQUFDLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUM3QixPQUFPLENBQUMsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0tBQzlCLENBQUM7SUFDRixZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0NBQ3BELENBQUM7QUFpQkY7OztHQUdHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsaUJBQWlCLENBRXJFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"noir_package_config.d.ts","sourceRoot":"","sources":["../../src/noir/noir_package_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;EAI3B,CAAC;AAEH,QAAA,MAAM,yBAAyB;;;;;;EAE7B,CAAC;AAEH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa3B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,CAErE"}
1
+ {"version":3,"file":"noir_package_config.d.ts","sourceRoot":"","sources":["../../src/noir/noir_package_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,uBAAuB;;;;iBAI3B,CAAC;AAEH,QAAA,MAAM,yBAAyB;;iBAE7B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CACpD,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,CAErE"}
@@ -23,7 +23,7 @@ const noirPackageConfigSchema = z.object({
23
23
  backend: z.string().optional(),
24
24
  license: z.string().optional()
25
25
  }),
26
- dependencies: z.record(z.union([
26
+ dependencies: z.record(z.string(), z.union([
27
27
  noirGitDependencySchema,
28
28
  noirLocalDependencySchema
29
29
  ])).default({})
@@ -7,7 +7,7 @@ export declare function makeLoggingErrorHandler(logger: Logger, ...ignoredErrors
7
7
  * at a specified polling interval. It allows starting, stopping, and checking the status of the
8
8
  * internally managed promise. The class also supports interrupting the polling process when stopped.
9
9
  */
10
- export declare class RunningPromise {
10
+ export declare class RunningPromise<T = void> {
11
11
  private fn;
12
12
  private logger;
13
13
  private pollingIntervalMS;
@@ -16,8 +16,9 @@ export declare class RunningPromise {
16
16
  private runningPromise;
17
17
  private interruptibleSleep;
18
18
  private requested;
19
+ private requestedArg;
19
20
  static readonly EXIT: typeof EXIT;
20
- constructor(fn: () => void | Promise<void>, logger?: Logger, pollingIntervalMS?: number, handleError?: ErrorHandler);
21
+ constructor(fn: (arg?: T) => void | Promise<void>, logger?: Logger, pollingIntervalMS?: number, handleError?: ErrorHandler);
21
22
  /**
22
23
  * Starts the running promise.
23
24
  */
@@ -36,7 +37,7 @@ export declare class RunningPromise {
36
37
  * Triggers an immediate run of the function, bypassing the polling interval.
37
38
  * If the function is currently running, it will be allowed to continue and then called again immediately.
38
39
  */
39
- trigger(): Promise<void>;
40
+ trigger(arg?: T): Promise<void>;
40
41
  /**
41
42
  * Updates the polling interval. The new interval will take effect after the next poll.
42
43
  * @param pollingIntervalMS The polling interval in milliseconds.
@@ -44,4 +45,4 @@ export declare class RunningPromise {
44
45
  setPollingIntervalMS(pollingIntervalMS: number): void;
45
46
  }
46
47
  export {};
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmluZy1wcm9taXNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvbWlzZS9ydW5uaW5nLXByb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSWxFLFFBQUEsTUFBTSxJQUFJLGVBQW9DLENBQUM7QUFFL0MsTUFBTSxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLEtBQUssT0FBTyxJQUFJLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztBQUU5Rix3QkFBZ0IsdUJBQXVCLENBQ3JDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEdBQ2xELFlBQVksQ0FNZDtBQUVEOzs7O0dBSUc7QUFDSCxxQkFBYSxjQUFjO0lBU3ZCLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLE9BQU8sQ0FBQyxXQUFXO0lBWHJCLE9BQU8sQ0FBQyxPQUFPLENBQVM7SUFDeEIsT0FBTyxDQUFDLGNBQWMsQ0FBcUI7SUFDM0MsT0FBTyxDQUFDLGtCQUFrQixDQUE0QjtJQUN0RCxPQUFPLENBQUMsU0FBUyxDQUFxRDtJQUV0RSxnQkFBdUIsSUFBSSxFQUFFLE9BQU8sSUFBSSxDQUFRO0lBRWhELFlBQ1UsRUFBRSxFQUFFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDOUIsTUFBTSxTQUFrQyxFQUN4QyxpQkFBaUIsU0FBUSxFQUN6QixXQUFXLEdBQUUsWUFBOEMsRUFDakU7SUFFSjs7T0FFRztJQUNJLEtBQUssU0FrQ1g7SUFFRDs7O09BR0c7SUFDRyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQU8xQjtJQUVEOzs7T0FHRztJQUNJLFNBQVMsWUFFZjtJQUVEOzs7T0FHRztJQUNVLE9BQU8sa0JBWW5CO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxRQUU3QztDQUNGIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmluZy1wcm9taXNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvbWlzZS9ydW5uaW5nLXByb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSWxFLFFBQUEsTUFBTSxJQUFJLGVBQW9DLENBQUM7QUFFL0MsTUFBTSxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLEtBQUssT0FBTyxJQUFJLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztBQUU5Rix3QkFBZ0IsdUJBQXVCLENBQ3JDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEdBQ2xELFlBQVksQ0FNZDtBQUVEOzs7O0dBSUc7QUFDSCxxQkFBYSxjQUFjLENBQUMsQ0FBQyxHQUFHLElBQUk7SUFVaEMsT0FBTyxDQUFDLEVBQUU7SUFDVixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxpQkFBaUI7SUFDekIsT0FBTyxDQUFDLFdBQVc7SUFackIsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUN4QixPQUFPLENBQUMsY0FBYyxDQUFxQjtJQUMzQyxPQUFPLENBQUMsa0JBQWtCLENBQTRCO0lBQ3RELE9BQU8sQ0FBQyxTQUFTLENBQXFEO0lBQ3RFLE9BQU8sQ0FBQyxZQUFZLENBQTRCO0lBRWhELGdCQUF1QixJQUFJLEVBQUUsT0FBTyxJQUFJLENBQVE7SUFFaEQsWUFDVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDckMsTUFBTSxTQUFrQyxFQUN4QyxpQkFBaUIsU0FBUSxFQUN6QixXQUFXLEdBQUUsWUFBOEMsRUFDakU7SUFFSjs7T0FFRztJQUNJLEtBQUssU0FtQ1g7SUFFRDs7O09BR0c7SUFDRyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQU8xQjtJQUVEOzs7T0FHRztJQUNJLFNBQVMsWUFFZjtJQUVEOzs7T0FHRztJQUNVLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWEzQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLE1BQU0sUUFFN0M7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"running-promise.d.ts","sourceRoot":"","sources":["../../src/promise/running-promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,QAAA,MAAM,IAAI,eAAoC,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC;AAE9F,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,aAAa,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,EAAE,GAClD,YAAY,CAMd;AAED;;;;GAIG;AACH,qBAAa,cAAc;IASvB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;IAXrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,SAAS,CAAqD;IAEtE,gBAAuB,IAAI,EAAE,OAAO,IAAI,CAAQ;IAEhD,YACU,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC9B,MAAM,SAAkC,EACxC,iBAAiB,SAAQ,EACzB,WAAW,GAAE,YAA8C,EACjE;IAEJ;;OAEG;IACI,KAAK,SAkCX;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAO1B;IAED;;;OAGG;IACI,SAAS,YAEf;IAED;;;OAGG;IACU,OAAO,kBAYnB;IAED;;;OAGG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,QAE7C;CACF"}
1
+ {"version":3,"file":"running-promise.d.ts","sourceRoot":"","sources":["../../src/promise/running-promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,QAAA,MAAM,IAAI,eAAoC,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC;AAE9F,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,aAAa,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,EAAE,GAClD,YAAY,CAMd;AAED;;;;GAIG;AACH,qBAAa,cAAc,CAAC,CAAC,GAAG,IAAI;IAUhC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;IAZrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,SAAS,CAAqD;IACtE,OAAO,CAAC,YAAY,CAA4B;IAEhD,gBAAuB,IAAI,EAAE,OAAO,IAAI,CAAQ;IAEhD,YACU,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACrC,MAAM,SAAkC,EACxC,iBAAiB,SAAQ,EACzB,WAAW,GAAE,YAA8C,EACjE;IAEJ;;OAEG;IACI,KAAK,SAmCX;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAO1B;IAED;;;OAGG;IACI,SAAS,YAEf;IAED;;;OAGG;IACU,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3C;IAED;;;OAGG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,QAE7C;CACF"}
@@ -22,6 +22,7 @@ export function makeLoggingErrorHandler(logger, ...ignoredErrors) {
22
22
  runningPromise;
23
23
  interruptibleSleep;
24
24
  requested;
25
+ requestedArg;
25
26
  static EXIT = EXIT;
26
27
  constructor(fn, logger = createLogger('running-promise'), pollingIntervalMS = 10000, handleError = makeLoggingErrorHandler(logger)){
27
28
  this.fn = fn;
@@ -32,6 +33,7 @@ export function makeLoggingErrorHandler(logger, ...ignoredErrors) {
32
33
  this.runningPromise = Promise.resolve();
33
34
  this.interruptibleSleep = new InterruptibleSleep();
34
35
  this.requested = undefined;
36
+ this.requestedArg = undefined;
35
37
  }
36
38
  /**
37
39
  * Starts the running promise.
@@ -45,7 +47,7 @@ export function makeLoggingErrorHandler(logger, ...ignoredErrors) {
45
47
  while(this.running){
46
48
  const hasRequested = this.requested !== undefined;
47
49
  try {
48
- await this.fn();
50
+ await this.fn(this.requestedArg);
49
51
  } catch (err) {
50
52
  const code = await this.handleError(err);
51
53
  if (code === RunningPromise.EXIT) {
@@ -59,6 +61,7 @@ export function makeLoggingErrorHandler(logger, ...ignoredErrors) {
59
61
  if (hasRequested) {
60
62
  this.requested.resolve();
61
63
  this.requested = undefined;
64
+ this.requestedArg = undefined;
62
65
  }
63
66
  // If no immediate run was requested, sleep for the polling interval.
64
67
  if (this.requested === undefined && this.running) {
@@ -89,14 +92,15 @@ export function makeLoggingErrorHandler(logger, ...ignoredErrors) {
89
92
  /**
90
93
  * Triggers an immediate run of the function, bypassing the polling interval.
91
94
  * If the function is currently running, it will be allowed to continue and then called again immediately.
92
- */ async trigger() {
95
+ */ async trigger(arg) {
93
96
  if (!this.running) {
94
- return this.fn();
97
+ return this.fn(arg);
95
98
  }
96
99
  let requested = this.requested;
97
100
  if (!requested) {
98
101
  requested = promiseWithResolvers();
99
102
  this.requested = requested;
103
+ this.requestedArg = arg;
100
104
  this.interruptibleSleep.interrupt();
101
105
  }
102
106
  await requested.promise;
@@ -60,6 +60,6 @@ export declare abstract class BaseMemoryQueue<T> {
60
60
  * @param handler - A function that takes an item of type T and returns a Promise<void> after processing the item.
61
61
  * @returns A Promise<void> that resolves when the queue is finished processing.
62
62
  */
63
- process(handler: (item: T) => Promise<void>): Promise<void>;
63
+ process(handler: (item: T) => Promise<void> | void): Promise<void>;
64
64
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9tZW1vcnlfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXNlX21lbW9yeV9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBc0IsZUFBZSxDQUFDLENBQUM7SUFJekIsT0FBTyxDQUFDLEdBQUc7SUFIdkIsT0FBTyxDQUFDLE9BQU8sQ0FBb0M7SUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUV6QixZQUFvQixHQUFHLHlDQUF5QyxFQUFJO0lBRXBFLFNBQVMsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJO1FBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNyQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0tBQ25CLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLE1BQU0sV0FFWjtJQUVEOzs7T0FHRztJQUNJLFlBQVksSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUVuQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBNkJqRDtJQUVEOzs7O09BSUc7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxPQUFPLENBVzNCO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsU0FHVDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLFNBSVo7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBWXZEO0NBQ0YifQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9tZW1vcnlfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXNlX21lbW9yeV9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBc0IsZUFBZSxDQUFDLENBQUM7SUFJekIsT0FBTyxDQUFDLEdBQUc7SUFIdkIsT0FBTyxDQUFDLE9BQU8sQ0FBb0M7SUFDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBUztJQUV6QixZQUFvQixHQUFHLHlDQUF5QyxFQUFJO0lBRXBFLFNBQVMsQ0FBQyxRQUFRLEtBQUssS0FBSyxJQUFJO1FBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNyQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkIsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0tBQ25CLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLE1BQU0sV0FFWjtJQUVEOzs7T0FHRztJQUNJLFlBQVksSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUVuQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBNkJqRDtJQUVEOzs7O09BSUc7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxPQUFPLENBVzNCO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsU0FHVDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLFNBSVo7SUFFRDs7Ozs7Ozs7T0FRRztJQUNVLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGlCQVk5RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"base_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/base_memory_queue.ts"],"names":[],"mappings":"AAGA,8BAAsB,eAAe,CAAC,CAAC;IAIzB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAoB,GAAG,yCAAyC,EAAI;IAEpE,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;QACrB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IAEF;;;;;OAKG;IACI,MAAM,WAEZ;IAED;;;OAGG;IACI,YAAY,IAAI,CAAC,GAAG,SAAS,CAEnC;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BjD;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAW3B;IAED;;;;OAIG;IACI,GAAG,SAGT;IAED;;;;OAIG;IACI,MAAM,SAIZ;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,iBAYvD;CACF"}
1
+ {"version":3,"file":"base_memory_queue.d.ts","sourceRoot":"","sources":["../../src/queue/base_memory_queue.ts"],"names":[],"mappings":"AAGA,8BAAsB,eAAe,CAAC,CAAC;IAIzB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAoB,GAAG,yCAAyC,EAAI;IAEpE,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;QACrB,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IAEF;;;;;OAKG;IACI,MAAM,WAEZ;IAED;;;OAGG;IACI,YAAY,IAAI,CAAC,GAAG,SAAS,CAEnC;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6BjD;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAW3B;IAED;;;;OAIG;IACI,GAAG,SAGT;IAED;;;;OAIG;IACI,MAAM,SAIZ;IAED;;;;;;;;OAQG;IACU,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAY9D;CACF"}
@@ -44,4 +44,4 @@ export declare class BatchQueue<T, K extends string | number> {
44
44
  stop(): Promise<void>;
45
45
  private execProcessor;
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXRjaF9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHFCQUFhLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sR0FBRyxNQUFNO0lBTWhELE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLEdBQUc7SUFSYixPQUFPLENBQUMsU0FBUyxDQUFzQztJQUN2RCxPQUFPLENBQUMsWUFBWSxDQUFDLENBQWM7SUFDbkMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFnQjtJQUV2QyxZQUNVLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUMvRCxZQUFZLEVBQUUsTUFBTSxFQUNwQixnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLEdBQUcseUNBQXlDLEVBQ2xEO0lBRUo7Ozs7O09BS0c7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EwQnpDO0lBRUQ7O09BRUc7SUFDSSxpQkFBaUIsYUFPdEI7SUFFRjs7T0FFRztJQUNJLEtBQUssU0FNWDtJQUVEOzs7T0FHRztJQUNJLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBVTNCO0lBRUQsT0FBTyxDQUFDLGFBQWEsQ0FPbkI7Q0FDSCJ9
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfcXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWV1ZS9iYXRjaF9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHFCQUFhLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sR0FBRyxNQUFNO0lBTWhELE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLEdBQUc7SUFSYixPQUFPLENBQUMsU0FBUyxDQUFzQztJQUN2RCxPQUFPLENBQUMsWUFBWSxDQUFDLENBQWM7SUFDbkMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFnQjtJQUV2QyxZQUNVLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUMvRCxZQUFZLEVBQUUsTUFBTSxFQUNwQixnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLEdBQUcseUNBQXlDLEVBQ2xEO0lBRUo7Ozs7O09BS0c7SUFDSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EwQnpDO0lBRUQ7O09BRUc7SUFDSSxpQkFBaUIsYUFPdEI7SUFFRjs7T0FFRztJQUNJLEtBQUssU0FNWDtJQUVEOzs7T0FHRztJQUNJLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBVzNCO0lBRUQsT0FBTyxDQUFDLGFBQWEsQ0FPbkI7Q0FDSCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"batch_queue.d.ts","sourceRoot":"","sources":["../../src/queue/batch_queue.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAMhD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,GAAG;IARb,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEvC,YACU,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC/D,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,GAAG,yCAAyC,EAClD;IAEJ;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BzC;IAED;;OAEG;IACI,iBAAiB,aAOtB;IAEF;;OAEG;IACI,KAAK,SAMX;IAED;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAU3B;IAED,OAAO,CAAC,aAAa,CAOnB;CACH"}
1
+ {"version":3,"file":"batch_queue.d.ts","sourceRoot":"","sources":["../../src/queue/batch_queue.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAMhD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,GAAG;IARb,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEvC,YACU,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC/D,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,GAAG,yCAAyC,EAClD;IAEJ;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BzC;IAED;;OAEG;IACI,iBAAiB,aAOtB;IAEF;;OAEG;IACI,KAAK,SAMX;IAED;;;OAGG;IACI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAW3B;IAED,OAAO,CAAC,aAAa,CAOnB;CACH"}
@@ -98,6 +98,7 @@ import { FifoMemoryQueue } from './fifo_memory_queue.js';
98
98
  if (!runningPromise) {
99
99
  return Promise.resolve();
100
100
  }
101
+ this.flushCurrentBatch();
101
102
  this.container.end();
102
103
  return runningPromise;
103
104
  }
@@ -1,4 +1,5 @@
1
1
  import { type Logger } from '../log/index.js';
2
+ import { type DateProvider } from '../timer/index.js';
2
3
  /** An error that indicates that the operation should not be retried. */
3
4
  export declare class NoRetryError extends Error {
4
5
  }
@@ -30,6 +31,19 @@ export declare function makeBackoff(retries: number[]): Generator<number, void,
30
31
  * @throws If `NoRetryError` is thrown by the `fn`, it is rethrown.
31
32
  */
32
33
  export declare function retry<Result>(fn: () => Promise<Result>, name?: string, backoff?: Generator<number, void, unknown>, log?: Logger, failSilently?: boolean): Promise<Result>;
34
+ /**
35
+ * Timeout specification accepted by {@link retryUntil}. Either a plain number of seconds, an explicit
36
+ * `{ timeout }` in seconds, or an absolute `{ deadline }` with an optional {@link DateProvider} used to
37
+ * read the current time. A deadline is converted to the remaining seconds at call time; a deadline that
38
+ * has already passed yields a zero remaining budget, matching the immediate-timeout semantics of a
39
+ * non-positive numeric timeout.
40
+ */
41
+ export type RetryUntilTimeout = number | {
42
+ timeout: number;
43
+ } | {
44
+ deadline: Date;
45
+ dateProvider?: DateProvider;
46
+ };
33
47
  /**
34
48
  * Retry an asynchronous function until it returns a truthy value or the specified timeout is exceeded.
35
49
  * The function is retried periodically with a fixed interval between attempts. The operation can be named for better error messages.
@@ -37,11 +51,25 @@ export declare function retry<Result>(fn: () => Promise<Result>, name?: string,
37
51
  *
38
52
  * @param fn - The asynchronous function to be retried, which should return a truthy value upon success or undefined otherwise.
39
53
  * @param name - The optional name of the operation, used for generating timeout error message.
40
- * @param timeout - The optional maximum time, in seconds, to keep retrying before throwing a timeout error. Defaults to 0 (never timeout).
54
+ * @param timeout - The maximum time to keep retrying before throwing a timeout error. Accepts a number of
55
+ * seconds (0 = never time out), an explicit `{ timeout }` in seconds, or an absolute `{ deadline }` with an
56
+ * optional `dateProvider`. A deadline already in the past times out on the first interval, the same as a
57
+ * zero/negative numeric timeout. Defaults to 0 (never timeout).
41
58
  * @param interval - The optional interval, in seconds, between retry attempts. Defaults to 1 second.
42
59
  * @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if timeout is exceeded.
43
60
  */
44
- export declare function retryUntil<T>(fn: () => (T | undefined) | Promise<T | undefined>, name?: string, timeout?: number, interval?: number): Promise<NonNullable<Awaited<T>>>;
61
+ export declare function retryUntil<T>(fn: () => (T | undefined) | Promise<T | undefined>, name?: string, timeout?: RetryUntilTimeout, interval?: number): Promise<NonNullable<Awaited<T>>>;
62
+ /**
63
+ * Retry an asynchronous function until it returns a truthy value or the maximum number of retries is exceeded.
64
+ * The function is retried periodically with a fixed interval between attempts.
65
+ *
66
+ * @param fn - The asynchronous function to be retried, which should return a truthy value upon success or undefined otherwise.
67
+ * @param name - The optional name of the operation, used for generating error messages.
68
+ * @param maxRetries - The maximum number of retry attempts before throwing an error.
69
+ * @param retryInterval - The optional interval, in seconds, between retry attempts. Defaults to 1 second.
70
+ * @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if retries are exhausted.
71
+ */
72
+ export declare function retryTimes<T>(fn: () => (T | undefined) | Promise<T | undefined>, name: string | undefined, maxRetries: number, retryInterval?: number): Promise<NonNullable<Awaited<T>>>;
45
73
  /**
46
74
  * Convenience wrapper around retryUntil with fast polling for tests.
47
75
  * Uses 10s timeout and 100ms polling interval by default.
@@ -52,4 +80,4 @@ export declare function retryUntil<T>(fn: () => (T | undefined) | Promise<T | un
52
80
  * @param interval - Optional interval in seconds. Defaults to 0.1s (100ms).
53
81
  */
54
82
  export declare function retryFastUntil<T>(fn: () => (T | undefined) | Promise<T | undefined>, name?: string, timeout?: number, interval?: number): Promise<NonNullable<Awaited<T>>>;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFJNUQsd0VBQXdFO0FBQ3hFLHFCQUFhLFlBQWEsU0FBUSxLQUFLO0NBQUc7QUFFMUM7Ozs7Ozs7R0FPRztBQUNILHdCQUFpQixnQkFBZ0IscUNBTWhDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFpQixXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxvQ0FJN0M7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFzQixLQUFLLENBQUMsTUFBTSxFQUNoQyxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3pCLElBQUksU0FBYyxFQUNsQixPQUFPLG1DQUFxQixFQUM1QixHQUFHLEdBQUUsTUFBeUMsRUFDOUMsWUFBWSxVQUFRLG1CQW9CckI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQXNCLFVBQVUsQ0FBQyxDQUFDLEVBQ2hDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSSxFQUNYLFFBQVEsU0FBSSxvQ0FlYjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxDQUFDLEVBQzlCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQ2xELElBQUksU0FBSyxFQUNULE9BQU8sU0FBSyxFQUNaLFFBQVEsU0FBTSxvQ0FHZiJ9
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFFNUQsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFFN0Qsd0VBQXdFO0FBQ3hFLHFCQUFhLFlBQWEsU0FBUSxLQUFLO0NBQUc7QUFFMUM7Ozs7Ozs7R0FPRztBQUNILHdCQUFpQixnQkFBZ0IscUNBTWhDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFpQixXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxvQ0FJN0M7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFzQixLQUFLLENBQUMsTUFBTSxFQUNoQyxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3pCLElBQUksU0FBYyxFQUNsQixPQUFPLG1DQUFxQixFQUM1QixHQUFHLEdBQUUsTUFBeUMsRUFDOUMsWUFBWSxVQUFRLG1CQW9CckI7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxHQUFHO0lBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQUc7SUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO0lBQUMsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFBO0NBQUUsQ0FBQztBQXFCL0c7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHdCQUFzQixVQUFVLENBQUMsQ0FBQyxFQUNoQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUNsRCxJQUFJLFNBQUssRUFDVCxPQUFPLEdBQUUsaUJBQXFCLEVBQzlCLFFBQVEsU0FBSSxvQ0FnQmI7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBc0IsVUFBVSxDQUFDLENBQUMsRUFDaEMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsRUFDbEQsSUFBSSxvQkFBSyxFQUNULFVBQVUsRUFBRSxNQUFNLEVBQ2xCLGFBQWEsU0FBSSxvQ0FjbEI7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixjQUFjLENBQUMsQ0FBQyxFQUM5QixFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUNsRCxJQUFJLFNBQUssRUFDVCxPQUFPLFNBQUssRUFDWixRQUFRLFNBQU0sb0NBR2YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAI5D,wEAAwE;AACxE,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C;;;;;;;GAOG;AACH,wBAAiB,gBAAgB,qCAMhC;AAED;;;;GAIG;AACH,wBAAiB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,oCAI7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,SAAc,EAClB,OAAO,mCAAqB,EAC5B,GAAG,GAAE,MAAyC,EAC9C,YAAY,UAAQ,mBAoBrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAI,EACX,QAAQ,SAAI,oCAeb;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAK,EACZ,QAAQ,SAAM,oCAGf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retry/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,mBAAmB,CAAC;AAE7D,wEAAwE;AACxE,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C;;;;;;;GAOG;AACH,wBAAiB,gBAAgB,qCAMhC;AAED;;;;GAIG;AACH,wBAAiB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,oCAI7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACzB,IAAI,SAAc,EAClB,OAAO,mCAAqB,EAC5B,GAAG,GAAE,MAAyC,EAC9C,YAAY,UAAQ,mBAoBrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAqB/G;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,GAAE,iBAAqB,EAC9B,QAAQ,SAAI,oCAgBb;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,oBAAK,EACT,UAAU,EAAE,MAAM,EAClB,aAAa,SAAI,oCAclB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAClD,IAAI,SAAK,EACT,OAAO,SAAK,EACZ,QAAQ,SAAM,oCAGf"}
@@ -68,6 +68,23 @@ import { Timer } from '../timer/index.js';
68
68
  }
69
69
  }
70
70
  }
71
+ /**
72
+ * Resolves a {@link RetryUntilTimeout} to a numeric timeout in seconds for the legacy timer-based loop.
73
+ * A numeric/`{ timeout }` value passes through unchanged (0 means never time out, negative times out on the
74
+ * first interval). A `{ deadline }` is the remaining seconds until the deadline; when the deadline is already
75
+ * at or past `now` it resolves to a negative value so the loop times out immediately instead of being read as
76
+ * the never-timeout sentinel 0.
77
+ */ function resolveRetryUntilTimeoutSeconds(timeout) {
78
+ if (typeof timeout === 'number') {
79
+ return timeout;
80
+ }
81
+ if ('deadline' in timeout) {
82
+ const now = timeout.dateProvider?.now() ?? Date.now();
83
+ const remainingSeconds = (timeout.deadline.getTime() - now) / 1000;
84
+ return remainingSeconds > 0 ? remainingSeconds : -1;
85
+ }
86
+ return timeout.timeout;
87
+ }
71
88
  /**
72
89
  * Retry an asynchronous function until it returns a truthy value or the specified timeout is exceeded.
73
90
  * The function is retried periodically with a fixed interval between attempts. The operation can be named for better error messages.
@@ -75,10 +92,14 @@ import { Timer } from '../timer/index.js';
75
92
  *
76
93
  * @param fn - The asynchronous function to be retried, which should return a truthy value upon success or undefined otherwise.
77
94
  * @param name - The optional name of the operation, used for generating timeout error message.
78
- * @param timeout - The optional maximum time, in seconds, to keep retrying before throwing a timeout error. Defaults to 0 (never timeout).
95
+ * @param timeout - The maximum time to keep retrying before throwing a timeout error. Accepts a number of
96
+ * seconds (0 = never time out), an explicit `{ timeout }` in seconds, or an absolute `{ deadline }` with an
97
+ * optional `dateProvider`. A deadline already in the past times out on the first interval, the same as a
98
+ * zero/negative numeric timeout. Defaults to 0 (never timeout).
79
99
  * @param interval - The optional interval, in seconds, between retry attempts. Defaults to 1 second.
80
100
  * @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if timeout is exceeded.
81
101
  */ export async function retryUntil(fn, name = '', timeout = 0, interval = 1) {
102
+ const timeoutSeconds = resolveRetryUntilTimeoutSeconds(timeout);
82
103
  const timer = new Timer();
83
104
  while(true){
84
105
  const result = await fn();
@@ -86,11 +107,32 @@ import { Timer } from '../timer/index.js';
86
107
  return result;
87
108
  }
88
109
  await sleep(interval * 1000);
89
- if (timeout && timer.s() > timeout) {
110
+ if (timeoutSeconds && timer.s() > timeoutSeconds) {
90
111
  throw new TimeoutError(name ? `Timeout awaiting ${name}` : 'Timeout');
91
112
  }
92
113
  }
93
114
  }
115
+ /**
116
+ * Retry an asynchronous function until it returns a truthy value or the maximum number of retries is exceeded.
117
+ * The function is retried periodically with a fixed interval between attempts.
118
+ *
119
+ * @param fn - The asynchronous function to be retried, which should return a truthy value upon success or undefined otherwise.
120
+ * @param name - The optional name of the operation, used for generating error messages.
121
+ * @param maxRetries - The maximum number of retry attempts before throwing an error.
122
+ * @param retryInterval - The optional interval, in seconds, between retry attempts. Defaults to 1 second.
123
+ * @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if retries are exhausted.
124
+ */ export async function retryTimes(fn, name = '', maxRetries, retryInterval = 1) {
125
+ for(let attempt = 0; attempt <= maxRetries; attempt++){
126
+ const result = await fn();
127
+ if (result) {
128
+ return result;
129
+ }
130
+ if (attempt < maxRetries) {
131
+ await sleep(retryInterval * 1000);
132
+ }
133
+ }
134
+ throw new Error(name ? `Retries exhausted awaiting ${name}` : 'Retries exhausted');
135
+ }
94
136
  /**
95
137
  * Convenience wrapper around retryUntil with fast polling for tests.
96
138
  * Uses 10s timeout and 100ms polling interval by default.
@@ -1,21 +1,23 @@
1
1
  import type { z } from 'zod';
2
2
  import type { ZodNullableOptional } from './utils.js';
3
- type ZodParameterTypeFor<T> = undefined extends T ? ZodNullableOptional<z.ZodType<T, z.ZodTypeDef, any>> : z.ZodType<T, z.ZodTypeDef, any>;
4
- type ZodReturnTypeFor<T> = z.ZodType<T, z.ZodTypeDef, any>;
5
- type ZodMapParameterTypes<T> = T extends [] ? [] : T extends [item: infer Head, ...infer Rest] ? [ZodParameterTypeFor<Head>, ...{
6
- [K in keyof Rest]: ZodParameterTypeFor<Rest[K]>;
7
- }] : T extends [item?: infer Head, ...infer Rest] ? [ZodNullableOptional<ZodParameterTypeFor<Head>>, ...{
8
- [K in keyof Rest]: ZodParameterTypeFor<Rest[K]>;
9
- }] : never;
3
+ type ZodParameterTypeFor<T> = undefined extends T ? ZodNullableOptional<z.ZodType<T, any>> : z.ZodType<T, any>;
4
+ type ZodReturnTypeFor<T> = z.ZodType<T, any>;
5
+ type ZodMapParameterTypes<T extends readonly unknown[]> = {
6
+ [K in keyof T]-?: ZodParameterTypeFor<T[K]>;
7
+ };
10
8
  /** Maps all functions in an interface to their schema representation. */
11
9
  export type ApiSchemaFor<T> = {
12
- [K in keyof T]: T[K] extends (...args: infer Args) => Promise<infer Ret> ? z.ZodFunction<z.ZodTuple<ZodMapParameterTypes<Args>, z.ZodUnknown>, ZodReturnTypeFor<Ret>> : never;
10
+ [K in keyof T]: T[K] extends (...args: infer Args) => Promise<infer Ret> ? z.ZodFunction<z.ZodTuple<ZodMapParameterTypes<Args>, null>, ZodReturnTypeFor<Ret>> : never;
13
11
  };
14
12
  /** Generic Api schema not bounded to a specific implementation. */
15
13
  export type ApiSchema = {
16
14
  [key: string]: z.ZodFunction<z.ZodTuple<any, any>, z.ZodTypeAny>;
17
15
  };
18
16
  /** Return whether an API schema defines a valid function schema for a given method name. */
19
- export declare function schemaHasMethod(schema: ApiSchema, methodName: string): boolean;
17
+ export declare function schemaHasMethod<T extends ApiSchema>(schema: T, methodName: string): methodName is Extract<keyof T, string>;
18
+ /** Returns the parameter tuple schema for an API method schema. */
19
+ export declare function getSchemaParameters<T extends z.ZodFunction<z.ZodTuple<any, any>, z.ZodTypeAny>>(schema: T): z.ZodTuple<any, any>;
20
+ /** Returns the return value schema for an API method schema. */
21
+ export declare function getSchemaReturnType<T extends z.ZodFunction<z.ZodTuple<any, any>, z.ZodTypeAny>>(schema: T): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
20
22
  export {};
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3RELEtBQUssbUJBQW1CLENBQUMsQ0FBQyxJQUFJLFNBQVMsU0FBUyxDQUFDLEdBQzdDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FDcEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVwQyxLQUFLLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBUzNELEtBQUssb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQ3ZDLEVBQUUsR0FDRixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUN6QyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUc7S0FBRyxDQUFDLElBQUksTUFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQUUsQ0FBQyxHQUNuRixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQzFDLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHO0tBQUcsQ0FBQyxJQUFJLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLENBQUMsR0FDeEcsS0FBSyxDQUFDO0FBRWQseUVBQXlFO0FBQ3pFLE1BQU0sTUFBTSxZQUFZLENBQUMsQ0FBQyxJQUFJO0tBQzNCLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsR0FDcEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUMxRixLQUFLO0NBQ1YsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztDQUNsRSxDQUFDO0FBRUYsNEZBQTRGO0FBQzVGLHdCQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQU9wRSJ9
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3RELEtBQUssbUJBQW1CLENBQUMsQ0FBQyxJQUFJLFNBQVMsU0FBUyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUUvRyxLQUFLLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUU3QyxLQUFLLG9CQUFvQixDQUFDLENBQUMsU0FBUyxTQUFTLE9BQU8sRUFBRSxJQUFJO0tBQ3ZELENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzVDLENBQUM7QUFFRix5RUFBeUU7QUFDekUsTUFBTSxNQUFNLFlBQVksQ0FBQyxDQUFDLElBQUk7S0FDM0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sSUFBSSxLQUFLLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUNwRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDbEYsS0FBSztDQUNWLENBQUM7QUFFRixtRUFBbUU7QUFDbkUsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0QixDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7Q0FDbEUsQ0FBQztBQUVGLDRGQUE0RjtBQUM1Rix3QkFBZ0IsZUFBZSxDQUFDLENBQUMsU0FBUyxTQUFTLEVBQ2pELE1BQU0sRUFBRSxDQUFDLEVBQ1QsVUFBVSxFQUFFLE1BQU0sR0FDakIsVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FPeEM7QUFFRCxtRUFBbUU7QUFDbkUsd0JBQWdCLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyx3QkFFekc7QUFFRCxnRUFBZ0U7QUFDaEUsd0JBQWdCLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQywyRUFFekcifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/schemas/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,KAAK,mBAAmB,CAAC,CAAC,IAAI,SAAS,SAAS,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,GACpD,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAEpC,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAS3D,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GACvC,EAAE,GACF,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACzC,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,GACnF,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAC1C,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,GACxG,KAAK,CAAC;AAEd,yEAAyE;AACzE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,GACpE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAC1F,KAAK;CACV,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;CAClE,CAAC;AAEF,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAOpE"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/schemas/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,KAAK,mBAAmB,CAAC,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAE/G,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAE7C,KAAK,oBAAoB,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,GACpE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAClF,KAAK;CACV,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;CAClE,CAAC;AAEF,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,EACjD,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,MAAM,GACjB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAOxC;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,wBAEzG;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2EAEzG"}
@@ -1,3 +1,9 @@
1
1
  /** Return whether an API schema defines a valid function schema for a given method name. */ export function schemaHasMethod(schema, methodName) {
2
- return typeof methodName === 'string' && Object.hasOwn(schema, methodName) && typeof schema[methodName].parameters === 'function' && typeof schema[methodName].returnType === 'function';
2
+ return typeof methodName === 'string' && Object.hasOwn(schema, methodName) && schema[methodName].def.input !== undefined && schema[methodName].def.output !== undefined;
3
+ }
4
+ /** Returns the parameter tuple schema for an API method schema. */ export function getSchemaParameters(schema) {
5
+ return schema.def.input;
6
+ }
7
+ /** Returns the return value schema for an API method schema. */ export function getSchemaReturnType(schema) {
8
+ return schema.def.output;
3
9
  }
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  /** Parses the given arguments using a tuple from the provided schemas. */
3
- export declare function parse<T extends [] | [z.ZodTypeAny, ...z.ZodTypeAny[]]>(args: IArguments, ...schemas: T): z.AssertArray<{ [k in keyof T]: T[k] extends z.ZodType<any, any, any> ? T[k]["_output"] : never; }>;
3
+ export declare function parse<T extends [] | [z.ZodTypeAny, ...z.ZodTypeAny[]]>(args: IArguments, ...schemas: T): [];
4
4
  /**
5
5
  * Parses the given arguments against a tuple, allowing empty for optional items.
6
- * @dev Zod doesn't like tuplues with optional items. See https://github.com/colinhacks/zod/discussions/949.
6
+ * @dev Zod doesn't like tuples with optional items. See https://github.com/colinhacks/zod/discussions/949.
7
7
  */
8
- export declare function parseWithOptionals<T extends z.AnyZodTuple>(args: any[], schema: T): Promise<T['_output']>;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJeEIsMEVBQTBFO0FBQzFFLHdCQUFnQixLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsdUdBRXRHO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FNekcifQ==
8
+ export declare function parseWithOptionals<T extends z.ZodTuple<any, any>>(args: any[], schema: T): Promise<z.output<T>>;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJeEIsMEVBQTBFO0FBQzFFLHdCQUFnQixLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsTUFJdEc7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBTy9HIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/schemas/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC,uGAEtG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAMzG"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/schemas/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC,MAItG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAO/G"}
@@ -1,14 +1,15 @@
1
1
  import { z } from 'zod';
2
2
  import { times } from '../collection/array.js';
3
3
  /** Parses the given arguments using a tuple from the provided schemas. */ export function parse(args, ...schemas) {
4
- return z.tuple(schemas).parse(args);
4
+ return schemas.length === 0 ? z.tuple([]).parse(args) : z.tuple(schemas).parse(args);
5
5
  }
6
6
  /**
7
7
  * Parses the given arguments against a tuple, allowing empty for optional items.
8
- * @dev Zod doesn't like tuplues with optional items. See https://github.com/colinhacks/zod/discussions/949.
8
+ * @dev Zod doesn't like tuples with optional items. See https://github.com/colinhacks/zod/discussions/949.
9
9
  */ export function parseWithOptionals(args, schema) {
10
- const missingCount = schema.items.length - args.length;
11
- const optionalCount = schema.items.filter(isOptional).length;
10
+ const items = schema.def.items;
11
+ const missingCount = items.length - args.length;
12
+ const optionalCount = items.filter(isOptional).length;
12
13
  const toParse = missingCount > 0 && missingCount <= optionalCount ? args.concat(times(missingCount, ()=>undefined)) : args;
13
14
  return schema.parseAsync(toParse);
14
15
  }
@@ -17,6 +18,6 @@ function isOptional(schema) {
17
18
  return schema.isOptional();
18
19
  } catch {
19
20
  // See https://github.com/colinhacks/zod/issues/1911
20
- return schema._def.typeName === 'ZodOptional';
21
+ return schema.def.type === 'optional';
21
22
  }
22
23
  }