@geekmidas/constructs 10.0.0-alpha.3 → 10.0.0-alpha.30

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 (341) hide show
  1. package/README.md +52 -3
  2. package/dist/{Construct-Ct8nalEi.d.mts → Construct-DTqYvkPG.d.cts} +11 -13
  3. package/dist/Construct-DTqYvkPG.d.cts.map +1 -0
  4. package/dist/{Construct-BD5neF7w.mjs → Construct-Detz65RA.mjs} +31 -29
  5. package/dist/Construct-Detz65RA.mjs.map +1 -0
  6. package/dist/{Construct-C0ijr2qp.d.cts → Construct-pVadmURD.d.mts} +10 -12
  7. package/dist/Construct-pVadmURD.d.mts.map +1 -0
  8. package/dist/{Construct-CyS3RpTL.cjs → Construct-yG9Sw-5p.cjs} +51 -43
  9. package/dist/Construct-yG9Sw-5p.cjs.map +1 -0
  10. package/dist/{Cron-ByxdOfpE.d.mts → Cron-B_iuyNxr.d.mts} +17 -6
  11. package/dist/Cron-B_iuyNxr.d.mts.map +1 -0
  12. package/dist/{Cron-Wqh464aO.d.cts → Cron-CA2oa2nC.d.cts} +16 -5
  13. package/dist/Cron-CA2oa2nC.d.cts.map +1 -0
  14. package/dist/{CronBuilder-BL0AP6fs.d.mts → CronBuilder-BIKCLWu7.d.mts} +7 -10
  15. package/dist/CronBuilder-BIKCLWu7.d.mts.map +1 -0
  16. package/dist/{CronBuilder-BmABazzH.mjs → CronBuilder-BRkzUOAs.mjs} +35 -17
  17. package/dist/CronBuilder-BRkzUOAs.mjs.map +1 -0
  18. package/dist/{CronBuilder-BqpEzMPQ.d.cts → CronBuilder-B_KqaodP.d.cts} +6 -9
  19. package/dist/CronBuilder-B_KqaodP.d.cts.map +1 -0
  20. package/dist/{CronBuilder-CkXPJiGO.cjs → CronBuilder-BbnT7tqo.cjs} +45 -27
  21. package/dist/CronBuilder-BbnT7tqo.cjs.map +1 -0
  22. package/dist/{Endpoint-2Wg7T7Cq.d.mts → Endpoint-BojvdQoh.d.mts} +63 -84
  23. package/dist/Endpoint-BojvdQoh.d.mts.map +1 -0
  24. package/dist/{Endpoint-VIOpSo0S.mjs → Endpoint-DO332Dnm.mjs} +117 -109
  25. package/dist/Endpoint-DO332Dnm.mjs.map +1 -0
  26. package/dist/{Endpoint-BiaaMEn_.cjs → Endpoint-QKuFg5gs.cjs} +145 -131
  27. package/dist/Endpoint-QKuFg5gs.cjs.map +1 -0
  28. package/dist/{Endpoint-CH9Fn1AD.d.cts → Endpoint-xNGuv2Fq.d.cts} +61 -82
  29. package/dist/Endpoint-xNGuv2Fq.d.cts.map +1 -0
  30. package/dist/{EndpointFactory-DTTCkGEL.mjs → EndpointFactory-B9HAjDAP.mjs} +26 -32
  31. package/dist/EndpointFactory-B9HAjDAP.mjs.map +1 -0
  32. package/dist/{EndpointFactory-ChxLZllA.cjs → EndpointFactory-BmO0WnXE.cjs} +63 -69
  33. package/dist/EndpointFactory-BmO0WnXE.cjs.map +1 -0
  34. package/dist/{index-BxHDdy6a.d.mts → EndpointFactory-CaYTrUOO.d.mts} +12 -92
  35. package/dist/EndpointFactory-CaYTrUOO.d.mts.map +1 -0
  36. package/dist/{index-V2nksZIJ.d.cts → EndpointFactory-DyT1yOJL.d.cts} +10 -90
  37. package/dist/EndpointFactory-DyT1yOJL.d.cts.map +1 -0
  38. package/dist/{HonoEndpointAdaptor-NKQQQbBY.mjs → HonoEndpointAdaptor-CiqAZ5Mt.mjs} +40 -47
  39. package/dist/{HonoEndpointAdaptor-D233Jvpk.cjs.map → HonoEndpointAdaptor-CiqAZ5Mt.mjs.map} +1 -1
  40. package/dist/{HonoEndpointAdaptor-D233Jvpk.cjs → HonoEndpointAdaptor-DoEQdC3r.cjs} +48 -52
  41. package/dist/HonoEndpointAdaptor-DoEQdC3r.cjs.map +1 -0
  42. package/dist/Queue-B7yRXQmL.cjs +124 -0
  43. package/dist/Queue-B7yRXQmL.cjs.map +1 -0
  44. package/dist/{Queue-D7ZuwBhy.d.cts → Queue-Bhzi2WQC.d.cts} +8 -9
  45. package/dist/Queue-Bhzi2WQC.d.cts.map +1 -0
  46. package/dist/{Queue-gVGfi2Yk.d.mts → Queue-BoUA-e83.d.mts} +9 -10
  47. package/dist/Queue-BoUA-e83.d.mts.map +1 -0
  48. package/dist/Queue-DpKTLl6E.mjs +119 -0
  49. package/dist/Queue-DpKTLl6E.mjs.map +1 -0
  50. package/dist/{Subscriber-2mEi0ImH.d.cts → Subscriber-CIO3pwji.d.mts} +7 -8
  51. package/dist/Subscriber-CIO3pwji.d.mts.map +1 -0
  52. package/dist/{Subscriber-xTJ9ayPN.d.mts → Subscriber-DQCaiOXF.d.cts} +7 -8
  53. package/dist/Subscriber-DQCaiOXF.d.cts.map +1 -0
  54. package/dist/{SubscriberBuilder-BjkbeT9l.mjs → SubscriberBuilder-B4YRTBng.mjs} +16 -10
  55. package/dist/SubscriberBuilder-B4YRTBng.mjs.map +1 -0
  56. package/dist/{SubscriberBuilder-Dptmo-1A.d.mts → SubscriberBuilder-C2FRfd26.d.mts} +8 -11
  57. package/dist/SubscriberBuilder-C2FRfd26.d.mts.map +1 -0
  58. package/dist/{SubscriberBuilder-4OPehf2R.cjs → SubscriberBuilder-C2bCOuPT.cjs} +28 -23
  59. package/dist/SubscriberBuilder-C2bCOuPT.cjs.map +1 -0
  60. package/dist/{SubscriberBuilder-waNhzjSM.d.cts → SubscriberBuilder-CjDGSTZc.d.cts} +7 -10
  61. package/dist/SubscriberBuilder-CjDGSTZc.d.cts.map +1 -0
  62. package/dist/Topic-Ct3Le8Wt.mjs +103 -0
  63. package/dist/Topic-Ct3Le8Wt.mjs.map +1 -0
  64. package/dist/Topic-D5rlM9wS.cjs +108 -0
  65. package/dist/Topic-D5rlM9wS.cjs.map +1 -0
  66. package/dist/{Topic-19QeHBIR.d.cts → Topic-D6blllEn.d.cts} +5 -7
  67. package/dist/Topic-D6blllEn.d.cts.map +1 -0
  68. package/dist/{Topic-DuFeqkBh.d.mts → Topic-DVvheJ_-.d.mts} +6 -8
  69. package/dist/Topic-DVvheJ_-.d.mts.map +1 -0
  70. package/dist/adaptors/aws.cjs +87 -106
  71. package/dist/adaptors/aws.cjs.map +1 -1
  72. package/dist/adaptors/aws.d.cts +14 -27
  73. package/dist/adaptors/aws.d.cts.map +1 -1
  74. package/dist/adaptors/aws.d.mts +16 -29
  75. package/dist/adaptors/aws.d.mts.map +1 -1
  76. package/dist/adaptors/aws.mjs +60 -81
  77. package/dist/adaptors/aws.mjs.map +1 -1
  78. package/dist/adaptors/hono.cjs +3 -10
  79. package/dist/adaptors/hono.d.cts +5 -13
  80. package/dist/adaptors/hono.d.cts.map +1 -1
  81. package/dist/adaptors/hono.d.mts +7 -15
  82. package/dist/adaptors/hono.d.mts.map +1 -1
  83. package/dist/adaptors/hono.mjs +2 -10
  84. package/dist/adaptors/testing.cjs +396 -82
  85. package/dist/adaptors/testing.cjs.map +1 -1
  86. package/dist/adaptors/testing.d.cts +150 -33
  87. package/dist/adaptors/testing.d.cts.map +1 -1
  88. package/dist/adaptors/testing.d.mts +151 -34
  89. package/dist/adaptors/testing.d.mts.map +1 -1
  90. package/dist/adaptors/testing.mjs +368 -63
  91. package/dist/adaptors/testing.mjs.map +1 -1
  92. package/dist/auth-Bmo1wSQF.d.cts +177 -0
  93. package/dist/auth-Bmo1wSQF.d.cts.map +1 -0
  94. package/dist/auth-CJ5dp7T7.d.mts +177 -0
  95. package/dist/auth-CJ5dp7T7.d.mts.map +1 -0
  96. package/dist/auth.cjs +113 -28
  97. package/dist/auth.cjs.map +1 -1
  98. package/dist/auth.d.cts +2 -108
  99. package/dist/auth.d.mts +2 -108
  100. package/dist/auth.mjs +103 -20
  101. package/dist/auth.mjs.map +1 -1
  102. package/dist/{cache-BrRz3fEB.d.mts → cache-B2s0b-ss.d.mts} +3 -6
  103. package/dist/cache-B2s0b-ss.d.mts.map +1 -0
  104. package/dist/{cache-BtZY_tHe.d.cts → cache-CYe2Kzjc.d.cts} +3 -6
  105. package/dist/cache-CYe2Kzjc.d.cts.map +1 -0
  106. package/dist/cache.cjs +68 -2
  107. package/dist/cache.cjs.map +1 -0
  108. package/dist/cache.d.cts +1 -2
  109. package/dist/cache.d.mts +1 -2
  110. package/dist/cache.mjs +67 -2
  111. package/dist/cache.mjs.map +1 -0
  112. package/dist/{clone-DblgEZZa.mjs → clone-EKNovYHu.mjs} +3 -3
  113. package/dist/clone-EKNovYHu.mjs.map +1 -0
  114. package/dist/{clone-Dy0cR2SZ.cjs → clone-UGJpvQnL.cjs} +7 -8
  115. package/dist/clone-UGJpvQnL.cjs.map +1 -0
  116. package/dist/{construct-interface-g5GM5pwR.d.mts → construct-interface-D2gesxos.d.mts} +28 -10
  117. package/dist/construct-interface-D2gesxos.d.mts.map +1 -0
  118. package/dist/{construct-interface-D9d4Gm4p.d.cts → construct-interface-DPusCUSQ.d.cts} +28 -10
  119. package/dist/construct-interface-DPusCUSQ.d.cts.map +1 -0
  120. package/dist/construct-interface.cjs +116 -7
  121. package/dist/construct-interface.cjs.map +1 -0
  122. package/dist/construct-interface.d.cts +2 -2
  123. package/dist/construct-interface.d.mts +2 -2
  124. package/dist/construct-interface.mjs +108 -2
  125. package/dist/construct-interface.mjs.map +1 -0
  126. package/dist/credential.cjs +43 -9
  127. package/dist/credential.cjs.map +1 -1
  128. package/dist/credential.d.cts +5 -8
  129. package/dist/credential.d.cts.map +1 -1
  130. package/dist/credential.d.mts +5 -8
  131. package/dist/credential.d.mts.map +1 -1
  132. package/dist/credential.mjs +36 -2
  133. package/dist/credential.mjs.map +1 -1
  134. package/dist/crons/index.cjs +68 -10
  135. package/dist/crons/index.cjs.map +1 -1
  136. package/dist/crons/index.d.cts +32 -14
  137. package/dist/crons/index.d.cts.map +1 -1
  138. package/dist/crons/index.d.mts +32 -14
  139. package/dist/crons/index.d.mts.map +1 -1
  140. package/dist/crons/index.mjs +66 -10
  141. package/dist/crons/index.mjs.map +1 -1
  142. package/dist/database/kysely.cjs +40 -15
  143. package/dist/database/kysely.cjs.map +1 -1
  144. package/dist/database/kysely.d.cts +2 -152
  145. package/dist/database/kysely.d.mts +2 -152
  146. package/dist/database/kysely.mjs +28 -5
  147. package/dist/database/kysely.mjs.map +1 -1
  148. package/dist/email.cjs +25 -12
  149. package/dist/email.cjs.map +1 -1
  150. package/dist/email.d.cts +3 -7
  151. package/dist/email.d.cts.map +1 -1
  152. package/dist/email.d.mts +3 -7
  153. package/dist/email.d.mts.map +1 -1
  154. package/dist/email.mjs +16 -3
  155. package/dist/email.mjs.map +1 -1
  156. package/dist/endpoints/index.cjs +7 -10
  157. package/dist/endpoints/index.d.cts +60 -7
  158. package/dist/endpoints/index.d.cts.map +1 -0
  159. package/dist/endpoints/index.d.mts +60 -7
  160. package/dist/endpoints/index.d.mts.map +1 -0
  161. package/dist/endpoints/index.mjs +5 -10
  162. package/dist/file-server.cjs +42 -10
  163. package/dist/file-server.cjs.map +1 -1
  164. package/dist/file-server.d.cts +6 -10
  165. package/dist/file-server.d.cts.map +1 -1
  166. package/dist/file-server.d.mts +6 -10
  167. package/dist/file-server.d.mts.map +1 -1
  168. package/dist/file-server.mjs +34 -2
  169. package/dist/file-server.mjs.map +1 -1
  170. package/dist/functions/index.cjs +2 -6
  171. package/dist/functions/index.d.cts +2 -4
  172. package/dist/functions/index.d.mts +2 -4
  173. package/dist/functions/index.mjs +2 -6
  174. package/dist/{functions-Bd3TPxid.cjs → functions-DKN6aQWJ.cjs} +325 -268
  175. package/dist/functions-DKN6aQWJ.cjs.map +1 -0
  176. package/dist/{functions-Cxbo-pEd.mjs → functions-DlFm8HmH.mjs} +298 -238
  177. package/dist/functions-DlFm8HmH.mjs.map +1 -0
  178. package/dist/{index-JSf9xNIJ.d.cts → index-BI23K3wy.d.cts} +17 -22
  179. package/dist/index-BI23K3wy.d.cts.map +1 -0
  180. package/dist/index-CeEtxDmK.d.cts +79 -0
  181. package/dist/index-CeEtxDmK.d.cts.map +1 -0
  182. package/dist/index-CeEtxDmK.d.mts +79 -0
  183. package/dist/index-CeEtxDmK.d.mts.map +1 -0
  184. package/dist/index-fnpjXiA-.d.mts +26 -0
  185. package/dist/index-fnpjXiA-.d.mts.map +1 -0
  186. package/dist/index-tE_119SX.d.cts +26 -0
  187. package/dist/index-tE_119SX.d.cts.map +1 -0
  188. package/dist/{index-CubPzHd9.d.mts → index-yb3fXNyH.d.mts} +18 -23
  189. package/dist/index-yb3fXNyH.d.mts.map +1 -0
  190. package/dist/index.cjs +3 -3
  191. package/dist/index.d.cts +4 -4
  192. package/dist/index.d.mts +4 -4
  193. package/dist/index.mjs +2 -3
  194. package/dist/kysely-CEVXacPN.d.cts +159 -0
  195. package/dist/kysely-CEVXacPN.d.cts.map +1 -0
  196. package/dist/kysely-mcTdPNhl.d.mts +159 -0
  197. package/dist/kysely-mcTdPNhl.d.mts.map +1 -0
  198. package/dist/{lazyAccessors-BoJN3SMd.mjs → lazyAccessors-BHtcqgz2.mjs} +22 -25
  199. package/dist/lazyAccessors-BHtcqgz2.mjs.map +1 -0
  200. package/dist/{lazyAccessors-e3j2oE2m.cjs → lazyAccessors-Dx9NLwJZ.cjs} +72 -76
  201. package/dist/lazyAccessors-Dx9NLwJZ.cjs.map +1 -0
  202. package/dist/object-storage.cjs +18 -10
  203. package/dist/object-storage.cjs.map +1 -1
  204. package/dist/object-storage.d.cts +3 -7
  205. package/dist/object-storage.d.cts.map +1 -1
  206. package/dist/object-storage.d.mts +3 -7
  207. package/dist/object-storage.d.mts.map +1 -1
  208. package/dist/object-storage.mjs +11 -3
  209. package/dist/object-storage.mjs.map +1 -1
  210. package/dist/{processAudits-Dmts9H_b.mjs → processAudits-BpRlPQMW.mjs} +16 -19
  211. package/dist/processAudits-BpRlPQMW.mjs.map +1 -0
  212. package/dist/{processAudits-CGqttuXm.cjs → processAudits-D_2W5x8k.cjs} +26 -30
  213. package/dist/processAudits-D_2W5x8k.cjs.map +1 -0
  214. package/dist/queue/index.cjs +9 -118
  215. package/dist/queue/index.cjs.map +1 -1
  216. package/dist/queue/index.d.cts +8 -15
  217. package/dist/queue/index.d.cts.map +1 -1
  218. package/dist/queue/index.d.mts +8 -15
  219. package/dist/queue/index.d.mts.map +1 -1
  220. package/dist/queue/index.mjs +5 -114
  221. package/dist/queue/index.mjs.map +1 -1
  222. package/dist/rest-api.cjs +88 -62
  223. package/dist/rest-api.cjs.map +1 -1
  224. package/dist/rest-api.d.cts +62 -60
  225. package/dist/rest-api.d.cts.map +1 -1
  226. package/dist/rest-api.d.mts +62 -60
  227. package/dist/rest-api.d.mts.map +1 -1
  228. package/dist/rest-api.mjs +80 -54
  229. package/dist/rest-api.mjs.map +1 -1
  230. package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
  231. package/dist/site.cjs +33 -9
  232. package/dist/site.cjs.map +1 -1
  233. package/dist/site.d.cts +11 -22
  234. package/dist/site.d.cts.map +1 -1
  235. package/dist/site.d.mts +11 -22
  236. package/dist/site.d.mts.map +1 -1
  237. package/dist/site.mjs +29 -5
  238. package/dist/site.mjs.map +1 -1
  239. package/dist/subscribers/index.cjs +2 -11
  240. package/dist/subscribers/index.d.cts +3 -14
  241. package/dist/subscribers/index.d.mts +3 -14
  242. package/dist/subscribers/index.mjs +2 -11
  243. package/dist/surfaceEnv-CNimK76p.cjs +56 -0
  244. package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
  245. package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
  246. package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
  247. package/dist/{telemetry-C3L0iS28.d.cts → telemetry-DGcFlVpB.d.cts} +2 -5
  248. package/dist/telemetry-DGcFlVpB.d.cts.map +1 -0
  249. package/dist/{telemetry-D7bVFLGi.d.mts → telemetry-DGcFlVpB.d.mts} +2 -5
  250. package/dist/telemetry-DGcFlVpB.d.mts.map +1 -0
  251. package/dist/topic/index.cjs +8 -107
  252. package/dist/topic/index.cjs.map +1 -1
  253. package/dist/topic/index.d.cts +3 -32
  254. package/dist/topic/index.d.mts +3 -32
  255. package/dist/topic/index.mjs +4 -103
  256. package/dist/topic/index.mjs.map +1 -1
  257. package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
  258. package/dist/types-DMuSQeLL.d.cts.map +1 -0
  259. package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
  260. package/dist/types-DMuSQeLL.d.mts.map +1 -0
  261. package/dist/types.d.cts +1 -1
  262. package/dist/types.d.mts +1 -1
  263. package/dist/types.mjs +1 -0
  264. package/dist/worker.cjs +109 -35
  265. package/dist/worker.cjs.map +1 -1
  266. package/dist/worker.d.cts +87 -42
  267. package/dist/worker.d.cts.map +1 -1
  268. package/dist/worker.d.mts +87 -42
  269. package/dist/worker.d.mts.map +1 -1
  270. package/dist/worker.mjs +104 -30
  271. package/dist/worker.mjs.map +1 -1
  272. package/package.json +59 -55
  273. package/dist/Construct-BD5neF7w.mjs.map +0 -1
  274. package/dist/Construct-C0ijr2qp.d.cts.map +0 -1
  275. package/dist/Construct-Ct8nalEi.d.mts.map +0 -1
  276. package/dist/Construct-CyS3RpTL.cjs.map +0 -1
  277. package/dist/Cron-ByxdOfpE.d.mts.map +0 -1
  278. package/dist/Cron-Wqh464aO.d.cts.map +0 -1
  279. package/dist/CronBuilder-BL0AP6fs.d.mts.map +0 -1
  280. package/dist/CronBuilder-BmABazzH.mjs.map +0 -1
  281. package/dist/CronBuilder-BqpEzMPQ.d.cts.map +0 -1
  282. package/dist/CronBuilder-CkXPJiGO.cjs.map +0 -1
  283. package/dist/Endpoint-2Wg7T7Cq.d.mts.map +0 -1
  284. package/dist/Endpoint-BiaaMEn_.cjs.map +0 -1
  285. package/dist/Endpoint-CH9Fn1AD.d.cts.map +0 -1
  286. package/dist/Endpoint-VIOpSo0S.mjs.map +0 -1
  287. package/dist/EndpointFactory-ChxLZllA.cjs.map +0 -1
  288. package/dist/EndpointFactory-DTTCkGEL.mjs.map +0 -1
  289. package/dist/HonoEndpointAdaptor-NKQQQbBY.mjs.map +0 -1
  290. package/dist/Queue-D7ZuwBhy.d.cts.map +0 -1
  291. package/dist/Queue-gVGfi2Yk.d.mts.map +0 -1
  292. package/dist/Subscriber-2mEi0ImH.d.cts.map +0 -1
  293. package/dist/Subscriber-xTJ9ayPN.d.mts.map +0 -1
  294. package/dist/SubscriberBuilder-4OPehf2R.cjs.map +0 -1
  295. package/dist/SubscriberBuilder-BjkbeT9l.mjs.map +0 -1
  296. package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +0 -1
  297. package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +0 -1
  298. package/dist/Topic-19QeHBIR.d.cts.map +0 -1
  299. package/dist/Topic-DuFeqkBh.d.mts.map +0 -1
  300. package/dist/auth.d.cts.map +0 -1
  301. package/dist/auth.d.mts.map +0 -1
  302. package/dist/cache-0ANvRQnD.mjs +0 -51
  303. package/dist/cache-0ANvRQnD.mjs.map +0 -1
  304. package/dist/cache-3WSvAulx.cjs +0 -57
  305. package/dist/cache-3WSvAulx.cjs.map +0 -1
  306. package/dist/cache-BrRz3fEB.d.mts.map +0 -1
  307. package/dist/cache-BtZY_tHe.d.cts.map +0 -1
  308. package/dist/clone-DblgEZZa.mjs.map +0 -1
  309. package/dist/clone-Dy0cR2SZ.cjs.map +0 -1
  310. package/dist/construct-interface-BfjcOD_E.cjs +0 -117
  311. package/dist/construct-interface-BfjcOD_E.cjs.map +0 -1
  312. package/dist/construct-interface-D9d4Gm4p.d.cts.map +0 -1
  313. package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
  314. package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
  315. package/dist/construct-interface-g5GM5pwR.d.mts.map +0 -1
  316. package/dist/database/kysely.d.cts.map +0 -1
  317. package/dist/database/kysely.d.mts.map +0 -1
  318. package/dist/functions-Bd3TPxid.cjs.map +0 -1
  319. package/dist/functions-Cxbo-pEd.mjs.map +0 -1
  320. package/dist/index-BxHDdy6a.d.mts.map +0 -1
  321. package/dist/index-CubPzHd9.d.mts.map +0 -1
  322. package/dist/index-JSf9xNIJ.d.cts.map +0 -1
  323. package/dist/index-V2nksZIJ.d.cts.map +0 -1
  324. package/dist/lazyAccessors-BoJN3SMd.mjs.map +0 -1
  325. package/dist/lazyAccessors-e3j2oE2m.cjs.map +0 -1
  326. package/dist/processAudits-CGqttuXm.cjs.map +0 -1
  327. package/dist/processAudits-Dmts9H_b.mjs.map +0 -1
  328. package/dist/subscribers/index.cjs.map +0 -1
  329. package/dist/subscribers/index.d.cts.map +0 -1
  330. package/dist/subscribers/index.d.mts.map +0 -1
  331. package/dist/subscribers/index.mjs.map +0 -1
  332. package/dist/surfaceEnv-BFXEms2f.cjs +0 -39
  333. package/dist/surfaceEnv-BFXEms2f.cjs.map +0 -1
  334. package/dist/surfaceEnv-C3Ktahea.mjs +0 -27
  335. package/dist/surfaceEnv-C3Ktahea.mjs.map +0 -1
  336. package/dist/telemetry-C3L0iS28.d.cts.map +0 -1
  337. package/dist/telemetry-D7bVFLGi.d.mts.map +0 -1
  338. package/dist/topic/index.d.cts.map +0 -1
  339. package/dist/topic/index.d.mts.map +0 -1
  340. package/dist/types-BlAkSuGI.d.cts.map +0 -1
  341. package/dist/types-aKksMEWL.d.mts.map +0 -1
