@geekmidas/constructs 10.0.0-alpha.5 → 10.0.0-alpha.50

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 (392) 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-B2OFsfDM.d.cts → Cron-DI3nKoic.d.cts} +22 -8
  11. package/dist/Cron-DI3nKoic.d.cts.map +1 -0
  12. package/dist/{Cron-CqEbBbwH.d.mts → Cron-uYAHPnp7.d.mts} +22 -8
  13. package/dist/Cron-uYAHPnp7.d.mts.map +1 -0
  14. package/dist/CronBuilder-BoHzlWU_.cjs +121 -0
  15. package/dist/CronBuilder-BoHzlWU_.cjs.map +1 -0
  16. package/dist/CronBuilder-CCgt0wCE.mjs +109 -0
  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-Dem2XyCu.d.mts → Endpoint-BkzU6nn1.d.cts} +70 -93
  23. package/dist/Endpoint-BkzU6nn1.d.cts.map +1 -0
  24. package/dist/{Endpoint-DrD8a1yH.d.cts → Endpoint-BpboleFh.d.mts} +71 -94
  25. package/dist/Endpoint-BpboleFh.d.mts.map +1 -0
  26. package/dist/{Endpoint-Dij_wOcc.mjs → Endpoint-CQ9RJ7p2.mjs} +130 -109
  27. package/dist/Endpoint-CQ9RJ7p2.mjs.map +1 -0
  28. package/dist/{Endpoint-DODn1RhN.cjs → Endpoint-DOi8c_Gy.cjs} +158 -131
  29. package/dist/Endpoint-DOi8c_Gy.cjs.map +1 -0
  30. package/dist/{index-B8g8POkr.d.cts → EndpointFactory-BZZOleQT.d.cts} +62 -132
  31. package/dist/EndpointFactory-BZZOleQT.d.cts.map +1 -0
  32. package/dist/{EndpointFactory-BHFMmFkV.cjs → EndpointFactory-Bo9lkMqB.cjs} +75 -110
  33. package/dist/EndpointFactory-Bo9lkMqB.cjs.map +1 -0
  34. package/dist/{EndpointFactory-b4ituq-s.mjs → EndpointFactory-DR1rebok.mjs} +39 -74
  35. package/dist/EndpointFactory-DR1rebok.mjs.map +1 -0
  36. package/dist/{index-DbKmfl-q.d.mts → EndpointFactory-DnNlYflU.d.mts} +63 -133
  37. package/dist/EndpointFactory-DnNlYflU.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-BM2jbWht.mjs → HonoEndpointAdaptor-BIS0O3M9.mjs} +41 -47
  43. package/dist/HonoEndpointAdaptor-BIS0O3M9.mjs.map +1 -0
  44. package/dist/{HonoEndpointAdaptor-De6IlBZe.cjs → HonoEndpointAdaptor-CMi0MJsF.cjs} +50 -53
  45. package/dist/HonoEndpointAdaptor-CMi0MJsF.cjs.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 +189 -110
  79. package/dist/adaptors/aws.cjs.map +1 -1
  80. package/dist/adaptors/aws.d.cts +81 -45
  81. package/dist/adaptors/aws.d.cts.map +1 -1
  82. package/dist/adaptors/aws.d.mts +82 -46
  83. package/dist/adaptors/aws.d.mts.map +1 -1
  84. package/dist/adaptors/aws.mjs +161 -85
  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 +704 -90
  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 +669 -71
  99. package/dist/adaptors/testing.mjs.map +1 -1
  100. package/dist/auth-3OAmK42n.d.cts +188 -0
  101. package/dist/auth-3OAmK42n.d.cts.map +1 -0
  102. package/dist/auth-BWbiewHa.d.mts +188 -0
  103. package/dist/auth-BWbiewHa.d.mts.map +1 -0
  104. package/dist/auth.cjs +171 -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 +160 -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 +68 -10
  147. package/dist/crons/index.cjs.map +1 -1
  148. package/dist/crons/index.d.cts +32 -14
  149. package/dist/crons/index.d.cts.map +1 -1
  150. package/dist/crons/index.d.mts +32 -14
  151. package/dist/crons/index.d.mts.map +1 -1
  152. package/dist/crons/index.mjs +66 -10
  153. package/dist/crons/index.mjs.map +1 -1
  154. package/dist/database/kysely.cjs +40 -15
  155. package/dist/database/kysely.cjs.map +1 -1
  156. package/dist/database/kysely.d.cts +2 -152
  157. package/dist/database/kysely.d.mts +2 -152
  158. package/dist/database/kysely.mjs +28 -5
  159. package/dist/database/kysely.mjs.map +1 -1
  160. package/dist/email.cjs +25 -12
  161. package/dist/email.cjs.map +1 -1
  162. package/dist/email.d.cts +3 -7
  163. package/dist/email.d.cts.map +1 -1
  164. package/dist/email.d.mts +3 -7
  165. package/dist/email.d.mts.map +1 -1
  166. package/dist/email.mjs +16 -3
  167. package/dist/email.mjs.map +1 -1
  168. package/dist/encryption.cjs +96 -0
  169. package/dist/encryption.cjs.map +1 -0
  170. package/dist/encryption.d.cts +117 -0
  171. package/dist/encryption.d.cts.map +1 -0
  172. package/dist/encryption.d.mts +117 -0
  173. package/dist/encryption.d.mts.map +1 -0
  174. package/dist/encryption.mjs +83 -0
  175. package/dist/encryption.mjs.map +1 -0
  176. package/dist/endpoints/index.cjs +8 -10
  177. package/dist/endpoints/index.d.cts +51 -7
  178. package/dist/endpoints/index.d.cts.map +1 -0
  179. package/dist/endpoints/index.d.mts +51 -7
  180. package/dist/endpoints/index.d.mts.map +1 -0
  181. package/dist/endpoints/index.mjs +6 -10
  182. package/dist/external-api-CWY9orcO.d.mts +86 -0
  183. package/dist/external-api-CWY9orcO.d.mts.map +1 -0
  184. package/dist/external-api-D-5WB-sr.d.cts +86 -0
  185. package/dist/external-api-D-5WB-sr.d.cts.map +1 -0
  186. package/dist/external-api.cjs +124 -0
  187. package/dist/external-api.cjs.map +1 -0
  188. package/dist/external-api.d.cts +2 -0
  189. package/dist/external-api.d.mts +2 -0
  190. package/dist/external-api.mjs +121 -0
  191. package/dist/external-api.mjs.map +1 -0
  192. package/dist/file-server.cjs +42 -10
  193. package/dist/file-server.cjs.map +1 -1
  194. package/dist/file-server.d.cts +6 -10
  195. package/dist/file-server.d.cts.map +1 -1
  196. package/dist/file-server.d.mts +6 -10
  197. package/dist/file-server.d.mts.map +1 -1
  198. package/dist/file-server.mjs +34 -2
  199. package/dist/file-server.mjs.map +1 -1
  200. package/dist/functions/index.cjs +2 -6
  201. package/dist/functions/index.d.cts +3 -4
  202. package/dist/functions/index.d.mts +3 -4
  203. package/dist/functions/index.mjs +2 -6
  204. package/dist/{functions-DJJA7VGc.cjs → functions-CbP5ZKma.cjs} +421 -273
  205. package/dist/functions-CbP5ZKma.cjs.map +1 -0
  206. package/dist/{functions-Ck21Uyq0.mjs → functions-Di6n5ltG.mjs} +383 -241
  207. package/dist/functions-Di6n5ltG.mjs.map +1 -0
  208. package/dist/index-BuzRvKOQ.d.cts +115 -0
  209. package/dist/index-BuzRvKOQ.d.cts.map +1 -0
  210. package/dist/index-CTkKOer4.d.mts +115 -0
  211. package/dist/index-CTkKOer4.d.mts.map +1 -0
  212. package/dist/index-CeEtxDmK.d.cts +79 -0
  213. package/dist/index-CeEtxDmK.d.cts.map +1 -0
  214. package/dist/index-CeEtxDmK.d.mts +79 -0
  215. package/dist/index-CeEtxDmK.d.mts.map +1 -0
  216. package/dist/index.cjs +3 -3
  217. package/dist/index.d.cts +4 -4
  218. package/dist/index.d.mts +4 -4
  219. package/dist/index.mjs +2 -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-Bqov3fwv.d.mts +159 -0
  225. package/dist/kysely-Bqov3fwv.d.mts.map +1 -0
  226. package/dist/kysely-DTnkZsub.d.cts +159 -0
  227. package/dist/kysely-DTnkZsub.d.cts.map +1 -0
  228. package/dist/{lazyAccessors-BoJN3SMd.mjs → lazyAccessors-CFanua0O.mjs} +20 -60
  229. package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
  230. package/dist/{lazyAccessors-e3j2oE2m.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -113
  231. package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
  232. package/dist/mobile-app.cjs +73 -0
  233. package/dist/mobile-app.cjs.map +1 -0
  234. package/dist/mobile-app.d.cts +61 -0
  235. package/dist/mobile-app.d.cts.map +1 -0
  236. package/dist/mobile-app.d.mts +61 -0
  237. package/dist/mobile-app.d.mts.map +1 -0
  238. package/dist/mobile-app.mjs +72 -0
  239. package/dist/mobile-app.mjs.map +1 -0
  240. package/dist/object-storage.cjs +18 -10
  241. package/dist/object-storage.cjs.map +1 -1
  242. package/dist/object-storage.d.cts +3 -7
  243. package/dist/object-storage.d.cts.map +1 -1
  244. package/dist/object-storage.d.mts +3 -7
  245. package/dist/object-storage.d.mts.map +1 -1
  246. package/dist/object-storage.mjs +11 -3
  247. package/dist/object-storage.mjs.map +1 -1
  248. package/dist/{processAudits-Dmts9H_b.mjs → processAudits-BpRlPQMW.mjs} +16 -19
  249. package/dist/processAudits-BpRlPQMW.mjs.map +1 -0
  250. package/dist/{processAudits-CGqttuXm.cjs → processAudits-D_2W5x8k.cjs} +26 -30
  251. package/dist/processAudits-D_2W5x8k.cjs.map +1 -0
  252. package/dist/queue/index.cjs +6 -189
  253. package/dist/queue/index.d.cts +3 -60
  254. package/dist/queue/index.d.mts +3 -60
  255. package/dist/queue/index.mjs +3 -186
  256. package/dist/rest-api.cjs +87 -63
  257. package/dist/rest-api.cjs.map +1 -1
  258. package/dist/rest-api.d.cts +62 -61
  259. package/dist/rest-api.d.cts.map +1 -1
  260. package/dist/rest-api.d.mts +62 -61
  261. package/dist/rest-api.d.mts.map +1 -1
  262. package/dist/rest-api.mjs +79 -55
  263. package/dist/rest-api.mjs.map +1 -1
  264. package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
  265. package/dist/site.cjs +33 -9
  266. package/dist/site.cjs.map +1 -1
  267. package/dist/site.d.cts +11 -22
  268. package/dist/site.d.cts.map +1 -1
  269. package/dist/site.d.mts +11 -22
  270. package/dist/site.d.mts.map +1 -1
  271. package/dist/site.mjs +29 -5
  272. package/dist/site.mjs.map +1 -1
  273. package/dist/subscribers/index.cjs +2 -11
  274. package/dist/subscribers/index.d.cts +3 -14
  275. package/dist/subscribers/index.d.mts +3 -14
  276. package/dist/subscribers/index.mjs +2 -11
  277. package/dist/surfaceEnv-CNimK76p.cjs +56 -0
  278. package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
  279. package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
  280. package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
  281. package/dist/{telemetry-C3L0iS28.d.cts → telemetry-DGcFlVpB.d.cts} +2 -5
  282. package/dist/telemetry-DGcFlVpB.d.cts.map +1 -0
  283. package/dist/{telemetry-D7bVFLGi.d.mts → telemetry-DGcFlVpB.d.mts} +2 -5
  284. package/dist/telemetry-DGcFlVpB.d.mts.map +1 -0
  285. package/dist/topic/index.cjs +3 -137
  286. package/dist/topic/index.d.cts +2 -32
  287. package/dist/topic/index.d.mts +2 -32
  288. package/dist/topic/index.mjs +2 -134
  289. package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
  290. package/dist/types-DMuSQeLL.d.cts.map +1 -0
  291. package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
  292. package/dist/types-DMuSQeLL.d.mts.map +1 -0
  293. package/dist/types.d.cts +1 -1
  294. package/dist/types.d.mts +1 -1
  295. package/dist/types.mjs +1 -0
  296. package/dist/worker.cjs +137 -38
  297. package/dist/worker.cjs.map +1 -1
  298. package/dist/worker.d.cts +113 -44
  299. package/dist/worker.d.cts.map +1 -1
  300. package/dist/worker.d.mts +113 -43
  301. package/dist/worker.d.mts.map +1 -1
  302. package/dist/worker.mjs +132 -33
  303. package/dist/worker.mjs.map +1 -1
  304. package/package.json +81 -41
  305. package/dist/Construct-BD5neF7w.mjs.map +0 -1
  306. package/dist/Construct-C0ijr2qp.d.cts +0 -117
  307. package/dist/Construct-C0ijr2qp.d.cts.map +0 -1
  308. package/dist/Construct-Ct8nalEi.d.mts +0 -117
  309. package/dist/Construct-Ct8nalEi.d.mts.map +0 -1
  310. package/dist/Construct-CyS3RpTL.cjs.map +0 -1
  311. package/dist/Cron-B2OFsfDM.d.cts.map +0 -1
  312. package/dist/Cron-CqEbBbwH.d.mts.map +0 -1
  313. package/dist/CronBuilder-Bg-9h2cc.d.mts +0 -44
  314. package/dist/CronBuilder-Bg-9h2cc.d.mts.map +0 -1
  315. package/dist/CronBuilder-CdibiHNB.mjs +0 -84
  316. package/dist/CronBuilder-CdibiHNB.mjs.map +0 -1
  317. package/dist/CronBuilder-DyUr6nYz.cjs +0 -96
  318. package/dist/CronBuilder-DyUr6nYz.cjs.map +0 -1
  319. package/dist/CronBuilder-LSJMfqnq.d.cts +0 -44
  320. package/dist/CronBuilder-LSJMfqnq.d.cts.map +0 -1
  321. package/dist/Endpoint-DODn1RhN.cjs.map +0 -1
  322. package/dist/Endpoint-Dem2XyCu.d.mts.map +0 -1
  323. package/dist/Endpoint-Dij_wOcc.mjs.map +0 -1
  324. package/dist/Endpoint-DrD8a1yH.d.cts.map +0 -1
  325. package/dist/EndpointFactory-BHFMmFkV.cjs.map +0 -1
  326. package/dist/EndpointFactory-b4ituq-s.mjs.map +0 -1
  327. package/dist/HonoEndpointAdaptor-BM2jbWht.mjs.map +0 -1
  328. package/dist/HonoEndpointAdaptor-De6IlBZe.cjs.map +0 -1
  329. package/dist/Queue-D7ZuwBhy.d.cts.map +0 -1
  330. package/dist/Queue-gVGfi2Yk.d.mts.map +0 -1
  331. package/dist/Subscriber-2mEi0ImH.d.cts.map +0 -1
  332. package/dist/Subscriber-xTJ9ayPN.d.mts.map +0 -1
  333. package/dist/SubscriberBuilder-4OPehf2R.cjs.map +0 -1
  334. package/dist/SubscriberBuilder-BjkbeT9l.mjs.map +0 -1
  335. package/dist/SubscriberBuilder-Dptmo-1A.d.mts +0 -62
  336. package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +0 -1
  337. package/dist/SubscriberBuilder-waNhzjSM.d.cts +0 -62
  338. package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +0 -1
  339. package/dist/Topic-19QeHBIR.d.cts +0 -91
  340. package/dist/Topic-19QeHBIR.d.cts.map +0 -1
  341. package/dist/Topic-DuFeqkBh.d.mts +0 -91
  342. package/dist/Topic-DuFeqkBh.d.mts.map +0 -1
  343. package/dist/auth.d.cts.map +0 -1
  344. package/dist/auth.d.mts.map +0 -1
  345. package/dist/cache-0ANvRQnD.mjs +0 -51
  346. package/dist/cache-0ANvRQnD.mjs.map +0 -1
  347. package/dist/cache-3WSvAulx.cjs +0 -57
  348. package/dist/cache-3WSvAulx.cjs.map +0 -1
  349. package/dist/cache-BrRz3fEB.d.mts.map +0 -1
  350. package/dist/cache-BtZY_tHe.d.cts.map +0 -1
  351. package/dist/clone-DblgEZZa.mjs.map +0 -1
  352. package/dist/clone-Dy0cR2SZ.cjs.map +0 -1
  353. package/dist/construct-interface-BfjcOD_E.cjs +0 -117
  354. package/dist/construct-interface-BfjcOD_E.cjs.map +0 -1
  355. package/dist/construct-interface-D9d4Gm4p.d.cts.map +0 -1
  356. package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
  357. package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
  358. package/dist/construct-interface-g5GM5pwR.d.mts.map +0 -1
  359. package/dist/database/kysely.d.cts.map +0 -1
  360. package/dist/database/kysely.d.mts.map +0 -1
  361. package/dist/functions-Ck21Uyq0.mjs.map +0 -1
  362. package/dist/functions-DJJA7VGc.cjs.map +0 -1
  363. package/dist/index-AIfVzkhi.d.cts +0 -170
  364. package/dist/index-AIfVzkhi.d.cts.map +0 -1
  365. package/dist/index-B8g8POkr.d.cts.map +0 -1
  366. package/dist/index-D3zjrwjr.d.mts +0 -169
  367. package/dist/index-D3zjrwjr.d.mts.map +0 -1
  368. package/dist/index-DbKmfl-q.d.mts.map +0 -1
  369. package/dist/lazyAccessors-BoJN3SMd.mjs.map +0 -1
  370. package/dist/lazyAccessors-e3j2oE2m.cjs.map +0 -1
  371. package/dist/processAudits-CGqttuXm.cjs.map +0 -1
  372. package/dist/processAudits-Dmts9H_b.mjs.map +0 -1
  373. package/dist/queue/index.cjs.map +0 -1
  374. package/dist/queue/index.d.cts.map +0 -1
  375. package/dist/queue/index.d.mts.map +0 -1
  376. package/dist/queue/index.mjs.map +0 -1
  377. package/dist/subscribers/index.cjs.map +0 -1
  378. package/dist/subscribers/index.d.cts.map +0 -1
  379. package/dist/subscribers/index.d.mts.map +0 -1
  380. package/dist/subscribers/index.mjs.map +0 -1
  381. package/dist/surfaceEnv-BFXEms2f.cjs +0 -39
  382. package/dist/surfaceEnv-BFXEms2f.cjs.map +0 -1
  383. package/dist/surfaceEnv-C3Ktahea.mjs +0 -27
  384. package/dist/surfaceEnv-C3Ktahea.mjs.map +0 -1
  385. package/dist/telemetry-C3L0iS28.d.cts.map +0 -1
  386. package/dist/telemetry-D7bVFLGi.d.mts.map +0 -1
  387. package/dist/topic/index.cjs.map +0 -1
  388. package/dist/topic/index.d.cts.map +0 -1
  389. package/dist/topic/index.d.mts.map +0 -1
  390. package/dist/topic/index.mjs.map +0 -1
  391. package/dist/types-BlAkSuGI.d.cts.map +0 -1
  392. package/dist/types-aKksMEWL.d.mts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-B8g8POkr.d.cts","names":[],"sources":["../src/publisher.ts","../src/endpoints/EndpointBuilder.ts","../src/endpoints/EndpointFactory.ts","../src/endpoints/lazyAccessors.ts","../src/endpoints/surfaceEnv.ts"],"sourcesContent":[],"mappings":"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,iBAAA;IAAA,qBAAA;IAAA,oBAAA;IAAA,qBAAA;IAAA,qBAAA;IAAA,sBAAA;IAAA,qBAAA;IAAA,qBAAA;IAAA,gBAAA;IAAA;EAAA,CAAA,EC8Eb,sBD9Ea,CC+Ef,SD/Ee,ECgFf,SDhFe,ECiFf,ODjFe,ECkFf,QDlFe,ECmFf,eDnFe,ECoFf,0BDpFe,ECqFf,YDrFe,ECsFf,aDtFe,ECuFf,wBDvFe,ECwFf,SDxFe,ECyFf,oBDzFe,EC0Ff,gBD1Fe,EC2Ff,UD3Fe,CAAA;EAAM,OAAG,SAAA,CAAA,kBAAA,MAAA,EAAA,UAAA,MAAA,CAAA,CAAA,IAAA,ECoHlB,CDpHkB,EAAA,QAAA,CAAA,ECqHd,SDrHc,CAAA,ECsHtB,SDtHsB,CCsHZ,SDtHY,ECsHD,CDtHC,CAAA;EAAM,WACb,CAAA,gBAAA,SAAA,MAAA,EAAA,CAAA,CAAA,WAAA,ECyJJ,CDzJI,CAAA,EC0Jf,eD1Je,CC2JjB,SD3JiB,EC4JjB,SD5JiB,EC6JjB,OD7JiB,EC8JjB,QD9JiB,EC+JjB,eD/JiB,ECgKjB,0BDhKiB,ECiKjB,CDjKiB,ECkKjB,aDlKiB,ECmKjB,wBDnKiB,ECoKjB,YDpKiB,ECqKjB,SDrKiB,ECsKjB,oBDtKiB,ECuKjB,gBDvKiB,ECwKjB,UDxKiB,CAAA;EAAgB;;;;;;;;;;;;;;;;EAqDT,eA5BN,CAAA,UCuMO,MDvMP,CAAA,MAAA,ECuMsB,cDvMtB,CAAA,CAAA,CAAA,OAAA,ECwMT,CDxMS,CAAA,ECyMhB,eDzMgB,CC0MlB,SD1MkB,EC2MlB,SD3MkB,EC4MlB,OD5MkB,EC6MlB,QD7MkB,EC8MlB,eD9MkB,EC+MlB,0BD/MkB,ECgNlB,YDhNkB,ECiNlB,aDjNkB,ECkNlB,wBDlNkB,ECmNlB,YDnNkB,ECoNlB,SDpNkB,ECqNlB,oBDrNkB,ECsNlB,gBDtNkB,GCsNC,CDtND,ECuNlB,UDvNkB,CAAA;EAAM;;;;;;;;;;EAQmC,UAAE,CAAA,IAAA,ECkQ1D,uBDlQ0D,GAAA,MCmQpD,gBDnQoD,GCoQ1D,YDpQ0D,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA,ECsQ3D,eDtQ2D,CCuQ7D,SDvQ6D,ECwQ7D,SDxQ6D,ECyQ7D,ODzQ6D,EC0Q7D,QD1Q6D,EC2Q7D,eD3Q6D,EC4Q7D,0BD5Q6D,EC6Q7D,YD7Q6D,EC8Q7D,aD9Q6D,EC+Q7D,wBD/Q6D,ECgR7D,YDhR6D,ECiR7D,SDjR6D,ECkR7D,oBDlR6D,ECmR7D,gBDnR6D,ECoR7D,UDpR6D,CAAA;EAAS,KAA3D,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC0UL,KD1UK,CAAA,EC2UT,eD3US,CC4UX,SD5UW,EC6UX,SD7UW,CC6UD,SD7UC,EC6UU,KD7UV,CAAA,EC8UX,OD9UW,EC+UX,QD/UW,ECgVX,eDhVW,ECiVX,0BDjVW,ECkVX,YDlVW,ECmVX,aDnVW,ECoVX,wBDpVW,ECqVX,YDrVW,ECsVX,SDtVW,ECuVX,oBDvVW,ECwVX,gBDxVW,ECyVX,UDzVW,CAAA;EAAW,SAEV,CAAA,EAAA,EC8XR,WD9XQ,CC8XI,SD9XJ,EC8Xe,OD9Xf,EC8XwB,QD9XxB,EAAA,SAAA,EC8X6C,SD9X7C,CAAA,CAAA,EC+XV,eD/XU,CCgYZ,SDhYY,ECiYZ,SDjYY,ECkYZ,ODlYY,ECmYZ,QDnYY,ECoYZ,eDpYY,ECqYZ,0BDrYY,ECsYZ,YDtYY,ECuYZ,aDvYY,ECwYZ,wBDxYY,ECyYZ,YDzYY,EC0YZ,SD1YY,EC2YZ,oBD3YY,EC4YZ,gBD5YY,EC6YZ,UD7YY,CAAA;EAAe;;;;;;;;;;;EAYyB,SAA7B,CAAA,gBAAA,SCibW,UDjbX,EAAA,CAAA,CAAA,UAAA,ECkbX,CDlbW,CAAA,ECmbrB,eDnbqB,CAAA,CACD,GCmblB,UDnbkB,CCmbP,CDnbO,CAAA,EAAW,GCmbX,SDnbW,CAAQ,ECobzC,SDpb2C,ECqb3C,ODrb2C,ECsb3C,QDtb2C,ECub3C,eDvb2C,ECwb3C,0BDxb2C,ECyb3C,YDzb2C,EC0b3C,aD1b2C,EC2b3C,wBD3b2C,EC4b3C,YD5b2C,EC6b3C,SD7b2C,EC8b3C,oBD9b2C,EC+b3C,gBD/b2C,ECgc3C,SDhc2C,CAAA,CAAA,GCgc7B,UDhc6B,CCgclB,CDhckB,CAAA,EAAA,GCgcX,SDhcW,CAAA,ECgcC,QDhcD,ECgcW,ODhcX,CAAA,GAAA,SAAA,CAAA;EAAO,QAAtC,CAAA,UC+dM,OD/dN,EAAA,CAAA,CAAA,QAAA,ECgeF,CDheE,CAAA,ECieV,eDjeU,CAAA,CAII,GC8dZ,CD9dY,EACC,GC6dP,SD7dO,CAAO,EC8dxB,SDvdmB,ECwdnB,ODxdmB,ECydnB,QDzdmB,EC0dnB,eD1dmB,EC2dnB,0BD3dmB,EC4dnB,YD5dmB,EC6dnB,aD7dmB,EC8dnB,wBD9dmB,EC+dnB,YD/dmB,ECgenB,SDhemB,ECienB,oBDjemB,ECkenB,gBDlemB,ECmenB,SDnemB,CAAA,CAAA,GCmeL,CDneK,EAAA,GCmeC,SDneD,CAAA,ECmea,QDneb,ECmeuB,ODnevB,CAAA,GAAA,SAAA,CAAA;EAA0B,MAAE,CAAA,UCihB/B,MDjhB+B,CAAA,CAAA,MAAA,ECkhBvC,CDlhBuC,CAAA,ECmhB7C,eDnhB6C,CCohB/C,SDphB+C,ECqhB/C,SDrhB+C,ECshB/C,CDthB+C,ECuhB/C,QDvhB+C,ECwhB/C,eDxhB+C,ECyhB/C,0BDzhB+C,EC0hB/C,YD1hB+C,EC2hB/C,aD3hB+C,EC4hB/C,wBD5hB+C,EC6hB/C,YD7hB+C,EC8hB/C,SD9hB+C,EC+hB/C,oBD/hB+C,ECgiB/C,gBDhiB+C,ECiiB/C,SDjiB+C,CCiiBrC,SDjiBqC,ECiiB1B,QDjiB0B,ECiiBhB,CDjiBgB,CAAA,GAAA,SAAA,CAAA;EAAe,SAAnD,CAAA,UCslBD,cDtlBC,CAAA,GAAA,CAAA,EAAA,qBAAA,MAAA,GAAA,MAAA,CAAA,CAAA,SAAA,ECylBA,ODzlBA,CCylBQ,YDzlBR,ECylBsB,CDzlBtB,CAAA,CAAA,EC0lBT,eD1lBS,CC2lBX,SD3lBW,EC4lBX,SD5lBW,EC6lBX,OD7lBW,EC8lBX,QD9lBW,EC+lBX,CD/lBW,ECgmBX,YDhmBW,ECimBX,YDjmBW,ECkmBX,aDlmBW,ECmmBX,wBDnmBW,EComBX,YDpmBW,ECqmBX,SDrmBW,ECsmBX,oBDtmBW,ECumBX,gBDvmBW,ECwmBX,UDxmBW,CAAA;EAAO,OAOD,CAAA,CAAA,CAAA,CAAA,OAAA,ECsoBR,SDtoBQ,CCsoBE,SDtoBF,ECsoBa,ODtoBb,ECsoBsB,CDtoBtB,ECsoByB,SDtoBzB,CAAA,CAAA,ECuoBf,eDvoBe,CCwoBjB,SDxoBiB,ECyoBjB,SDzoBiB,EC0oBjB,OD1oBiB,EC2oBjB,CD3oBiB,EC4oBjB,eD5oBiB,EC6oBjB,0BD7oBiB,EC8oBjB,YD9oBiB,EC+oBjB,aD/oBiB,ECgpBjB,wBDhpBiB,ECipBjB,YDjpBiB,ECkpBjB,SDlpBiB,ECmpBjB,oBDnpBiB,ECopBjB,gBDppBiB,ECqpBjB,SDrpBiB,CCqpBP,SDrpBO,ECqpBI,CDrpBJ,ECqpBO,ODrpBP,CAAA,GAAA,SAAA,CAAA;EAAwB;;;;EAM0B,QAAvC,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,ECmsBpB,UDnsBoB,CCmsBT,KDnsBS,ECmsBF,CDnsBE,CAAA,GCmsBG,ODnsBH,CCmsBW,KDnsBX,ECmsBkB,CDnsBlB,CAAA,CAAA,ECosB1B,eDpsB0B,CCqsB5B,SDrsB4B,ECssB5B,SDtsB4B,ECusB5B,ODvsB4B,ECwsB5B,QDxsB4B,ECysB5B,eDzsB4B,EC0sB5B,0BD1sB4B,EC2sB5B,YD3sB4B,EC4sB5B,aD5sB4B,EC6sB5B,wBD7sB4B,EC8sB5B,YD9sB4B,EC+sB5B,CD/sB4B,ECgtB5B,KDhtB4B,ECitB5B,gBDjtB4B,ECktB5B,UDltB4B,CAAA;EAAO;;;;;EAatB,OAqCe,CAAA,UCgtBX,YDhtBW,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,ECitBnB,ODjtBmB,CCitBX,KDjtBW,ECitBJ,CDjtBI,CAAA,CAAA,ECktB1B,eDltB0B,CCmtB5B,SDntB4B,ECotB5B,SDptB4B,ECqtB5B,ODrtB4B,ECstB5B,QDttB4B,ECutB5B,eDvtB4B,ECwtB5B,0BDxtB4B,ECytB5B,YDztB4B,EC0tB5B,CD1tB4B,EC2tB5B,KD3tB4B,EC4tB5B,yBD5tB4B,CC4tBF,CD5tBE,CAAA,EC6tB5B,SD7tB4B,EC8tB5B,oBD9tB4B,EC+tB5B,gBD/tB4B,ECguB5B,UDhuB4B,CAAA;EAAc;;;;EAGpC,KACN,CAAA,SAAA,EC0wBW,cD1wBX,CC0wB0B,SD1wB1B,EC0wBqC,QD1wBrC,EC0wB+C,OD1wB/C,CAAA,CAAA,EC2wBE,eD3wBF,CC4wBA,SD5wBA,EC6wBA,SD7wBA,EC8wBA,OD9wBA,EC+wBA,QD/wBA,ECgxBA,eDhxBA,ECixBA,0BDjxBA,ECkxBA,YDlxBA,ECmxBA,aDnxBA,ECoxBA,wBDpxBA,ECqxBA,YDrxBA,ECsxBA,SDtxBA,ECuxBA,oBDvxBA,ECwxBA,gBDxxBA,ECyxBA,UDzxBA,CAAA;EAAO;;;;;;;;;;;;;;;;;;EA2CA,GACF,CAAA,gBCmyBc,SDnyBd,CCmyBwB,SDnyBxB,ECmyBmC,QDnyBnC,ECmyB6C,ODnyB7C,CAAA,CAAA,CAAA,MAAA,ECoyBG,ODpyBH,CAAA,ECqyBH,eDryBG,CCsyBL,SDtyBK,ECuyBL,SDvyBK,ECwyBL,ODxyBK,ECyyBL,QDzyBK,EC0yBL,eD1yBK,EC2yBL,0BD3yBK,EC4yBL,YD5yBK,EC6yBL,aD7yBK,EC8yBL,wBD9yBK,EC+yBL,YD/yBK,ECgzBL,SDhzBK,ECizBL,oBDjzBK,ECkzBL,gBDlzBK,ECmzBL,ODnzBK,CAAA;EAAM,QAAX,aAAA;EAAI,IAA2B,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC67BC,KD77BD,CAAA,EC67BM,eD77BN,CC67BM,mBD77BN,CC67BM,SD77BN,SAAA,EAAA,GC67BM,KD77BN,GC67BM,KD77BN,SAAA,EAAA,GC67BM,SD77BN,GC67BM,SD77BN,SAAA,GAAA,GC67BM,KD77BN,SAAA,IAAA,MAAA,EAAA,GC67BM,KD77BN,GAAA,IC67BM,KD77BN,EAAA,GC67BM,SD77BN,SAAA,GAAA,KAAA,KAAA,GAAA,GCw+BI,KDx+BJ,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCy+BE,IDz+BF,ICy+BE,IDz+BF,EAAA,GAAA,GCy+BE,IDz+BF,ICy+BE,KDz+BF,EAAA,GCy+BE,KDz+BF,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCy+BE,SDz+BF,ICy+BE,MDz+BF,EAAA,GAAA,GCy+BE,SDz+BF,ICy+BE,KDz+BF,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,ECy+BE,SDz+BF,ECy+BE,ODz+BF,EAAA,SAAA,ECy+BE,QDz+BF,ECy+BE,eDz+BF,ECy+BE,0BDz+BF,ECy+BE,YDz+BF,ECy+BE,aDz+BF,ECy+BE,wBDz+BF,ECy+BE,YDz+BF,ECy+BE,SDz+BF,ECy+BE,oBDz+BF,CAAA;EAAC,GAChC,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECg8B+B,KDh8B/B,CAAA,ECg8BoC,eDh8BpC,CCg8BoC,mBDh8BpC,CCg8BoC,SDh8BpC,SAAA,EAAA,GCg8BoC,KDh8BpC,GCg8BoC,KDh8BpC,SAAA,EAAA,GCg8BoC,SDh8BpC,GCg8BoC,SDh8BpC,SAAA,GAAA,GCg8BoC,KDh8BpC,SAAA,IAAA,MAAA,EAAA,GCg8BoC,KDh8BpC,GAAA,ICg8BoC,KDh8BpC,EAAA,GCg8BoC,SDh8BpC,SAAA,GAAA,KAAA,KAAA,GAAA,GCu+BmC,KDv+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCw+BiC,IDx+BjC,ICw+BiC,IDx+BjC,EAAA,GAAA,GCw+BiC,IDx+BjC,ICw+BiC,KDx+BjC,EAAA,GCw+BiC,KDx+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCw+BiC,SDx+BjC,ICw+BiC,MDx+BjC,EAAA,GAAA,GCw+BiC,SDx+BjC,ICw+BiC,KDx+BjC,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,ECw+BiC,SDx+BjC,ECw+BiC,ODx+BjC,EAAA,SAAA,ECw+BiC,QDx+BjC,ECw+BiC,eDx+BjC,ECw+BiC,0BDx+BjC,ECw+BiC,YDx+BjC,ECw+BiC,aDx+BjC,ECw+BiC,wBDx+BjC,ECw+BiC,YDx+BjC,ECw+BiC,SDx+BjC,ECw+BiC,oBDx+BjC,CAAA;EAAS,GACT,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECm8B+B,KDn8B/B,CAAA,ECm8BoC,eDn8BpC,CCm8BoC,mBDn8BpC,CCm8BoC,SDn8BpC,SAAA,EAAA,GCm8BoC,KDn8BpC,GCm8BoC,KDn8BpC,SAAA,EAAA,GCm8BoC,SDn8BpC,GCm8BoC,SDn8BpC,SAAA,GAAA,GCm8BoC,KDn8BpC,SAAA,IAAA,MAAA,EAAA,GCm8BoC,KDn8BpC,GAAA,ICm8BoC,KDn8BpC,EAAA,GCm8BoC,SDn8BpC,SAAA,GAAA,KAAA,KAAA,GAAA,GCs+BmC,KDt+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCu+BiC,IDv+BjC,ICu+BiC,IDv+BjC,EAAA,GAAA,GCu+BiC,IDv+BjC,ICu+BiC,KDv+BjC,EAAA,GCu+BiC,KDv+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCu+BiC,SDv+BjC,ICu+BiC,MDv+BjC,EAAA,GAAA,GCu+BiC,SDv+BjC,ICu+BiC,KDv+BjC,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,ECu+BiC,SDv+BjC,ECu+BiC,ODv+BjC,EAAA,SAAA,ECu+BiC,QDv+BjC,ECu+BiC,eDv+BjC,ECu+BiC,0BDv+BjC,ECu+BiC,YDv+BjC,ECu+BiC,aDv+BjC,ECu+BiC,wBDv+BjC,ECu+BiC,YDv+BjC,ECu+BiC,SDv+BjC,ECu+BiC,oBDv+BjC,CAAA;EAAO,MACP,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECs8BkC,KDt8BlC,CAAA,ECs8BuC,eDt8BvC,CCs8BuC,mBDt8BvC,CCs8BuC,SDt8BvC,SAAA,EAAA,GCs8BuC,KDt8BvC,GCs8BuC,KDt8BvC,SAAA,EAAA,GCs8BuC,SDt8BvC,GCs8BuC,SDt8BvC,SAAA,GAAA,GCs8BuC,KDt8BvC,SAAA,IAAA,MAAA,EAAA,GCs8BuC,KDt8BvC,GAAA,ICs8BuC,KDt8BvC,EAAA,GCs8BuC,SDt8BvC,SAAA,GAAA,KAAA,KAAA,GAAA,GCq+BmC,KDr+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCs+BiC,IDt+BjC,ICs+BiC,IDt+BjC,EAAA,GAAA,GCs+BiC,IDt+BjC,ICs+BiC,KDt+BjC,EAAA,GCs+BiC,KDt+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCs+BiC,SDt+BjC,ICs+BiC,MDt+BjC,EAAA,GAAA,GCs+BiC,SDt+BjC,ICs+BiC,KDt+BjC,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,ECs+BiC,SDt+BjC,ECs+BiC,ODt+BjC,EAAA,SAAA,ECs+BiC,QDt+BjC,ECs+BiC,eDt+BjC,ECs+BiC,0BDt+BjC,ECs+BiC,YDt+BjC,ECs+BiC,aDt+BjC,ECs+BiC,wBDt+BjC,ECs+BiC,YDt+BjC,ECs+BiC,SDt+BjC,ECs+BiC,oBDt+BjC,CAAA;EAAS,KACT,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECy8BiC,KDz8BjC,CAAA,ECy8BsC,eDz8BtC,CCy8BsC,mBDz8BtC,CCy8BsC,SDz8BtC,SAAA,EAAA,GCy8BsC,KDz8BtC,GCy8BsC,KDz8BtC,SAAA,EAAA,GCy8BsC,SDz8BtC,GCy8BsC,SDz8BtC,SAAA,GAAA,GCy8BsC,KDz8BtC,SAAA,IAAA,MAAA,EAAA,GCy8BsC,KDz8BtC,GAAA,ICy8BsC,KDz8BtC,EAAA,GCy8BsC,SDz8BtC,SAAA,GAAA,KAAA,KAAA,GAAA,GCo+BmC,KDp+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCq+BiC,IDr+BjC,ICq+BiC,IDr+BjC,EAAA,GAAA,GCq+BiC,IDr+BjC,ICq+BiC,KDr+BjC,EAAA,GCq+BiC,KDr+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCq+BiC,SDr+BjC,ICq+BiC,MDr+BjC,EAAA,GAAA,GCq+BiC,SDr+BjC,ICq+BiC,KDr+BjC,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,ECq+BiC,SDr+BjC,ECq+BiC,ODr+BjC,EAAA,SAAA,ECq+BiC,QDr+BjC,ECq+BiC,eDr+BjC,ECq+BiC,0BDr+BjC,ECq+BiC,YDr+BjC,ECq+BiC,aDr+BjC,ECq+BiC,wBDr+BjC,ECq+BiC,YDr+BjC,ECq+BiC,SDr+BjC,ECq+BiC,oBDr+BjC,CAAA;EAAQ,OACR,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC48BmC,KD58BnC,CAAA,EC48BwC,eD58BxC,CC48BwC,mBD58BxC,CC48BwC,SD58BxC,SAAA,EAAA,GC48BwC,KD58BxC,GC48BwC,KD58BxC,SAAA,EAAA,GC48BwC,SD58BxC,GC48BwC,SD58BxC,SAAA,GAAA,GC48BwC,KD58BxC,SAAA,IAAA,MAAA,EAAA,GC48BwC,KD58BxC,GAAA,IC48BwC,KD58BxC,EAAA,GC48BwC,SD58BxC,SAAA,GAAA,KAAA,KAAA,GAAA,GCm+BmC,KDn+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCo+BiC,IDp+BjC,ICo+BiC,IDp+BjC,EAAA,GAAA,GCo+BiC,IDp+BjC,ICo+BiC,KDp+BjC,EAAA,GCo+BiC,KDp+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCo+BiC,SDp+BjC,ICo+BiC,MDp+BjC,EAAA,GAAA,GCo+BiC,SDp+BjC,ICo+BiC,KDp+BjC,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,ECo+BiC,SDp+BjC,ECo+BiC,ODp+BjC,EAAA,SAAA,ECo+BiC,QDp+BjC,ECo+BiC,eDp+BjC,ECo+BiC,0BDp+BjC,ECo+BiC,YDp+BjC,ECo+BiC,aDp+BjC,ECo+BiC,wBDp+BjC,ECo+BiC,YDp+BjC,ECo+BiC,SDp+BjC,ECo+BiC,oBDp+BjC,CAAA;;AAEA,KC+8BU,mBD/8BV,CAAA,UAAA,MAAA,CAAA,GC+8BkD,CD/8BlD,SAAA,GAAA,KAAA,KAAA,GAAA,GCg9BC,IDh9BD,SAAA,EAAA,GCi9BE,CDj9BF,GCk9BE,IDl9BF,GCm9BC,CDn9BD;AACA,KCo9BU,SDp9BV,CAAA,kBAAA,MAAA,EAAA,cAAA,MAAA,CAAA,GCu9BE,mBDv9BF,CCw9BD,SDx9BC,SAAA,EAAA,GCy9BE,KDz9BF,GC09BE,KD19BF,SAAA,EAAA,GC29BG,SD39BH,GC49BG,SD59BH,SAAA,GAAA,GC69BI,KD79BJ,SAAA,IAAA,MAAA,EAAA,GC89BK,KD99BL,GAAA,IC+9BS,KD/9BT,EAAA,GCg+BI,SDh+BJ,SAAA,GAAA,KAAA,KAAA,GAAA,GCi+BK,KDj+BL,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCk+BS,IDl+BT,ICk+BiB,IDl+BjB,EAAA,GAAA,GCm+BS,IDn+BT,ICm+BiB,KDn+BjB,EAAA,GCo+BK,KDp+BL,SAAA,IAAA,KAAA,KAAA,EAA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"}
@@ -1,169 +0,0 @@
1
- import { Construct, ConstructType } from "./Construct-Ct8nalEi.mjs";
2
- import { Consumable, ServicesOf } from "./construct-interface-g5GM5pwR.mjs";
3
- import { Service, ServiceRecord } from "@geekmidas/services";
4
- import { AuditStorage, AuditableAction as AuditableAction$1, Auditor } from "@geekmidas/audit";
5
- import { EventPublisher, MappedEvent } from "@geekmidas/events";
6
- import * as _geekmidas_logger13 from "@geekmidas/logger";
7
- import { Logger } from "@geekmidas/logger";
8
- import * as _geekmidas_schema12 from "@geekmidas/schema";
9
- import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
10
- import { StandardSchemaV1 } from "@standard-schema/spec";
11
-
12
- //#region src/functions/Function.d.ts
13
-
14
- declare class Function<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, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>, Fn extends FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction> = FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>> extends Construct<TLogger, TEventPublisherServiceName, TEventPublisher, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage> {
15
- readonly fn: Fn;
16
- input?: TInput | undefined;
17
- databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined;
18
- __IS_FUNCTION__: boolean;
19
- static isFunction(obj: any): obj is Function<any, any, any, any, any>;
20
- /**
21
- * Validates data against a StandardSchema.
22
- *
23
- * @param schema - The StandardSchema to validate against
24
- * @param data - The data to validate
25
- * @returns Validation result with value or issues
26
- */
27
- static validate<T extends StandardSchemaV1>(schema: T, data: unknown): StandardSchemaV1.Result<unknown> | Promise<StandardSchemaV1.Result<unknown>>;
28
- /**
29
- * Parses and validates data against a schema, throwing an error if validation fails.
30
- *
31
- * @param schema - The StandardSchema to validate against
32
- * @param data - The data to parse and validate
33
- * @returns The validated data with proper typing
34
- * @throws {UnprocessableEntityError} When validation fails
35
- */
36
- static parseSchema<T extends StandardSchemaV1>(schema: T, data: unknown): Promise<InferStandardSchema<T>>;
37
- /**
38
- * Parses and validates the endpoint output against the output schema.
39
- *
40
- * @param output - The raw output data to validate
41
- * @returns The validated output data
42
- * @throws {UnprocessableEntityError} When output validation fails
43
- */
44
- parseOutput(output: unknown): Promise<InferStandardSchema<OutSchema>>;
45
- constructor(fn: Fn, timeout?: number,
46
- // Default timeout of 30 seconds
47
- type?: ConstructType, input?: TInput | undefined, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: MappedEvent<TEventPublisher, OutSchema>[], memorySize?: number, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>, databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined,
48
- /**
49
- * The construct ids `.dependsOn()` named — last, so no existing positional
50
- * argument moves.
51
- */
52
- constructs?: string[]);
53
- }
54
- type FunctionHandler<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> = (ctx: FunctionContext<TInput, TServices, TLogger, TDatabase, TAuditStorage, TAuditAction>) => OutSchema extends StandardSchemaV1 ? InferStandardSchema<OutSchema> | Promise<InferStandardSchema<OutSchema>> : any | Promise<any>;
55
- /**
56
- * Conditional type that adds `db` property only when TDatabase is configured.
57
- */
58
- type DatabaseContext<TDatabase> = TDatabase extends undefined ? {} : {
59
- db: TDatabase;
60
- };
61
- /**
62
- * Conditional auditor context - only present when audit storage is configured.
63
- */
64
- type AuditorContext<TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>, TAuditStorage = undefined> = TAuditStorage extends undefined ? {} : {
65
- /**
66
- * Auditor instance for recording audit events.
67
- * Only present when audit storage is configured on the function.
68
- */
69
- auditor: Auditor<TAuditAction>;
70
- };
71
- type FunctionContext<Input extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> = {
72
- services: ServiceRecord<TServices>;
73
- logger: TLogger;
74
- input: InferComposableStandardSchema<Input>;
75
- } & DatabaseContext<TDatabase> & AuditorContext<TAuditAction, TAuditStorage>;
76
- //#endregion
77
- //#region src/functions/BaseFunctionBuilder.d.ts
78
- declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSchema, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> {
79
- type: ConstructType;
80
- protected inputSchema?: TInput;
81
- protected outputSchema?: OutSchema;
82
- protected _timeout?: number;
83
- _services: TServices;
84
- /**
85
- * The construct ids `.dependsOn()` was given.
86
- *
87
- * Beside the services rather than instead of them: a handler *runs* with
88
- * clients and the manifest *records* which constructs it reaches, and
89
- * dissolving one into the other is what lost the edges. Shared by every
90
- * builder because every one of them can depend on something.
91
- */
92
- _constructs: string[];
93
- _logger: TLogger;
94
- /**
95
- * The deploy unit everything built from this builder belongs to.
96
- *
97
- * Seeded by the factory a `Worker` or `RestApi` hands out, so a cron knows
98
- * which process runs it without a directory having to imply it.
99
- */
100
- _owner?: string;
101
- protected _events: MappedEvent<TEventPublisher, OutSchema>[];
102
- protected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
103
- protected _auditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;
104
- protected _databaseService?: Service<TDatabaseServiceName, TDatabase>;
105
- static isStandardSchemaV1(s: unknown): s is StandardSchemaV1;
106
- static parseComposableStandardSchema<T extends ComposableStandardSchema | undefined>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>>;
107
- constructor(type?: ConstructType);
108
- abstract services<T extends Service[]>(services: T): any;
109
- abstract logger<T extends Logger>(logger: T): any;
110
- timeout(timeout: number): this;
111
- abstract output<T extends StandardSchemaV1>(schema: T): any;
112
- abstract input<T extends ComposableStandardSchema>(schema: T): any;
113
- event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(event: TEvent): this;
114
- publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName>;
115
- auditor<T extends AuditStorage, TName extends string>(storage: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, T, TName, TDatabase, TDatabaseServiceName>;
116
- /**
117
- * Set the database service for this function.
118
- * The database will be available in the handler context as `db`.
119
- */
120
- database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName>;
121
- }
122
- //# sourceMappingURL=BaseFunctionBuilder.d.ts.map
123
- //#endregion
124
- //#region src/functions/FunctionBuilder.d.ts
125
- declare class FunctionBuilder<TInput extends ComposableStandardSchema, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
126
- type: ConstructType;
127
- protected _memorySize?: number;
128
- constructor(type?: ConstructType);
129
- timeout(timeout: number): this;
130
- memorySize(memorySize: number): this;
131
- output<T extends StandardSchemaV1>(schema: T): FunctionBuilder<TInput, T, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
132
- input<T extends ComposableStandardSchema>(schema: T): FunctionBuilder<T, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
133
- /**
134
- * Depend on constructs — a database, a bucket, a mail sender, a queue, a
135
- * topic.
136
- *
137
- * It records the edge and dissolves each construct's client into the
138
- * handler's service record under the construct's own id, so
139
- * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
140
- *
141
- * Constructs only. A `Service` does not match the shape, which is what keeps
142
- * env sniffing confined to `.services()` and the explicit lift.
143
- */
144
- dependsOn<const T extends readonly Consumable[]>(constructs: T): FunctionBuilder<TInput, OutSchema, [...TServices, ...ServicesOf<T>], TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
145
- services<T extends Service[]>(services: T): FunctionBuilder<TInput, OutSchema, [...TServices, ...T], TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
146
- logger<T extends Logger>(logger: T): FunctionBuilder<TInput, OutSchema, TServices, T, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
147
- publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
148
- auditor<T extends AuditStorage, TName extends string>(storage: Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, T, TName, TDatabase, TDatabaseServiceName, TAuditAction>;
149
- /**
150
- * Set the audit action types for this function.
151
- * This provides type-safety for the auditor in the handler context.
152
- */
153
- actions<T extends AuditableAction$1<string, unknown>>(): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, T>;
154
- /**
155
- * Set the database service for this function.
156
- * The database will be available in the handler context as `db`.
157
- */
158
- database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName, TAuditAction>;
159
- handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>): Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>>;
160
- }
161
- //# sourceMappingURL=FunctionBuilder.d.ts.map
162
- //#endregion
163
- //#region src/functions/index.d.ts
164
- declare const f: FunctionBuilder<_geekmidas_schema12.ComposableStandardSchema, undefined, [], _geekmidas_logger13.Logger, undefined, string, undefined, string, undefined, string, AuditableAction<string, unknown>>;
165
- //# sourceMappingURL=index.d.ts.map
166
-
167
- //#endregion
168
- export { BaseFunctionBuilder, Function, FunctionBuilder, FunctionContext, FunctionHandler, f };
169
- //# sourceMappingURL=index-D3zjrwjr.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-D3zjrwjr.d.mts","names":[],"sources":["../src/functions/Function.ts","../src/functions/BaseFunctionBuilder.ts","../src/functions/FunctionBuilder.ts","../src/functions/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AAgDgB,cADH,QACG,CAAA,eAAA,wBAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACG,OADH,EAAA,GAAA,EAAA,EAAA,gBAEC,MAFD,GAEU,MAFV,EAAA,kBAGG,gBAHH,GAAA,SAAA,GAAA,SAAA,EAAA,wBAIS,cAJT,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,mCAAA,MAAA,GAAA,MAAA,EAAA,sBAMO,YANP,GAAA,SAAA,GAAA,SAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,YAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,EAAA,qBAUM,iBAVN,CAAA,MAAA,EAAA,OAAA,CAAA,GAUyC,iBAVzC,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,WAcJ,eAdI,CAed,MAfc,EAgBd,SAhBc,EAiBd,OAjBc,EAkBd,SAlBc,EAmBd,SAnBc,EAoBd,aApBc,EAqBd,YArBc,CAAA,GAsBX,eAtBW,CAuBd,MAvBc,EAwBd,SAxBc,EAyBd,OAzBc,EA0Bd,SA1Bc,EA2Bd,SA3Bc,EA4Bd,aA5Bc,EA6Bd,YA7Bc,CAAA,CAAA,SA+BN,SA/BM,CAgCf,OAhCe,EAiCf,0BAjCe,EAkCf,eAlCe,EAmCf,SAnCe,EAoCf,SApCe,EAqCf,wBArCe,EAsCf,aAtCe,CAAA,CAAA;EAAwB,SACrB,EAAA,EA8FG,EA9FH;EAAO,KACT,CAAA,EAgGA,MAhGA,GAAA,SAAA;EAAM,eAAG,CAAA,EAwGU,OAxGV,CAwGkB,oBAxGlB,EAwGwC,SAxGxC,CAAA,GAAA,SAAA;EAAM,eACb,EAAA,OAAA;EAAgB,OACV,UAAA,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAsCY,QAtCZ,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA;EAAc;;;;;;;EAc5B,OACT,QAAA,CAAA,UAsCyB,gBAtCzB,CAAA,CAAA,MAAA,EAsCmD,CAtCnD,EAAA,IAAA,EAAA,OAAA,CAAA,EAsCmE,gBAAA,CAAA,MAtCnE,CAAA,OAAA,CAAA,GAsCmE,OAtCnE,CAsCmE,gBAAA,CAAA,MAtCnE,CAAA,OAAA,CAAA,CAAA;EAAS;;;;;;;;EAQA,OACT,WAAA,CAAA,UAyCkC,gBAzClC,CAAA,CAAA,MAAA,EA0CQ,CA1CR,EAAA,IAAA,EAAA,OAAA,CAAA,EA4CE,OA5CF,CA4CU,mBA5CV,CA4C8B,CA5C9B,CAAA,CAAA;EAAa;;;;;;;EAQL,WACT,CAAA,MAAA,EAAA,OAAA,CAAA,EAkDoC,OAlDpC,CAkD4C,mBAlD5C,CAkDgE,SAlDhE,CAAA,CAAA;EAAwB,WACxB,CAAA,EAAA,EAyDqB,EAzDrB,EAAA,OAAA,CAAA,EAAA,MAAA;EAAA;EAAa,IAyDQ,CAAA,EAEd,aAFc,EAAA,KAAA,CAAA,EAGL,MAHK,GAAA,SAAA,EAAA,YAAA,CAAA,EAIL,SAJK,EAAA,QAAA,CAAA,EAKV,SALU,EAAA,MAAA,CAAA,EAMZ,OANY,EAAA,gBAAA,CAAA,EAOD,OAPC,CAOO,0BAPP,EAOmC,eAPnC,CAAA,EAAA,MAAA,CAAA,EAQZ,WARY,CAQA,eARA,EAQiB,SARjB,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,qBAAA,CAAA,EAUI,OAVJ,CAUY,wBAVZ,EAUsC,aAVtC,CAAA,EAAA,eAAA,CAAA,EAWc,OAXd,CAWsB,oBAXtB,EAW4C,SAX5C,CAAA,GAAA,SAAA;EAAE;;;;EAWmB,UAhEN,CAAA,EAAA,MAAA,EAAA;;AAegB,KAuEzC,eAvEyC,CAAA,eAwErC,wBAxEqC,GAAA,SAAA,GAAA,SAAA,EAAA,kBAyElC,OAzEkC,EAAA,GAAA,EAAA,EAAA,gBA0EpC,MA1EoC,GA0E3B,MA1E2B,EAAA,kBA2ElC,gBA3EkC,GAAA,SAAA,GAAA,SAAA,EAAA,YAAA,SAAA,EAAA,sBA6E9B,YA7E8B,GAAA,SAAA,GAAA,SAAA,EAAA,qBA8E/B,iBA9E+B,CAAA,MAAA,EAAA,OAAA,CAAA,GA8EI,iBA9EJ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,EAmF/C,eAnF+C,CAoFnD,MApFmD,EAqFnD,SArFmD,EAsFnD,OAtFmD,EAuFnD,SAvFmD,EAwFnD,aAxFmD,EAyFnD,YAzFmD,CAAA,EAAA,GA2FhD,SA3FgD,SA2F9B,gBA3F8B,GA4FlD,mBA5FkD,CA4F9B,SA5F8B,CAAA,GA4FjB,OA5FiB,CA4FT,mBA5FS,CA4FW,SA5FX,CAAA,CAAA,GAAA,GAAA,GA6F5C,OA7F4C,CAAA,GAAA,CAAA;;;;KAkGhD,eAtF+B,CAAA,SAAA,CAAA,GAsFF,SAtFE,SAAA,SAAA,GAAA,CAAA,CAAA,GAAA;EAAgB,EAAA,EAwF3C,SAvFC;CAAC;;;;KA4FN,cA3EwC,CAAA,qBA4EvB,iBA5EuB,CAAA,MAAA,EAAA,OAAA,CAAA,GA4EY,iBA5EZ,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,gBAAA,SAAA,CAAA,GAiFzC,aAjFyC,SAAA,SAAA,GAAA,CAAA,CAAA,GAAA;EAAmB;;;;EAWzC,OACN,EA4EL,OA5EK,CA4EG,YA5EH,CAAA;CAAS;AAEhB,KA6EE,eA7EF,CAAA,cA8EK,wBA9EL,GAAA,SAAA,GAAA,SAAA,EAAA,kBA+ES,OA/ET,EAAA,GAAA,EAAA,EAAA,gBAgFO,MAhFP,GAgFgB,MAhFhB,EAAA,YAAA,SAAA,EAAA,sBAkFa,YAlFb,GAAA,SAAA,GAAA,SAAA,EAAA,qBAmFY,iBAnFZ,CAAA,MAAA,EAAA,OAAA,CAAA,GAmF+C,iBAnF/C,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA;EAAwB,QACL,EAuFlB,aAvFkB,CAuFJ,SAvFI,CAAA;EAA0B,MAAE,EAwFhD,OAxFgD;EAAe,KAAnD,EAyFb,6BAzFa,CAyFiB,KAzFjB,CAAA;CAAO,GA0FxB,eAzFkB,CAyFF,SAzFE,CAAA,GA0FrB,cA1FqB,CA0FN,YA1FM,EA0FQ,aA1FR,CAAA;;;uBCxIA,mCACN,4CACG,4DACA,gCACF,SAAS,gCACD,uHAEF;QA4EC;0BAvEC;2BACC;EDmBb,UAAA,QAAQ,CAAA,EAAA,MAAA;EAAA,SAAA,EChBF,SDgBE;EAAA;;;;;;;;EAWgB,WAAoB,EAAA,MAAA,EAAA;EAAe,OAKtE,ECtBe,ODsBf;EAAM;;;;;;EAMM,MAPF,CAAA,EAAA,MAAA;EAAe,UASzB,OAAA,ECpBkB,WDoBlB,CCpB8B,eDoB9B,ECpB+C,SDoB/C,CAAA,EAAA;EAAM,UACN,UAAA,CAAA,ECpBsB,ODoBtB,CCpB8B,0BDoB9B,ECpB0D,eDoB1D,CAAA;EAAS,UACT,eAAA,CAAA,ECpB2B,ODoB3B,CCpBmC,wBDoBnC,ECpB6D,aDoB7D,CAAA;EAAO,UACP,gBAAA,CAAA,ECpB4B,ODoB5B,CCpBoC,oBDoBpC,ECpB0D,SDoB1D,CAAA;EAAS,OACT,kBAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,ICnB2C,gBDmB3C;EAAS,OACT,6BAAA,CAAA,UCbU,wBDaV,GAAA,SAAA,CAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,ECZwB,CDYxB,CAAA,ECZ4B,ODY5B,CCZoC,6BDYpC,CCZkE,CDYlE,CAAA,CAAA;EAAa,WACb,CAAA,IAAA,CAAA,ECqBsB,aDrBtB;EAAY,SAPT,QAAA,CAAA,UC8BwB,OD9BxB,EAAA,CAAA,CAAA,QAAA,EC8B6C,CD9B7C,CAAA,EAAA,GAAA;EAAe,SAUnB,MAAA,CAAA,UCsB0B,MDtB1B,CAAA,CAAA,MAAA,ECsB0C,CDtB1C,CAAA,EAAA,GAAA;EAAO,OACP,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAA0B,SAC1B,MAAA,CAAA,UC0B0B,gBD1B1B,CAAA,CAAA,MAAA,EC0BoD,CD1BpD,CAAA,EAAA,GAAA;EAAe,SACf,KAAA,CAAA,UC2ByB,wBD3BzB,CAAA,CAAA,MAAA,EC2B2D,CD3B3D,CAAA,EAAA,GAAA;EAAS,KACT,CAAA,eC4BqB,WD5BrB,CC4BiC,eD5BjC,EC4BkD,SD5BlD,CAAA,CAAA,CAAA,KAAA,EC6BQ,MD7BR,CAAA,EAAA,IAAA;EAAS,SACT,CAAA,UCmCoB,cDnCpB,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,SAAA,ECoCY,ODpCZ,CCoCoB,KDpCpB,ECoC2B,CDpC3B,CAAA,CAAA,ECqCG,mBDrCH,CCsCC,MDtCD,ECuCC,SDvCD,ECwCC,SDxCD,ECyCC,ODzCD,EC0CC,CD1CD,EC2CC,KD3CD,EC4CC,aD5CD,EC6CC,wBD7CD,EC8CC,SD9CD,EC+CC,oBD/CD,CAAA;EAAwB,OACxB,CAAA,UCmEkB,YDnElB,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,ECoEU,ODpEV,CCoEkB,KDpElB,ECoEyB,CDpEzB,CAAA,CAAA,ECqEG,mBDrEH,CCsEC,MDtED,ECuEC,SDvED,ECwEC,SDxED,ECyEC,ODzED,EC0EC,eD1ED,EC2EC,0BD3ED,EC4EC,CD5ED,EC6EC,KD7ED,EC8EC,SD9ED,EC+EC,oBD/ED,CAAA;EAAa;;;;EAoE6D,QAAvC,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,ECqC1B,UDrC0B,CCqCf,KDrCe,ECqCR,CDrCQ,CAAA,GCqCH,ODrCG,CCqCK,KDrCL,ECqCY,CDrCZ,CAAA,CAAA,ECsChC,mBDtCgC,CCuClC,MDvCkC,ECwClC,SDxCkC,ECyClC,SDzCkC,EC0ClC,OD1CkC,EC2ClC,eD3CkC,EC4ClC,0BD5CkC,EC6ClC,aD7CkC,EC8ClC,wBD9CkC,EC+ClC,CD/CkC,ECgDlC,KDhDkC,CAAA;;;;;cEvIvB,+BACG,4CACG,4DACA,gCACF,SAAS,gCACD,uHAEF,kLAID,qCAAmC,4CAI/C,oBACT,QACA,WACA,WACA,SACA,iBACA,4BACA,eACA,0BACA,WACA;QAIgC;EFDpB,UAAA,WAAQ,CAAA,EAAA,MAAA;EAAA,WAAA,CAAA,IAAA,CAAA,EECY,aFDZ;EAAA,OACL,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAwB,UACrB,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAO,MACT,CAAA,UEUC,gBFVD,CAAA,CAAA,MAAA,EEWP,CFXO,CAAA,EEYb,eFZa,CEaf,MFbe,EEcf,CFde,EEef,SFfe,EEgBf,OFhBe,EEiBf,eFjBe,EEkBf,0BFlBe,EEmBf,aFnBe,EEoBf,wBFpBe,EEqBf,SFrBe,EEsBf,oBFtBe,EEuBf,YFvBe,CAAA;EAAM,KAAG,CAAA,UE0CT,wBF1CS,CAAA,CAAA,MAAA,EE2ChB,CF3CgB,CAAA,EE4CtB,eF5CsB,CE6CxB,CF7CwB,EE8CxB,SF9CwB,EE+CxB,SF/CwB,EEgDxB,OFhDwB,EEiDxB,eFjDwB,EEkDxB,0BFlDwB,EEmDxB,aFnDwB,EEoDxB,wBFpDwB,EEqDxB,SFrDwB,EEsDxB,oBFtDwB,EEuDxB,YFvDwB,CAAA;EAAM;;;;;;;;;;;EAkBjB,SACb,CAAA,gBAAA,SEkEkC,UFlElC,EAAA,CAAA,CAAA,UAAA,EEmEY,CFnEZ,CAAA,EEoEE,eFpEF,CEqEA,MFrEA,EEsEA,SFtEA,EAAA,CAPU,GE8EN,SF9EM,EASV,GEqEkB,UFrElB,CEqE6B,CFrE7B,CAAA,CAAM,EEsEN,OFrEA,EEsEA,eFtEA,EEuEA,0BFvEA,EEwEA,aFxEA,EEyEA,wBFzEA,EE0EA,SF1EA,EE2EA,oBF3EA,EE4EA,YF5EA,CAAA;EAAS,QACT,CAAA,UE2GkB,OF3GlB,EAAA,CAAA,CAAA,QAAA,EE4GU,CF5GV,CAAA,EE6GE,eF7GF,CE8GA,MF9GA,EE+GA,SF/GA,EAAA,CACA,GE+GI,SF/GJ,EACA,GE8GkB,CF9GlB,CAAS,EE+GT,OF9GA,EE+GA,eF/GA,EEgHA,0BFhHA,EEiHA,aFjHA,EEkHA,wBFlHA,EEmHA,SFnHA,EEoHA,oBFpHA,EEqHA,YFrHA,CAAA;EAAa,MACb,CAAA,UE0IgB,MF1IhB,CAAA,CAAA,MAAA,EE2IQ,CF3IR,CAAA,EE4IE,eF5IF,CE6IA,MF7IA,EE8IA,SF9IA,EE+IA,SF/IA,EEgJA,CFhJA,EEiJA,eFjJA,EEkJA,0BFlJA,EEmJA,aFnJA,EEoJA,wBFpJA,EEqJA,SFrJA,EEsJA,oBFtJA,EEuJA,YFvJA,CAAA;EAAY,SAPT,CAAA,UEiLyB,cFjLzB,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,SAAA,EEkLQ,OFlLR,CEkLgB,KFlLhB,EEkLuB,CFlLvB,CAAA,CAAA,EEmLD,eFnLC,CEoLH,MFpLG,EEqLH,SFrLG,EEsLH,SFtLG,EEuLH,OFvLG,EEwLH,CFxLG,EEyLH,KFzLG,EE0LH,aF1LG,EE2LH,wBF3LG,EE4LH,SF5LG,EE6LH,oBF7LG,EE8LH,YF9LG,CAAA;EAAe,OAUnB,CAAA,UE0M2B,YF1M3B,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,EE2MU,OF3MV,CE2MkB,KF3MlB,EE2MyB,CF3MzB,CAAA,CAAA,EE4MG,eF5MH,CE6MC,MF7MD,EE8MC,SF9MD,EE+MC,SF/MD,EEgNC,OFhND,EEiNC,eFjND,EEkNC,0BFlND,EEmNC,CFnND,EEoNC,KFpND,EEqNC,SFrND,EEsNC,oBFtND,EEuNC,YFvND,CAAA;EAAO;;;;EAIE,OACT,CAAA,UE4OkB,iBF5OlB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,EE4OuD,eF5OvD,CE6OC,MF7OD,EE8OC,SF9OD,EE+OC,SF/OD,EEgPC,OFhPD,EEiPC,eFjPD,EEkPC,0BFlPD,EEmPC,aFnPD,EEoPC,wBFpPD,EEqPC,SFrPD,EEsPC,oBFtPD,EEuPC,CFvPD,CAAA;EAAwB;;;;EAqEuC,QAAE,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,EEwMxD,UFxMwD,CEwM7C,KFxM6C,EEwMtC,CFxMsC,CAAA,GEwMjC,OFxMiC,CEwMzB,KFxMyB,EEwMlB,CFxMkB,CAAA,CAAA,EEyM9D,eFzM8D,CE0MhE,MF1MgE,EE2MhE,SF3MgE,EE4MhE,SF5MgE,EE6MhE,OF7MgE,EE8MhE,eF9MgE,EE+MhE,0BF/MgE,EEgNhE,aFhNgE,EEiNhE,wBFjNgE,EEkNhE,CFlNgE,EEmNhE,KFnNgE,EEoNhE,YFpNgE,CAAA;EAAS,MAAvC,CAAA,EAAA,EE6O9B,eF7O8B,CE8OjC,MF9OiC,EE+OjC,SF/OiC,EEgPjC,OFhPiC,EEiPjC,SFjPiC,EEkPjC,SFlPiC,EEmPjC,aFnPiC,EEoPjC,YFpPiC,CAAA,CAAA,EEsPhC,QFtPgC,CEuPlC,MFvPkC,EEwPlC,SFxPkC,EEyPlC,OFzPkC,EE0PlC,SF1PkC,EE2PlC,eF3PkC,EE4PlC,0BF5PkC,EE6PlC,aF7PkC,EE8PlC,wBF9PkC,EE+PlC,SF/PkC,EEgQlC,oBFhQkC,EEiQlC,YFjQkC,EEkQlC,eFlQkC,CEmQjC,MFnQiC,EEoQjC,SFpQiC,EEqQjC,OFrQiC,EEsQjC,SFtQiC,EEuQjC,SFvQiC,EEwQjC,aFxQiC,EEyQjC,YFzQiC,CAAA,CAAA;;;;;cG/IvB,GAAC,gBAAwB,mBAAA,CAAxB,wBAAA,iBAAA,mBAAA,CAAA,MAAA,2DAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DbKmfl-q.d.mts","names":[],"sources":["../src/publisher.ts","../src/endpoints/EndpointBuilder.ts","../src/endpoints/EndpointFactory.ts","../src/endpoints/lazyAccessors.ts","../src/endpoints/surfaceEnv.ts"],"sourcesContent":[],"mappings":"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,iBAAA;IAAA,qBAAA;IAAA,oBAAA;IAAA,qBAAA;IAAA,qBAAA;IAAA,sBAAA;IAAA,qBAAA;IAAA,qBAAA;IAAA,gBAAA;IAAA;EAAA,CAAA,EC8Eb,sBD9Ea,CC+Ef,SD/Ee,ECgFf,SDhFe,ECiFf,ODjFe,ECkFf,QDlFe,ECmFf,eDnFe,ECoFf,0BDpFe,ECqFf,YDrFe,ECsFf,aDtFe,ECuFf,wBDvFe,ECwFf,SDxFe,ECyFf,oBDzFe,EC0Ff,gBD1Fe,EC2Ff,UD3Fe,CAAA;EAAM,OAAG,SAAA,CAAA,kBAAA,MAAA,EAAA,UAAA,MAAA,CAAA,CAAA,IAAA,ECoHlB,CDpHkB,EAAA,QAAA,CAAA,ECqHd,SDrHc,CAAA,ECsHtB,SDtHsB,CCsHZ,SDtHY,ECsHD,CDtHC,CAAA;EAAM,WACb,CAAA,gBAAA,SAAA,MAAA,EAAA,CAAA,CAAA,WAAA,ECyJJ,CDzJI,CAAA,EC0Jf,eD1Je,CC2JjB,SD3JiB,EC4JjB,SD5JiB,EC6JjB,OD7JiB,EC8JjB,QD9JiB,EC+JjB,eD/JiB,ECgKjB,0BDhKiB,ECiKjB,CDjKiB,ECkKjB,aDlKiB,ECmKjB,wBDnKiB,ECoKjB,YDpKiB,ECqKjB,SDrKiB,ECsKjB,oBDtKiB,ECuKjB,gBDvKiB,ECwKjB,UDxKiB,CAAA;EAAgB;;;;;;;;;;;;;;;;EAqDT,eA5BN,CAAA,UCuMO,MDvMP,CAAA,MAAA,ECuMsB,cDvMtB,CAAA,CAAA,CAAA,OAAA,ECwMT,CDxMS,CAAA,ECyMhB,eDzMgB,CC0MlB,SD1MkB,EC2MlB,SD3MkB,EC4MlB,OD5MkB,EC6MlB,QD7MkB,EC8MlB,eD9MkB,EC+MlB,0BD/MkB,ECgNlB,YDhNkB,ECiNlB,aDjNkB,ECkNlB,wBDlNkB,ECmNlB,YDnNkB,ECoNlB,SDpNkB,ECqNlB,oBDrNkB,ECsNlB,gBDtNkB,GCsNC,CDtND,ECuNlB,UDvNkB,CAAA;EAAM;;;;;;;;;;EAQmC,UAAE,CAAA,IAAA,ECkQ1D,uBDlQ0D,GAAA,MCmQpD,gBDnQoD,GCoQ1D,YDpQ0D,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA,ECsQ3D,eDtQ2D,CCuQ7D,SDvQ6D,ECwQ7D,SDxQ6D,ECyQ7D,ODzQ6D,EC0Q7D,QD1Q6D,EC2Q7D,eD3Q6D,EC4Q7D,0BD5Q6D,EC6Q7D,YD7Q6D,EC8Q7D,aD9Q6D,EC+Q7D,wBD/Q6D,ECgR7D,YDhR6D,ECiR7D,SDjR6D,ECkR7D,oBDlR6D,ECmR7D,gBDnR6D,ECoR7D,UDpR6D,CAAA;EAAS,KAA3D,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC0UL,KD1UK,CAAA,EC2UT,eD3US,CC4UX,SD5UW,EC6UX,SD7UW,CC6UD,SD7UC,EC6UU,KD7UV,CAAA,EC8UX,OD9UW,EC+UX,QD/UW,ECgVX,eDhVW,ECiVX,0BDjVW,ECkVX,YDlVW,ECmVX,aDnVW,ECoVX,wBDpVW,ECqVX,YDrVW,ECsVX,SDtVW,ECuVX,oBDvVW,ECwVX,gBDxVW,ECyVX,UDzVW,CAAA;EAAW,SAEV,CAAA,EAAA,EC8XR,WD9XQ,CC8XI,SD9XJ,EC8Xe,OD9Xf,EC8XwB,QD9XxB,EAAA,SAAA,EC8X6C,SD9X7C,CAAA,CAAA,EC+XV,eD/XU,CCgYZ,SDhYY,ECiYZ,SDjYY,ECkYZ,ODlYY,ECmYZ,QDnYY,ECoYZ,eDpYY,ECqYZ,0BDrYY,ECsYZ,YDtYY,ECuYZ,aDvYY,ECwYZ,wBDxYY,ECyYZ,YDzYY,EC0YZ,SD1YY,EC2YZ,oBD3YY,EC4YZ,gBD5YY,EC6YZ,UD7YY,CAAA;EAAe;;;;;;;;;;;EAYyB,SAA7B,CAAA,gBAAA,SCibW,UDjbX,EAAA,CAAA,CAAA,UAAA,ECkbX,CDlbW,CAAA,ECmbrB,eDnbqB,CAAA,CACD,GCmblB,UDnbkB,CCmbP,CDnbO,CAAA,EAAW,GCmbX,SDnbW,CAAQ,ECobzC,SDpb2C,ECqb3C,ODrb2C,ECsb3C,QDtb2C,ECub3C,eDvb2C,ECwb3C,0BDxb2C,ECyb3C,YDzb2C,EC0b3C,aD1b2C,EC2b3C,wBD3b2C,EC4b3C,YD5b2C,EC6b3C,SD7b2C,EC8b3C,oBD9b2C,EC+b3C,gBD/b2C,ECgc3C,SDhc2C,CAAA,CAAA,GCgc7B,UDhc6B,CCgclB,CDhckB,CAAA,EAAA,GCgcX,SDhcW,CAAA,ECgcC,QDhcD,ECgcW,ODhcX,CAAA,GAAA,SAAA,CAAA;EAAO,QAAtC,CAAA,UC+dM,OD/dN,EAAA,CAAA,CAAA,QAAA,ECgeF,CDheE,CAAA,ECieV,eDjeU,CAAA,CAII,GC8dZ,CD9dY,EACC,GC6dP,SD7dO,CAAO,EC8dxB,SDvdmB,ECwdnB,ODxdmB,ECydnB,QDzdmB,EC0dnB,eD1dmB,EC2dnB,0BD3dmB,EC4dnB,YD5dmB,EC6dnB,aD7dmB,EC8dnB,wBD9dmB,EC+dnB,YD/dmB,ECgenB,SDhemB,ECienB,oBDjemB,ECkenB,gBDlemB,ECmenB,SDnemB,CAAA,CAAA,GCmeL,CDneK,EAAA,GCmeC,SDneD,CAAA,ECmea,QDneb,ECmeuB,ODnevB,CAAA,GAAA,SAAA,CAAA;EAA0B,MAAE,CAAA,UCihB/B,MDjhB+B,CAAA,CAAA,MAAA,ECkhBvC,CDlhBuC,CAAA,ECmhB7C,eDnhB6C,CCohB/C,SDphB+C,ECqhB/C,SDrhB+C,ECshB/C,CDthB+C,ECuhB/C,QDvhB+C,ECwhB/C,eDxhB+C,ECyhB/C,0BDzhB+C,EC0hB/C,YD1hB+C,EC2hB/C,aD3hB+C,EC4hB/C,wBD5hB+C,EC6hB/C,YD7hB+C,EC8hB/C,SD9hB+C,EC+hB/C,oBD/hB+C,ECgiB/C,gBDhiB+C,ECiiB/C,SDjiB+C,CCiiBrC,SDjiBqC,ECiiB1B,QDjiB0B,ECiiBhB,CDjiBgB,CAAA,GAAA,SAAA,CAAA;EAAe,SAAnD,CAAA,UCslBD,cDtlBC,CAAA,GAAA,CAAA,EAAA,qBAAA,MAAA,GAAA,MAAA,CAAA,CAAA,SAAA,ECylBA,ODzlBA,CCylBQ,YDzlBR,ECylBsB,CDzlBtB,CAAA,CAAA,EC0lBT,eD1lBS,CC2lBX,SD3lBW,EC4lBX,SD5lBW,EC6lBX,OD7lBW,EC8lBX,QD9lBW,EC+lBX,CD/lBW,ECgmBX,YDhmBW,ECimBX,YDjmBW,ECkmBX,aDlmBW,ECmmBX,wBDnmBW,EComBX,YDpmBW,ECqmBX,SDrmBW,ECsmBX,oBDtmBW,ECumBX,gBDvmBW,ECwmBX,UDxmBW,CAAA;EAAO,OAOD,CAAA,CAAA,CAAA,CAAA,OAAA,ECsoBR,SDtoBQ,CCsoBE,SDtoBF,ECsoBa,ODtoBb,ECsoBsB,CDtoBtB,ECsoByB,SDtoBzB,CAAA,CAAA,ECuoBf,eDvoBe,CCwoBjB,SDxoBiB,ECyoBjB,SDzoBiB,EC0oBjB,OD1oBiB,EC2oBjB,CD3oBiB,EC4oBjB,eD5oBiB,EC6oBjB,0BD7oBiB,EC8oBjB,YD9oBiB,EC+oBjB,aD/oBiB,ECgpBjB,wBDhpBiB,ECipBjB,YDjpBiB,ECkpBjB,SDlpBiB,ECmpBjB,oBDnpBiB,ECopBjB,gBDppBiB,ECqpBjB,SDrpBiB,CCqpBP,SDrpBO,ECqpBI,CDrpBJ,ECqpBO,ODrpBP,CAAA,GAAA,SAAA,CAAA;EAAwB;;;;EAM0B,QAAvC,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,ECmsBpB,UDnsBoB,CCmsBT,KDnsBS,ECmsBF,CDnsBE,CAAA,GCmsBG,ODnsBH,CCmsBW,KDnsBX,ECmsBkB,CDnsBlB,CAAA,CAAA,ECosB1B,eDpsB0B,CCqsB5B,SDrsB4B,ECssB5B,SDtsB4B,ECusB5B,ODvsB4B,ECwsB5B,QDxsB4B,ECysB5B,eDzsB4B,EC0sB5B,0BD1sB4B,EC2sB5B,YD3sB4B,EC4sB5B,aD5sB4B,EC6sB5B,wBD7sB4B,EC8sB5B,YD9sB4B,EC+sB5B,CD/sB4B,ECgtB5B,KDhtB4B,ECitB5B,gBDjtB4B,ECktB5B,UDltB4B,CAAA;EAAO;;;;;EAatB,OAqCe,CAAA,UCgtBX,YDhtBW,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,ECitBnB,ODjtBmB,CCitBX,KDjtBW,ECitBJ,CDjtBI,CAAA,CAAA,ECktB1B,eDltB0B,CCmtB5B,SDntB4B,ECotB5B,SDptB4B,ECqtB5B,ODrtB4B,ECstB5B,QDttB4B,ECutB5B,eDvtB4B,ECwtB5B,0BDxtB4B,ECytB5B,YDztB4B,EC0tB5B,CD1tB4B,EC2tB5B,KD3tB4B,EC4tB5B,yBD5tB4B,CC4tBF,CD5tBE,CAAA,EC6tB5B,SD7tB4B,EC8tB5B,oBD9tB4B,EC+tB5B,gBD/tB4B,ECguB5B,UDhuB4B,CAAA;EAAc;;;;EAGpC,KACN,CAAA,SAAA,EC0wBW,cD1wBX,CC0wB0B,SD1wB1B,EC0wBqC,QD1wBrC,EC0wB+C,OD1wB/C,CAAA,CAAA,EC2wBE,eD3wBF,CC4wBA,SD5wBA,EC6wBA,SD7wBA,EC8wBA,OD9wBA,EC+wBA,QD/wBA,ECgxBA,eDhxBA,ECixBA,0BDjxBA,ECkxBA,YDlxBA,ECmxBA,aDnxBA,ECoxBA,wBDpxBA,ECqxBA,YDrxBA,ECsxBA,SDtxBA,ECuxBA,oBDvxBA,ECwxBA,gBDxxBA,ECyxBA,UDzxBA,CAAA;EAAO;;;;;;;;;;;;;;;;;;EA2CA,GACF,CAAA,gBCmyBc,SDnyBd,CCmyBwB,SDnyBxB,ECmyBmC,QDnyBnC,ECmyB6C,ODnyB7C,CAAA,CAAA,CAAA,MAAA,ECoyBG,ODpyBH,CAAA,ECqyBH,eDryBG,CCsyBL,SDtyBK,ECuyBL,SDvyBK,ECwyBL,ODxyBK,ECyyBL,QDzyBK,EC0yBL,eD1yBK,EC2yBL,0BD3yBK,EC4yBL,YD5yBK,EC6yBL,aD7yBK,EC8yBL,wBD9yBK,EC+yBL,YD/yBK,ECgzBL,SDhzBK,ECizBL,oBDjzBK,ECkzBL,gBDlzBK,ECmzBL,ODnzBK,CAAA;EAAM,QAAX,aAAA;EAAI,IAA2B,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC67BC,KD77BD,CAAA,EC67BM,eD77BN,CC67BM,mBD77BN,CC67BM,SD77BN,SAAA,EAAA,GC67BM,KD77BN,GC67BM,KD77BN,SAAA,EAAA,GC67BM,SD77BN,GC67BM,SD77BN,SAAA,GAAA,GC67BM,KD77BN,SAAA,IAAA,MAAA,EAAA,GC67BM,KD77BN,GAAA,IC67BM,KD77BN,EAAA,GC67BM,SD77BN,SAAA,GAAA,KAAA,KAAA,GAAA,GCw+BI,KDx+BJ,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCy+BE,IDz+BF,ICy+BE,IDz+BF,EAAA,GAAA,GCy+BE,IDz+BF,ICy+BE,KDz+BF,EAAA,GCy+BE,KDz+BF,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCy+BE,SDz+BF,ICy+BE,MDz+BF,EAAA,GAAA,GCy+BE,SDz+BF,ICy+BE,KDz+BF,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,ECy+BE,SDz+BF,ECy+BE,ODz+BF,EAAA,SAAA,ECy+BE,QDz+BF,ECy+BE,eDz+BF,ECy+BE,0BDz+BF,ECy+BE,YDz+BF,ECy+BE,aDz+BF,ECy+BE,wBDz+BF,ECy+BE,YDz+BF,ECy+BE,SDz+BF,ECy+BE,oBDz+BF,CAAA;EAAC,GAChC,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECg8B+B,KDh8B/B,CAAA,ECg8BoC,eDh8BpC,CCg8BoC,mBDh8BpC,CCg8BoC,SDh8BpC,SAAA,EAAA,GCg8BoC,KDh8BpC,GCg8BoC,KDh8BpC,SAAA,EAAA,GCg8BoC,SDh8BpC,GCg8BoC,SDh8BpC,SAAA,GAAA,GCg8BoC,KDh8BpC,SAAA,IAAA,MAAA,EAAA,GCg8BoC,KDh8BpC,GAAA,ICg8BoC,KDh8BpC,EAAA,GCg8BoC,SDh8BpC,SAAA,GAAA,KAAA,KAAA,GAAA,GCu+BmC,KDv+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCw+BiC,IDx+BjC,ICw+BiC,IDx+BjC,EAAA,GAAA,GCw+BiC,IDx+BjC,ICw+BiC,KDx+BjC,EAAA,GCw+BiC,KDx+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCw+BiC,SDx+BjC,ICw+BiC,MDx+BjC,EAAA,GAAA,GCw+BiC,SDx+BjC,ICw+BiC,KDx+BjC,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,ECw+BiC,SDx+BjC,ECw+BiC,ODx+BjC,EAAA,SAAA,ECw+BiC,QDx+BjC,ECw+BiC,eDx+BjC,ECw+BiC,0BDx+BjC,ECw+BiC,YDx+BjC,ECw+BiC,aDx+BjC,ECw+BiC,wBDx+BjC,ECw+BiC,YDx+BjC,ECw+BiC,SDx+BjC,ECw+BiC,oBDx+BjC,CAAA;EAAS,GACT,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECm8B+B,KDn8B/B,CAAA,ECm8BoC,eDn8BpC,CCm8BoC,mBDn8BpC,CCm8BoC,SDn8BpC,SAAA,EAAA,GCm8BoC,KDn8BpC,GCm8BoC,KDn8BpC,SAAA,EAAA,GCm8BoC,SDn8BpC,GCm8BoC,SDn8BpC,SAAA,GAAA,GCm8BoC,KDn8BpC,SAAA,IAAA,MAAA,EAAA,GCm8BoC,KDn8BpC,GAAA,ICm8BoC,KDn8BpC,EAAA,GCm8BoC,SDn8BpC,SAAA,GAAA,KAAA,KAAA,GAAA,GCs+BmC,KDt+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCu+BiC,IDv+BjC,ICu+BiC,IDv+BjC,EAAA,GAAA,GCu+BiC,IDv+BjC,ICu+BiC,KDv+BjC,EAAA,GCu+BiC,KDv+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCu+BiC,SDv+BjC,ICu+BiC,MDv+BjC,EAAA,GAAA,GCu+BiC,SDv+BjC,ICu+BiC,KDv+BjC,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,ECu+BiC,SDv+BjC,ECu+BiC,ODv+BjC,EAAA,SAAA,ECu+BiC,QDv+BjC,ECu+BiC,eDv+BjC,ECu+BiC,0BDv+BjC,ECu+BiC,YDv+BjC,ECu+BiC,aDv+BjC,ECu+BiC,wBDv+BjC,ECu+BiC,YDv+BjC,ECu+BiC,SDv+BjC,ECu+BiC,oBDv+BjC,CAAA;EAAO,MACP,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECs8BkC,KDt8BlC,CAAA,ECs8BuC,eDt8BvC,CCs8BuC,mBDt8BvC,CCs8BuC,SDt8BvC,SAAA,EAAA,GCs8BuC,KDt8BvC,GCs8BuC,KDt8BvC,SAAA,EAAA,GCs8BuC,SDt8BvC,GCs8BuC,SDt8BvC,SAAA,GAAA,GCs8BuC,KDt8BvC,SAAA,IAAA,MAAA,EAAA,GCs8BuC,KDt8BvC,GAAA,ICs8BuC,KDt8BvC,EAAA,GCs8BuC,SDt8BvC,SAAA,GAAA,KAAA,KAAA,GAAA,GCq+BmC,KDr+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCs+BiC,IDt+BjC,ICs+BiC,IDt+BjC,EAAA,GAAA,GCs+BiC,IDt+BjC,ICs+BiC,KDt+BjC,EAAA,GCs+BiC,KDt+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCs+BiC,SDt+BjC,ICs+BiC,MDt+BjC,EAAA,GAAA,GCs+BiC,SDt+BjC,ICs+BiC,KDt+BjC,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,ECs+BiC,SDt+BjC,ECs+BiC,ODt+BjC,EAAA,SAAA,ECs+BiC,QDt+BjC,ECs+BiC,eDt+BjC,ECs+BiC,0BDt+BjC,ECs+BiC,YDt+BjC,ECs+BiC,aDt+BjC,ECs+BiC,wBDt+BjC,ECs+BiC,YDt+BjC,ECs+BiC,SDt+BjC,ECs+BiC,oBDt+BjC,CAAA;EAAS,KACT,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,ECy8BiC,KDz8BjC,CAAA,ECy8BsC,eDz8BtC,CCy8BsC,mBDz8BtC,CCy8BsC,SDz8BtC,SAAA,EAAA,GCy8BsC,KDz8BtC,GCy8BsC,KDz8BtC,SAAA,EAAA,GCy8BsC,SDz8BtC,GCy8BsC,SDz8BtC,SAAA,GAAA,GCy8BsC,KDz8BtC,SAAA,IAAA,MAAA,EAAA,GCy8BsC,KDz8BtC,GAAA,ICy8BsC,KDz8BtC,EAAA,GCy8BsC,SDz8BtC,SAAA,GAAA,KAAA,KAAA,GAAA,GCo+BmC,KDp+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCq+BiC,IDr+BjC,ICq+BiC,IDr+BjC,EAAA,GAAA,GCq+BiC,IDr+BjC,ICq+BiC,KDr+BjC,EAAA,GCq+BiC,KDr+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCq+BiC,SDr+BjC,ICq+BiC,MDr+BjC,EAAA,GAAA,GCq+BiC,SDr+BjC,ICq+BiC,KDr+BjC,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,ECq+BiC,SDr+BjC,ECq+BiC,ODr+BjC,EAAA,SAAA,ECq+BiC,QDr+BjC,ECq+BiC,eDr+BjC,ECq+BiC,0BDr+BjC,ECq+BiC,YDr+BjC,ECq+BiC,aDr+BjC,ECq+BiC,wBDr+BjC,ECq+BiC,YDr+BjC,ECq+BiC,SDr+BjC,ECq+BiC,oBDr+BjC,CAAA;EAAQ,OACR,CAAA,cAAA,MAAA,CAAA,CAAA,IAAA,EC48BmC,KD58BnC,CAAA,EC48BwC,eD58BxC,CC48BwC,mBD58BxC,CC48BwC,SD58BxC,SAAA,EAAA,GC48BwC,KD58BxC,GC48BwC,KD58BxC,SAAA,EAAA,GC48BwC,SD58BxC,GC48BwC,SD58BxC,SAAA,GAAA,GC48BwC,KD58BxC,SAAA,IAAA,MAAA,EAAA,GC48BwC,KD58BxC,GAAA,IC48BwC,KD58BxC,EAAA,GC48BwC,SD58BxC,SAAA,GAAA,KAAA,KAAA,GAAA,GCm+BmC,KDn+BnC,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCo+BiC,IDp+BjC,ICo+BiC,IDp+BjC,EAAA,GAAA,GCo+BiC,IDp+BjC,ICo+BiC,KDp+BjC,EAAA,GCo+BiC,KDp+BjC,SAAA,IAAA,KAAA,OAAA,EAAA,GAAA,GCo+BiC,SDp+BjC,ICo+BiC,MDp+BjC,EAAA,GAAA,GCo+BiC,SDp+BjC,ICo+BiC,KDp+BjC,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,ECo+BiC,SDp+BjC,ECo+BiC,ODp+BjC,EAAA,SAAA,ECo+BiC,QDp+BjC,ECo+BiC,eDp+BjC,ECo+BiC,0BDp+BjC,ECo+BiC,YDp+BjC,ECo+BiC,aDp+BjC,ECo+BiC,wBDp+BjC,ECo+BiC,YDp+BjC,ECo+BiC,SDp+BjC,ECo+BiC,oBDp+BjC,CAAA;;AAEA,KC+8BU,mBD/8BV,CAAA,UAAA,MAAA,CAAA,GC+8BkD,CD/8BlD,SAAA,GAAA,KAAA,KAAA,GAAA,GCg9BC,IDh9BD,SAAA,EAAA,GCi9BE,CDj9BF,GCk9BE,IDl9BF,GCm9BC,CDn9BD;AACA,KCo9BU,SDp9BV,CAAA,kBAAA,MAAA,EAAA,cAAA,MAAA,CAAA,GCu9BE,mBDv9BF,CCw9BD,SDx9BC,SAAA,EAAA,GCy9BE,KDz9BF,GC09BE,KD19BF,SAAA,EAAA,GC29BG,SD39BH,GC49BG,SD59BH,SAAA,GAAA,GC69BI,KD79BJ,SAAA,IAAA,MAAA,EAAA,GC89BK,KD99BL,GAAA,IC+9BS,KD/9BT,EAAA,GCg+BI,SDh+BJ,SAAA,GAAA,KAAA,KAAA,GAAA,GCi+BK,KDj+BL,SAAA,IAAA,KAAA,KAAA,EAAA,GAAA,GCk+BS,IDl+BT,ICk+BiB,IDl+BjB,EAAA,GAAA,GCm+BS,IDn+BT,ICm+BiB,KDn+BjB,EAAA,GCo+BK,KDp+BL,SAAA,IAAA,KAAA,KAAA,EAA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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazyAccessors-BoJN3SMd.mjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>","c: Context","allHeaders: Record<string, string> | null","key?: string","allCookies: Record<string, string> | null","name?: string","headers: Record<string, string | undefined> | null | undefined","normalizedHeaders: Record<string, string> | null","cookies: string[] | undefined","cookieHeader: string | undefined","parsed: Record<string, string> | null","headers: Record<string, string> | undefined","normalized: Record<string, string> | null"],"sources":["../src/publisher.ts","../src/endpoints/lazyAccessors.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n\tlogger: Logger,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tev: MappedEvent<T, OutSchema>[] = [],\n\tresponse: InferStandardSchema<OutSchema>,\n\tpublisherService: TPublisherService,\n) {\n\ttry {\n\t\tif (!ev?.length) {\n\t\t\tlogger.debug('No events to publish');\n\t\t\treturn;\n\t\t}\n\t\tif (!publisherService) {\n\t\t\tlogger.warn('No publisher service available');\n\t\t\treturn;\n\t\t}\n\n\t\tconst services = await serviceDiscovery.register([publisherService]);\n\n\t\tconst publisher = services[\n\t\t\tpublisherService.serviceName\n\t\t] as EventPublisher<any>;\n\n\t\tconst events: MappedEvent<T, OutSchema>[] = [];\n\n\t\tfor (const { when, payload, type, ...e } of ev) {\n\t\t\tlogger.debug({ event: type }, 'Processing event');\n\t\t\tconst resolvedPayload = await payload(response);\n\t\t\tconst event = {\n\t\t\t\t...e,\n\t\t\t\ttype,\n\t\t\t\tpayload: resolvedPayload,\n\t\t\t};\n\n\t\t\tif (!when || when(response as any)) {\n\t\t\t\tevents.push(event);\n\t\t\t}\n\t\t}\n\n\t\tif (events.length) {\n\t\t\tlogger.debug({ eventCount: ev.length }, 'Publishing events');\n\n\t\t\tawait publisher.publish(events).catch((err) => {\n\t\t\t\tlogger.error(err, 'Failed to publish events');\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error as any, 'Something went wrong publishing events');\n\t}\n}\n\nexport async function publishConstructEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n>(\n\tconstruct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>,\n\tresponse: InferStandardSchema<OutSchema>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: Logger = construct.logger,\n) {\n\treturn publishEvents(\n\t\tlogger,\n\t\tserviceDiscovery,\n\t\tconstruct.events,\n\t\tresponse,\n\t\tconstruct.publisherService,\n\t);\n}\n","/**\n * Lazy header and cookie accessors for different adaptors.\n *\n * Instead of parsing all headers/cookies upfront, these accessors\n * use native adaptor methods for single lookups and only parse\n * everything when `header()` or `cookie()` is called without arguments.\n */\nimport type { Context } from 'hono';\nimport { getCookie } from 'hono/cookie';\nimport type { CookieFn, HeaderFn } from './Endpoint';\n\n/**\n * Create a lazy header accessor for Hono.\n * Uses `c.req.header(name)` for single lookups (native, case-insensitive).\n * Only calls `c.req.header()` to get all headers when needed.\n */\nexport function createHonoHeaders(c: Context): HeaderFn {\n\tlet allHeaders: Record<string, string> | null = null;\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Single header lookup - use native Hono method (case-insensitive)\n\t\t\treturn c.req.header(key);\n\t\t}\n\t\t// Get all headers - cache the result\n\t\tif (!allHeaders) {\n\t\t\tallHeaders = c.req.header();\n\t\t}\n\t\treturn allHeaders;\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor for Hono.\n * Uses `getCookie(c, name)` for single lookups (native).\n * Only parses the cookie header when all cookies are requested.\n */\nexport function createHonoCookies(c: Context): CookieFn {\n\tlet allCookies: Record<string, string> | null = null;\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\t// Single cookie lookup - use native Hono method\n\t\t\treturn getCookie(c, name);\n\t\t}\n\t\t// Get all cookies - parse and cache\n\t\tif (!allCookies) {\n\t\t\tallCookies = {};\n\t\t\tconst cookieHeader = c.req.header('cookie');\n\t\t\tif (cookieHeader) {\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\tallCookies[key] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn allCookies;\n\t}) as CookieFn;\n}\n\n/**\n * Create a lazy header accessor for API Gateway events.\n * Handles case-insensitive lookups.\n */\nexport function createApiGatewayHeaders(\n\theaders: Record<string, string | undefined> | null | undefined,\n): HeaderFn {\n\tlet normalizedHeaders: Record<string, string> | null = null;\n\n\tconst normalize = () => {\n\t\tif (!normalizedHeaders) {\n\t\t\tnormalizedHeaders = {};\n\t\t\tif (headers) {\n\t\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\t\tif (v !== undefined) {\n\t\t\t\t\t\tnormalizedHeaders[k.toLowerCase()] = v;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn normalizedHeaders;\n\t};\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Try direct lookup first (common case: headers already lowercase)\n\t\t\tif (headers) {\n\t\t\t\tconst direct = headers[key] ?? headers[key.toLowerCase()];\n\t\t\t\tif (direct !== undefined) return direct;\n\t\t\t\t// Fall back to normalized lookup\n\t\t\t\treturn normalize()[key.toLowerCase()];\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t\treturn normalize();\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor for API Gateway events.\n * Decodes URL-encoded values to match browser behavior.\n */\nexport function createApiGatewayCookies(\n\tcookies: string[] | undefined,\n\tcookieHeader: string | undefined,\n): CookieFn {\n\tlet parsed: Record<string, string> | null = null;\n\n\tconst parse = () => {\n\t\tif (!parsed) {\n\t\t\tparsed = {};\n\t\t\t// API Gateway v2 provides cookies as array\n\t\t\tif (cookies) {\n\t\t\t\tfor (const cookie of cookies) {\n\t\t\t\t\tconst eqIndex = cookie.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = cookie.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = cookie.slice(eqIndex + 1);\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (cookieHeader) {\n\t\t\t\t// Fall back to parsing cookie header\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn parsed;\n\t};\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\treturn parse()[name];\n\t\t}\n\t\treturn parse();\n\t}) as CookieFn;\n}\n\n/**\n * Create a lazy header accessor for plain object headers (test adaptor, etc).\n * Headers are already available as an object, just provide lazy access.\n */\nexport function createObjectHeaders(\n\theaders: Record<string, string> | undefined,\n): HeaderFn {\n\tlet normalized: Record<string, string> | null = null;\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Try direct lookup first (common case)\n\t\t\tif (headers) {\n\t\t\t\tconst direct = headers[key] ?? headers[key.toLowerCase()];\n\t\t\t\tif (direct !== undefined) return direct;\n\t\t\t}\n\t\t\t// Fall back to normalized lookup for case-insensitivity\n\t\t\tif (!normalized && headers) {\n\t\t\t\tnormalized = {};\n\t\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\t\tnormalized[k.toLowerCase()] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn normalized?.[key.toLowerCase()];\n\t\t}\n\t\t// Return all headers\n\t\tif (!normalized && headers) {\n\t\t\tnormalized = {};\n\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\tnormalized[k.toLowerCase()] = v;\n\t\t\t}\n\t\t}\n\t\treturn normalized ?? {};\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor from a cookie header string.\n * Decodes URL-encoded values to match browser behavior.\n */\nexport function createCookieHeaderAccessor(\n\tcookieHeader: string | undefined,\n): CookieFn {\n\tlet parsed: Record<string, string> | null = null;\n\n\tconst parse = () => {\n\t\tif (!parsed) {\n\t\t\tparsed = {};\n\t\t\tif (cookieHeader) {\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\t// Decode URL-encoded values to match Endpoint.createCookies behavior\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn parsed;\n\t};\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\treturn parse()[name];\n\t\t}\n\t\treturn parse();\n\t}) as CookieFn;\n}\n\n/**\n * Create a no-op header accessor (for minimal endpoints that don't use headers).\n */\nexport function createNoopHeaders(): HeaderFn {\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) return undefined;\n\t\treturn {};\n\t}) as HeaderFn;\n}\n\n/**\n * Create a no-op cookie accessor (for minimal endpoints that don't use cookies).\n */\nexport function createNoopCookies(): CookieFn {\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) return undefined;\n\t\treturn {};\n\t}) as CookieFn;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazyAccessors-e3j2oE2m.cjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>","c: Context","allHeaders: Record<string, string> | null","key?: string","allCookies: Record<string, string> | null","name?: string","headers: Record<string, string | undefined> | null | undefined","normalizedHeaders: Record<string, string> | null","cookies: string[] | undefined","cookieHeader: string | undefined","parsed: Record<string, string> | null","headers: Record<string, string> | undefined","normalized: Record<string, string> | null"],"sources":["../src/publisher.ts","../src/endpoints/lazyAccessors.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n\tlogger: Logger,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tev: MappedEvent<T, OutSchema>[] = [],\n\tresponse: InferStandardSchema<OutSchema>,\n\tpublisherService: TPublisherService,\n) {\n\ttry {\n\t\tif (!ev?.length) {\n\t\t\tlogger.debug('No events to publish');\n\t\t\treturn;\n\t\t}\n\t\tif (!publisherService) {\n\t\t\tlogger.warn('No publisher service available');\n\t\t\treturn;\n\t\t}\n\n\t\tconst services = await serviceDiscovery.register([publisherService]);\n\n\t\tconst publisher = services[\n\t\t\tpublisherService.serviceName\n\t\t] as EventPublisher<any>;\n\n\t\tconst events: MappedEvent<T, OutSchema>[] = [];\n\n\t\tfor (const { when, payload, type, ...e } of ev) {\n\t\t\tlogger.debug({ event: type }, 'Processing event');\n\t\t\tconst resolvedPayload = await payload(response);\n\t\t\tconst event = {\n\t\t\t\t...e,\n\t\t\t\ttype,\n\t\t\t\tpayload: resolvedPayload,\n\t\t\t};\n\n\t\t\tif (!when || when(response as any)) {\n\t\t\t\tevents.push(event);\n\t\t\t}\n\t\t}\n\n\t\tif (events.length) {\n\t\t\tlogger.debug({ eventCount: ev.length }, 'Publishing events');\n\n\t\t\tawait publisher.publish(events).catch((err) => {\n\t\t\t\tlogger.error(err, 'Failed to publish events');\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error as any, 'Something went wrong publishing events');\n\t}\n}\n\nexport async function publishConstructEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n>(\n\tconstruct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>,\n\tresponse: InferStandardSchema<OutSchema>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: Logger = construct.logger,\n) {\n\treturn publishEvents(\n\t\tlogger,\n\t\tserviceDiscovery,\n\t\tconstruct.events,\n\t\tresponse,\n\t\tconstruct.publisherService,\n\t);\n}\n","/**\n * Lazy header and cookie accessors for different adaptors.\n *\n * Instead of parsing all headers/cookies upfront, these accessors\n * use native adaptor methods for single lookups and only parse\n * everything when `header()` or `cookie()` is called without arguments.\n */\nimport type { Context } from 'hono';\nimport { getCookie } from 'hono/cookie';\nimport type { CookieFn, HeaderFn } from './Endpoint';\n\n/**\n * Create a lazy header accessor for Hono.\n * Uses `c.req.header(name)` for single lookups (native, case-insensitive).\n * Only calls `c.req.header()` to get all headers when needed.\n */\nexport function createHonoHeaders(c: Context): HeaderFn {\n\tlet allHeaders: Record<string, string> | null = null;\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Single header lookup - use native Hono method (case-insensitive)\n\t\t\treturn c.req.header(key);\n\t\t}\n\t\t// Get all headers - cache the result\n\t\tif (!allHeaders) {\n\t\t\tallHeaders = c.req.header();\n\t\t}\n\t\treturn allHeaders;\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor for Hono.\n * Uses `getCookie(c, name)` for single lookups (native).\n * Only parses the cookie header when all cookies are requested.\n */\nexport function createHonoCookies(c: Context): CookieFn {\n\tlet allCookies: Record<string, string> | null = null;\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\t// Single cookie lookup - use native Hono method\n\t\t\treturn getCookie(c, name);\n\t\t}\n\t\t// Get all cookies - parse and cache\n\t\tif (!allCookies) {\n\t\t\tallCookies = {};\n\t\t\tconst cookieHeader = c.req.header('cookie');\n\t\t\tif (cookieHeader) {\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\tallCookies[key] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn allCookies;\n\t}) as CookieFn;\n}\n\n/**\n * Create a lazy header accessor for API Gateway events.\n * Handles case-insensitive lookups.\n */\nexport function createApiGatewayHeaders(\n\theaders: Record<string, string | undefined> | null | undefined,\n): HeaderFn {\n\tlet normalizedHeaders: Record<string, string> | null = null;\n\n\tconst normalize = () => {\n\t\tif (!normalizedHeaders) {\n\t\t\tnormalizedHeaders = {};\n\t\t\tif (headers) {\n\t\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\t\tif (v !== undefined) {\n\t\t\t\t\t\tnormalizedHeaders[k.toLowerCase()] = v;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn normalizedHeaders;\n\t};\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Try direct lookup first (common case: headers already lowercase)\n\t\t\tif (headers) {\n\t\t\t\tconst direct = headers[key] ?? headers[key.toLowerCase()];\n\t\t\t\tif (direct !== undefined) return direct;\n\t\t\t\t// Fall back to normalized lookup\n\t\t\t\treturn normalize()[key.toLowerCase()];\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t\treturn normalize();\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor for API Gateway events.\n * Decodes URL-encoded values to match browser behavior.\n */\nexport function createApiGatewayCookies(\n\tcookies: string[] | undefined,\n\tcookieHeader: string | undefined,\n): CookieFn {\n\tlet parsed: Record<string, string> | null = null;\n\n\tconst parse = () => {\n\t\tif (!parsed) {\n\t\t\tparsed = {};\n\t\t\t// API Gateway v2 provides cookies as array\n\t\t\tif (cookies) {\n\t\t\t\tfor (const cookie of cookies) {\n\t\t\t\t\tconst eqIndex = cookie.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = cookie.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = cookie.slice(eqIndex + 1);\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (cookieHeader) {\n\t\t\t\t// Fall back to parsing cookie header\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn parsed;\n\t};\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\treturn parse()[name];\n\t\t}\n\t\treturn parse();\n\t}) as CookieFn;\n}\n\n/**\n * Create a lazy header accessor for plain object headers (test adaptor, etc).\n * Headers are already available as an object, just provide lazy access.\n */\nexport function createObjectHeaders(\n\theaders: Record<string, string> | undefined,\n): HeaderFn {\n\tlet normalized: Record<string, string> | null = null;\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Try direct lookup first (common case)\n\t\t\tif (headers) {\n\t\t\t\tconst direct = headers[key] ?? headers[key.toLowerCase()];\n\t\t\t\tif (direct !== undefined) return direct;\n\t\t\t}\n\t\t\t// Fall back to normalized lookup for case-insensitivity\n\t\t\tif (!normalized && headers) {\n\t\t\t\tnormalized = {};\n\t\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\t\tnormalized[k.toLowerCase()] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn normalized?.[key.toLowerCase()];\n\t\t}\n\t\t// Return all headers\n\t\tif (!normalized && headers) {\n\t\t\tnormalized = {};\n\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\tnormalized[k.toLowerCase()] = v;\n\t\t\t}\n\t\t}\n\t\treturn normalized ?? {};\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor from a cookie header string.\n * Decodes URL-encoded values to match browser behavior.\n */\nexport function createCookieHeaderAccessor(\n\tcookieHeader: string | undefined,\n): CookieFn {\n\tlet parsed: Record<string, string> | null = null;\n\n\tconst parse = () => {\n\t\tif (!parsed) {\n\t\t\tparsed = {};\n\t\t\tif (cookieHeader) {\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\t// Decode URL-encoded values to match Endpoint.createCookies behavior\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn parsed;\n\t};\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\treturn parse()[name];\n\t\t}\n\t\treturn parse();\n\t}) as CookieFn;\n}\n\n/**\n * Create a no-op header accessor (for minimal endpoints that don't use headers).\n */\nexport function createNoopHeaders(): HeaderFn {\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) return undefined;\n\t\treturn {};\n\t}) as HeaderFn;\n}\n\n/**\n * Create a no-op cookie accessor (for minimal endpoints that don't use cookies).\n */\nexport function createNoopCookies(): CookieFn {\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) return undefined;\n\t\treturn {};\n\t}) as CookieFn;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"processAudits-CGqttuXm.cjs","names":["endpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t>","serviceDiscovery: ServiceDiscovery<any>","logger: TLogger","ctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t}","actor: AuditActor","DefaultAuditor","auditContext: AuditExecutionContext<TAuditAction> | undefined","handler: (auditor?: Auditor<TAuditAction>) => Promise<T>","onComplete?: (response: T, auditor: Auditor<TAuditAction>) => Promise<void>","options?: ExecuteWithAuditTransactionOptions","response"],"sources":["../src/endpoints/processAudits.ts"],"sourcesContent":["import type {\n\tAuditActor,\n\tAuditableAction,\n\tAuditor,\n\tAuditStorage,\n} from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport type { Logger } from '@geekmidas/logger';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { ActorExtractor, MappedAudit } from './audit';\nimport type { CookieFn, Endpoint, HeaderFn } from './Endpoint';\n\n/**\n * Process declarative audit definitions after successful endpoint execution.\n * Similar to publishConstructEvents for events.\n *\n * @param endpoint - The endpoint with audit configuration\n * @param response - The handler response to generate audit payloads from\n * @param serviceDiscovery - Service discovery for registering audit storage\n * @param logger - Logger for debug/error messages\n * @param ctx - Request context (session, headers, cookies, services)\n * @param existingAuditor - Optional existing auditor instance (e.g., from handler context).\n * If provided, uses this auditor (with its stored transaction).\n * If not provided, creates a new auditor.\n */\nexport async function processEndpointAudits<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n>(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction\n\t>,\n\tresponse: InferStandardSchema<OutSchema>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: TLogger,\n\tctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t},\n\texistingAuditor?: Auditor<TAuditAction>,\n): Promise<void> {\n\ttry {\n\t\tconst audits = endpoint.audits as MappedAudit<TAuditAction, OutSchema>[];\n\n\t\t// If we have an existing auditor (from handler context), we need to flush\n\t\t// any manual audits it collected, even if there are no declarative audits\n\t\tconst hasExistingRecords =\n\t\t\texistingAuditor && existingAuditor.getRecords().length > 0;\n\n\t\t// Skip if no declarative audits and no existing records to flush\n\t\tif (!audits?.length && !hasExistingRecords) {\n\t\t\tlogger.debug('No audits to process');\n\t\t\treturn;\n\t\t}\n\n\t\t// If no auditor storage service and we have things to process, warn\n\t\tif (!endpoint.auditorStorageService) {\n\t\t\tif (hasExistingRecords || audits?.length) {\n\t\t\t\tlogger.warn('No auditor storage service available');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Get or create auditor\n\t\tlet auditor: Auditor<TAuditAction>;\n\n\t\tif (existingAuditor) {\n\t\t\t// Use existing auditor (preserves stored transaction and manual audits)\n\t\t\tauditor = existingAuditor;\n\t\t\tlogger.debug('Using existing auditor from handler context');\n\t\t} else {\n\t\t\t// Create new auditor (backward compatibility)\n\t\t\tconst services = await serviceDiscovery.register([\n\t\t\t\tendpoint.auditorStorageService,\n\t\t\t]);\n\t\t\tconst storage = services[\n\t\t\t\tendpoint.auditorStorageService.serviceName\n\t\t\t] as AuditStorage;\n\n\t\t\t// Extract actor if configured\n\t\t\tlet actor: AuditActor = { id: 'system', type: 'system' };\n\t\t\tif (endpoint.actorExtractor) {\n\t\t\t\ttry {\n\t\t\t\t\tactor = await (\n\t\t\t\t\t\tendpoint.actorExtractor as ActorExtractor<\n\t\t\t\t\t\t\tTServices,\n\t\t\t\t\t\t\tTSession,\n\t\t\t\t\t\t\tTLogger\n\t\t\t\t\t\t>\n\t\t\t\t\t)({\n\t\t\t\t\t\tservices: ctx.services as any,\n\t\t\t\t\t\tsession: ctx.session,\n\t\t\t\t\t\theader: ctx.header,\n\t\t\t\t\t\tcookie: ctx.cookie,\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error(error as Error, 'Failed to extract actor for audits');\n\t\t\t\t\t// Continue with system actor\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tauditor = new DefaultAuditor<TAuditAction>({\n\t\t\t\tactor,\n\t\t\t\tstorage,\n\t\t\t\tmetadata: {\n\t\t\t\t\tendpoint: endpoint.route,\n\t\t\t\t\tmethod: endpoint.method,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Process each declarative audit\n\t\tif (audits?.length) {\n\t\t\tfor (const audit of audits) {\n\t\t\t\tlogger.debug({ audit: audit.type }, 'Processing declarative audit');\n\n\t\t\t\t// Check when condition\n\t\t\t\tif (audit.when && !audit.when(response as any)) {\n\t\t\t\t\tlogger.debug(\n\t\t\t\t\t\t{ audit: audit.type },\n\t\t\t\t\t\t'Audit skipped due to when condition',\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Extract payload\n\t\t\t\tconst payload = audit.payload(response as any);\n\n\t\t\t\t// Extract entityId if configured\n\t\t\t\tconst entityId = audit.entityId?.(response as any);\n\n\t\t\t\t// Record the audit\n\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\ttable: audit.table,\n\t\t\t\t\tentityId,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Flush audits to storage\n\t\t// Note: If existingAuditor has a stored transaction (via setTransaction),\n\t\t// flush() will use it automatically\n\t\tconst recordCount = auditor.getRecords().length;\n\t\tif (recordCount > 0) {\n\t\t\t// Check if auditor has a stored transaction (for logging purposes)\n\t\t\tconst trx =\n\t\t\t\t'getTransaction' in auditor\n\t\t\t\t\t? (auditor as { getTransaction(): unknown }).getTransaction()\n\t\t\t\t\t: undefined;\n\t\t\tlogger.debug(\n\t\t\t\t{ auditCount: recordCount, hasTransaction: !!trx },\n\t\t\t\t'Flushing audits',\n\t\t\t);\n\t\t\tawait auditor.flush();\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error as Error, 'Failed to process audits');\n\t\t// Don't rethrow - audit failures shouldn't fail the request\n\t}\n}\n\n/**\n * Context for audit-aware handler execution.\n */\nexport interface AuditExecutionContext<\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> {\n\t/** The auditor instance for recording audits */\n\tauditor: Auditor<TAuditAction>;\n\t/** The audit storage instance */\n\tstorage: AuditStorage;\n}\n\n/**\n * Create audit context for handler execution.\n * Returns the auditor and storage for use in the handler.\n *\n * @param endpoint - The endpoint with audit configuration\n * @param serviceDiscovery - Service discovery for getting audit storage\n * @param logger - Logger for debug/error messages\n * @param ctx - Request context for actor extraction\n * @returns Audit context with auditor and storage, or undefined if not configured\n */\nexport async function createAuditContext<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n>(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: TLogger,\n\tctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t},\n): Promise<AuditExecutionContext<TAuditAction> | undefined> {\n\tif (!endpoint.auditorStorageService) {\n\t\treturn undefined;\n\t}\n\n\tconst services = await serviceDiscovery.register([\n\t\tendpoint.auditorStorageService,\n\t]);\n\tconst storage = services[\n\t\tendpoint.auditorStorageService.serviceName\n\t] as AuditStorage;\n\n\t// Extract actor if configured\n\tlet actor: AuditActor = { id: 'system', type: 'system' };\n\tif (endpoint.actorExtractor) {\n\t\ttry {\n\t\t\tactor = await (\n\t\t\t\tendpoint.actorExtractor as ActorExtractor<TServices, TSession, TLogger>\n\t\t\t)({\n\t\t\t\tservices: ctx.services as any,\n\t\t\t\tsession: ctx.session,\n\t\t\t\theader: ctx.header,\n\t\t\t\tcookie: ctx.cookie,\n\t\t\t\tlogger,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.error(error as Error, 'Failed to extract actor for audits');\n\t\t}\n\t}\n\n\tconst auditor = new DefaultAuditor<TAuditAction>({\n\t\tactor,\n\t\tstorage,\n\t\tmetadata: {\n\t\t\tendpoint: endpoint.route,\n\t\t\tmethod: endpoint.method,\n\t\t},\n\t});\n\n\treturn { auditor, storage };\n}\n\n/**\n * Options for executeWithAuditTransaction.\n */\nexport interface ExecuteWithAuditTransactionOptions {\n\t/**\n\t * Database connection to use for the transaction.\n\t * If this is already a transaction, it will be reused instead of creating a nested one.\n\t * If not provided, the storage's internal database is used.\n\t */\n\tdb?: unknown;\n}\n\n/**\n * Execute a handler with automatic audit transaction support.\n * If the audit storage provides a withTransaction method, wraps execution\n * in a transaction so audits are atomic with handler's database operations.\n *\n * This is database-agnostic - each storage implementation provides its own\n * transaction handling based on the underlying database (Kysely, Drizzle, etc.).\n *\n * If the db parameter is provided and is already a transaction, the storage\n * will reuse it instead of creating a nested transaction (similar to\n * packages/db/src/kysely.ts#withTransaction).\n *\n * @param auditContext - The audit context from createAuditContext\n * @param handler - The handler function to execute (receives auditor)\n * @param onComplete - Called after handler with response, to process declarative audits\n * @param options - Optional configuration including database connection\n * @returns The handler result\n */\nexport async function executeWithAuditTransaction<\n\tT,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n>(\n\tauditContext: AuditExecutionContext<TAuditAction> | undefined,\n\thandler: (auditor?: Auditor<TAuditAction>) => Promise<T>,\n\tonComplete?: (response: T, auditor: Auditor<TAuditAction>) => Promise<void>,\n\toptions?: ExecuteWithAuditTransactionOptions,\n): Promise<T> {\n\t// No audit context - just run handler\n\tif (!auditContext) {\n\t\treturn handler(undefined);\n\t}\n\n\tconst { auditor, storage } = auditContext;\n\n\t// Check if storage provides a transaction wrapper\n\tif (storage.withTransaction) {\n\t\t// Wrap in transaction - audits are atomic with handler operations\n\t\t// The storage's withTransaction handles setTransaction and flush\n\t\t// Pass db so existing transactions are reused\n\t\treturn storage.withTransaction(\n\t\t\tauditor,\n\t\t\tasync () => {\n\t\t\t\tconst response = await handler(auditor);\n\n\t\t\t\t// Process declarative audits within the transaction\n\t\t\t\tif (onComplete) {\n\t\t\t\t\tawait onComplete(response, auditor);\n\t\t\t\t}\n\n\t\t\t\treturn response;\n\t\t\t},\n\t\t\toptions?.db,\n\t\t);\n\t}\n\n\t// No transaction support - run handler and flush audits after\n\tconst response = await handler(auditor);\n\n\tif (onComplete) {\n\t\tawait onComplete(response, auditor);\n\t}\n\n\t// Flush audits (no transaction)\n\tawait auditor.flush();\n\n\treturn response;\n}\n"],"mappings":";;;;;;;;;;;;;;AAkNA,eAAsB,mBAarBA,UAgBAC,kBACAC,QACAC,KAM2D;AAC3D,MAAK,SAAS,sBACb;CAGD,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAChD,SAAS,qBACT,EAAC;CACF,MAAM,UAAU,SACf,SAAS,sBAAsB;CAIhC,IAAIC,QAAoB;EAAE,IAAI;EAAU,MAAM;CAAU;AACxD,KAAI,SAAS,eACZ,KAAI;AACH,UAAQ,MAAM,AACb,SAAS,eACR;GACD,UAAU,IAAI;GACd,SAAS,IAAI;GACb,QAAQ,IAAI;GACZ,QAAQ,IAAI;GACZ;EACA,EAAC;CACF,SAAQ,OAAO;AACf,SAAO,MAAM,OAAgB,qCAAqC;CAClE;CAGF,MAAM,UAAU,IAAIC,iCAA6B;EAChD;EACA;EACA,UAAU;GACT,UAAU,SAAS;GACnB,QAAQ,SAAS;EACjB;CACD;AAED,QAAO;EAAE;EAAS;CAAS;AAC3B;;;;;;;;;;;;;;;;;;;AAgCD,eAAsB,4BAOrBC,cACAC,SACAC,YACAC,SACa;AAEb,MAAK,aACJ,QAAO,eAAkB;CAG1B,MAAM,EAAE,SAAS,SAAS,GAAG;AAG7B,KAAI,QAAQ,gBAIX,QAAO,QAAQ,gBACd,SACA,YAAY;EACX,MAAMC,aAAW,MAAM,QAAQ,QAAQ;AAGvC,MAAI,WACH,OAAM,WAAWA,YAAU,QAAQ;AAGpC,SAAOA;CACP,GACD,SAAS,GACT;CAIF,MAAM,WAAW,MAAM,QAAQ,QAAQ;AAEvC,KAAI,WACH,OAAM,WAAW,UAAU,QAAQ;AAIpC,OAAM,QAAQ,OAAO;AAErB,QAAO;AACP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"processAudits-Dmts9H_b.mjs","names":["endpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t>","serviceDiscovery: ServiceDiscovery<any>","logger: TLogger","ctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t}","actor: AuditActor","auditContext: AuditExecutionContext<TAuditAction> | undefined","handler: (auditor?: Auditor<TAuditAction>) => Promise<T>","onComplete?: (response: T, auditor: Auditor<TAuditAction>) => Promise<void>","options?: ExecuteWithAuditTransactionOptions","response"],"sources":["../src/endpoints/processAudits.ts"],"sourcesContent":["import type {\n\tAuditActor,\n\tAuditableAction,\n\tAuditor,\n\tAuditStorage,\n} from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport type { Logger } from '@geekmidas/logger';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { ActorExtractor, MappedAudit } from './audit';\nimport type { CookieFn, Endpoint, HeaderFn } from './Endpoint';\n\n/**\n * Process declarative audit definitions after successful endpoint execution.\n * Similar to publishConstructEvents for events.\n *\n * @param endpoint - The endpoint with audit configuration\n * @param response - The handler response to generate audit payloads from\n * @param serviceDiscovery - Service discovery for registering audit storage\n * @param logger - Logger for debug/error messages\n * @param ctx - Request context (session, headers, cookies, services)\n * @param existingAuditor - Optional existing auditor instance (e.g., from handler context).\n * If provided, uses this auditor (with its stored transaction).\n * If not provided, creates a new auditor.\n */\nexport async function processEndpointAudits<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n>(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction\n\t>,\n\tresponse: InferStandardSchema<OutSchema>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: TLogger,\n\tctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t},\n\texistingAuditor?: Auditor<TAuditAction>,\n): Promise<void> {\n\ttry {\n\t\tconst audits = endpoint.audits as MappedAudit<TAuditAction, OutSchema>[];\n\n\t\t// If we have an existing auditor (from handler context), we need to flush\n\t\t// any manual audits it collected, even if there are no declarative audits\n\t\tconst hasExistingRecords =\n\t\t\texistingAuditor && existingAuditor.getRecords().length > 0;\n\n\t\t// Skip if no declarative audits and no existing records to flush\n\t\tif (!audits?.length && !hasExistingRecords) {\n\t\t\tlogger.debug('No audits to process');\n\t\t\treturn;\n\t\t}\n\n\t\t// If no auditor storage service and we have things to process, warn\n\t\tif (!endpoint.auditorStorageService) {\n\t\t\tif (hasExistingRecords || audits?.length) {\n\t\t\t\tlogger.warn('No auditor storage service available');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Get or create auditor\n\t\tlet auditor: Auditor<TAuditAction>;\n\n\t\tif (existingAuditor) {\n\t\t\t// Use existing auditor (preserves stored transaction and manual audits)\n\t\t\tauditor = existingAuditor;\n\t\t\tlogger.debug('Using existing auditor from handler context');\n\t\t} else {\n\t\t\t// Create new auditor (backward compatibility)\n\t\t\tconst services = await serviceDiscovery.register([\n\t\t\t\tendpoint.auditorStorageService,\n\t\t\t]);\n\t\t\tconst storage = services[\n\t\t\t\tendpoint.auditorStorageService.serviceName\n\t\t\t] as AuditStorage;\n\n\t\t\t// Extract actor if configured\n\t\t\tlet actor: AuditActor = { id: 'system', type: 'system' };\n\t\t\tif (endpoint.actorExtractor) {\n\t\t\t\ttry {\n\t\t\t\t\tactor = await (\n\t\t\t\t\t\tendpoint.actorExtractor as ActorExtractor<\n\t\t\t\t\t\t\tTServices,\n\t\t\t\t\t\t\tTSession,\n\t\t\t\t\t\t\tTLogger\n\t\t\t\t\t\t>\n\t\t\t\t\t)({\n\t\t\t\t\t\tservices: ctx.services as any,\n\t\t\t\t\t\tsession: ctx.session,\n\t\t\t\t\t\theader: ctx.header,\n\t\t\t\t\t\tcookie: ctx.cookie,\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error(error as Error, 'Failed to extract actor for audits');\n\t\t\t\t\t// Continue with system actor\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tauditor = new DefaultAuditor<TAuditAction>({\n\t\t\t\tactor,\n\t\t\t\tstorage,\n\t\t\t\tmetadata: {\n\t\t\t\t\tendpoint: endpoint.route,\n\t\t\t\t\tmethod: endpoint.method,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Process each declarative audit\n\t\tif (audits?.length) {\n\t\t\tfor (const audit of audits) {\n\t\t\t\tlogger.debug({ audit: audit.type }, 'Processing declarative audit');\n\n\t\t\t\t// Check when condition\n\t\t\t\tif (audit.when && !audit.when(response as any)) {\n\t\t\t\t\tlogger.debug(\n\t\t\t\t\t\t{ audit: audit.type },\n\t\t\t\t\t\t'Audit skipped due to when condition',\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Extract payload\n\t\t\t\tconst payload = audit.payload(response as any);\n\n\t\t\t\t// Extract entityId if configured\n\t\t\t\tconst entityId = audit.entityId?.(response as any);\n\n\t\t\t\t// Record the audit\n\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\ttable: audit.table,\n\t\t\t\t\tentityId,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Flush audits to storage\n\t\t// Note: If existingAuditor has a stored transaction (via setTransaction),\n\t\t// flush() will use it automatically\n\t\tconst recordCount = auditor.getRecords().length;\n\t\tif (recordCount > 0) {\n\t\t\t// Check if auditor has a stored transaction (for logging purposes)\n\t\t\tconst trx =\n\t\t\t\t'getTransaction' in auditor\n\t\t\t\t\t? (auditor as { getTransaction(): unknown }).getTransaction()\n\t\t\t\t\t: undefined;\n\t\t\tlogger.debug(\n\t\t\t\t{ auditCount: recordCount, hasTransaction: !!trx },\n\t\t\t\t'Flushing audits',\n\t\t\t);\n\t\t\tawait auditor.flush();\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error as Error, 'Failed to process audits');\n\t\t// Don't rethrow - audit failures shouldn't fail the request\n\t}\n}\n\n/**\n * Context for audit-aware handler execution.\n */\nexport interface AuditExecutionContext<\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> {\n\t/** The auditor instance for recording audits */\n\tauditor: Auditor<TAuditAction>;\n\t/** The audit storage instance */\n\tstorage: AuditStorage;\n}\n\n/**\n * Create audit context for handler execution.\n * Returns the auditor and storage for use in the handler.\n *\n * @param endpoint - The endpoint with audit configuration\n * @param serviceDiscovery - Service discovery for getting audit storage\n * @param logger - Logger for debug/error messages\n * @param ctx - Request context for actor extraction\n * @returns Audit context with auditor and storage, or undefined if not configured\n */\nexport async function createAuditContext<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n>(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: TLogger,\n\tctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t},\n): Promise<AuditExecutionContext<TAuditAction> | undefined> {\n\tif (!endpoint.auditorStorageService) {\n\t\treturn undefined;\n\t}\n\n\tconst services = await serviceDiscovery.register([\n\t\tendpoint.auditorStorageService,\n\t]);\n\tconst storage = services[\n\t\tendpoint.auditorStorageService.serviceName\n\t] as AuditStorage;\n\n\t// Extract actor if configured\n\tlet actor: AuditActor = { id: 'system', type: 'system' };\n\tif (endpoint.actorExtractor) {\n\t\ttry {\n\t\t\tactor = await (\n\t\t\t\tendpoint.actorExtractor as ActorExtractor<TServices, TSession, TLogger>\n\t\t\t)({\n\t\t\t\tservices: ctx.services as any,\n\t\t\t\tsession: ctx.session,\n\t\t\t\theader: ctx.header,\n\t\t\t\tcookie: ctx.cookie,\n\t\t\t\tlogger,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.error(error as Error, 'Failed to extract actor for audits');\n\t\t}\n\t}\n\n\tconst auditor = new DefaultAuditor<TAuditAction>({\n\t\tactor,\n\t\tstorage,\n\t\tmetadata: {\n\t\t\tendpoint: endpoint.route,\n\t\t\tmethod: endpoint.method,\n\t\t},\n\t});\n\n\treturn { auditor, storage };\n}\n\n/**\n * Options for executeWithAuditTransaction.\n */\nexport interface ExecuteWithAuditTransactionOptions {\n\t/**\n\t * Database connection to use for the transaction.\n\t * If this is already a transaction, it will be reused instead of creating a nested one.\n\t * If not provided, the storage's internal database is used.\n\t */\n\tdb?: unknown;\n}\n\n/**\n * Execute a handler with automatic audit transaction support.\n * If the audit storage provides a withTransaction method, wraps execution\n * in a transaction so audits are atomic with handler's database operations.\n *\n * This is database-agnostic - each storage implementation provides its own\n * transaction handling based on the underlying database (Kysely, Drizzle, etc.).\n *\n * If the db parameter is provided and is already a transaction, the storage\n * will reuse it instead of creating a nested transaction (similar to\n * packages/db/src/kysely.ts#withTransaction).\n *\n * @param auditContext - The audit context from createAuditContext\n * @param handler - The handler function to execute (receives auditor)\n * @param onComplete - Called after handler with response, to process declarative audits\n * @param options - Optional configuration including database connection\n * @returns The handler result\n */\nexport async function executeWithAuditTransaction<\n\tT,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n>(\n\tauditContext: AuditExecutionContext<TAuditAction> | undefined,\n\thandler: (auditor?: Auditor<TAuditAction>) => Promise<T>,\n\tonComplete?: (response: T, auditor: Auditor<TAuditAction>) => Promise<void>,\n\toptions?: ExecuteWithAuditTransactionOptions,\n): Promise<T> {\n\t// No audit context - just run handler\n\tif (!auditContext) {\n\t\treturn handler(undefined);\n\t}\n\n\tconst { auditor, storage } = auditContext;\n\n\t// Check if storage provides a transaction wrapper\n\tif (storage.withTransaction) {\n\t\t// Wrap in transaction - audits are atomic with handler operations\n\t\t// The storage's withTransaction handles setTransaction and flush\n\t\t// Pass db so existing transactions are reused\n\t\treturn storage.withTransaction(\n\t\t\tauditor,\n\t\t\tasync () => {\n\t\t\t\tconst response = await handler(auditor);\n\n\t\t\t\t// Process declarative audits within the transaction\n\t\t\t\tif (onComplete) {\n\t\t\t\t\tawait onComplete(response, auditor);\n\t\t\t\t}\n\n\t\t\t\treturn response;\n\t\t\t},\n\t\t\toptions?.db,\n\t\t);\n\t}\n\n\t// No transaction support - run handler and flush audits after\n\tconst response = await handler(auditor);\n\n\tif (onComplete) {\n\t\tawait onComplete(response, auditor);\n\t}\n\n\t// Flush audits (no transaction)\n\tawait auditor.flush();\n\n\treturn response;\n}\n"],"mappings":";;;;;;;;;;;;;AAkNA,eAAsB,mBAarBA,UAgBAC,kBACAC,QACAC,KAM2D;AAC3D,MAAK,SAAS,sBACb;CAGD,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAChD,SAAS,qBACT,EAAC;CACF,MAAM,UAAU,SACf,SAAS,sBAAsB;CAIhC,IAAIC,QAAoB;EAAE,IAAI;EAAU,MAAM;CAAU;AACxD,KAAI,SAAS,eACZ,KAAI;AACH,UAAQ,MAAM,AACb,SAAS,eACR;GACD,UAAU,IAAI;GACd,SAAS,IAAI;GACb,QAAQ,IAAI;GACZ,QAAQ,IAAI;GACZ;EACA,EAAC;CACF,SAAQ,OAAO;AACf,SAAO,MAAM,OAAgB,qCAAqC;CAClE;CAGF,MAAM,UAAU,IAAI,eAA6B;EAChD;EACA;EACA,UAAU;GACT,UAAU,SAAS;GACnB,QAAQ,SAAS;EACjB;CACD;AAED,QAAO;EAAE;EAAS;CAAS;AAC3B;;;;;;;;;;;;;;;;;;;AAgCD,eAAsB,4BAOrBC,cACAC,SACAC,YACAC,SACa;AAEb,MAAK,aACJ,QAAO,eAAkB;CAG1B,MAAM,EAAE,SAAS,SAAS,GAAG;AAG7B,KAAI,QAAQ,gBAIX,QAAO,QAAQ,gBACd,SACA,YAAY;EACX,MAAMC,aAAW,MAAM,QAAQ,QAAQ;AAGvC,MAAI,WACH,OAAM,WAAWA,YAAU,QAAQ;AAGpC,SAAOA;CACP,GACD,SAAS,GACT;CAIF,MAAM,WAAW,MAAM,QAAQ,QAAQ;AAEvC,KAAI,WACH,OAAM,WAAW,UAAU,QAAQ;AAIpC,OAAM,QAAQ,OAAO;AAErB,QAAO;AACP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["Construct","obj: unknown","ConstructType","name: TName","handler: QueueHandler<TMessage, TServices, TLogger>","messageSchema: TMessage","timeout: number","services: TServices","logger: TLogger","DEFAULT_LOGGER","batchSize?: number","fifo?: boolean","constructs: string[]","DEFAULT_LOGGER","name: T","timeout: number","batchSize: number","constructs: T","services: T","logger: T","schema: T","fn: QueueHandler<NonNullable<TMessage>, TServices, TLogger>"],"sources":["../../src/queue/Queue.ts","../../src/queue/QueueBuilder.ts","../../src/queue/index.ts"],"sourcesContent":["import {\n\ttype EventPublisher,\n\ttype EventPublisherConnectionString,\n\ttype PublishableMessage,\n\tPublisher,\n} from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { DEFAULT_LOGGER } from '@geekmidas/logger/console';\nimport {\n\tcanonicalId,\n\ttype Declaration,\n\tprovideKey,\n\tserviceKey,\n} from '@geekmidas/manifest';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceRecord } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { Construct, ConstructType } from '../Construct';\n\n/**\n * The wire message a queue carries: `{ type: <queue name>, payload: <message> }`.\n * The producer publishes this shape and the worker receives the `payload`s as\n * its `messages`. Typing `type` to the queue name keeps the publisher fully\n * typed and lets pg-boss (local) / SQS (deployed) route by name.\n */\nexport type QueueMessage<\n\tTName extends string,\n\tTMessage extends StandardSchemaV1,\n> = PublishableMessage<TName, InferStandardSchema<TMessage>>;\n\n/**\n * A queue worker — a point-to-point SQS-style queue and its single consumer.\n * Unlike a `Subscriber` (topic fan-out, filtered by `subscribedEvents`), a queue\n * drains every message of its one `message` type. Build one with `q` (see\n * `QueueBuilder`); `gkm build` discovers it into the manifest's `queues` field.\n *\n * The producer side is {@link Queue.publisher} — a ready-to-inject `Service`\n * that any endpoint/function drops into `.services([...])` to send messages.\n */\nexport class Queue<\n\tTName extends string = string,\n\tTMessage extends StandardSchemaV1 = StandardSchemaV1,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> extends Construct<TLogger, string, undefined, undefined, TServices> {\n\t__IS_QUEUE__ = true;\n\n\tstatic isQueue(\n\t\tobj: unknown,\n\t): obj is Queue<string, StandardSchemaV1, Service[], Logger> {\n\t\treturn Boolean(\n\t\t\tobj &&\n\t\t\t\t(obj as { __IS_QUEUE__?: boolean }).__IS_QUEUE__ === true &&\n\t\t\t\t(obj as Construct).type === ConstructType.Queue,\n\t\t);\n\t}\n\n\t/**\n\t * The canonical id this queue is declared under.\n\t *\n\t * Derived from the name rather than given separately, so `emails` and\n\t * `Emails` are one queue. The name stays what it was: it is the wire `type`\n\t * a producer sends and the worker subscribes to, and changing that would\n\t * silently orphan in-flight messages.\n\t */\n\treadonly id: string;\n\n\t/**\n\t * The producer's env key. Read by both {@link declare} and\n\t * {@link publisher}, so what the target publishes and what the producer\n\t * looks up cannot drift.\n\t */\n\tprivate readonly connectionKey: string;\n\n\tconstructor(\n\t\tpublic readonly name: TName,\n\t\tpublic readonly handler: QueueHandler<TMessage, TServices, TLogger>,\n\t\tpublic readonly messageSchema: TMessage,\n\t\tpublic override readonly timeout: number = 30000,\n\t\tpublic override readonly services: TServices = [] as unknown as TServices,\n\t\tpublic override readonly logger: TLogger = DEFAULT_LOGGER as TLogger,\n\t\t/** SQS event-source batch size (deployed). */\n\t\tpublic readonly batchSize?: number,\n\t\t/** Whether the queue is FIFO (deployed). */\n\t\tpublic readonly fifo?: boolean,\n\t\t/**\n\t\t * The construct ids the *worker* `.dependsOn()` named — last, so no\n\t\t * existing positional argument moves.\n\t\t */\n\t\tconstructs: string[] = [],\n\t) {\n\t\tsuper(\n\t\t\tConstructType.Queue,\n\t\t\tlogger,\n\t\t\tservices,\n\t\t\t[],\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\ttimeout,\n\t\t\tundefined, // memorySize\n\t\t\tundefined, // auditorStorageService\n\t\t\tconstructs,\n\t\t);\n\n\t\tthis.id = canonicalId(name);\n\t\tthis.connectionKey = provideKey(this.id, 'publisherConnectionString');\n\t}\n\n\t/**\n\t * What this queue is in the manifest.\n\t *\n\t * A queue is a resource, not a handler: the worker is reached *through* it,\n\t * so the declaration carries the producer's key and nothing about the code\n\t * that drains it. The local target reads this to know which broker has to be\n\t * running and what connection string to inject.\n\t */\n\tdeclare(): Declaration[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\tkind: 'queue',\n\t\t\t\tid: this.id,\n\t\t\t\tprovides: [this.connectionKey],\n\t\t\t\t...(this.fifo ? { fifo: true } : {}),\n\t\t\t\t// Nested rather than a sibling node, because position carries the\n\t\t\t\t// trigger: this handler is reached by messages on this queue and\n\t\t\t\t// by nothing else, so there is no `trigger` field to keep in step.\n\t\t\t\t//\n\t\t\t\t// `handler` is the export name; which directory the build wrote it\n\t\t\t\t// to is the target's business, and a path with a cloud in it does\n\t\t\t\t// not belong in a neutral declaration.\n\t\t\t\tworker: {\n\t\t\t\t\tid: `${this.id}Worker`,\n\t\t\t\t\thandler: `${this.id}.handler`,\n\t\t\t\t\t// Filled by the build from what the worker declared. Empty is a\n\t\t\t\t\t// stated gap, not a claim that it reaches nothing.\n\t\t\t\t\tdependencies: [],\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t}\n\n\t/**\n\t * The producer side — a `Service` exposing an `EventPublisher` typed to this\n\t * queue's message. Inject it via `.services([queue.publisher])`; the handler\n\t * then calls `services.<name>Publisher.publish([{ type, payload }])`.\n\t *\n\t * It reads `<NAME>_PUBLISHER_CONNECTION_STRING` and builds the transport from\n\t * the URL protocol — `pgboss://` locally, `sqs://` deployed — so the same\n\t * code publishes to Postgres in dev and SQS in prod. Because it's a `Service`,\n\t * `Construct.getEnvironment()` sniffs it, so the env requirement flows into\n\t * the manifest and infra links exactly this queue with least privilege.\n\t */\n\t/**\n\t * The queue as a dependency — what `.dependsOn([emailsQueue])` dissolves\n\t * into, reachable as `services.emails`.\n\t *\n\t * It is the producer: a consumer is the worker written right here, so the\n\t * only thing another construct can want from a queue is the ability to send\n\t * to it. {@link publisher} is the same service under its older\n\t * `<name>Publisher` key, kept for `.services([queue.publisher])`.\n\t */\n\tget service(): Service<\n\t\tUncapitalize<TName>,\n\t\tEventPublisher<QueueMessage<TName, TMessage>>\n\t> {\n\t\tconst { register } = this.publisher;\n\n\t\treturn {\n\t\t\tserviceName: serviceKey(this.id) as Uncapitalize<TName>,\n\t\t\tregister,\n\t\t};\n\t}\n\n\tget publisher(): Service<\n\t\t`${TName}Publisher`,\n\t\tEventPublisher<QueueMessage<TName, TMessage>>\n\t> {\n\t\tconst envVar = this.connectionKey;\n\t\treturn {\n\t\t\tserviceName: `${this.name}Publisher`,\n\t\t\tasync register({ envParser }) {\n\t\t\t\tconst { connectionString } = envParser\n\t\t\t\t\t.create((get) => ({\n\t\t\t\t\t\tconnectionString: get(envVar).string(),\n\t\t\t\t\t}))\n\t\t\t\t\t.parse();\n\n\t\t\t\treturn Publisher.fromConnectionString<QueueMessage<TName, TMessage>>(\n\t\t\t\t\tconnectionString as EventPublisherConnectionString,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}\n}\n\n/** The context a queue handler receives — a batch of typed messages. */\nexport type QueueContext<\n\tTMessage extends StandardSchemaV1,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> = {\n\tmessages: InferStandardSchema<TMessage>[];\n\tservices: ServiceRecord<TServices>;\n\tlogger: TLogger;\n};\n\nexport type QueueHandler<\n\tTMessage extends StandardSchemaV1,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> = (\n\tctx: QueueContext<TMessage, TServices, TLogger>,\n) => unknown | Promise<unknown>;\n","import type { Logger } from '@geekmidas/logger';\nimport { DEFAULT_LOGGER } from '@geekmidas/logger/console';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { cloneWith } from '../clone';\nimport {\n\ttype Consumable,\n\tidsOf,\n\ttype ServicesOf,\n\tservicesOf,\n} from '../construct-interface';\nimport { Queue, type QueueHandler } from './Queue';\n\n/**\n * Builds a {@link Queue} worker — `q.queue('orders').services([db]).message(schema).handle(fn)`.\n * Services are an array (sniffed for required env vars); `message` is the typed\n * job payload; `handle` is the single consumer. The queue name is captured as a\n * literal so `queue.publisher` is typed to `{ type: '<name>', payload }`.\n */\nexport class QueueBuilder<\n\tTName extends string = string,\n\tTMessage extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> {\n\tprivate _name?: string;\n\tprivate _messageSchema?: TMessage;\n\tprivate _timeout = 30000;\n\tprivate _batchSize?: number;\n\tprivate _fifo?: boolean;\n\tprivate _services: TServices = [] as Service[] as TServices;\n\t/** The construct ids `.dependsOn()` named — what the manifest records. */\n\tpublic _constructs: string[] = [];\n\tprivate _logger: TLogger = DEFAULT_LOGGER as TLogger;\n\n\t/** The queue name — drives the infra queue and its `<NAME>_*` env vars. */\n\tqueue<T extends string>(\n\t\tname: T,\n\t): QueueBuilder<T, TMessage, TServices, TLogger> {\n\t\treturn cloneWith(this, { _name: name }) as unknown as QueueBuilder<\n\t\t\tT,\n\t\t\tTMessage,\n\t\t\tTServices,\n\t\t\tTLogger\n\t\t>;\n\t}\n\n\ttimeout(timeout: number): this {\n\t\treturn cloneWith(this, { _timeout: timeout });\n\t}\n\n\t/** SQS event-source batch size (deployed). */\n\tbatchSize(batchSize: number): this {\n\t\treturn cloneWith(this, { _batchSize: batchSize });\n\t}\n\n\t/** Mark the queue as FIFO (deployed). */\n\tfifo(fifo = true): this {\n\t\treturn cloneWith(this, { _fifo: fifo });\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\tdependsOn<const T extends readonly Consumable[]>(\n\t\tconstructs: T,\n\t): QueueBuilder<TName, TMessage, [...TServices, ...ServicesOf<T>], TLogger> {\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: [...this._services, ...services],\n\t\t\t_constructs: idsOf(constructs, this._constructs),\n\t\t}) as unknown as QueueBuilder<\n\t\t\tTName,\n\t\t\tTMessage,\n\t\t\t[...TServices, ...ServicesOf<T>],\n\t\t\tTLogger\n\t\t>;\n\t}\n\n\tservices<T extends Service[]>(\n\t\tservices: T,\n\t): QueueBuilder<TName, TMessage, [...TServices, ...T], TLogger> {\n\t\treturn cloneWith(this, {\n\t\t\t_services: [...this._services, ...services] as unknown as TServices,\n\t\t}) as unknown as QueueBuilder<\n\t\t\tTName,\n\t\t\tTMessage,\n\t\t\t[...TServices, ...T],\n\t\t\tTLogger\n\t\t>;\n\t}\n\n\tlogger<T extends Logger>(\n\t\tlogger: T,\n\t): QueueBuilder<TName, TMessage, TServices, T> {\n\t\treturn cloneWith(this, {\n\t\t\t_logger: logger as unknown as TLogger,\n\t\t}) as unknown as QueueBuilder<TName, TMessage, TServices, T>;\n\t}\n\n\t/** The typed message (job) payload the queue carries. */\n\tmessage<T extends StandardSchemaV1>(\n\t\tschema: T,\n\t): QueueBuilder<TName, T, TServices, TLogger> {\n\t\treturn cloneWith(this, {\n\t\t\t_messageSchema: schema as unknown as TMessage,\n\t\t}) as unknown as QueueBuilder<TName, T, TServices, TLogger>;\n\t}\n\n\thandle(\n\t\tfn: QueueHandler<NonNullable<TMessage>, TServices, TLogger>,\n\t): Queue<TName, NonNullable<TMessage>, TServices, TLogger> {\n\t\tif (!this._name) {\n\t\t\tthrow new Error(\n\t\t\t\t'Queue requires a name — call .queue(name) before .handle().',\n\t\t\t);\n\t\t}\n\t\tif (!this._messageSchema) {\n\t\t\tthrow new Error(\n\t\t\t\t'Queue requires a message schema — call .message(schema) before .handle().',\n\t\t\t);\n\t\t}\n\n\t\tconst queue = new Queue<TName, NonNullable<TMessage>, TServices, TLogger>(\n\t\t\tthis._name as TName,\n\t\t\tfn,\n\t\t\tthis._messageSchema as NonNullable<TMessage>,\n\t\t\tthis._timeout,\n\t\t\tthis._services,\n\t\t\tthis._logger,\n\t\t\tthis._batchSize,\n\t\t\tthis._fifo,\n\t\t\tthis._constructs,\n\t\t);\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 queue;\n\t}\n}\n","export {\n\tQueue,\n\ttype QueueContext,\n\ttype QueueHandler,\n\ttype QueueMessage,\n} from './Queue';\n\nimport { QueueBuilder } from './QueueBuilder';\n\nexport { QueueBuilder } from './QueueBuilder';\n\nexport const q = new QueueBuilder();\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/queue/QueueBuilder.ts","../../src/queue/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AAmBA;;AAEkB,cAFL,YAEK,CAAA,cAAA,MAAA,GAAA,MAAA,EAAA,iBAAA,gBAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACC,OADD,EAAA,GAAA,EAAA,EAAA,gBAED,MAFC,GAEQ,MAFR,CAAA,CAAA;EAAgB,QACf,KAAA;EAAO,QACT,cAAA;EAAM,QAAG,QAAA;EAAM,QAcxB,UAAA;EAAC,QACQ,KAAA;EAAC,QAAE,SAAA;EAAQ;EAAW,WAAE,EAAA,MAAA,EAAA;EAAO,QAA5C,OAAA;EAAY;EAkC8B,KAChC,CAAA,UAAA,MAAA,CAAA,CAAA,IAAA,EApCN,CAoCM,CAAA,EAnCV,YAmCU,CAnCG,CAmCH,EAnCM,QAmCN,EAnCgB,SAmChB,EAnC2B,OAmC3B,CAAA;EAAC,OACE,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAK;EAAU,SAAM,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAS;EAAiB,IAAZ,CAAA,IAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA;EAAU;;;;;;;;;;;EAkCtC,SACd,CAAA,gBAAA,SArC0B,UAqC1B,EAAA,CAAA,CAAA,UAAA,EApCI,CAoCJ,CAAA,EAnCN,YAmCM,CAnCO,KAmCP,EAnCc,QAmCd,EAAA,CAAA,GAnC4B,SAmC5B,EAAA,GAnC0C,UAmC1C,CAnCqD,CAmCrD,CAAA,CAAA,EAnC0D,OAmC1D,CAAA;EAAC,QACM,CAAA,UAfG,OAeH,EAAA,CAAA,CAAA,QAAA,EAdL,CAcK,CAAA,EAbb,YAaa,CAbA,KAaA,EAbO,QAaP,EAAA,CAAA,GAbqB,SAarB,EAAA,GAbmC,CAanC,CAAA,EAbuC,OAavC,CAAA;EAAK,MAAE,CAAA,UAFN,MAEM,CAAA,CAAA,MAAA,EADd,CACc,CAAA,EAApB,YAAoB,CAAP,KAAO,EAAA,QAAA,EAAU,SAAV,EAAqB,CAArB,CAAA;EAAQ;EAAW,OAAE,CAAA,UAO1B,gBAP0B,CAAA,CAAA,MAAA,EAQnC,CARmC,CAAA,EASzC,YATyC,CAS5B,KAT4B,EASrB,CATqB,EASlB,SATkB,EASP,OATO,CAAA;EAAC,MAA1C,CAAA,EAAA,EAgBE,YAhBF,CAgBe,WAhBf,CAgB2B,QAhB3B,CAAA,EAgBsC,SAhBtC,EAgBiD,OAhBjD,CAAA,CAAA,EAiBA,KAjBA,CAiBM,KAjBN,EAiBa,WAjBb,CAiByB,QAjBzB,CAAA,EAiBoC,SAjBpC,EAiB+C,OAjB/C,CAAA;;;;;cCnGS,GAAC,oCAAqB,kBAAA,CAArB,MAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/queue/QueueBuilder.ts","../../src/queue/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AAmBA;;AAEkB,cAFL,YAEK,CAAA,cAAA,MAAA,GAAA,MAAA,EAAA,iBAAA,gBAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACC,OADD,EAAA,GAAA,EAAA,EAAA,gBAED,MAFC,GAEQ,MAFR,CAAA,CAAA;EAAgB,QACf,KAAA;EAAO,QACT,cAAA;EAAM,QAAG,QAAA;EAAM,QAcxB,UAAA;EAAC,QACQ,KAAA;EAAC,QAAE,SAAA;EAAQ;EAAW,WAAE,EAAA,MAAA,EAAA;EAAO,QAA5C,OAAA;EAAY;EAkC8B,KAChC,CAAA,UAAA,MAAA,CAAA,CAAA,IAAA,EApCN,CAoCM,CAAA,EAnCV,YAmCU,CAnCG,CAmCH,EAnCM,QAmCN,EAnCgB,SAmChB,EAnC2B,OAmC3B,CAAA;EAAC,OACE,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAK;EAAU,SAAM,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAS;EAAiB,IAAZ,CAAA,IAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA;EAAU;;;;;;;;;;;EAkCtC,SACd,CAAA,gBAAA,SArC0B,UAqC1B,EAAA,CAAA,CAAA,UAAA,EApCI,CAoCJ,CAAA,EAnCN,YAmCM,CAnCO,KAmCP,EAnCc,QAmCd,EAAA,CAAA,GAnC4B,SAmC5B,EAAA,GAnC0C,UAmC1C,CAnCqD,CAmCrD,CAAA,CAAA,EAnC0D,OAmC1D,CAAA;EAAC,QACM,CAAA,UAfG,OAeH,EAAA,CAAA,CAAA,QAAA,EAdL,CAcK,CAAA,EAbb,YAaa,CAbA,KAaA,EAbO,QAaP,EAAA,CAAA,GAbqB,SAarB,EAAA,GAbmC,CAanC,CAAA,EAbuC,OAavC,CAAA;EAAK,MAAE,CAAA,UAFN,MAEM,CAAA,CAAA,MAAA,EADd,CACc,CAAA,EAApB,YAAoB,CAAP,KAAO,EAAA,QAAA,EAAU,SAAV,EAAqB,CAArB,CAAA;EAAQ;EAAW,OAAE,CAAA,UAO1B,gBAP0B,CAAA,CAAA,MAAA,EAQnC,CARmC,CAAA,EASzC,YATyC,CAS5B,KAT4B,EASrB,CATqB,EASlB,SATkB,EASP,OATO,CAAA;EAAC,MAA1C,CAAA,EAAA,EAgBE,YAhBF,CAgBe,WAhBf,CAgB2B,QAhB3B,CAAA,EAgBsC,SAhBtC,EAgBiD,OAhBjD,CAAA,CAAA,EAiBA,KAjBA,CAiBM,KAjBN,EAiBa,WAjBb,CAiByB,QAjBzB,CAAA,EAiBoC,SAjBpC,EAiB+C,OAjB/C,CAAA;;;;;cCnGS,GAAC,oCAAqB,mBAAA,CAArB,MAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":["obj: unknown","name: TName","handler: QueueHandler<TMessage, TServices, TLogger>","messageSchema: TMessage","timeout: number","services: TServices","logger: TLogger","batchSize?: number","fifo?: boolean","constructs: string[]","name: T","timeout: number","batchSize: number","constructs: T","services: T","logger: T","schema: T","fn: QueueHandler<NonNullable<TMessage>, TServices, TLogger>"],"sources":["../../src/queue/Queue.ts","../../src/queue/QueueBuilder.ts","../../src/queue/index.ts"],"sourcesContent":["import {\n\ttype EventPublisher,\n\ttype EventPublisherConnectionString,\n\ttype PublishableMessage,\n\tPublisher,\n} from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { DEFAULT_LOGGER } from '@geekmidas/logger/console';\nimport {\n\tcanonicalId,\n\ttype Declaration,\n\tprovideKey,\n\tserviceKey,\n} from '@geekmidas/manifest';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceRecord } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { Construct, ConstructType } from '../Construct';\n\n/**\n * The wire message a queue carries: `{ type: <queue name>, payload: <message> }`.\n * The producer publishes this shape and the worker receives the `payload`s as\n * its `messages`. Typing `type` to the queue name keeps the publisher fully\n * typed and lets pg-boss (local) / SQS (deployed) route by name.\n */\nexport type QueueMessage<\n\tTName extends string,\n\tTMessage extends StandardSchemaV1,\n> = PublishableMessage<TName, InferStandardSchema<TMessage>>;\n\n/**\n * A queue worker — a point-to-point SQS-style queue and its single consumer.\n * Unlike a `Subscriber` (topic fan-out, filtered by `subscribedEvents`), a queue\n * drains every message of its one `message` type. Build one with `q` (see\n * `QueueBuilder`); `gkm build` discovers it into the manifest's `queues` field.\n *\n * The producer side is {@link Queue.publisher} — a ready-to-inject `Service`\n * that any endpoint/function drops into `.services([...])` to send messages.\n */\nexport class Queue<\n\tTName extends string = string,\n\tTMessage extends StandardSchemaV1 = StandardSchemaV1,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> extends Construct<TLogger, string, undefined, undefined, TServices> {\n\t__IS_QUEUE__ = true;\n\n\tstatic isQueue(\n\t\tobj: unknown,\n\t): obj is Queue<string, StandardSchemaV1, Service[], Logger> {\n\t\treturn Boolean(\n\t\t\tobj &&\n\t\t\t\t(obj as { __IS_QUEUE__?: boolean }).__IS_QUEUE__ === true &&\n\t\t\t\t(obj as Construct).type === ConstructType.Queue,\n\t\t);\n\t}\n\n\t/**\n\t * The canonical id this queue is declared under.\n\t *\n\t * Derived from the name rather than given separately, so `emails` and\n\t * `Emails` are one queue. The name stays what it was: it is the wire `type`\n\t * a producer sends and the worker subscribes to, and changing that would\n\t * silently orphan in-flight messages.\n\t */\n\treadonly id: string;\n\n\t/**\n\t * The producer's env key. Read by both {@link declare} and\n\t * {@link publisher}, so what the target publishes and what the producer\n\t * looks up cannot drift.\n\t */\n\tprivate readonly connectionKey: string;\n\n\tconstructor(\n\t\tpublic readonly name: TName,\n\t\tpublic readonly handler: QueueHandler<TMessage, TServices, TLogger>,\n\t\tpublic readonly messageSchema: TMessage,\n\t\tpublic override readonly timeout: number = 30000,\n\t\tpublic override readonly services: TServices = [] as unknown as TServices,\n\t\tpublic override readonly logger: TLogger = DEFAULT_LOGGER as TLogger,\n\t\t/** SQS event-source batch size (deployed). */\n\t\tpublic readonly batchSize?: number,\n\t\t/** Whether the queue is FIFO (deployed). */\n\t\tpublic readonly fifo?: boolean,\n\t\t/**\n\t\t * The construct ids the *worker* `.dependsOn()` named — last, so no\n\t\t * existing positional argument moves.\n\t\t */\n\t\tconstructs: string[] = [],\n\t) {\n\t\tsuper(\n\t\t\tConstructType.Queue,\n\t\t\tlogger,\n\t\t\tservices,\n\t\t\t[],\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\ttimeout,\n\t\t\tundefined, // memorySize\n\t\t\tundefined, // auditorStorageService\n\t\t\tconstructs,\n\t\t);\n\n\t\tthis.id = canonicalId(name);\n\t\tthis.connectionKey = provideKey(this.id, 'publisherConnectionString');\n\t}\n\n\t/**\n\t * What this queue is in the manifest.\n\t *\n\t * A queue is a resource, not a handler: the worker is reached *through* it,\n\t * so the declaration carries the producer's key and nothing about the code\n\t * that drains it. The local target reads this to know which broker has to be\n\t * running and what connection string to inject.\n\t */\n\tdeclare(): Declaration[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\tkind: 'queue',\n\t\t\t\tid: this.id,\n\t\t\t\tprovides: [this.connectionKey],\n\t\t\t\t...(this.fifo ? { fifo: true } : {}),\n\t\t\t\t// Nested rather than a sibling node, because position carries the\n\t\t\t\t// trigger: this handler is reached by messages on this queue and\n\t\t\t\t// by nothing else, so there is no `trigger` field to keep in step.\n\t\t\t\t//\n\t\t\t\t// `handler` is the export name; which directory the build wrote it\n\t\t\t\t// to is the target's business, and a path with a cloud in it does\n\t\t\t\t// not belong in a neutral declaration.\n\t\t\t\tworker: {\n\t\t\t\t\tid: `${this.id}Worker`,\n\t\t\t\t\thandler: `${this.id}.handler`,\n\t\t\t\t\t// Filled by the build from what the worker declared. Empty is a\n\t\t\t\t\t// stated gap, not a claim that it reaches nothing.\n\t\t\t\t\tdependencies: [],\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t}\n\n\t/**\n\t * The producer side — a `Service` exposing an `EventPublisher` typed to this\n\t * queue's message. Inject it via `.services([queue.publisher])`; the handler\n\t * then calls `services.<name>Publisher.publish([{ type, payload }])`.\n\t *\n\t * It reads `<NAME>_PUBLISHER_CONNECTION_STRING` and builds the transport from\n\t * the URL protocol — `pgboss://` locally, `sqs://` deployed — so the same\n\t * code publishes to Postgres in dev and SQS in prod. Because it's a `Service`,\n\t * `Construct.getEnvironment()` sniffs it, so the env requirement flows into\n\t * the manifest and infra links exactly this queue with least privilege.\n\t */\n\t/**\n\t * The queue as a dependency — what `.dependsOn([emailsQueue])` dissolves\n\t * into, reachable as `services.emails`.\n\t *\n\t * It is the producer: a consumer is the worker written right here, so the\n\t * only thing another construct can want from a queue is the ability to send\n\t * to it. {@link publisher} is the same service under its older\n\t * `<name>Publisher` key, kept for `.services([queue.publisher])`.\n\t */\n\tget service(): Service<\n\t\tUncapitalize<TName>,\n\t\tEventPublisher<QueueMessage<TName, TMessage>>\n\t> {\n\t\tconst { register } = this.publisher;\n\n\t\treturn {\n\t\t\tserviceName: serviceKey(this.id) as Uncapitalize<TName>,\n\t\t\tregister,\n\t\t};\n\t}\n\n\tget publisher(): Service<\n\t\t`${TName}Publisher`,\n\t\tEventPublisher<QueueMessage<TName, TMessage>>\n\t> {\n\t\tconst envVar = this.connectionKey;\n\t\treturn {\n\t\t\tserviceName: `${this.name}Publisher`,\n\t\t\tasync register({ envParser }) {\n\t\t\t\tconst { connectionString } = envParser\n\t\t\t\t\t.create((get) => ({\n\t\t\t\t\t\tconnectionString: get(envVar).string(),\n\t\t\t\t\t}))\n\t\t\t\t\t.parse();\n\n\t\t\t\treturn Publisher.fromConnectionString<QueueMessage<TName, TMessage>>(\n\t\t\t\t\tconnectionString as EventPublisherConnectionString,\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}\n}\n\n/** The context a queue handler receives — a batch of typed messages. */\nexport type QueueContext<\n\tTMessage extends StandardSchemaV1,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> = {\n\tmessages: InferStandardSchema<TMessage>[];\n\tservices: ServiceRecord<TServices>;\n\tlogger: TLogger;\n};\n\nexport type QueueHandler<\n\tTMessage extends StandardSchemaV1,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> = (\n\tctx: QueueContext<TMessage, TServices, TLogger>,\n) => unknown | Promise<unknown>;\n","import type { Logger } from '@geekmidas/logger';\nimport { DEFAULT_LOGGER } from '@geekmidas/logger/console';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { cloneWith } from '../clone';\nimport {\n\ttype Consumable,\n\tidsOf,\n\ttype ServicesOf,\n\tservicesOf,\n} from '../construct-interface';\nimport { Queue, type QueueHandler } from './Queue';\n\n/**\n * Builds a {@link Queue} worker — `q.queue('orders').services([db]).message(schema).handle(fn)`.\n * Services are an array (sniffed for required env vars); `message` is the typed\n * job payload; `handle` is the single consumer. The queue name is captured as a\n * literal so `queue.publisher` is typed to `{ type: '<name>', payload }`.\n */\nexport class QueueBuilder<\n\tTName extends string = string,\n\tTMessage extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n> {\n\tprivate _name?: string;\n\tprivate _messageSchema?: TMessage;\n\tprivate _timeout = 30000;\n\tprivate _batchSize?: number;\n\tprivate _fifo?: boolean;\n\tprivate _services: TServices = [] as Service[] as TServices;\n\t/** The construct ids `.dependsOn()` named — what the manifest records. */\n\tpublic _constructs: string[] = [];\n\tprivate _logger: TLogger = DEFAULT_LOGGER as TLogger;\n\n\t/** The queue name — drives the infra queue and its `<NAME>_*` env vars. */\n\tqueue<T extends string>(\n\t\tname: T,\n\t): QueueBuilder<T, TMessage, TServices, TLogger> {\n\t\treturn cloneWith(this, { _name: name }) as unknown as QueueBuilder<\n\t\t\tT,\n\t\t\tTMessage,\n\t\t\tTServices,\n\t\t\tTLogger\n\t\t>;\n\t}\n\n\ttimeout(timeout: number): this {\n\t\treturn cloneWith(this, { _timeout: timeout });\n\t}\n\n\t/** SQS event-source batch size (deployed). */\n\tbatchSize(batchSize: number): this {\n\t\treturn cloneWith(this, { _batchSize: batchSize });\n\t}\n\n\t/** Mark the queue as FIFO (deployed). */\n\tfifo(fifo = true): this {\n\t\treturn cloneWith(this, { _fifo: fifo });\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\tdependsOn<const T extends readonly Consumable[]>(\n\t\tconstructs: T,\n\t): QueueBuilder<TName, TMessage, [...TServices, ...ServicesOf<T>], TLogger> {\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: [...this._services, ...services],\n\t\t\t_constructs: idsOf(constructs, this._constructs),\n\t\t}) as unknown as QueueBuilder<\n\t\t\tTName,\n\t\t\tTMessage,\n\t\t\t[...TServices, ...ServicesOf<T>],\n\t\t\tTLogger\n\t\t>;\n\t}\n\n\tservices<T extends Service[]>(\n\t\tservices: T,\n\t): QueueBuilder<TName, TMessage, [...TServices, ...T], TLogger> {\n\t\treturn cloneWith(this, {\n\t\t\t_services: [...this._services, ...services] as unknown as TServices,\n\t\t}) as unknown as QueueBuilder<\n\t\t\tTName,\n\t\t\tTMessage,\n\t\t\t[...TServices, ...T],\n\t\t\tTLogger\n\t\t>;\n\t}\n\n\tlogger<T extends Logger>(\n\t\tlogger: T,\n\t): QueueBuilder<TName, TMessage, TServices, T> {\n\t\treturn cloneWith(this, {\n\t\t\t_logger: logger as unknown as TLogger,\n\t\t}) as unknown as QueueBuilder<TName, TMessage, TServices, T>;\n\t}\n\n\t/** The typed message (job) payload the queue carries. */\n\tmessage<T extends StandardSchemaV1>(\n\t\tschema: T,\n\t): QueueBuilder<TName, T, TServices, TLogger> {\n\t\treturn cloneWith(this, {\n\t\t\t_messageSchema: schema as unknown as TMessage,\n\t\t}) as unknown as QueueBuilder<TName, T, TServices, TLogger>;\n\t}\n\n\thandle(\n\t\tfn: QueueHandler<NonNullable<TMessage>, TServices, TLogger>,\n\t): Queue<TName, NonNullable<TMessage>, TServices, TLogger> {\n\t\tif (!this._name) {\n\t\t\tthrow new Error(\n\t\t\t\t'Queue requires a name — call .queue(name) before .handle().',\n\t\t\t);\n\t\t}\n\t\tif (!this._messageSchema) {\n\t\t\tthrow new Error(\n\t\t\t\t'Queue requires a message schema — call .message(schema) before .handle().',\n\t\t\t);\n\t\t}\n\n\t\tconst queue = new Queue<TName, NonNullable<TMessage>, TServices, TLogger>(\n\t\t\tthis._name as TName,\n\t\t\tfn,\n\t\t\tthis._messageSchema as NonNullable<TMessage>,\n\t\t\tthis._timeout,\n\t\t\tthis._services,\n\t\t\tthis._logger,\n\t\t\tthis._batchSize,\n\t\t\tthis._fifo,\n\t\t\tthis._constructs,\n\t\t);\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 queue;\n\t}\n}\n","export {\n\tQueue,\n\ttype QueueContext,\n\ttype QueueHandler,\n\ttype QueueMessage,\n} from './Queue';\n\nimport { QueueBuilder } from './QueueBuilder';\n\nexport { QueueBuilder } from './QueueBuilder';\n\nexport const q = new QueueBuilder();\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","names":["SubscriberBuilder"],"sources":["../../src/subscribers/index.ts"],"sourcesContent":["import { SubscriberBuilder } from './SubscriberBuilder';\n\nexport { Subscriber } from './Subscriber';\nexport { SubscriberBuilder };\n\nexport const s = new SubscriberBuilder();\n"],"mappings":";;;;;;AAKA,MAAa,IAAI,IAAIA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;cAKa,GAAC,sBAA0B,kBAAA,CAA1B,MAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;cAKa,GAAC,sBAA0B,mBAAA,CAA1B,MAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":["import { SubscriberBuilder } from './SubscriberBuilder';\n\nexport { Subscriber } from './Subscriber';\nexport { SubscriberBuilder };\n\nexport const s = new SubscriberBuilder();\n"],"mappings":";;;;;;AAKA,MAAa,IAAI,IAAI"}
@@ -1,39 +0,0 @@
1
- const require_chunk = require('./chunk-DWy1uDak.cjs');
2
- const __geekmidas_envkit = require_chunk.__toESM(require("@geekmidas/envkit"));
3
- const __geekmidas_envkit_credentials = require_chunk.__toESM(require("@geekmidas/envkit/credentials"));
4
-
5
- //#region src/endpoints/surfaceEnv.ts
6
- let fallback;
7
- /**
8
- * The default parser, built once.
9
- *
10
- * Once because `Credentials` resolves through `globalThis` and decryption is
11
- * not free, and because two parsers over the same environment are two caches of
12
- * the same answer.
13
- */
14
- function defaultEnvParser() {
15
- if (!fallback) fallback = new __geekmidas_envkit.EnvironmentParser({
16
- ...process.env,
17
- ...__geekmidas_envkit_credentials.Credentials
18
- });
19
- return fallback;
20
- }
21
- /** The parser for an endpoint, from its surface or the default. */
22
- function envParserFor(surface) {
23
- return surface?.envParser ?? defaultEnvParser();
24
- }
25
-
26
- //#endregion
27
- Object.defineProperty(exports, 'defaultEnvParser', {
28
- enumerable: true,
29
- get: function () {
30
- return defaultEnvParser;
31
- }
32
- });
33
- Object.defineProperty(exports, 'envParserFor', {
34
- enumerable: true,
35
- get: function () {
36
- return envParserFor;
37
- }
38
- });
39
- //# sourceMappingURL=surfaceEnv-BFXEms2f.cjs.map