@geekmidas/constructs 10.0.0-alpha.6 → 10.0.0-alpha.60

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 (405) hide show
  1. package/README.md +223 -158
  2. package/dist/{Construct-BD5neF7w.mjs → Construct-BO1X-kt9.mjs} +32 -33
  3. package/dist/Construct-BO1X-kt9.mjs.map +1 -0
  4. package/dist/Construct-BQALFCh2.d.cts +230 -0
  5. package/dist/Construct-BQALFCh2.d.cts.map +1 -0
  6. package/dist/{Construct-CyS3RpTL.cjs → Construct-DmvXceVY.cjs} +52 -47
  7. package/dist/Construct-DmvXceVY.cjs.map +1 -0
  8. package/dist/Construct-QXnl3VqT.d.mts +230 -0
  9. package/dist/Construct-QXnl3VqT.d.mts.map +1 -0
  10. package/dist/{Cron-DmQ8vQ4b.d.cts → Cron-DI3nKoic.d.cts} +15 -9
  11. package/dist/Cron-DI3nKoic.d.cts.map +1 -0
  12. package/dist/{Cron-dh4rUgib.d.mts → Cron-uYAHPnp7.d.mts} +15 -9
  13. package/dist/Cron-uYAHPnp7.d.mts.map +1 -0
  14. package/dist/{CronBuilder-Da0C0edR.cjs → CronBuilder-BoHzlWU_.cjs} +47 -31
  15. package/dist/CronBuilder-BoHzlWU_.cjs.map +1 -0
  16. package/dist/{CronBuilder-CYKT5RiO.mjs → CronBuilder-CCgt0wCE.mjs} +37 -21
  17. package/dist/CronBuilder-CCgt0wCE.mjs.map +1 -0
  18. package/dist/CronBuilder-DaSUm2Na.d.mts +47 -0
  19. package/dist/CronBuilder-DaSUm2Na.d.mts.map +1 -0
  20. package/dist/CronBuilder-g1lZLWyG.d.cts +47 -0
  21. package/dist/CronBuilder-g1lZLWyG.d.cts.map +1 -0
  22. package/dist/{Endpoint-BjWKinFA.d.mts → Endpoint-Bm9HjTPc.d.cts} +70 -93
  23. package/dist/Endpoint-Bm9HjTPc.d.cts.map +1 -0
  24. package/dist/{Endpoint-DCQPMdUX.mjs → Endpoint-CQ9RJ7p2.mjs} +130 -109
  25. package/dist/Endpoint-CQ9RJ7p2.mjs.map +1 -0
  26. package/dist/{Endpoint-DcWXE-SZ.cjs → Endpoint-DOi8c_Gy.cjs} +158 -131
  27. package/dist/Endpoint-DOi8c_Gy.cjs.map +1 -0
  28. package/dist/{Endpoint-dav89W6-.d.cts → Endpoint-KyMeR-B-.d.mts} +71 -94
  29. package/dist/Endpoint-KyMeR-B-.d.mts.map +1 -0
  30. package/dist/{index-Bd5FqCoe.d.cts → EndpointFactory-B6eZ3RDd.d.cts} +62 -132
  31. package/dist/EndpointFactory-B6eZ3RDd.d.cts.map +1 -0
  32. package/dist/{EndpointFactory-CdWB7wPw.cjs → EndpointFactory-Bo9lkMqB.cjs} +75 -110
  33. package/dist/EndpointFactory-Bo9lkMqB.cjs.map +1 -0
  34. package/dist/{EndpointFactory-CjV8F_lJ.mjs → EndpointFactory-DR1rebok.mjs} +39 -74
  35. package/dist/EndpointFactory-DR1rebok.mjs.map +1 -0
  36. package/dist/{index-lAO9egTb.d.mts → EndpointFactory-GYkAuG3u.d.mts} +63 -133
  37. package/dist/EndpointFactory-GYkAuG3u.d.mts.map +1 -0
  38. package/dist/Function-DuqGcbOI.d.mts +76 -0
  39. package/dist/Function-DuqGcbOI.d.mts.map +1 -0
  40. package/dist/Function-Pu-1kKZz.d.cts +76 -0
  41. package/dist/Function-Pu-1kKZz.d.cts.map +1 -0
  42. package/dist/{HonoEndpointAdaptor-DtL9j19R.cjs → HonoEndpointAdaptor-XyxwoFnE.cjs} +52 -54
  43. package/dist/HonoEndpointAdaptor-XyxwoFnE.cjs.map +1 -0
  44. package/dist/{HonoEndpointAdaptor-P1ahhZHu.mjs → HonoEndpointAdaptor-ja49poBI.mjs} +42 -47
  45. package/dist/HonoEndpointAdaptor-ja49poBI.mjs.map +1 -0
  46. package/dist/Queue-D5jcw0mu.cjs +109 -0
  47. package/dist/Queue-D5jcw0mu.cjs.map +1 -0
  48. package/dist/{Queue-D7ZuwBhy.d.cts → Queue-DlsHRzUp.d.mts} +48 -48
  49. package/dist/Queue-DlsHRzUp.d.mts.map +1 -0
  50. package/dist/{Queue-gVGfi2Yk.d.mts → Queue-HPyi0e1i.d.cts} +49 -49
  51. package/dist/Queue-HPyi0e1i.d.cts.map +1 -0
  52. package/dist/Queue-hwPN-t31.mjs +104 -0
  53. package/dist/Queue-hwPN-t31.mjs.map +1 -0
  54. package/dist/QueueBuilder-BFQn3OzZ.cjs +135 -0
  55. package/dist/QueueBuilder-BFQn3OzZ.cjs.map +1 -0
  56. package/dist/QueueBuilder-DCuYdjMw.mjs +118 -0
  57. package/dist/QueueBuilder-DCuYdjMw.mjs.map +1 -0
  58. package/dist/QueueBuilder-OSi6LkV9.d.cts +75 -0
  59. package/dist/QueueBuilder-OSi6LkV9.d.cts.map +1 -0
  60. package/dist/QueueBuilder-QHsnVt1P.d.mts +75 -0
  61. package/dist/QueueBuilder-QHsnVt1P.d.mts.map +1 -0
  62. package/dist/{Subscriber-2mEi0ImH.d.cts → Subscriber-Bpp02cGr.d.cts} +29 -20
  63. package/dist/Subscriber-Bpp02cGr.d.cts.map +1 -0
  64. package/dist/{Subscriber-xTJ9ayPN.d.mts → Subscriber-CtN9R48-.d.mts} +29 -20
  65. package/dist/Subscriber-CtN9R48-.d.mts.map +1 -0
  66. package/dist/{SubscriberBuilder-4OPehf2R.cjs → SubscriberBuilder-C2PwqwIl.cjs} +61 -36
  67. package/dist/SubscriberBuilder-C2PwqwIl.cjs.map +1 -0
  68. package/dist/SubscriberBuilder-CuCMFpYW.d.mts +67 -0
  69. package/dist/SubscriberBuilder-CuCMFpYW.d.mts.map +1 -0
  70. package/dist/{SubscriberBuilder-BjkbeT9l.mjs → SubscriberBuilder-DMFk_Ap1.mjs} +50 -24
  71. package/dist/SubscriberBuilder-DMFk_Ap1.mjs.map +1 -0
  72. package/dist/SubscriberBuilder-g3fAVWgs.d.cts +67 -0
  73. package/dist/SubscriberBuilder-g3fAVWgs.d.cts.map +1 -0
  74. package/dist/Topic-CkxOTrMv.cjs +104 -0
  75. package/dist/Topic-CkxOTrMv.cjs.map +1 -0
  76. package/dist/Topic-hPffOsot.mjs +99 -0
  77. package/dist/Topic-hPffOsot.mjs.map +1 -0
  78. package/dist/adaptors/aws.cjs +118 -216
  79. package/dist/adaptors/aws.cjs.map +1 -1
  80. package/dist/adaptors/aws.d.cts +34 -53
  81. package/dist/adaptors/aws.d.cts.map +1 -1
  82. package/dist/adaptors/aws.d.mts +35 -54
  83. package/dist/adaptors/aws.d.mts.map +1 -1
  84. package/dist/adaptors/aws.mjs +91 -191
  85. package/dist/adaptors/aws.mjs.map +1 -1
  86. package/dist/adaptors/hono.cjs +3 -10
  87. package/dist/adaptors/hono.d.cts +7 -16
  88. package/dist/adaptors/hono.d.cts.map +1 -1
  89. package/dist/adaptors/hono.d.mts +8 -17
  90. package/dist/adaptors/hono.d.mts.map +1 -1
  91. package/dist/adaptors/hono.mjs +2 -10
  92. package/dist/adaptors/testing.cjs +711 -89
  93. package/dist/adaptors/testing.cjs.map +1 -1
  94. package/dist/adaptors/testing.d.cts +325 -54
  95. package/dist/adaptors/testing.d.cts.map +1 -1
  96. package/dist/adaptors/testing.d.mts +325 -54
  97. package/dist/adaptors/testing.d.mts.map +1 -1
  98. package/dist/adaptors/testing.mjs +676 -70
  99. package/dist/adaptors/testing.mjs.map +1 -1
  100. package/dist/auth-CIFXNuDk.d.cts +194 -0
  101. package/dist/auth-CIFXNuDk.d.cts.map +1 -0
  102. package/dist/auth-CJ9Ff6Lu.d.mts +194 -0
  103. package/dist/auth-CJ9Ff6Lu.d.mts.map +1 -0
  104. package/dist/auth.cjs +172 -31
  105. package/dist/auth.cjs.map +1 -1
  106. package/dist/auth.d.cts +2 -108
  107. package/dist/auth.d.mts +2 -108
  108. package/dist/auth.mjs +161 -24
  109. package/dist/auth.mjs.map +1 -1
  110. package/dist/{cache-BrRz3fEB.d.mts → cache-CXh6GIgb.d.mts} +3 -6
  111. package/dist/cache-CXh6GIgb.d.mts.map +1 -0
  112. package/dist/{cache-BtZY_tHe.d.cts → cache-DnGDGly3.d.cts} +3 -6
  113. package/dist/cache-DnGDGly3.d.cts.map +1 -0
  114. package/dist/cache.cjs +68 -2
  115. package/dist/cache.cjs.map +1 -0
  116. package/dist/cache.d.cts +1 -2
  117. package/dist/cache.d.mts +1 -2
  118. package/dist/cache.mjs +67 -2
  119. package/dist/cache.mjs.map +1 -0
  120. package/dist/cipher-C1lEFX63.mjs +225 -0
  121. package/dist/cipher-C1lEFX63.mjs.map +1 -0
  122. package/dist/cipher-CVxfwLjk.cjs +332 -0
  123. package/dist/cipher-CVxfwLjk.cjs.map +1 -0
  124. package/dist/{clone-DblgEZZa.mjs → clone-EKNovYHu.mjs} +3 -3
  125. package/dist/clone-EKNovYHu.mjs.map +1 -0
  126. package/dist/{clone-Dy0cR2SZ.cjs → clone-UGJpvQnL.cjs} +7 -8
  127. package/dist/clone-UGJpvQnL.cjs.map +1 -0
  128. package/dist/{construct-interface-D9d4Gm4p.d.cts → construct-interface-B1AfqRl4.d.cts} +42 -11
  129. package/dist/construct-interface-B1AfqRl4.d.cts.map +1 -0
  130. package/dist/{construct-interface-g5GM5pwR.d.mts → construct-interface-DluK3_da.d.mts} +42 -11
  131. package/dist/construct-interface-DluK3_da.d.mts.map +1 -0
  132. package/dist/construct-interface.cjs +113 -7
  133. package/dist/construct-interface.cjs.map +1 -0
  134. package/dist/construct-interface.d.cts +2 -2
  135. package/dist/construct-interface.d.mts +2 -2
  136. package/dist/construct-interface.mjs +106 -2
  137. package/dist/construct-interface.mjs.map +1 -0
  138. package/dist/credential.cjs +63 -16
  139. package/dist/credential.cjs.map +1 -1
  140. package/dist/credential.d.cts +16 -9
  141. package/dist/credential.d.cts.map +1 -1
  142. package/dist/credential.d.mts +16 -9
  143. package/dist/credential.d.mts.map +1 -1
  144. package/dist/credential.mjs +58 -12
  145. package/dist/credential.mjs.map +1 -1
  146. package/dist/crons/index.cjs +105 -7
  147. package/dist/crons/index.cjs.map +1 -1
  148. package/dist/crons/index.d.cts +40 -11
  149. package/dist/crons/index.d.cts.map +1 -1
  150. package/dist/crons/index.d.mts +40 -11
  151. package/dist/crons/index.d.mts.map +1 -1
  152. package/dist/crons/index.mjs +103 -8
  153. package/dist/crons/index.mjs.map +1 -1
  154. package/dist/database/kysely.cjs +4 -181
  155. package/dist/database/kysely.d.cts +2 -152
  156. package/dist/database/kysely.d.mts +2 -152
  157. package/dist/database/kysely.mjs +2 -180
  158. package/dist/email.cjs +25 -12
  159. package/dist/email.cjs.map +1 -1
  160. package/dist/email.d.cts +3 -7
  161. package/dist/email.d.cts.map +1 -1
  162. package/dist/email.d.mts +3 -7
  163. package/dist/email.d.mts.map +1 -1
  164. package/dist/email.mjs +16 -3
  165. package/dist/email.mjs.map +1 -1
  166. package/dist/encryption.cjs +96 -0
  167. package/dist/encryption.cjs.map +1 -0
  168. package/dist/encryption.d.cts +117 -0
  169. package/dist/encryption.d.cts.map +1 -0
  170. package/dist/encryption.d.mts +117 -0
  171. package/dist/encryption.d.mts.map +1 -0
  172. package/dist/encryption.mjs +83 -0
  173. package/dist/encryption.mjs.map +1 -0
  174. package/dist/endpoints/index.cjs +8 -10
  175. package/dist/endpoints/index.d.cts +51 -7
  176. package/dist/endpoints/index.d.cts.map +1 -0
  177. package/dist/endpoints/index.d.mts +51 -7
  178. package/dist/endpoints/index.d.mts.map +1 -0
  179. package/dist/endpoints/index.mjs +6 -10
  180. package/dist/external-api-CWY9orcO.d.mts +86 -0
  181. package/dist/external-api-CWY9orcO.d.mts.map +1 -0
  182. package/dist/external-api-D-5WB-sr.d.cts +86 -0
  183. package/dist/external-api-D-5WB-sr.d.cts.map +1 -0
  184. package/dist/external-api.cjs +124 -0
  185. package/dist/external-api.cjs.map +1 -0
  186. package/dist/external-api.d.cts +2 -0
  187. package/dist/external-api.d.mts +2 -0
  188. package/dist/external-api.mjs +121 -0
  189. package/dist/external-api.mjs.map +1 -0
  190. package/dist/file-server.cjs +42 -10
  191. package/dist/file-server.cjs.map +1 -1
  192. package/dist/file-server.d.cts +6 -10
  193. package/dist/file-server.d.cts.map +1 -1
  194. package/dist/file-server.d.mts +6 -10
  195. package/dist/file-server.d.mts.map +1 -1
  196. package/dist/file-server.mjs +34 -2
  197. package/dist/file-server.mjs.map +1 -1
  198. package/dist/functions/index.cjs +3 -6
  199. package/dist/functions/index.d.cts +3 -4
  200. package/dist/functions/index.d.mts +3 -4
  201. package/dist/functions/index.mjs +2 -6
  202. package/dist/{functions-i_la-N5r.cjs → functions-CbP5ZKma.cjs} +414 -264
  203. package/dist/functions-CbP5ZKma.cjs.map +1 -0
  204. package/dist/{functions-14lpEFL4.mjs → functions-Di6n5ltG.mjs} +376 -238
  205. package/dist/{functions-14lpEFL4.mjs.map → functions-Di6n5ltG.mjs.map} +1 -1
  206. package/dist/index-BuzRvKOQ.d.cts +115 -0
  207. package/dist/index-BuzRvKOQ.d.cts.map +1 -0
  208. package/dist/index-CTkKOer4.d.mts +115 -0
  209. package/dist/index-CTkKOer4.d.mts.map +1 -0
  210. package/dist/index-CeEtxDmK.d.cts +79 -0
  211. package/dist/index-CeEtxDmK.d.cts.map +1 -0
  212. package/dist/index-CeEtxDmK.d.mts +79 -0
  213. package/dist/index-CeEtxDmK.d.mts.map +1 -0
  214. package/dist/index.cjs +6 -3
  215. package/dist/index.d.cts +26 -4
  216. package/dist/index.d.cts.map +1 -0
  217. package/dist/index.d.mts +26 -4
  218. package/dist/index.d.mts.map +1 -0
  219. package/dist/index.mjs +3 -3
  220. package/dist/kms-B-Hm3d5r.cjs +85 -0
  221. package/dist/kms-B-Hm3d5r.cjs.map +1 -0
  222. package/dist/kms-BdUlMJEZ.mjs +85 -0
  223. package/dist/kms-BdUlMJEZ.mjs.map +1 -0
  224. package/dist/kysely-BEm5sDlU.d.cts +173 -0
  225. package/dist/kysely-BEm5sDlU.d.cts.map +1 -0
  226. package/dist/kysely-BRzzawr2.cjs +301 -0
  227. package/dist/kysely-BRzzawr2.cjs.map +1 -0
  228. package/dist/kysely-BYfM6Zby.mjs +288 -0
  229. package/dist/kysely-BYfM6Zby.mjs.map +1 -0
  230. package/dist/kysely-CjuvdXEV.d.mts +173 -0
  231. package/dist/kysely-CjuvdXEV.d.mts.map +1 -0
  232. package/dist/{lazyAccessors-BoJN3SMd.mjs → lazyAccessors-CFanua0O.mjs} +20 -60
  233. package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
  234. package/dist/{lazyAccessors-e3j2oE2m.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -113
  235. package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
  236. package/dist/mobile-app.cjs +73 -0
  237. package/dist/mobile-app.cjs.map +1 -0
  238. package/dist/mobile-app.d.cts +61 -0
  239. package/dist/mobile-app.d.cts.map +1 -0
  240. package/dist/mobile-app.d.mts +61 -0
  241. package/dist/mobile-app.d.mts.map +1 -0
  242. package/dist/mobile-app.mjs +72 -0
  243. package/dist/mobile-app.mjs.map +1 -0
  244. package/dist/object-storage.cjs +18 -10
  245. package/dist/object-storage.cjs.map +1 -1
  246. package/dist/object-storage.d.cts +3 -7
  247. package/dist/object-storage.d.cts.map +1 -1
  248. package/dist/object-storage.d.mts +3 -7
  249. package/dist/object-storage.d.mts.map +1 -1
  250. package/dist/object-storage.mjs +11 -3
  251. package/dist/object-storage.mjs.map +1 -1
  252. package/dist/{processAudits-Dmts9H_b.mjs → processAudits-BpRlPQMW.mjs} +16 -19
  253. package/dist/processAudits-BpRlPQMW.mjs.map +1 -0
  254. package/dist/{processAudits-CGqttuXm.cjs → processAudits-D_2W5x8k.cjs} +26 -30
  255. package/dist/processAudits-D_2W5x8k.cjs.map +1 -0
  256. package/dist/queue/index.cjs +6 -189
  257. package/dist/queue/index.d.cts +3 -60
  258. package/dist/queue/index.d.mts +3 -60
  259. package/dist/queue/index.mjs +3 -186
  260. package/dist/rest-api.cjs +88 -63
  261. package/dist/rest-api.cjs.map +1 -1
  262. package/dist/rest-api.d.cts +68 -61
  263. package/dist/rest-api.d.cts.map +1 -1
  264. package/dist/rest-api.d.mts +68 -61
  265. package/dist/rest-api.d.mts.map +1 -1
  266. package/dist/rest-api.mjs +80 -55
  267. package/dist/rest-api.mjs.map +1 -1
  268. package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
  269. package/dist/runSubscriber-BRp9a_qi.cjs +126 -0
  270. package/dist/runSubscriber-BRp9a_qi.cjs.map +1 -0
  271. package/dist/runSubscriber-BYEY_bfA.mjs +109 -0
  272. package/dist/runSubscriber-BYEY_bfA.mjs.map +1 -0
  273. package/dist/shutdown-BMJmAhSt.cjs +38 -0
  274. package/dist/shutdown-BMJmAhSt.cjs.map +1 -0
  275. package/dist/shutdown-C7xa8x9S.mjs +27 -0
  276. package/dist/shutdown-C7xa8x9S.mjs.map +1 -0
  277. package/dist/site.cjs +34 -9
  278. package/dist/site.cjs.map +1 -1
  279. package/dist/site.d.cts +17 -22
  280. package/dist/site.d.cts.map +1 -1
  281. package/dist/site.d.mts +17 -22
  282. package/dist/site.d.mts.map +1 -1
  283. package/dist/site.mjs +30 -5
  284. package/dist/site.mjs.map +1 -1
  285. package/dist/subscribers/index.cjs +111 -6
  286. package/dist/subscribers/index.cjs.map +1 -0
  287. package/dist/subscribers/index.d.cts +50 -6
  288. package/dist/subscribers/index.d.cts.map +1 -0
  289. package/dist/subscribers/index.d.mts +50 -6
  290. package/dist/subscribers/index.d.mts.map +1 -0
  291. package/dist/subscribers/index.mjs +108 -5
  292. package/dist/subscribers/index.mjs.map +1 -0
  293. package/dist/surfaceEnv-CNimK76p.cjs +56 -0
  294. package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
  295. package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
  296. package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
  297. package/dist/{telemetry-C3L0iS28.d.cts → telemetry-DGcFlVpB.d.cts} +2 -5
  298. package/dist/telemetry-DGcFlVpB.d.cts.map +1 -0
  299. package/dist/{telemetry-D7bVFLGi.d.mts → telemetry-DGcFlVpB.d.mts} +2 -5
  300. package/dist/telemetry-DGcFlVpB.d.mts.map +1 -0
  301. package/dist/topic/index.cjs +3 -137
  302. package/dist/topic/index.d.cts +2 -4
  303. package/dist/topic/index.d.mts +2 -4
  304. package/dist/topic/index.mjs +2 -134
  305. package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
  306. package/dist/types-DMuSQeLL.d.cts.map +1 -0
  307. package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
  308. package/dist/types-DMuSQeLL.d.mts.map +1 -0
  309. package/dist/types.d.cts +1 -1
  310. package/dist/types.d.mts +1 -1
  311. package/dist/types.mjs +1 -0
  312. package/dist/worker.cjs +58 -34
  313. package/dist/worker.cjs.map +1 -1
  314. package/dist/worker.d.cts +63 -45
  315. package/dist/worker.d.cts.map +1 -1
  316. package/dist/worker.d.mts +63 -44
  317. package/dist/worker.d.mts.map +1 -1
  318. package/dist/worker.mjs +53 -29
  319. package/dist/worker.mjs.map +1 -1
  320. package/package.json +82 -41
  321. package/dist/Construct-BD5neF7w.mjs.map +0 -1
  322. package/dist/Construct-C0ijr2qp.d.cts +0 -117
  323. package/dist/Construct-C0ijr2qp.d.cts.map +0 -1
  324. package/dist/Construct-Ct8nalEi.d.mts +0 -117
  325. package/dist/Construct-Ct8nalEi.d.mts.map +0 -1
  326. package/dist/Construct-CyS3RpTL.cjs.map +0 -1
  327. package/dist/Cron-DmQ8vQ4b.d.cts.map +0 -1
  328. package/dist/Cron-dh4rUgib.d.mts.map +0 -1
  329. package/dist/CronBuilder-BquXDbDI.d.cts +0 -44
  330. package/dist/CronBuilder-BquXDbDI.d.cts.map +0 -1
  331. package/dist/CronBuilder-CGgY2080.d.mts +0 -44
  332. package/dist/CronBuilder-CGgY2080.d.mts.map +0 -1
  333. package/dist/CronBuilder-CYKT5RiO.mjs.map +0 -1
  334. package/dist/CronBuilder-Da0C0edR.cjs.map +0 -1
  335. package/dist/Endpoint-BjWKinFA.d.mts.map +0 -1
  336. package/dist/Endpoint-DCQPMdUX.mjs.map +0 -1
  337. package/dist/Endpoint-DcWXE-SZ.cjs.map +0 -1
  338. package/dist/Endpoint-dav89W6-.d.cts.map +0 -1
  339. package/dist/EndpointFactory-CdWB7wPw.cjs.map +0 -1
  340. package/dist/EndpointFactory-CjV8F_lJ.mjs.map +0 -1
  341. package/dist/HonoEndpointAdaptor-DtL9j19R.cjs.map +0 -1
  342. package/dist/HonoEndpointAdaptor-P1ahhZHu.mjs.map +0 -1
  343. package/dist/Queue-D7ZuwBhy.d.cts.map +0 -1
  344. package/dist/Queue-gVGfi2Yk.d.mts.map +0 -1
  345. package/dist/Subscriber-2mEi0ImH.d.cts.map +0 -1
  346. package/dist/Subscriber-xTJ9ayPN.d.mts.map +0 -1
  347. package/dist/SubscriberBuilder-4OPehf2R.cjs.map +0 -1
  348. package/dist/SubscriberBuilder-BjkbeT9l.mjs.map +0 -1
  349. package/dist/SubscriberBuilder-Dptmo-1A.d.mts +0 -62
  350. package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +0 -1
  351. package/dist/SubscriberBuilder-waNhzjSM.d.cts +0 -62
  352. package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +0 -1
  353. package/dist/Topic-19QeHBIR.d.cts +0 -91
  354. package/dist/Topic-19QeHBIR.d.cts.map +0 -1
  355. package/dist/Topic-DuFeqkBh.d.mts +0 -91
  356. package/dist/Topic-DuFeqkBh.d.mts.map +0 -1
  357. package/dist/auth.d.cts.map +0 -1
  358. package/dist/auth.d.mts.map +0 -1
  359. package/dist/cache-0ANvRQnD.mjs +0 -51
  360. package/dist/cache-0ANvRQnD.mjs.map +0 -1
  361. package/dist/cache-3WSvAulx.cjs +0 -57
  362. package/dist/cache-3WSvAulx.cjs.map +0 -1
  363. package/dist/cache-BrRz3fEB.d.mts.map +0 -1
  364. package/dist/cache-BtZY_tHe.d.cts.map +0 -1
  365. package/dist/clone-DblgEZZa.mjs.map +0 -1
  366. package/dist/clone-Dy0cR2SZ.cjs.map +0 -1
  367. package/dist/construct-interface-BfjcOD_E.cjs +0 -117
  368. package/dist/construct-interface-BfjcOD_E.cjs.map +0 -1
  369. package/dist/construct-interface-D9d4Gm4p.d.cts.map +0 -1
  370. package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
  371. package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
  372. package/dist/construct-interface-g5GM5pwR.d.mts.map +0 -1
  373. package/dist/database/kysely.cjs.map +0 -1
  374. package/dist/database/kysely.d.cts.map +0 -1
  375. package/dist/database/kysely.d.mts.map +0 -1
  376. package/dist/database/kysely.mjs.map +0 -1
  377. package/dist/functions-i_la-N5r.cjs.map +0 -1
  378. package/dist/index-Bd5FqCoe.d.cts.map +0 -1
  379. package/dist/index-BknhM6Ux.d.mts +0 -31
  380. package/dist/index-BknhM6Ux.d.mts.map +0 -1
  381. package/dist/index-CBSfrowv.d.cts +0 -31
  382. package/dist/index-CBSfrowv.d.cts.map +0 -1
  383. package/dist/index-D24Xm79M.d.cts +0 -171
  384. package/dist/index-D24Xm79M.d.cts.map +0 -1
  385. package/dist/index-_ajboYxK.d.mts +0 -171
  386. package/dist/index-_ajboYxK.d.mts.map +0 -1
  387. package/dist/index-lAO9egTb.d.mts.map +0 -1
  388. package/dist/lazyAccessors-BoJN3SMd.mjs.map +0 -1
  389. package/dist/lazyAccessors-e3j2oE2m.cjs.map +0 -1
  390. package/dist/processAudits-CGqttuXm.cjs.map +0 -1
  391. package/dist/processAudits-Dmts9H_b.mjs.map +0 -1
  392. package/dist/queue/index.cjs.map +0 -1
  393. package/dist/queue/index.d.cts.map +0 -1
  394. package/dist/queue/index.d.mts.map +0 -1
  395. package/dist/queue/index.mjs.map +0 -1
  396. package/dist/surfaceEnv-BFXEms2f.cjs +0 -39
  397. package/dist/surfaceEnv-BFXEms2f.cjs.map +0 -1
  398. package/dist/surfaceEnv-C3Ktahea.mjs +0 -27
  399. package/dist/surfaceEnv-C3Ktahea.mjs.map +0 -1
  400. package/dist/telemetry-C3L0iS28.d.cts.map +0 -1
  401. package/dist/telemetry-D7bVFLGi.d.mts.map +0 -1
  402. package/dist/topic/index.cjs.map +0 -1
  403. package/dist/topic/index.mjs.map +0 -1
  404. package/dist/types-BlAkSuGI.d.cts.map +0 -1
  405. package/dist/types-aKksMEWL.d.mts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronBuilder-CCgt0wCE.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';\nimport { ConstructType } from '../Construct';\nimport { Function, type FunctionHandler } from '../functions';\nimport type { TopicEvent } from '../publisher';\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\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends Function<\n\tTInput,\n\tTServices,\n\tTLogger,\n\tOutSchema,\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\t/** What it publishes once it has run, each to its own topic. */\n\t\tevents: TopicEvent[] = [],\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\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 { Logger } from '@geekmidas/logger';\nimport type {\n\tComposableStandardSchema,\n\tInferStandardSchema,\n} 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\tdatabaseEdges,\n\tidsOf,\n\ttype ServicesOf,\n\tserviceOf,\n\tservicesOf,\n} from '../construct-interface';\nimport { FunctionBuilder, type FunctionHandler } from '../functions';\nimport type { EventFor } from '../publisher';\nimport type { Topic } from '../topic/Topic';\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\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends FunctionBuilder<\n\tTInput,\n\tOutSchema,\n\tTServices,\n\tTLogger,\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\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\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\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\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\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\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\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\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\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\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\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Publish `event` to `topic` each time the cron has run successfully —\n\t * repeatable, to as many topics as it names. The topic becomes a dependency\n\t * as with `.dependsOn([topic])`, so `services.<topic>` is there too.\n\t */\n\toverride event<TTopic extends Topic<any, any>>(\n\t\ttopic: TTopic,\n\t\tevent: EventFor<TTopic, InferStandardSchema<OutSchema>>,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, TTopic['service']],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn this.withEvent(topic, event as never) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, TTopic['service']],\n\t\t\tTLogger,\n\t\t\tOutSchema,\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<TInput, TServices, TLogger, OutSchema, T, TName> {\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// in place of the one a previous `.database()` added, which is how a\n\t\t\t// worker's default database is overridden rather than added to.\n\t\t\t...databaseEdges(\n\t\t\t\t{\n\t\t\t\t\tconstructs: this._constructs,\n\t\t\t\t\tedge: this._databaseEdge,\n\t\t\t\t\tservice: this._databaseService as Service | undefined,\n\t\t\t\t\tservices: this._services,\n\t\t\t\t},\n\t\t\t\tsource,\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>;\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\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._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,cAOU,SAWR;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,QAEA,SAAuB,CAAC,GACxB,YACA,iBAKA,aAAuB,CAAC,GACvB;EACD,MACC,IACA,SAAA,+BAEA,OACA,cACA,UACA,QACA,QACA,YACA,KAAA,GACA,iBACA,UACD;EA5BU,KAAA,YAAA;CA6BX;CAEA,IAAI,WAA2C;EAC9C,OAAO,KAAK;CACb;AACD;;;AChEA,IAAa,cAAb,cAOU,gBASR;CACD;CAEA,cAAc;EACb,MAAA,6BAAwB;CACzB;CAEA,WAAoB,YAA0B;EAC7C,OAAO,UAAU,MAAM,EAAE,aAAa,WAAW,CAAC;CACnD;CAEA,SACC,aAQC;EACD,OAAO,UAAU,MAAM,EAAE,WAAW,YAAY,CAAC;CAClD;CAEA,MACC,QAQC;EACD,OAAO,UAAU,MAAM,EACtB,aAAa,OACd,CAAC;CAQF;CAEA,OACC,QAQC;EACD,OAAO,UAAU,MAAM,EACtB,cAAc,OACf,CAAC;CAQF;;;;;;;;;;;;CAaA,UACC,YAQC;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;CAQF;CAEA,SACC,UAQC;EACD,OAAO,UAAU,MAAM,EACtB,YAAA,GAAWA,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAM,EAAE,WACV,EACD,CAAC;CAQF;CAEA,OACC,QAQC;EACD,OAAO,UAAU,MAAM,EACtB,SAAS,OACV,CAAC;CAQF;;;;;;CAOA,MACC,OACA,OAQC;EACD,OAAO,KAAK,UAAU,OAAO,KAAc;CAQ5C;;;;;CAMA,SACC,QAC+D;EAC/D,MAAM,UAAU,UAAU,MAAM;EAEhC,OAAO,UAAU,MAAM;GACtB,kBAAkB;GAOlB,GAAG,cACF;IACC,YAAY,KAAK;IACjB,MAAM,KAAK;IACX,SAAS,KAAK;IACd,UAAU,KAAK;GAChB,GACA,MACD;EACD,CAAC;CAQF;CAEA,OACC,IAQC;EACD,MAAM,OAAO,IAAI,KAChB,IACA,KAAK,UACL,KAAK,WACL,KAAK,aACL,KAAK,cACL,KAAK,WACL,KAAK,SACL,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"}
@@ -0,0 +1,47 @@
1
+ import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
2
+ import { a as EventFor, c as Topic } from "./Construct-QXnl3VqT.mjs";
3
+ import { i as FunctionHandler } from "./Function-DuqGcbOI.mjs";
4
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-DluK3_da.mjs";
5
+ import { t as FunctionBuilder } from "./index-CTkKOer4.mjs";
6
+ import { i as ScheduleExpression, t as Cron } from "./Cron-uYAHPnp7.mjs";
7
+ import { Service } from "@geekmidas/services";
8
+ import { Logger } from "@geekmidas/logger";
9
+ import { ComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
10
+ //#region src/crons/CronBuilder.d.ts
11
+ declare class CronBuilder<TInput extends ComposableStandardSchema, TServices extends Service[], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TDatabaseServiceName extends string = string> extends FunctionBuilder<TInput, OutSchema, TServices, TLogger, undefined, string, TDatabase, TDatabaseServiceName> {
12
+ private _schedule?;
13
+ constructor();
14
+ memorySize(memorySize: number): this;
15
+ schedule(_expression: ScheduleExpression): CronBuilder<TInput, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
16
+ input<T extends ComposableStandardSchema>(schema: T): CronBuilder<T, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
17
+ output<T extends StandardSchemaV1>(schema: T): CronBuilder<TInput, TServices, TLogger, T, TDatabase, TDatabaseServiceName>;
18
+ /**
19
+ * Depend on constructs — a database, a bucket, a mail sender, a queue, a
20
+ * topic.
21
+ *
22
+ * It records the edge and dissolves each construct's client into the
23
+ * handler's service record under the construct's own id, so
24
+ * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
25
+ *
26
+ * Constructs only. A `Service` does not match the shape, which is what keeps
27
+ * env sniffing confined to `.services()` and the explicit lift.
28
+ */
29
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): CronBuilder<TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
30
+ services<T extends Service[]>(services: T): CronBuilder<TInput, [...TServices, ...T], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
31
+ logger<T extends Logger>(logger: T): CronBuilder<TInput, TServices, T, OutSchema, TDatabase, TDatabaseServiceName>;
32
+ /**
33
+ * Publish `event` to `topic` each time the cron has run successfully —
34
+ * repeatable, to as many topics as it names. The topic becomes a dependency
35
+ * as with `.dependsOn([topic])`, so `services.<topic>` is there too.
36
+ */
37
+ event<TTopic extends Topic<any, any>>(topic: TTopic, event: EventFor<TTopic, InferStandardSchema<OutSchema>>): CronBuilder<TInput, [...TServices, TTopic['service']], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
38
+ /**
39
+ * Set the database service for this cron job.
40
+ * The database will be available in the handler context as `db`.
41
+ */
42
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): CronBuilder<TInput, TServices, TLogger, OutSchema, T, TName>;
43
+ handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>): Cron<TInput, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
44
+ }
45
+ //#endregion
46
+ export { CronBuilder as t };
47
+ //# sourceMappingURL=CronBuilder-DaSUm2Na.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronBuilder-DaSUm2Na.d.mts","names":[],"sources":["../src/crons/CronBuilder.ts"],"mappings":";;;;;;;;;;cAuBa,YACZ,eAAe,0BACf,kBAAkB,WAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,uBACA,sDACS,gBACT,QACA,WACA,WACA,4BAGA,WACA;UAEQ;EAER;EAIS,WAAW;EAIpB,SACC,aAAa,qBACX,YACF,QACA,WACA,SACA,WACA,WACA;EAKQ,MAAM,UAAU,0BACxB,QAAQ,IACN,YACF,GACA,WACA,SACA,WACA,WACA;EAcQ,OAAO,UAAU,kBACzB,QAAQ,IACN,YACF,QACA,WACA,SACA,GACA,WACA;;;;;;;;;;;;EAyBQ,gBAAgB,mBAAmB,cAC3C,YAAY,IACV,YACF,YACI,cAAc,WAAW,KAC7B,SACA,WACA,WACA;EA2BQ,SAAS,UAAU,WAC3B,UAAU,IACR,YACF,YACI,cAAc,IAClB,SACA,WACA,WACA;EAiBQ,OAAO,UAAU,QACzB,QAAQ,IACN,YACF,QACA,WACA,GACA,WACA,WACA;;;;;;EAmBQ,MAAM,eAAe,iBAC7B,OAAO,QACP,OAAO,SAAS,QAAQ,oBAAoB,cAC1C,YACF,YACI,WAAW,oBACf,SACA,WACA,WACA;;;;;EAgBQ,SAAS,GAAG,sBACpB,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,YAAY,QAAQ,WAAW,SAAS,WAAW,GAAG;EA8BhD,OACR,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,aACzD,KACF,QACA,WACA,SACA,WACA,WACA"}
@@ -0,0 +1,47 @@
1
+ import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
2
+ import { a as EventFor, c as Topic } from "./Construct-BQALFCh2.cjs";
3
+ import { i as FunctionHandler } from "./Function-Pu-1kKZz.cjs";
4
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-B1AfqRl4.cjs";
5
+ import { t as FunctionBuilder } from "./index-BuzRvKOQ.cjs";
6
+ import { i as ScheduleExpression, t as Cron } from "./Cron-DI3nKoic.cjs";
7
+ import { Logger } from "@geekmidas/logger";
8
+ import { ComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
9
+ import { Service } from "@geekmidas/services";
10
+ //#region src/crons/CronBuilder.d.ts
11
+ declare class CronBuilder<TInput extends ComposableStandardSchema, TServices extends Service[], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TDatabaseServiceName extends string = string> extends FunctionBuilder<TInput, OutSchema, TServices, TLogger, undefined, string, TDatabase, TDatabaseServiceName> {
12
+ private _schedule?;
13
+ constructor();
14
+ memorySize(memorySize: number): this;
15
+ schedule(_expression: ScheduleExpression): CronBuilder<TInput, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
16
+ input<T extends ComposableStandardSchema>(schema: T): CronBuilder<T, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
17
+ output<T extends StandardSchemaV1>(schema: T): CronBuilder<TInput, TServices, TLogger, T, TDatabase, TDatabaseServiceName>;
18
+ /**
19
+ * Depend on constructs — a database, a bucket, a mail sender, a queue, a
20
+ * topic.
21
+ *
22
+ * It records the edge and dissolves each construct's client into the
23
+ * handler's service record under the construct's own id, so
24
+ * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
25
+ *
26
+ * Constructs only. A `Service` does not match the shape, which is what keeps
27
+ * env sniffing confined to `.services()` and the explicit lift.
28
+ */
29
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): CronBuilder<TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
30
+ services<T extends Service[]>(services: T): CronBuilder<TInput, [...TServices, ...T], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
31
+ logger<T extends Logger>(logger: T): CronBuilder<TInput, TServices, T, OutSchema, TDatabase, TDatabaseServiceName>;
32
+ /**
33
+ * Publish `event` to `topic` each time the cron has run successfully —
34
+ * repeatable, to as many topics as it names. The topic becomes a dependency
35
+ * as with `.dependsOn([topic])`, so `services.<topic>` is there too.
36
+ */
37
+ event<TTopic extends Topic<any, any>>(topic: TTopic, event: EventFor<TTopic, InferStandardSchema<OutSchema>>): CronBuilder<TInput, [...TServices, TTopic['service']], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
38
+ /**
39
+ * Set the database service for this cron job.
40
+ * The database will be available in the handler context as `db`.
41
+ */
42
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): CronBuilder<TInput, TServices, TLogger, OutSchema, T, TName>;
43
+ handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>): Cron<TInput, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
44
+ }
45
+ //#endregion
46
+ export { CronBuilder as t };
47
+ //# sourceMappingURL=CronBuilder-g1lZLWyG.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronBuilder-g1lZLWyG.d.cts","names":[],"sources":["../src/crons/CronBuilder.ts"],"mappings":";;;;;;;;;;cAuBa,YACZ,eAAe,0BACf,kBAAkB,WAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,uBACA,sDACS,gBACT,QACA,WACA,WACA,4BAGA,WACA;UAEQ;EAER;EAIS,WAAW;EAIpB,SACC,aAAa,qBACX,YACF,QACA,WACA,SACA,WACA,WACA;EAKQ,MAAM,UAAU,0BACxB,QAAQ,IACN,YACF,GACA,WACA,SACA,WACA,WACA;EAcQ,OAAO,UAAU,kBACzB,QAAQ,IACN,YACF,QACA,WACA,SACA,GACA,WACA;;;;;;;;;;;;EAyBQ,gBAAgB,mBAAmB,cAC3C,YAAY,IACV,YACF,YACI,cAAc,WAAW,KAC7B,SACA,WACA,WACA;EA2BQ,SAAS,UAAU,WAC3B,UAAU,IACR,YACF,YACI,cAAc,IAClB,SACA,WACA,WACA;EAiBQ,OAAO,UAAU,QACzB,QAAQ,IACN,YACF,QACA,WACA,GACA,WACA,WACA;;;;;;EAmBQ,MAAM,eAAe,iBAC7B,OAAO,QACP,OAAO,SAAS,QAAQ,oBAAoB,cAC1C,YACF,YACI,WAAW,oBACf,SACA,WACA,WACA;;;;;EAgBQ,SAAS,GAAG,sBACpB,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,YAAY,QAAQ,WAAW,SAAS,WAAW,GAAG;EA8BhD,OACR,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,aACzD,KACF,QACA,WACA,SACA,WACA,WACA"}
@@ -1,16 +1,18 @@
1
- import { Function, FunctionHandler } from "./index-_ajboYxK.mjs";
2
- import { HttpMethod, LowerHttpMethod } from "./types-aKksMEWL.mjs";
3
- import { ComponentCollector, OpenApiSchemaOptions } from "@geekmidas/schema/openapi";
1
+ import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
2
+ import { o as TopicEvent } from "./Construct-BQALFCh2.cjs";
3
+ import { i as FunctionHandler, n as Function } from "./Function-Pu-1kKZz.cjs";
4
+ import { t as Authenticator } from "./construct-interface-B1AfqRl4.cjs";
5
+ import "./index-BuzRvKOQ.cjs";
6
+ import { n as LowerHttpMethod, t as HttpMethod } from "./types-DMuSQeLL.cjs";
7
+ import { n as AuthSession } from "./auth-CIFXNuDk.cjs";
4
8
  import { EnvironmentParser } from "@geekmidas/envkit";