@@ -1,14 +1,25 @@
1
- import { Function, FunctionHandler } from "./index-JSf9xNIJ.cjs";
1
+ import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
2
+ import { a as FunctionHandler, r as Function } from "./index-BI23K3wy.cjs";
2
3
  import { EventPublisher } from "@geekmidas/events";
3
4
  import { Logger } from "@geekmidas/logger";
4
5
  import { ComposableStandardSchema } from "@geekmidas/schema";
5
6
  import { Service } from "@geekmidas/services";
6
- import { StandardSchemaV1 } from "@standard-schema/spec";
7
7
  import { AuditableAction } from "@geekmidas/audit";
8
-
9
8
  //#region src/crons/Cron.d.ts
10
9
  declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName, AuditableAction<string, unknown>, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>> {
11
10
  protected _schedule?: ScheduleExpression | undefined;
11
+ /**
12
+ * Where this cron's schedule lives when a server runs it.
13
+ *
14
+ * Carried from the worker that built it, which declared it once with
15
+ * `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule
16
+ * and nothing in this process fires anything.
17
+ *
18
+ * A service rather than the construct, because what reads it is service
19
+ * discovery in the generated server — which registers services, and failed
20
+ * on the construct with `service.register is not a function`.
21
+ */
22
+ scheduleStore?: Service<string, unknown>;
12
23
  static isCron(obj: any): obj is Cron<any, any, any, any>;
13
24
  constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: any[], memorySize?: number, databaseService?: Service<TDatabaseServiceName, TDatabase>,
14
25
  /**
@@ -27,5 +38,5 @@ type CronWeekday = '*' | number | `${number}` | `${number}-${number}` | `${numbe
27
38
  type CronExpression = `cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;
28
39
  type ScheduleExpression = RateExpression | CronExpression;
29
40
  //#endregion
30
- export { Cron, CronExpression, RateExpression, ScheduleExpression };
31
- //# sourceMappingURL=Cron-Wqh464aO.d.cts.map
41
+ export { ScheduleExpression as i, CronExpression as n, RateExpression as r, Cron as t };
42
+ //# sourceMappingURL=Cron-CA2oa2nC.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cron-CA2oa2nC.d.cts","names":[],"sources":["../src/crons/Cron.ts"],"mappings":";;;;;;;;cAUa,KACZ,eAAe,kDACf,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,wBAAwB,6CACxB,oDACA,uBACA,sDACS,SACT,QACA,WACA,SACA,WACA,iBACA,+CAGA,WACA,sBACA,kCACA,gBAAgB,QAAQ,WAAW,SAAS,WAAW;YA0B5C,YAAY;;;;;;;;;;;;EAbvB,gBAAgB;SAET,OAAO,WAAW,OAAO;EAQhC,YACC,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,YAC3D,kBACU,YAAY,gCACtB,QAAQ,QACR,eAAe,WACf,WAAU,WACV,SAAS,SACT,mBAAmB,QAAQ,4BAA4B,kBACvD,gBACA,qBACA,kBAAkB,QAAQ,sBAAsB,YAKhD;;;;;EAAA;MAmBG,YAAY;;KAKL;KAEP;KAUA;KAUA;KAUA;KAqBA;KAiBO,yBACH,cAAc,YAAY,WAAW,aAAa;KAE/C,qBAAqB,iBAAiB"}
@@ -1,12 +1,11 @@
1
- import { FunctionBuilder, FunctionHandler } from "./index-CubPzHd9.mjs";
2
- import { Consumable, ServicesOf } from "./construct-interface-g5GM5pwR.mjs";
3
- import { Cron, ScheduleExpression } from "./Cron-ByxdOfpE.mjs";
4
- import { Service } from "@geekmidas/services";
1
+ import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
2
+ import { a as FunctionHandler, t as FunctionBuilder } from "./index-yb3fXNyH.mjs";
3
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-D2gesxos.mjs";
4
+ import { i as ScheduleExpression, t as Cron } from "./Cron-B_iuyNxr.mjs";
5
5
  import { EventPublisher } from "@geekmidas/events";
6
+ import { Service } from "@geekmidas/services";
6
7
  import { Logger } from "@geekmidas/logger";
7
8
  import { ComposableStandardSchema } from "@geekmidas/schema";
8
- import { StandardSchemaV1 } from "@standard-schema/spec";
9
-
10
9
  //#region src/crons/CronBuilder.d.ts
11
10
  declare class CronBuilder<TInput extends ComposableStandardSchema, TServices extends Service[], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName> {
12
11
  private _schedule?;
@@ -37,8 +36,6 @@ declare class CronBuilder<TInput extends ComposableStandardSchema, TServices ext
37
36
  database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): CronBuilder<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, T, TName>;
38
37
  handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>): Cron<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, TDatabase, TDatabaseServiceName>;
39
38
  }
40
- //# sourceMappingURL=CronBuilder.d.ts.map
41
-
42
39
  //#endregion
43
- export { CronBuilder };
44
- //# sourceMappingURL=CronBuilder-BL0AP6fs.d.mts.map
40
+ export { CronBuilder as t };
41
+ //# sourceMappingURL=CronBuilder-BIKCLWu7.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronBuilder-BIKCLWu7.d.mts","names":[],"sources":["../src/crons/CronBuilder.ts"],"mappings":";;;;;;;;;cAoBa,YACZ,eAAe,0BACf,kBAAkB,WAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,wBAAwB,6CACxB,oDACA,uBACA,sDACS,gBACT,QACA,WACA,WACA,SACA,iBACA,+CAGA,WACA;UAEQ;EAER;EAIS,WAAW;EAIpB,SACC,aAAa,qBACX,YACF,QACA,WACA,SACA,WACA,iBACA,4BACA,WACA;EAKQ,MAAM,UAAU,0BACxB,QAAQ,IACN,YACF,GACA,WACA,SACA,WACA,iBACA,4BACA,WACA;EAgBQ,OAAO,UAAU,kBACzB,QAAQ,IACN,YACF,QACA,WACA,SACA,GACA,iBACA,4BACA,WACA;;;;;;;;;;;;EA2BQ,gBAAgB,mBAAmB,cAC3C,YAAY,IACV,YACF,YACI,cAAc,WAAW,KAC7B,SACA,WACA,iBACA,4BACA,WACA;EA6BQ,SAAS,UAAU,WAC3B,UAAU,IACR,YACF,YACI,cAAc,IAClB,SACA,WACA,iBACA,4BACA,WACA;EAmBQ,OAAO,UAAU,QACzB,QAAQ,IACN,YACF,QACA,WACA,GACA,WACA,iBACA,4BACA,WACA;EAgBQ,UAAU,UAAU,qBAAqB,sBACjD,WAAW,QAAQ,OAAO,KACxB,YACF,QACA,WACA,SACA,WACA,GACA,OACA,WACA;;;;;EAyBQ,SAAS,GAAG,sBACpB,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,YACF,QACA,WACA,SACA,WACA,iBACA,4BACA,GACA;EAyBQ,OACR,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,aACzD,KACF,QACA,WACA,SACA,WACA,iBACA,4BACA,WACA"}
@@ -1,29 +1,40 @@
1
- import { ConstructType, __toESM } from "./Construct-BD5neF7w.mjs";
2
- import { idsOf, serviceOf, servicesOf } from "./construct-interface-Z4CpS8tK.mjs";
3
- import { Function, FunctionBuilder, require_lodash } from "./functions-Cxbo-pEd.mjs";
4
- import { cloneWith } from "./clone-DblgEZZa.mjs";
5
-
1
+ import { o as __toESM } from "./Construct-Detz65RA.mjs";
2
+ import { edgesWith, idsOf, isConsumable, serviceOf, servicesOf } from "./construct-interface.mjs";
3
+ import { i as require_lodash_uniqby, n as Function, t as FunctionBuilder } from "./functions-DlFm8HmH.mjs";
4
+ import { t as cloneWith } from "./clone-EKNovYHu.mjs";
6
5
  //#region src/crons/Cron.ts
6
+ var import_lodash_uniqby = /* @__PURE__ */ __toESM(require_lodash_uniqby(), 1);
7
7
  var Cron = class extends Function {
8
+ _schedule;
9
+ /**
10
+ * Where this cron's schedule lives when a server runs it.
11
+ *
12
+ * Carried from the worker that built it, which declared it once with
13
+ * `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule
14
+ * and nothing in this process fires anything.
15
+ *
16
+ * A service rather than the construct, because what reads it is service
17
+ * discovery in the generated server — which registers services, and failed
18
+ * on the construct with `service.register is not a function`.
19
+ */
20
+ scheduleStore;
8
21
  static isCron(obj) {
9
- return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === ConstructType.Cron);
22
+ return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === "dev.geekmidas.function.cron");
10
23
  }
11
24
  constructor(fn, timeout, _schedule, input, outputSchema, services = [], logger, publisherService, events = [], memorySize, databaseService, constructs = []) {
12
- super(fn, timeout, ConstructType.Cron, input, outputSchema, services, logger, publisherService, events, memorySize, void 0, databaseService, constructs);
25
+ super(fn, timeout, "dev.geekmidas.function.cron", input, outputSchema, services, logger, publisherService, events, memorySize, void 0, databaseService, constructs);
13
26
  this._schedule = _schedule;
14
27
  }
15
28
  get schedule() {
16
29
  return this._schedule;
17
30
  }
18
31
  };
19
-
20
32
  //#endregion
21
33
  //#region src/crons/CronBuilder.ts
22
- var import_lodash = __toESM(require_lodash(), 1);
23
34
  var CronBuilder = class extends FunctionBuilder {
24
35
  _schedule;
25
36
  constructor() {
26
- super(ConstructType.Cron);
37
+ super("dev.geekmidas.function.cron");
27
38
  }
28
39
  memorySize(memorySize) {
29
40
  return cloneWith(this, { _memorySize: memorySize });
@@ -51,18 +62,21 @@ var CronBuilder = class extends FunctionBuilder {
51
62
  dependsOn(constructs) {
52
63
  const services = servicesOf(constructs);
53
64
  return cloneWith(this, {
54
- _services: (0, import_lodash.default)([...this._services, ...services], (s) => s.serviceName),
65
+ _services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName),
55
66
  _constructs: idsOf(constructs, this._constructs)
56
67
  });
57
68
  }
58
69
  services(services) {
59
- return cloneWith(this, { _services: (0, import_lodash.default)([...this._services, ...services], (s) => s.serviceName) });
70
+ return cloneWith(this, { _services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName) });
60
71
  }
61
72
  logger(logger) {
62
73
  return cloneWith(this, { _logger: logger });
63
74
  }
64
75
  publisher(publisher) {
65
- return cloneWith(this, { _publisher: publisher });
76
+ return cloneWith(this, {
77
+ _constructs: edgesWith(publisher, this._constructs),
78
+ _publisher: publisher
79
+ });
66
80
  }
67
81
  /**
68
82
  * Set the database service for this cron job.
@@ -70,15 +84,19 @@ var CronBuilder = class extends FunctionBuilder {
70
84
  */
71
85
  database(source) {
72
86
  const service = serviceOf(source);
73
- return cloneWith(this, { _databaseService: service });
87
+ return cloneWith(this, {
88
+ _databaseService: service,
89
+ ...isConsumable(source) ? { _constructs: idsOf([source], this._constructs) } : {}
90
+ });
74
91
  }
75
92
  handle(fn) {
76
93
  const cron = new Cron(fn, this._timeout, this._schedule, this.inputSchema, this.outputSchema, this._services, this._logger, this._publisher, this._events, this._memorySize, this._databaseService, this._constructs);
77
94
  cron.owner = this._owner;
95
+ cron.scheduleStore = this._scheduleStore ? serviceOf(this._scheduleStore) : void 0;
78
96
  return cron;
79
97
  }
80
98
  };