9
+ import { Logger } from "@geekmidas/logger";
10
+ import { InferComposableStandardSchema, InferStandardSchema, InferStandardSchemaInput } from "@geekmidas/schema";
5
11
  import { Service, ServiceRecord } from "@geekmidas/services";
6
12
  import { AuditActor, AuditStorage, AuditableAction, Auditor, ExtractAuditPayload, ExtractAuditType } from "@geekmidas/audit";
7
13
  import { RateLimitConfig } from "@geekmidas/rate-limit";
8
- import { EventPublisher, ExtractPublisherMessage, MappedEvent } from "@geekmidas/events";
9
- import { Logger } from "@geekmidas/logger";
10
- import { InferComposableStandardSchema, InferStandardSchema, InferStandardSchemaInput } from "@geekmidas/schema";
11
- import { StandardSchemaV1 } from "@standard-schema/spec";
14
+ import { ComponentCollector, OpenApiSchemaOptions } from "@geekmidas/schema/openapi";
12
15
  import { OpenAPIV3_1 } from "openapi-types";
13
-
14
16
  //#region src/endpoints/Authorizer.d.ts
15
17
  /**
16
18
  * OpenAPI 3.1 compliant security scheme definition.
@@ -57,38 +59,38 @@ interface OAuthFlow {
57
59
  */