81
-
82
99
  //#endregion
83
- export { Cron, CronBuilder };
84
- //# sourceMappingURL=CronBuilder-BmABazzH.mjs.map
100
+ export { Cron as n, CronBuilder as t };
101
+
102
+ //# sourceMappingURL=CronBuilder-BRkzUOAs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronBuilder-BRkzUOAs.mjs","names":["uniqBy"],"sources":["../src/crons/Cron.ts","../src/crons/CronBuilder.ts"],"sourcesContent":["import type { AuditableAction } from '@geekmidas/audit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport { ConstructType } from '../Construct';\nimport { Function, type FunctionHandler } from '../functions';\n\nexport class Cron<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends Function<\n\tTInput,\n\tTServices,\n\tTLogger,\n\tOutSchema,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName,\n\tAuditableAction<string, unknown>,\n\tFunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>\n> {\n\t/**\n\t * Where this cron's schedule lives when a server runs it.\n\t *\n\t * Carried from the worker that built it, which declared it once with\n\t * `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule\n\t * and nothing in this process fires anything.\n\t *\n\t * A service rather than the construct, because what reads it is service\n\t * discovery in the generated server — which registers services, and failed\n\t * on the construct with `service.register is not a function`.\n\t */\n\tscheduleStore?: Service<string, unknown>;\n\n\tstatic isCron(obj: any): obj is Cron<any, any, any, any> {\n\t\treturn Boolean(\n\t\t\tobj &&\n\t\t\t\t(obj as Function).__IS_FUNCTION__ === true &&\n\t\t\t\tobj.type === ConstructType.Cron,\n\t\t);\n\t}\n\n\tconstructor(\n\t\tfn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,\n\t\ttimeout?: number,\n\t\tprotected _schedule?: ScheduleExpression,\n\t\tinput?: TInput,\n\t\toutputSchema?: OutSchema,\n\t\tservices: TServices = [] as unknown as TServices,\n\t\tlogger?: TLogger,\n\t\tpublisherService?: Service<TEventPublisherServiceName, TEventPublisher>,\n\t\tevents: any[] = [],\n\t\tmemorySize?: number,\n\t\tdatabaseService?: Service<TDatabaseServiceName, TDatabase>,\n\t\t/**\n\t\t * The construct ids `.dependsOn()` named — last, so no existing positional\n\t\t * argument moves.\n\t\t */\n\t\tconstructs: string[] = [],\n\t) {\n\t\tsuper(\n\t\t\tfn,\n\t\t\ttimeout,\n\t\t\tConstructType.Cron,\n\t\t\tinput,\n\t\t\toutputSchema,\n\t\t\tservices,\n\t\t\tlogger,\n\t\t\tpublisherService,\n\t\t\tevents,\n\t\t\tmemorySize,\n\t\t\tundefined, // auditorStorageService\n\t\t\tdatabaseService,\n\t\t\tconstructs,\n\t\t);\n\t}\n\n\tget schedule(): ScheduleExpression | undefined {\n\t\treturn this._schedule;\n\t}\n}\n\nexport type RateExpression = `rate(${string})`;\n\ntype CronMinute =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronHour =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronDay =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronMonth =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'JAN'\n\t| 'FEB'\n\t| 'MAR'\n\t| 'APR'\n\t| 'MAY'\n\t| 'JUN'\n\t| 'JUL'\n\t| 'AUG'\n\t| 'SEP'\n\t| 'OCT'\n\t| 'NOV'\n\t| 'DEC'\n\t| string; // Allow more complex patterns\n\ntype CronWeekday =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'SUN'\n\t| 'MON'\n\t| 'TUE'\n\t| 'WED'\n\t| 'THU'\n\t| 'FRI'\n\t| 'SAT'\n\t| `${string}-${string}` // Allow patterns like MON-FRI\n\t| string; // Allow more complex patterns\n\nexport type CronExpression =\n\t`cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;\n\nexport type ScheduleExpression = RateExpression | CronExpression;\n","import type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport uniqBy from 'lodash.uniqby';\nimport { ConstructType } from '../Construct';\nimport { cloneWith } from '../clone';\nimport {\n\ttype Consumable,\n\tedgesWith,\n\tidsOf,\n\tisConsumable,\n\ttype ServicesOf,\n\tserviceOf,\n\tservicesOf,\n} from '../construct-interface';\nimport { FunctionBuilder, type FunctionHandler } from '../functions';\nimport { Cron, type ScheduleExpression } from './Cron';\n\nexport class CronBuilder<\n\tTInput extends ComposableStandardSchema,\n\tTServices extends Service[],\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends FunctionBuilder<\n\tTInput,\n\tOutSchema,\n\tTServices,\n\tTLogger,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName\n> {\n\tprivate _schedule?: ScheduleExpression;\n\n\tconstructor() {\n\t\tsuper(ConstructType.Cron);\n\t}\n\n\toverride memorySize(memorySize: number): this {\n\t\treturn cloneWith(this, { _memorySize: memorySize });\n\t}\n\n\tschedule(\n\t\t_expression: ScheduleExpression,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, { _schedule: _expression });\n\t}\n\n\toverride input<T extends ComposableStandardSchema>(\n\t\tschema: T,\n\t): CronBuilder<\n\t\tT,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\tinputSchema: schema as unknown as TInput,\n\t\t}) as unknown as CronBuilder<\n\t\t\tT,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride output<T extends StandardSchemaV1>(\n\t\tschema: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tT,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\toutputSchema: schema as unknown as OutSchema,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tT,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Depend on constructs — a database, a bucket, a mail sender, a queue, a\n\t * topic.\n\t *\n\t * It records the edge and dissolves each construct's client into the\n\t * handler's service record under the construct's own id, so\n\t * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.\n\t *\n\t * Constructs only. A `Service` does not match the shape, which is what keeps\n\t * env sniffing confined to `.services()` and the explicit lift.\n\t */\n\toverride dependsOn<const T extends readonly Consumable[]>(\n\t\tconstructs: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, ...ServicesOf<T>],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\t// Both halves of the edge, from one call and one clone: the services the\n\t\t// handler runs with, and the ids the manifest records. Recording them\n\t\t// separately is what let them drift apart.\n\t\t//\n\t\t// `servicesOf` is the half that validates, so it runs first — recording\n\t\t// ids ahead of it left a caught `NotAConstruct` with `undefined` already\n\t\t// on a `string[]`.\n\t\tconst services = servicesOf(constructs) as unknown as Service[];\n\n\t\treturn cloneWith(this, {\n\t\t\t_services: uniqBy(\n\t\t\t\t[...this._services, ...services],\n\t\t\t\t(s: Service) => s.serviceName,\n\t\t\t),\n\t\t\t_constructs: idsOf(constructs, this._constructs),\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, ...ServicesOf<T>],\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride services<T extends Service[]>(\n\t\tservices: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, ...T],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t_services: uniqBy(\n\t\t\t\t[...this._services, ...services],\n\t\t\t\t(s) => s.serviceName,\n\t\t\t) as TServices,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, ...T],\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride logger<T extends Logger>(\n\t\tlogger: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tT,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t_logger: logger as unknown as TLogger,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tT,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride publisher<T extends EventPublisher<any>, TName extends string>(\n\t\tpublisher: Service<TName, T>,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tT,\n\t\tTName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t// The topic a derived publisher stands for is an edge like `.dependsOn()`.\n\t\t\t_constructs: edgesWith(publisher, this._constructs),\n\t\t\t_publisher: publisher as unknown as Service<\n\t\t\t\tTEventPublisherServiceName,\n\t\t\t\tTEventPublisher\n\t\t\t>,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Set the database service for this cron job.\n\t * The database will be available in the handler context as `db`.\n\t */\n\toverride database<T, TName extends string>(\n\t\tsource: Consumable<TName, T> | Service<TName, T>,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tT,\n\t\tTName\n\t> {\n\t\tconst service = serviceOf(source);\n\n\t\treturn cloneWith(this, {\n\t\t\t_databaseService: service as unknown as Service<\n\t\t\t\tTDatabaseServiceName,\n\t\t\t\tTDatabase\n\t\t\t>,\n\t\t\t// The edge, as `.dependsOn()` records one — see EndpointFactory.\n\t\t\t...(isConsumable(source)\n\t\t\t\t? { _constructs: idsOf([source], this._constructs) }\n\t\t\t\t: {}),\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tT,\n\t\t\tTName\n\t\t>;\n\t}\n\n\toverride handle(\n\t\tfn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,\n\t): Cron<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tconst cron = new Cron(\n\t\t\tfn,\n\t\t\tthis._timeout,\n\t\t\tthis._schedule,\n\t\t\tthis.inputSchema,\n\t\t\tthis.outputSchema,\n\t\t\tthis._services,\n\t\t\tthis._logger,\n\t\t\tthis._publisher,\n\t\t\tthis._events,\n\t\t\tthis._memorySize,\n\t\t\tthis._databaseService,\n\t\t\tthis._constructs,\n\t\t);\n\n\t\t// Which process runs it. Carried from the factory rather than inferred\n\t\t// from the directory the file happens to sit in.\n\t\tcron.owner = this._owner;\n\n\t\t// And where that process keeps the schedule, when a server is what runs\n\t\t// it. Declared once on the worker rather than repeated per cron.\n\t\tcron.scheduleStore = this._scheduleStore\n\t\t\t? serviceOf(this._scheduleStore as Consumable<string, unknown>)\n\t\t\t: undefined;\n\n\t\t// No reset. `.handle()` reads this builder and leaves it alone, so a\n\t\t// configured base — `const fn = f.logger(log).timeout(60_000)` — keeps\n\t\t// its configuration for every construct built from it. The reset that\n\t\t// used to be here wiped the base on first use, which made a base usable\n\t\t// exactly once, and quietly reverted the logger to the default.\n\n\t\treturn cron;\n\t}\n}\n"],"mappings":";;;;;;AAUA,IAAa,OAAb,cASU,SAaR;CAyBU;;;;;;;;;;;;CAbX;CAEA,OAAO,OAAO,KAA2C;EACxD,OAAO,QACN,OACE,IAAiB,oBAAoB,QACtC,IAAI,SAAA,6BACN;CACD;CAEA,YACC,IACA,SACA,WACA,OACA,cACA,WAAsB,CAAC,GACvB,QACA,kBACA,SAAgB,CAAC,GACjB,YACA,iBAKA,aAAuB,CAAC,GACvB;EACD,MACC,IACA,SAAA,+BAEA,OACA,cACA,UACA,QACA,kBACA,QACA,YACA,KAAA,GACA,iBACA,UACD;EA7BU,KAAA,YAAA;CA8BX;CAEA,IAAI,WAA2C;EAC9C,OAAO,KAAK;CACb;AACD;;;ACxEA,IAAa,cAAb,cASU,gBAWR;CACD;CAEA,cAAc;EACb,MAAA,6BAAwB;CACzB;CAEA,WAAoB,YAA0B;EAC7C,OAAO,UAAU,MAAM,EAAE,aAAa,WAAW,CAAC;CACnD;CAEA,SACC,aAUC;EACD,OAAO,UAAU,MAAM,EAAE,WAAW,YAAY,CAAC;CAClD;CAEA,MACC,QAUC;EACD,OAAO,UAAU,MAAM,EACtB,aAAa,OACd,CAAC;CAUF;CAEA,OACC,QAUC;EACD,OAAO,UAAU,MAAM,EACtB,cAAc,OACf,CAAC;CAUF;;;;;;;;;;;;CAaA,UACC,YAUC;EAQD,MAAM,WAAW,WAAW,UAAU;EAEtC,OAAO,UAAU,MAAM;GACtB,YAAA,GAAWA,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAe,EAAE,WACnB;GACA,aAAa,MAAM,YAAY,KAAK,WAAW;EAChD,CAAC;CAUF;CAEA,SACC,UAUC;EACD,OAAO,UAAU,MAAM,EACtB,YAAA,GAAWA,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAM,EAAE,WACV,EACD,CAAC;CAUF;CAEA,OACC,QAUC;EACD,OAAO,UAAU,MAAM,EACtB,SAAS,OACV,CAAC;CAUF;CAEA,UACC,WAUC;EACD,OAAO,UAAU,MAAM;GAEtB,aAAa,UAAU,WAAW,KAAK,WAAW;GAClD,YAAY;EAIb,CAAC;CAUF;;;;;CAMA,SACC,QAUC;EACD,MAAM,UAAU,UAAU,MAAM;EAEhC,OAAO,UAAU,MAAM;GACtB,kBAAkB;GAKlB,GAAI,aAAa,MAAM,IACpB,EAAE,aAAa,MAAM,CAAC,MAAM,GAAG,KAAK,WAAW,EAAE,IACjD,CAAC;EACL,CAAC;CAUF;CAEA,OACC,IAUC;EACD,MAAM,OAAO,IAAI,KAChB,IACA,KAAK,UACL,KAAK,WACL,KAAK,aACL,KAAK,cACL,KAAK,WACL,KAAK,SACL,KAAK,YACL,KAAK,SACL,KAAK,aACL,KAAK,kBACL,KAAK,WACN;EAIA,KAAK,QAAQ,KAAK;EAIlB,KAAK,gBAAgB,KAAK,iBACvB,UAAU,KAAK,cAA6C,IAC5D,KAAA;EAQH,OAAO;CACR;AACD"}
@@ -1,12 +1,11 @@
1
- import { FunctionBuilder, FunctionHandler } from "./index-JSf9xNIJ.cjs";
2
- import { Consumable, ServicesOf } from "./construct-interface-D9d4Gm4p.cjs";
3
- import { Cron, ScheduleExpression } from "./Cron-Wqh464aO.cjs";
1
+ import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
2
+ import { a as FunctionHandler, t as FunctionBuilder } from "./index-BI23K3wy.cjs";
3
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-DPusCUSQ.cjs";
4
+ import { i as ScheduleExpression, t as Cron } from "./Cron-CA2oa2nC.cjs";
4
5
  import { EventPublisher } from "@geekmidas/events";
5
6
  import { Logger } from "@geekmidas/logger";
6
7
  import { ComposableStandardSchema } from "@geekmidas/schema";
7
8
  import { Service } from "@geekmidas/services";
8
- import { StandardSchemaV1 } from "@standard-schema/spec";
9
-
10
9
  //#region src/crons/CronBuilder.d.ts
11
10
  declare class CronBuilder<TInput extends ComposableStandardSchema, TServices extends Service[], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName> {
12
11
  private _schedule?;
@@ -37,8 +36,6 @@ declare class CronBuilder<TInput extends ComposableStandardSchema, TServices ext
37
36
  database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): CronBuilder<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, T, TName>;
38
37
  handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>): Cron<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, TDatabase, TDatabaseServiceName>;
39
38
  }
40
- //# sourceMappingURL=CronBuilder.d.ts.map
41
-
42
39
  //#endregion
43
- export { CronBuilder };
44
- //# sourceMappingURL=CronBuilder-BqpEzMPQ.d.cts.map
40
+ export { CronBuilder as t };
41
+ //# sourceMappingURL=CronBuilder-B_KqaodP.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronBuilder-B_KqaodP.d.cts","names":[],"sources":["../src/crons/CronBuilder.ts"],"mappings":";;;;;;;;;cAoBa,YACZ,eAAe,0BACf,kBAAkB,WAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,wBAAwB,6CACxB,oDACA,uBACA,sDACS,gBACT,QACA,WACA,WACA,SACA,iBACA,+CAGA,WACA;UAEQ;EAER;EAIS,WAAW;EAIpB,SACC,aAAa,qBACX,YACF,QACA,WACA,SACA,WACA,iBACA,4BACA,WACA;EAKQ,MAAM,UAAU,0BACxB,QAAQ,IACN,YACF,GACA,WACA,SACA,WACA,iBACA,4BACA,WACA;EAgBQ,OAAO,UAAU,kBACzB,QAAQ,IACN,YACF,QACA,WACA,SACA,GACA,iBACA,4BACA,WACA;;;;;;;;;;;;EA2BQ,gBAAgB,mBAAmB,cAC3C,YAAY,IACV,YACF,YACI,cAAc,WAAW,KAC7B,SACA,WACA,iBACA,4BACA,WACA;EA6BQ,SAAS,UAAU,WAC3B,UAAU,IACR,YACF,YACI,cAAc,IAClB,SACA,WACA,iBACA,4BACA,WACA;EAmBQ,OAAO,UAAU,QACzB,QAAQ,IACN,YACF,QACA,WACA,GACA,WACA,iBACA,4BACA,WACA;EAgBQ,UAAU,UAAU,qBAAqB,sBACjD,WAAW,QAAQ,OAAO,KACxB,YACF,QACA,WACA,SACA,WACA,GACA,OACA,WACA;;;;;EAyBQ,SAAS,GAAG,sBACpB,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,YACF,QACA,WACA,SACA,WACA,iBACA,4BACA,GACA;EAyBQ,OACR,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,aACzD,KACF,QACA,WACA,SACA,WACA,iBACA,4BACA,WACA"}
@@ -1,30 +1,41 @@
1
- const require_chunk = require('./chunk-DWy1uDak.cjs');
2
- const require_construct_interface = require('./construct-interface-BfjcOD_E.cjs');
3
- const require_Construct = require('./Construct-CyS3RpTL.cjs');
4
- const require_functions = require('./functions-Bd3TPxid.cjs');
5
- const require_clone = require('./clone-Dy0cR2SZ.cjs');
6
-
1
+ const require_rolldown_runtime = require("./rolldown-runtime-y5ARvAq5.cjs");
2
+ require("./Construct-yG9Sw-5p.cjs");
3
+ const require_construct_interface = require("./construct-interface.cjs");
4
+ const require_functions = require("./functions-DKN6aQWJ.cjs");
5
+ const require_clone = require("./clone-UGJpvQnL.cjs");
7
6
  //#region src/crons/Cron.ts