58
60
  declare const BUILT_IN_SECURITY_SCHEMES: {
59
61
  readonly jwt: {
60
- readonly type: "http";
61
- readonly scheme: "bearer";
62
- readonly bearerFormat: "JWT";
63
- readonly description: "JWT Bearer token authentication";
62
+ readonly type: 'http';
63
+ readonly scheme: 'bearer';
64
+ readonly bearerFormat: 'JWT';
65
+ readonly description: 'JWT Bearer token authentication';
64
66
  };
65
67
  readonly bearer: {
66
- readonly type: "http";
67
- readonly scheme: "bearer";
68
- readonly description: "Bearer token authentication";
68
+ readonly type: 'http';
69
+ readonly scheme: 'bearer';
70
+ readonly description: 'Bearer token authentication';
69
71
  };
70
72
  readonly apiKey: {
71
- readonly type: "apiKey";
72
- readonly in: "header";
73
- readonly name: "X-API-Key";
74
- readonly description: "API key authentication via header";
73
+ readonly type: 'apiKey';
74
+ readonly in: 'header';
75
+ readonly name: 'X-API-Key';
76
+ readonly description: 'API key authentication via header';
75
77
  };
76
78
  readonly oauth2: {
77
- readonly type: "oauth2";
79
+ readonly type: 'oauth2';
78
80
  readonly flows: {};
79
- readonly description: "OAuth 2.0 authentication";
81
+ readonly description: 'OAuth 2.0 authentication';
80
82
  };
81
83
  readonly oidc: {
82
- readonly type: "openIdConnect";
83
- readonly openIdConnectUrl: "";
84
- readonly description: "OpenID Connect authentication";
84
+ readonly type: 'openIdConnect';
85
+ readonly openIdConnectUrl: '';
86
+ readonly description: 'OpenID Connect authentication';
85
87
  };
86
88
  readonly iam: {
87
- readonly type: "apiKey";
88
- readonly in: "header";
89
- readonly name: "Authorization";
90
- readonly description: "AWS IAM Signature Version 4 authentication";
91
- readonly 'x-amazon-apigateway-authtype': "awsSigv4";
89
+ readonly type: 'apiKey';
90
+ readonly in: 'header';
91
+ readonly name: 'Authorization';
92
+ readonly description: 'AWS IAM Signature Version 4 authentication';
93
+ readonly 'x-amazon-apigateway-authtype': 'awsSigv4';
92
94
  };
93
95
  };
94
96
  /** Names of built-in security schemes */
@@ -133,7 +135,6 @@ declare function isBuiltInSecurityScheme(name: string): name is BuiltInSecurityS
133
135
  * Get a security scheme by name (built-in or custom)
134
136
  */
135
137
  declare function getSecurityScheme(name: string, customSchemes?: Record<string, SecurityScheme>): SecurityScheme | undefined;
136
- //# sourceMappingURL=Authorizer.d.ts.map
137
138
  //#endregion
138
139
  //#region src/endpoints/audit.d.ts
139
140
  /**
@@ -169,9 +170,6 @@ type ActorExtractor<TServices extends Service[] = [], TSession = unknown, TLogge
169
170
  cookie: CookieFn;
170
171
  logger: TLogger;
171
172
  }) => AuditActor | Promise<AuditActor>;
172
- /**
173
- * Configuration for the auditor on an endpoint.
174
- */
175
173
  //#endregion
176
174
  //#region src/endpoints/rls.d.ts
177
175
  /**
@@ -225,7 +223,23 @@ declare const RLS_BYPASS: unique symbol;
225
223
  * Type for RLS bypass marker.
226
224
  */
227
225
  type RlsBypass = typeof RLS_BYPASS;
228
- //# sourceMappingURL=rls.d.ts.map
226
+ //#endregion
227
+ //#region src/endpoints/sessionAuth.d.ts
228
+ /**
229
+ * The surface's authenticator, as a session callback sees it.
230
+ *
231
+ * Bound to the request being handled, so reading the session takes no
232
+ * argument: `session(async ({ auth }) => auth.getSession())`.
233
+ */
234
+ interface SessionAuth {
235
+ /** This request's session, verified by the `.auth()` construct — or `null`. */
236
+ getSession(): Promise<AuthSession | null>;
237
+ }
238
+ /** `auth.getSession()` was called on a surface that names no authenticator. */
239
+ declare class NoAuthenticator extends Error {
240
+ readonly surface: string | undefined;
241
+ constructor(surface: string | undefined);
242
+ }
229
243
  //#endregion