7
+ var import_lodash_uniqby = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_functions.require_lodash_uniqby(), 1);
8
8
  var Cron = class extends require_functions.Function {
9
+ _schedule;
10
+ /**
11
+ * Where this cron's schedule lives when a server runs it.
12
+ *
13
+ * Carried from the worker that built it, which declared it once with
14
+ * `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule
15
+ * and nothing in this process fires anything.
16
+ *
17
+ * A service rather than the construct, because what reads it is service
18
+ * discovery in the generated server — which registers services, and failed
19
+ * on the construct with `service.register is not a function`.
20
+ */
21
+ scheduleStore;
9
22
  static isCron(obj) {
10
- return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === require_Construct.ConstructType.Cron);
23
+ return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === "dev.geekmidas.function.cron");
11
24
  }
12
25
  constructor(fn, timeout, _schedule, input, outputSchema, services = [], logger, publisherService, events = [], memorySize, databaseService, constructs = []) {
13
- super(fn, timeout, require_Construct.ConstructType.Cron, input, outputSchema, services, logger, publisherService, events, memorySize, void 0, databaseService, constructs);
26
+ super(fn, timeout, "dev.geekmidas.function.cron", input, outputSchema, services, logger, publisherService, events, memorySize, void 0, databaseService, constructs);
14
27
  this._schedule = _schedule;
15
28
  }
16
29
  get schedule() {
17
30
  return this._schedule;
18
31
  }
19
32
  };
20
-
21
33
  //#endregion
22
34
  //#region src/crons/CronBuilder.ts
23
- var import_lodash = require_chunk.__toESM(require_functions.require_lodash(), 1);
24
35
  var CronBuilder = class extends require_functions.FunctionBuilder {
25
36
  _schedule;
26
37
  constructor() {
27
- super(require_Construct.ConstructType.Cron);
38
+ super("dev.geekmidas.function.cron");
28
39
  }
29
40
  memorySize(memorySize) {
30
41
  return require_clone.cloneWith(this, { _memorySize: memorySize });
@@ -52,18 +63,21 @@ var CronBuilder = class extends require_functions.FunctionBuilder {
52
63
  dependsOn(constructs) {
53
64
  const services = require_construct_interface.servicesOf(constructs);
54
65
  return require_clone.cloneWith(this, {
55
- _services: (0, import_lodash.default)([...this._services, ...services], (s) => s.serviceName),
66
+ _services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName),
56
67
  _constructs: require_construct_interface.idsOf(constructs, this._constructs)
57
68
  });
58
69
  }
59
70
  services(services) {
60
- return require_clone.cloneWith(this, { _services: (0, import_lodash.default)([...this._services, ...services], (s) => s.serviceName) });
71
+ return require_clone.cloneWith(this, { _services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName) });
61
72
  }
62
73
  logger(logger) {
63
74
  return require_clone.cloneWith(this, { _logger: logger });
64
75
  }
65
76
  publisher(publisher) {
66
- return require_clone.cloneWith(this, { _publisher: publisher });
77
+ return require_clone.cloneWith(this, {
78
+ _constructs: require_construct_interface.edgesWith(publisher, this._constructs),
79
+ _publisher: publisher
80
+ });
67
81
  }
68
82
  /**
69
83
  * Set the database service for this cron job.
@@ -71,26 +85,30 @@ var CronBuilder = class extends require_functions.FunctionBuilder {
71
85
  */
72
86
  database(source) {
73
87
  const service = require_construct_interface.serviceOf(source);
74
- return require_clone.cloneWith(this, { _databaseService: service });
88
+ return require_clone.cloneWith(this, {
89
+ _databaseService: service,
90
+ ...require_construct_interface.isConsumable(source) ? { _constructs: require_construct_interface.idsOf([source], this._constructs) } : {}
91
+ });
75
92
  }
76
93
  handle(fn) {
77
94
  const cron = new Cron(fn, this._timeout, this._schedule, this.inputSchema, this.outputSchema, this._services, this._logger, this._publisher, this._events, this._memorySize, this._databaseService, this._constructs);
78
95
  cron.owner = this._owner;
96
+ cron.scheduleStore = this._scheduleStore ? require_construct_interface.serviceOf(this._scheduleStore) : void 0;
79
97
  return cron;
80
98
  }
81
99
  };
82
-
83
100
  //#endregion