230
244
  //#region src/endpoints/Endpoint.d.ts
231
245
  /**
@@ -253,7 +267,7 @@ type RlsBypass = typeof RLS_BYPASS;
253
267
  * });
254
268
  * ```
255
269
  */
256
- declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>> {
270
+ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>> {
257
271
  operationId?: string;
258
272
  /** The route path pattern with parameter placeholders */
259
273
  route: TRoute;
@@ -319,7 +333,7 @@ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput
319
333
  * });
320
334
  * ```
321
335
  */
322
- static buildOpenApiSchema(endpoints: Endpoint<any, any, any, any, any, any>[], options?: OpenApiSchemaOptions): Promise<OpenAPIV3_1.Document<{}>>;
336
+ static buildOpenApiSchema(endpoints: Endpoint<any, any, any, any, any, any>[], options?: OpenApiSchemaOptions): Promise<any>;
323
337
  /**
324
338
  * Gets the full path including HTTP method and route.
325
339
  * @returns Formatted string like 'GET /users/{id}'
@@ -441,53 +455,8 @@ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput
441
455
  * @param options.status - Success HTTP status code (default: 200)
442
456
  * @param options.authorizer - Optional authorizer configuration
443
457
  */
444
- constructor({
445
- fn,
446
- method,
447
- route,
448
- description,
449
- tags,
450
- input,
451
- logger,
452
- output: outputSchema,
453
- services,
454
- constructs,
455
- timeout,
456
- memorySize,
457
- getSession,
458
- authorize,
459
- rateLimit,
460
- status,
461
- publisherService,
462
- events,
463
- authorizer,
464
- surface,
465
- auditorStorageService,
466
- actorExtractor,
467
- audits,
468
- databaseService,
469
- rlsConfig,
470
- rlsBypass,
471
- responseType
472
- }: EndpointOptions<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, OutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>);
458
+ constructor({ fn, method, route, description, tags, input, logger, output: outputSchema, services, constructs, timeout, memorySize, getSession, authorize, rateLimit, status, events, authorizer, surface, auditorStorageService, actorExtractor, audits, databaseService, rlsConfig, rlsBypass, responseType }: EndpointOptions<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, OutSchema, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>);
473
459
  }
474
- /**
475
- * Defines the input schema structure for an endpoint.
476
- *
477
- * @template TBody - Schema for request body validation
478
- * @template TSearch - Schema for query string validation
479
- * @template TParams - Schema for URL path parameters validation
480
- *
481
- * @example
482
- * ```typescript
483
- * type UserInput = EndpointInput<
484
- * typeof createUserBodySchema,
485
- * typeof userQuerySchema,
486
- * typeof userParamsSchema
487
- * >;
488
- * ```
489
- */
490
-
491
460
  /**
492
461
  * The surface an endpoint was built from.
493
462
  *
@@ -516,6 +485,11 @@ interface EndpointSurface {
516
485
  * file or throws on a missing variable would do it at build time.
517
486
  */
518
487
  envParser: EnvironmentParser<{}>;
488
+ /**
489
+ * What authenticates requests to this surface — the construct named in
490
+ * `RestApi.auth()`, which session callbacks read from as `auth`.
491
+ */
492
+ auth?: Authenticator;
519
493
  }
520
494
  /**
521
495
  * Configuration options for creating an Endpoint instance.
@@ -528,7 +502,7 @@ interface EndpointSurface {
528
502
  * @template TLogger - Logger type
529
503
  * @template TSession - Session data type
530
504
  */
531
- interface EndpointOptions<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutput extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> {
505
+ interface EndpointOptions<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutput extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, OutSchema extends StandardSchemaV1 | undefined = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> {
532
506
  /** The route path with parameter placeholders */
533
507
  route: TRoute;
534
508
  /** The HTTP method for this endpoint */
@@ -566,11 +540,8 @@ interface EndpointOptions<TRoute extends string, TMethod extends HttpMethod, TIn
566
540
  rateLimit?: RateLimitConfig;
567
541
  /** Success HTTP status code */
568
542
  status: SuccessStatus | undefined;
569
- /**
570
- * Event publisher service for publishing events from this endpoint
571
- */
572
- publisherService?: Service<TEventPublisherServiceName, TEventPublisher>;
573
- events?: MappedEvent<TEventPublisher, OutSchema>[];
543
+ /** What it publishes once its handler succeeds, each to its own topic. */
544
+ events?: TopicEvent[];
574
545
  /** Optional authorizer configuration */
575
546
  authorizer?: Authorizer;
576
547
  /** The surface this endpoint was built from. Every endpoint has one. */
@@ -640,6 +611,12 @@ type BaseSessionContext<TServices extends Service[] = [], TLogger extends Logger
640
611
  logger: TLogger;
641
612
  header: HeaderFn;
642
613
  cookie: CookieFn;
614
+ /**
615
+ * The surface's authenticator — the construct named in `.auth()` — bound to
616
+ * this request: `await auth.getSession()` is this request's session, or
617
+ * `null`.
618
+ */
619
+ auth: SessionAuth;
643
620
  };
644
621
  /**
645
622
  * Conditional database context for session - only present when database service is configured
@@ -706,9 +683,9 @@ type ConvertRouteParams<T extends string> = T extends `${infer Start}:${infer Pa
706
683
  * // Results in: { '/users/{id}': { get: OperationObject, parameters?: ParameterObject[] } }
707
684
  * ```
708
685
  */
709
- type EndpointOpenApiSchema<TRoute extends string, TMethod extends HttpMethod> = { [key in ConvertRouteParams<TRoute>]: { [key in LowerHttpMethod<TMethod>]: OpenAPIV3_1.OperationObject<{}> } & {
686
+ type EndpointOpenApiSchema<TRoute extends string, TMethod extends HttpMethod> = { [key in ConvertRouteParams<TRoute>]: { [key in LowerHttpMethod<TMethod>]: OpenAPIV3_1.OperationObject<{}>; } & {
710
687
  parameters?: OpenAPIV3_1.ParameterObject[];
711
- } };
688
+ }; };
712
689
  /**
713
690
  * Function type for retrieving HTTP header values.
714
691
  * Supports two calling patterns:
@@ -888,9 +865,9 @@ declare enum SuccessStatus {
888
865
  /** Server successfully processed the request and is not returning any content, client should reset the document view */
889
866
  ResetContent = 205,
890
867
  /** Server is delivering only part of the resource due to a range header */
891
- PartialContent = 206,
868
+ PartialContent = 206
892
869
  }
893
870
  type EndpointOutput<T> = T extends Endpoint<any, any, any, infer OutSchema, any, any, any, any> ? InferStandardSchema<OutSchema> : never;
894
871
  //#endregion
895
- export { ActorExtractor, AuthorizeFn, Authorizer, BUILT_IN_SECURITY_SCHEMES, BuiltInSecuritySchemeId, CookieFn, Endpoint, EndpointContext, EndpointHandler, EndpointOutput, EndpointSchemas, EndpointSurface, HeaderFn, MappedAudit, OAuthFlow, OAuthFlows, RLS_BYPASS, ResponseBuilder, RlsBypass, RlsConfig, RlsContext, RlsContextExtractor, SecurityScheme, SessionFn, SuccessStatus, createAuthorizer, getSecurityScheme, isBuiltInSecurityScheme };
896
- //# sourceMappingURL=Endpoint-BjWKinFA.d.mts.map
872
+ export { getSecurityScheme as A, Authorizer as C, OAuthFlows as D, OAuthFlow as E, SecurityScheme as O, MappedAudit as S, BuiltInSecuritySchemeId as T, RlsBypass as _, EndpointContext as a, RlsContextExtractor as b, EndpointSchemas as c, ResponseBuilder as d, SessionFn as f, RLS_BYPASS as g, SessionAuth as h, Endpoint as i, isBuiltInSecurityScheme as j, createAuthorizer as k, EndpointSurface as l, NoAuthenticator as m, ConvertRouteParams as n, EndpointHandler as o, SuccessStatus as p, CookieFn as r, EndpointOutput as s, AuthorizeFn as t, HeaderFn as u, RlsConfig as v, BUILT_IN_SECURITY_SCHEMES as w, ActorExtractor as x, RlsContext as y };
873
+ //# sourceMappingURL=Endpoint-Bm9HjTPc.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Endpoint-Bm9HjTPc.d.cts","names":[],"sources":["../src/endpoints/Authorizer.ts","../src/endpoints/audit.ts","../src/endpoints/rls.ts","../src/endpoints/sessionAuth.ts","../src/endpoints/Endpoint.ts"],"mappings":"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"}