84
- Object.defineProperty(exports, 'Cron', {
85
- enumerable: true,
86
- get: function () {
87
- return Cron;
88
- }
101
+ Object.defineProperty(exports, "Cron", {
102
+ enumerable: true,
103
+ get: function() {
104
+ return Cron;
105
+ }
89
106
  });
90
- Object.defineProperty(exports, 'CronBuilder', {
91
- enumerable: true,
92
- get: function () {
93
- return CronBuilder;
94
- }
107
+ Object.defineProperty(exports, "CronBuilder", {
108
+ enumerable: true,
109
+ get: function() {
110
+ return CronBuilder;
111
+ }
95
112
  });
96
- //# sourceMappingURL=CronBuilder-CkXPJiGO.cjs.map
113
+
114
+ //# sourceMappingURL=CronBuilder-BbnT7tqo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronBuilder-BbnT7tqo.cjs","names":["Function","FunctionBuilder","cloneWith","servicesOf","uniqBy","idsOf","edgesWith","serviceOf","isConsumable"],"sources":["../src/crons/Cron.ts","../src/crons/CronBuilder.ts"],"sourcesContent":["import type { AuditableAction } from '@geekmidas/audit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport { ConstructType } from '../Construct';\nimport { Function, type FunctionHandler } from '../functions';\n\nexport class Cron<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends Function<\n\tTInput,\n\tTServices,\n\tTLogger,\n\tOutSchema,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName,\n\tAuditableAction<string, unknown>,\n\tFunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>\n> {\n\t/**\n\t * Where this cron's schedule lives when a server runs it.\n\t *\n\t * Carried from the worker that built it, which declared it once with\n\t * `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule\n\t * and nothing in this process fires anything.\n\t *\n\t * A service rather than the construct, because what reads it is service\n\t * discovery in the generated server — which registers services, and failed\n\t * on the construct with `service.register is not a function`.\n\t */\n\tscheduleStore?: Service<string, unknown>;\n\n\tstatic isCron(obj: any): obj is Cron<any, any, any, any> {\n\t\treturn Boolean(\n\t\t\tobj &&\n\t\t\t\t(obj as Function).__IS_FUNCTION__ === true &&\n\t\t\t\tobj.type === ConstructType.Cron,\n\t\t);\n\t}\n\n\tconstructor(\n\t\tfn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,\n\t\ttimeout?: number,\n\t\tprotected _schedule?: ScheduleExpression,\n\t\tinput?: TInput,\n\t\toutputSchema?: OutSchema,\n\t\tservices: TServices = [] as unknown as TServices,\n\t\tlogger?: TLogger,\n\t\tpublisherService?: Service<TEventPublisherServiceName, TEventPublisher>,\n\t\tevents: any[] = [],\n\t\tmemorySize?: number,\n\t\tdatabaseService?: Service<TDatabaseServiceName, TDatabase>,\n\t\t/**\n\t\t * The construct ids `.dependsOn()` named — last, so no existing positional\n\t\t * argument moves.\n\t\t */\n\t\tconstructs: string[] = [],\n\t) {\n\t\tsuper(\n\t\t\tfn,\n\t\t\ttimeout,\n\t\t\tConstructType.Cron,\n\t\t\tinput,\n\t\t\toutputSchema,\n\t\t\tservices,\n\t\t\tlogger,\n\t\t\tpublisherService,\n\t\t\tevents,\n\t\t\tmemorySize,\n\t\t\tundefined, // auditorStorageService\n\t\t\tdatabaseService,\n\t\t\tconstructs,\n\t\t);\n\t}\n\n\tget schedule(): ScheduleExpression | undefined {\n\t\treturn this._schedule;\n\t}\n}\n\nexport type RateExpression = `rate(${string})`;\n\ntype CronMinute =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronHour =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronDay =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronMonth =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'JAN'\n\t| 'FEB'\n\t| 'MAR'\n\t| 'APR'\n\t| 'MAY'\n\t| 'JUN'\n\t| 'JUL'\n\t| 'AUG'\n\t| 'SEP'\n\t| 'OCT'\n\t| 'NOV'\n\t| 'DEC'\n\t| string; // Allow more complex patterns\n\ntype CronWeekday =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'SUN'\n\t| 'MON'\n\t| 'TUE'\n\t| 'WED'\n\t| 'THU'\n\t| 'FRI'\n\t| 'SAT'\n\t| `${string}-${string}` // Allow patterns like MON-FRI\n\t| string; // Allow more complex patterns\n\nexport type CronExpression =\n\t`cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;\n\nexport type ScheduleExpression = RateExpression | CronExpression;\n","import type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport uniqBy from 'lodash.uniqby';\nimport { ConstructType } from '../Construct';\nimport { cloneWith } from '../clone';\nimport {\n\ttype Consumable,\n\tedgesWith,\n\tidsOf,\n\tisConsumable,\n\ttype ServicesOf,\n\tserviceOf,\n\tservicesOf,\n} from '../construct-interface';\nimport { FunctionBuilder, type FunctionHandler } from '../functions';\nimport { Cron, type ScheduleExpression } from './Cron';\n\nexport class CronBuilder<\n\tTInput extends ComposableStandardSchema,\n\tTServices extends Service[],\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends FunctionBuilder<\n\tTInput,\n\tOutSchema,\n\tTServices,\n\tTLogger,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName\n> {\n\tprivate _schedule?: ScheduleExpression;\n\n\tconstructor() {\n\t\tsuper(ConstructType.Cron);\n\t}\n\n\toverride memorySize(memorySize: number): this {\n\t\treturn cloneWith(this, { _memorySize: memorySize });\n\t}\n\n\tschedule(\n\t\t_expression: ScheduleExpression,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, { _schedule: _expression });\n\t}\n\n\toverride input<T extends ComposableStandardSchema>(\n\t\tschema: T,\n\t): CronBuilder<\n\t\tT,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\tinputSchema: schema as unknown as TInput,\n\t\t}) as unknown as CronBuilder<\n\t\t\tT,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride output<T extends StandardSchemaV1>(\n\t\tschema: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tT,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\toutputSchema: schema as unknown as OutSchema,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tT,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Depend on constructs — a database, a bucket, a mail sender, a queue, a\n\t * topic.\n\t *\n\t * It records the edge and dissolves each construct's client into the\n\t * handler's service record under the construct's own id, so\n\t * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.\n\t *\n\t * Constructs only. A `Service` does not match the shape, which is what keeps\n\t * env sniffing confined to `.services()` and the explicit lift.\n\t */\n\toverride dependsOn<const T extends readonly Consumable[]>(\n\t\tconstructs: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, ...ServicesOf<T>],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\t// Both halves of the edge, from one call and one clone: the services the\n\t\t// handler runs with, and the ids the manifest records. Recording them\n\t\t// separately is what let them drift apart.\n\t\t//\n\t\t// `servicesOf` is the half that validates, so it runs first — recording\n\t\t// ids ahead of it left a caught `NotAConstruct` with `undefined` already\n\t\t// on a `string[]`.\n\t\tconst services = servicesOf(constructs) as unknown as Service[];\n\n\t\treturn cloneWith(this, {\n\t\t\t_services: uniqBy(\n\t\t\t\t[...this._services, ...services],\n\t\t\t\t(s: Service) => s.serviceName,\n\t\t\t),\n\t\t\t_constructs: idsOf(constructs, this._constructs),\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, ...ServicesOf<T>],\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride services<T extends Service[]>(\n\t\tservices: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, ...T],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t_services: uniqBy(\n\t\t\t\t[...this._services, ...services],\n\t\t\t\t(s) => s.serviceName,\n\t\t\t) as TServices,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, ...T],\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride logger<T extends Logger>(\n\t\tlogger: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tT,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t_logger: logger as unknown as TLogger,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tT,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride publisher<T extends EventPublisher<any>, TName extends string>(\n\t\tpublisher: Service<TName, T>,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tT,\n\t\tTName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t// The topic a derived publisher stands for is an edge like `.dependsOn()`.\n\t\t\t_constructs: edgesWith(publisher, this._constructs),\n\t\t\t_publisher: publisher as unknown as Service<\n\t\t\t\tTEventPublisherServiceName,\n\t\t\t\tTEventPublisher\n\t\t\t>,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Set the database service for this cron job.\n\t * The database will be available in the handler context as `db`.\n\t */\n\toverride database<T, TName extends string>(\n\t\tsource: Consumable<TName, T> | Service<TName, T>,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tT,\n\t\tTName\n\t> {\n\t\tconst service = serviceOf(source);\n\n\t\treturn cloneWith(this, {\n\t\t\t_databaseService: service as unknown as Service<\n\t\t\t\tTDatabaseServiceName,\n\t\t\t\tTDatabase\n\t\t\t>,\n\t\t\t// The edge, as `.dependsOn()` records one — see EndpointFactory.\n\t\t\t...(isConsumable(source)\n\t\t\t\t? { _constructs: idsOf([source], this._constructs) }\n\t\t\t\t: {}),\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tT,\n\t\t\tTName\n\t\t>;\n\t}\n\n\toverride handle(\n\t\tfn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,\n\t): Cron<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tconst cron = new Cron(\n\t\t\tfn,\n\t\t\tthis._timeout,\n\t\t\tthis._schedule,\n\t\t\tthis.inputSchema,\n\t\t\tthis.outputSchema,\n\t\t\tthis._services,\n\t\t\tthis._logger,\n\t\t\tthis._publisher,\n\t\t\tthis._events,\n\t\t\tthis._memorySize,\n\t\t\tthis._databaseService,\n\t\t\tthis._constructs,\n\t\t);\n\n\t\t// Which process runs it. Carried from the factory rather than inferred\n\t\t// from the directory the file happens to sit in.\n\t\tcron.owner = this._owner;\n\n\t\t// And where that process keeps the schedule, when a server is what runs\n\t\t// it. Declared once on the worker rather than repeated per cron.\n\t\tcron.scheduleStore = this._scheduleStore\n\t\t\t? serviceOf(this._scheduleStore as Consumable<string, unknown>)\n\t\t\t: undefined;\n\n\t\t// No reset. `.handle()` reads this builder and leaves it alone, so a\n\t\t// configured base — `const fn = f.logger(log).timeout(60_000)` — keeps\n\t\t// its configuration for every construct built from it. The reset that\n\t\t// used to be here wiped the base on first use, which made a base usable\n\t\t// exactly once, and quietly reverted the logger to the default.\n\n\t\treturn cron;\n\t}\n}\n"],"mappings":";;;;;;;AAUA,IAAa,OAAb,cASUA,kBAAAA,SAaR;CAyBU;;;;;;;;;;;;CAbX;CAEA,OAAO,OAAO,KAA2C;EACxD,OAAO,QACN,OACE,IAAiB,oBAAoB,QACtC,IAAI,SAAA,6BACN;CACD;CAEA,YACC,IACA,SACA,WACA,OACA,cACA,WAAsB,CAAC,GACvB,QACA,kBACA,SAAgB,CAAC,GACjB,YACA,iBAKA,aAAuB,CAAC,GACvB;EACD,MACC,IACA,SAAA,+BAEA,OACA,cACA,UACA,QACA,kBACA,QACA,YACA,KAAA,GACA,iBACA,UACD;EA7BU,KAAA,YAAA;CA8BX;CAEA,IAAI,WAA2C;EAC9C,OAAO,KAAK;CACb;AACD;;;ACxEA,IAAa,cAAb,cASUC,kBAAAA,gBAWR;CACD;CAEA,cAAc;EACb,MAAA,6BAAwB;CACzB;CAEA,WAAoB,YAA0B;EAC7C,OAAOC,cAAAA,UAAU,MAAM,EAAE,aAAa,WAAW,CAAC;CACnD;CAEA,SACC,aAUC;EACD,OAAOA,cAAAA,UAAU,MAAM,EAAE,WAAW,YAAY,CAAC;CAClD;CAEA,MACC,QAUC;EACD,OAAOA,cAAAA,UAAU,MAAM,EACtB,aAAa,OACd,CAAC;CAUF;CAEA,OACC,QAUC;EACD,OAAOA,cAAAA,UAAU,MAAM,EACtB,cAAc,OACf,CAAC;CAUF;;;;;;;;;;;;CAaA,UACC,YAUC;EAQD,MAAM,WAAWC,4BAAAA,WAAW,UAAU;EAEtC,OAAOD,cAAAA,UAAU,MAAM;GACtB,YAAA,GAAWE,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAe,EAAE,WACnB;GACA,aAAaC,4BAAAA,MAAM,YAAY,KAAK,WAAW;EAChD,CAAC;CAUF;CAEA,SACC,UAUC;EACD,OAAOH,cAAAA,UAAU,MAAM,EACtB,YAAA,GAAWE,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAM,EAAE,WACV,EACD,CAAC;CAUF;CAEA,OACC,QAUC;EACD,OAAOF,cAAAA,UAAU,MAAM,EACtB,SAAS,OACV,CAAC;CAUF;CAEA,UACC,WAUC;EACD,OAAOA,cAAAA,UAAU,MAAM;GAEtB,aAAaI,4BAAAA,UAAU,WAAW,KAAK,WAAW;GAClD,YAAY;EAIb,CAAC;CAUF;;;;;CAMA,SACC,QAUC;EACD,MAAM,UAAUC,4BAAAA,UAAU,MAAM;EAEhC,OAAOL,cAAAA,UAAU,MAAM;GACtB,kBAAkB;GAKlB,GAAIM,4BAAAA,aAAa,MAAM,IACpB,EAAE,aAAaH,4BAAAA,MAAM,CAAC,MAAM,GAAG,KAAK,WAAW,EAAE,IACjD,CAAC;EACL,CAAC;CAUF;CAEA,OACC,IAUC;EACD,MAAM,OAAO,IAAI,KAChB,IACA,KAAK,UACL,KAAK,WACL,KAAK,aACL,KAAK,cACL,KAAK,WACL,KAAK,SACL,KAAK,YACL,KAAK,SACL,KAAK,aACL,KAAK,kBACL,KAAK,WACN;EAIA,KAAK,QAAQ,KAAK;EAIlB,KAAK,gBAAgB,KAAK,iBACvBE,4BAAAA,UAAU,KAAK,cAA6C,IAC5D,KAAA;EAQH,OAAO;CACR;AACD"}