@geekmidas/constructs 10.0.0-alpha.9 → 10.0.0-alpha.91

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 (425) hide show
  1. package/README.md +222 -158
  2. package/dist/{Construct-BD5neF7w.mjs → Construct-B1vGBPme.mjs} +33 -34
  3. package/dist/Construct-B1vGBPme.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-DUSXuTHP.cjs} +53 -48
  7. package/dist/Construct-DUSXuTHP.cjs.map +1 -0
  8. package/dist/Construct-QXnl3VqT.d.mts +230 -0
  9. package/dist/Construct-QXnl3VqT.d.mts.map +1 -0
  10. package/dist/{Cron-DmQ8vQ4b.d.cts → Cron-DI3nKoic.d.cts} +15 -9
  11. package/dist/Cron-DI3nKoic.d.cts.map +1 -0
  12. package/dist/{Cron-dh4rUgib.d.mts → Cron-uYAHPnp7.d.mts} +15 -9
  13. package/dist/Cron-uYAHPnp7.d.mts.map +1 -0
  14. package/dist/{CronBuilder-Da0C0edR.cjs → CronBuilder-C0Ek1-RA.cjs} +47 -31
  15. package/dist/CronBuilder-C0Ek1-RA.cjs.map +1 -0
  16. package/dist/CronBuilder-DaSUm2Na.d.mts +47 -0
  17. package/dist/CronBuilder-DaSUm2Na.d.mts.map +1 -0
  18. package/dist/{CronBuilder-CYKT5RiO.mjs → CronBuilder-Dmix_Pen.mjs} +37 -21
  19. package/dist/CronBuilder-Dmix_Pen.mjs.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-DCQPMdUX.mjs → Endpoint-BG4UJ9oA.mjs} +146 -109
  23. package/dist/Endpoint-BG4UJ9oA.mjs.map +1 -0
  24. package/dist/{Endpoint-DcWXE-SZ.cjs → Endpoint-BoUg8ocM.cjs} +174 -131
  25. package/dist/Endpoint-BoUg8ocM.cjs.map +1 -0
  26. package/dist/{Endpoint-BjWKinFA.d.mts → Endpoint-Du-NwPX2.d.mts} +83 -91
  27. package/dist/Endpoint-Du-NwPX2.d.mts.map +1 -0
  28. package/dist/{Endpoint-dav89W6-.d.cts → Endpoint-aCvBMPoH.d.cts} +82 -90
  29. package/dist/Endpoint-aCvBMPoH.d.cts.map +1 -0
  30. package/dist/{EndpointFactory-CjV8F_lJ.mjs → EndpointFactory-BDtsrEvJ.mjs} +57 -76
  31. package/dist/EndpointFactory-BDtsrEvJ.mjs.map +1 -0
  32. package/dist/{EndpointFactory-CdWB7wPw.cjs → EndpointFactory-DJ7gXLpR.cjs} +93 -112
  33. package/dist/EndpointFactory-DJ7gXLpR.cjs.map +1 -0
  34. package/dist/{index-Bd5FqCoe.d.cts → EndpointFactory-DMYdJCOj.d.mts} +78 -134
  35. package/dist/EndpointFactory-DMYdJCOj.d.mts.map +1 -0
  36. package/dist/{index-lAO9egTb.d.mts → EndpointFactory-I7s1co3Y.d.cts} +79 -135
  37. package/dist/EndpointFactory-I7s1co3Y.d.cts.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-P1ahhZHu.mjs → HonoEndpointAdaptor-PtPlbeKY.mjs} +75 -56
  43. package/dist/HonoEndpointAdaptor-PtPlbeKY.mjs.map +1 -0
  44. package/dist/{HonoEndpointAdaptor-DtL9j19R.cjs → HonoEndpointAdaptor-zVzVLJEO.cjs} +83 -61
  45. package/dist/HonoEndpointAdaptor-zVzVLJEO.cjs.map +1 -0
  46. package/dist/Queue-A3wfD0it.cjs +109 -0
  47. package/dist/Queue-A3wfD0it.cjs.map +1 -0
  48. package/dist/Queue-D6USGS4q.mjs +104 -0
  49. package/dist/Queue-D6USGS4q.mjs.map +1 -0
  50. package/dist/{Queue-D7ZuwBhy.d.cts → Queue-DlsHRzUp.d.mts} +48 -48
  51. package/dist/Queue-DlsHRzUp.d.mts.map +1 -0
  52. package/dist/{Queue-gVGfi2Yk.d.mts → Queue-HPyi0e1i.d.cts} +49 -49
  53. package/dist/Queue-HPyi0e1i.d.cts.map +1 -0
  54. package/dist/QueueBuilder-BjuF0UBl.cjs +135 -0
  55. package/dist/QueueBuilder-BjuF0UBl.cjs.map +1 -0
  56. package/dist/QueueBuilder-Cue73M4t.mjs +118 -0
  57. package/dist/QueueBuilder-Cue73M4t.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-BjkbeT9l.mjs → SubscriberBuilder-CDy4nHCz.mjs} +50 -24
  67. package/dist/SubscriberBuilder-CDy4nHCz.mjs.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-4OPehf2R.cjs → SubscriberBuilder-D_owVoHo.cjs} +61 -36
  71. package/dist/SubscriberBuilder-D_owVoHo.cjs.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-D74b5cgs.mjs +99 -0
  75. package/dist/Topic-D74b5cgs.mjs.map +1 -0
  76. package/dist/Topic-GHxcU8AG.cjs +104 -0
  77. package/dist/Topic-GHxcU8AG.cjs.map +1 -0
  78. package/dist/adaptors/aws.cjs +131 -220
  79. package/dist/adaptors/aws.cjs.map +1 -1
  80. package/dist/adaptors/aws.d.cts +34 -53
  81. package/dist/adaptors/aws.d.cts.map +1 -1
  82. package/dist/adaptors/aws.d.mts +34 -53
  83. package/dist/adaptors/aws.d.mts.map +1 -1
  84. package/dist/adaptors/aws.mjs +102 -193
  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 +743 -89
  93. package/dist/adaptors/testing.cjs.map +1 -1
  94. package/dist/adaptors/testing.d.cts +351 -54
  95. package/dist/adaptors/testing.d.cts.map +1 -1
  96. package/dist/adaptors/testing.d.mts +351 -54
  97. package/dist/adaptors/testing.d.mts.map +1 -1
  98. package/dist/adaptors/testing.mjs +706 -70
  99. package/dist/adaptors/testing.mjs.map +1 -1
  100. package/dist/auth-BMCJN30Y.d.cts +268 -0
  101. package/dist/auth-BMCJN30Y.d.cts.map +1 -0
  102. package/dist/auth-CcuceLYo.d.mts +268 -0
  103. package/dist/auth-CcuceLYo.d.mts.map +1 -0
  104. package/dist/auth.cjs +301 -33
  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 +289 -27
  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 +77 -17
  139. package/dist/credential.cjs.map +1 -1
  140. package/dist/credential.d.cts +34 -9
  141. package/dist/credential.d.cts.map +1 -1
  142. package/dist/credential.d.mts +34 -9
  143. package/dist/credential.d.mts.map +1 -1
  144. package/dist/credential.mjs +71 -13
  145. package/dist/credential.mjs.map +1 -1
  146. package/dist/crons/index.cjs +129 -7
  147. package/dist/crons/index.cjs.map +1 -1
  148. package/dist/crons/index.d.cts +45 -11
  149. package/dist/crons/index.d.cts.map +1 -1
  150. package/dist/crons/index.d.mts +45 -11
  151. package/dist/crons/index.d.mts.map +1 -1
  152. package/dist/crons/index.mjs +127 -8
  153. package/dist/crons/index.mjs.map +1 -1
  154. package/dist/database/kysely.cjs +4 -181
  155. package/dist/database/kysely.d.cts +2 -152
  156. package/dist/database/kysely.d.mts +2 -152
  157. package/dist/database/kysely.mjs +2 -180
  158. package/dist/email.cjs +25 -12
  159. package/dist/email.cjs.map +1 -1
  160. package/dist/email.d.cts +3 -7
  161. package/dist/email.d.cts.map +1 -1
  162. package/dist/email.d.mts +3 -7
  163. package/dist/email.d.mts.map +1 -1
  164. package/dist/email.mjs +16 -3
  165. package/dist/email.mjs.map +1 -1
  166. package/dist/encryption.cjs +96 -0
  167. package/dist/encryption.cjs.map +1 -0
  168. package/dist/encryption.d.cts +117 -0
  169. package/dist/encryption.d.cts.map +1 -0
  170. package/dist/encryption.d.mts +117 -0
  171. package/dist/encryption.d.mts.map +1 -0
  172. package/dist/encryption.mjs +83 -0
  173. package/dist/encryption.mjs.map +1 -0
  174. package/dist/endpoints/index.cjs +8 -10
  175. package/dist/endpoints/index.d.cts +51 -7
  176. package/dist/endpoints/index.d.cts.map +1 -0
  177. package/dist/endpoints/index.d.mts +51 -7
  178. package/dist/endpoints/index.d.mts.map +1 -0
  179. package/dist/endpoints/index.mjs +6 -10
  180. package/dist/external-api-MJ8id87V.d.mts +105 -0
  181. package/dist/external-api-MJ8id87V.d.mts.map +1 -0
  182. package/dist/external-api-O107yzZJ.d.cts +105 -0
  183. package/dist/external-api-O107yzZJ.d.cts.map +1 -0
  184. package/dist/external-api.cjs +142 -0
  185. package/dist/external-api.cjs.map +1 -0
  186. package/dist/external-api.d.cts +2 -0
  187. package/dist/external-api.d.mts +2 -0
  188. package/dist/external-api.mjs +139 -0
  189. package/dist/external-api.mjs.map +1 -0
  190. package/dist/file-server.cjs +42 -10
  191. package/dist/file-server.cjs.map +1 -1
  192. package/dist/file-server.d.cts +6 -10
  193. package/dist/file-server.d.cts.map +1 -1
  194. package/dist/file-server.d.mts +6 -10
  195. package/dist/file-server.d.mts.map +1 -1
  196. package/dist/file-server.mjs +34 -2
  197. package/dist/file-server.mjs.map +1 -1
  198. package/dist/functions/index.cjs +3 -6
  199. package/dist/functions/index.d.cts +3 -4
  200. package/dist/functions/index.d.mts +3 -4
  201. package/dist/functions/index.mjs +2 -6
  202. package/dist/{functions-14lpEFL4.mjs → functions-BFizikJU.mjs} +376 -238
  203. package/dist/{functions-14lpEFL4.mjs.map → functions-BFizikJU.mjs.map} +1 -1
  204. package/dist/{functions-i_la-N5r.cjs → functions-CfzJG9hK.cjs} +414 -264
  205. package/dist/functions-CfzJG9hK.cjs.map +1 -0
  206. package/dist/index-BuzRvKOQ.d.cts +115 -0
  207. package/dist/index-BuzRvKOQ.d.cts.map +1 -0
  208. package/dist/index-CTkKOer4.d.mts +115 -0
  209. package/dist/index-CTkKOer4.d.mts.map +1 -0
  210. package/dist/index-CeEtxDmK.d.cts +79 -0
  211. package/dist/index-CeEtxDmK.d.cts.map +1 -0
  212. package/dist/index-CeEtxDmK.d.mts +79 -0
  213. package/dist/index-CeEtxDmK.d.mts.map +1 -0
  214. package/dist/index.cjs +6 -3
  215. package/dist/index.d.cts +27 -4
  216. package/dist/index.d.cts.map +1 -0
  217. package/dist/index.d.mts +27 -4
  218. package/dist/index.d.mts.map +1 -0
  219. package/dist/index.mjs +3 -3
  220. package/dist/kms-B-Hm3d5r.cjs +85 -0
  221. package/dist/kms-B-Hm3d5r.cjs.map +1 -0
  222. package/dist/kms-BdUlMJEZ.mjs +85 -0
  223. package/dist/kms-BdUlMJEZ.mjs.map +1 -0
  224. package/dist/kysely-Bii4l6eP.mjs +370 -0
  225. package/dist/kysely-Bii4l6eP.mjs.map +1 -0
  226. package/dist/kysely-CO_Dk43W.cjs +383 -0
  227. package/dist/kysely-CO_Dk43W.cjs.map +1 -0
  228. package/dist/kysely-D0bpzgPs.d.cts +175 -0
  229. package/dist/kysely-D0bpzgPs.d.cts.map +1 -0
  230. package/dist/kysely-DUqC3Ie0.d.mts +175 -0
  231. package/dist/kysely-DUqC3Ie0.d.mts.map +1 -0
  232. package/dist/{telemetry-C3L0iS28.d.cts → lambdaTelemetry-8vnmVZQ5.d.cts} +3 -6
  233. package/dist/lambdaTelemetry-8vnmVZQ5.d.cts.map +1 -0
  234. package/dist/{telemetry-D7bVFLGi.d.mts → lambdaTelemetry-8vnmVZQ5.d.mts} +3 -6
  235. package/dist/lambdaTelemetry-8vnmVZQ5.d.mts.map +1 -0
  236. package/dist/{lazyAccessors-BoJN3SMd.mjs → lazyAccessors-CFanua0O.mjs} +20 -60
  237. package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
  238. package/dist/{lazyAccessors-e3j2oE2m.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -113
  239. package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
  240. package/dist/mobile-app.cjs +73 -0
  241. package/dist/mobile-app.cjs.map +1 -0
  242. package/dist/mobile-app.d.cts +61 -0
  243. package/dist/mobile-app.d.cts.map +1 -0
  244. package/dist/mobile-app.d.mts +61 -0
  245. package/dist/mobile-app.d.mts.map +1 -0
  246. package/dist/mobile-app.mjs +72 -0
  247. package/dist/mobile-app.mjs.map +1 -0
  248. package/dist/object-storage.cjs +18 -10
  249. package/dist/object-storage.cjs.map +1 -1
  250. package/dist/object-storage.d.cts +3 -7
  251. package/dist/object-storage.d.cts.map +1 -1
  252. package/dist/object-storage.d.mts +3 -7
  253. package/dist/object-storage.d.mts.map +1 -1
  254. package/dist/object-storage.mjs +11 -3
  255. package/dist/object-storage.mjs.map +1 -1
  256. package/dist/processAudits-BRRVVHUB.mjs +131 -0
  257. package/dist/processAudits-BRRVVHUB.mjs.map +1 -0
  258. package/dist/processAudits-DasOZjPl.cjs +154 -0
  259. package/dist/processAudits-DasOZjPl.cjs.map +1 -0
  260. package/dist/queue/index.cjs +6 -189
  261. package/dist/queue/index.d.cts +3 -60
  262. package/dist/queue/index.d.mts +3 -60
  263. package/dist/queue/index.mjs +3 -186
  264. package/dist/rest-api.cjs +90 -59
  265. package/dist/rest-api.cjs.map +1 -1
  266. package/dist/rest-api.d.cts +70 -42
  267. package/dist/rest-api.d.cts.map +1 -1
  268. package/dist/rest-api.d.mts +70 -42
  269. package/dist/rest-api.d.mts.map +1 -1
  270. package/dist/rest-api.mjs +82 -51
  271. package/dist/rest-api.mjs.map +1 -1
  272. package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
  273. package/dist/runSubscriber-BHvJ8POr.mjs +109 -0
  274. package/dist/runSubscriber-BHvJ8POr.mjs.map +1 -0
  275. package/dist/runSubscriber-D8nLXIv1.cjs +126 -0
  276. package/dist/runSubscriber-D8nLXIv1.cjs.map +1 -0
  277. package/dist/shutdown-BMJmAhSt.cjs +38 -0
  278. package/dist/shutdown-BMJmAhSt.cjs.map +1 -0
  279. package/dist/shutdown-C7xa8x9S.mjs +27 -0
  280. package/dist/shutdown-C7xa8x9S.mjs.map +1 -0
  281. package/dist/site.cjs +33 -7
  282. package/dist/site.cjs.map +1 -1
  283. package/dist/site.d.cts +17 -7
  284. package/dist/site.d.cts.map +1 -1
  285. package/dist/site.d.mts +17 -7
  286. package/dist/site.d.mts.map +1 -1
  287. package/dist/site.mjs +29 -3
  288. package/dist/site.mjs.map +1 -1
  289. package/dist/stages-BSCF19o2.d.cts +56 -0
  290. package/dist/stages-BSCF19o2.d.cts.map +1 -0
  291. package/dist/stages-BSCF19o2.d.mts +56 -0
  292. package/dist/stages-BSCF19o2.d.mts.map +1 -0
  293. package/dist/subscribers/index.cjs +118 -6
  294. package/dist/subscribers/index.cjs.map +1 -0
  295. package/dist/subscribers/index.d.cts +51 -6
  296. package/dist/subscribers/index.d.cts.map +1 -0
  297. package/dist/subscribers/index.d.mts +51 -6
  298. package/dist/subscribers/index.d.mts.map +1 -0
  299. package/dist/subscribers/index.mjs +115 -5
  300. package/dist/subscribers/index.mjs.map +1 -0
  301. package/dist/surfaceEnv-CNimK76p.cjs +56 -0
  302. package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
  303. package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
  304. package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
  305. package/dist/telemetry-B48RLjyk.d.cts +40 -0
  306. package/dist/telemetry-B48RLjyk.d.cts.map +1 -0
  307. package/dist/telemetry-DRtT1_0A.d.mts +40 -0
  308. package/dist/telemetry-DRtT1_0A.d.mts.map +1 -0
  309. package/dist/telemetry.cjs +56 -0
  310. package/dist/telemetry.cjs.map +1 -0
  311. package/dist/telemetry.d.cts +2 -0
  312. package/dist/telemetry.d.mts +2 -0
  313. package/dist/telemetry.mjs +55 -0
  314. package/dist/telemetry.mjs.map +1 -0
  315. package/dist/topic/index.cjs +3 -137
  316. package/dist/topic/index.d.cts +2 -4
  317. package/dist/topic/index.d.mts +2 -4
  318. package/dist/topic/index.mjs +2 -134
  319. package/dist/tracing-CxaZ98IB.mjs +110 -0
  320. package/dist/tracing-CxaZ98IB.mjs.map +1 -0
  321. package/dist/tracing-DPMidF_r.cjs +127 -0
  322. package/dist/tracing-DPMidF_r.cjs.map +1 -0
  323. package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
  324. package/dist/types-DMuSQeLL.d.cts.map +1 -0
  325. package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
  326. package/dist/types-DMuSQeLL.d.mts.map +1 -0
  327. package/dist/types.d.cts +1 -1
  328. package/dist/types.d.mts +1 -1
  329. package/dist/types.mjs +1 -0
  330. package/dist/worker.cjs +59 -34
  331. package/dist/worker.cjs.map +1 -1
  332. package/dist/worker.d.cts +70 -45
  333. package/dist/worker.d.cts.map +1 -1
  334. package/dist/worker.d.mts +70 -44
  335. package/dist/worker.d.mts.map +1 -1
  336. package/dist/worker.mjs +54 -29
  337. package/dist/worker.mjs.map +1 -1
  338. package/package.json +96 -42
  339. package/dist/Construct-BD5neF7w.mjs.map +0 -1
  340. package/dist/Construct-C0ijr2qp.d.cts +0 -117
  341. package/dist/Construct-C0ijr2qp.d.cts.map +0 -1
  342. package/dist/Construct-Ct8nalEi.d.mts +0 -117
  343. package/dist/Construct-Ct8nalEi.d.mts.map +0 -1
  344. package/dist/Construct-CyS3RpTL.cjs.map +0 -1
  345. package/dist/Cron-DmQ8vQ4b.d.cts.map +0 -1
  346. package/dist/Cron-dh4rUgib.d.mts.map +0 -1
  347. package/dist/CronBuilder-BquXDbDI.d.cts +0 -44
  348. package/dist/CronBuilder-BquXDbDI.d.cts.map +0 -1
  349. package/dist/CronBuilder-CGgY2080.d.mts +0 -44
  350. package/dist/CronBuilder-CGgY2080.d.mts.map +0 -1
  351. package/dist/CronBuilder-CYKT5RiO.mjs.map +0 -1
  352. package/dist/CronBuilder-Da0C0edR.cjs.map +0 -1
  353. package/dist/Endpoint-BjWKinFA.d.mts.map +0 -1
  354. package/dist/Endpoint-DCQPMdUX.mjs.map +0 -1
  355. package/dist/Endpoint-DcWXE-SZ.cjs.map +0 -1
  356. package/dist/Endpoint-dav89W6-.d.cts.map +0 -1
  357. package/dist/EndpointFactory-CdWB7wPw.cjs.map +0 -1
  358. package/dist/EndpointFactory-CjV8F_lJ.mjs.map +0 -1
  359. package/dist/HonoEndpointAdaptor-DtL9j19R.cjs.map +0 -1
  360. package/dist/HonoEndpointAdaptor-P1ahhZHu.mjs.map +0 -1
  361. package/dist/Queue-D7ZuwBhy.d.cts.map +0 -1
  362. package/dist/Queue-gVGfi2Yk.d.mts.map +0 -1
  363. package/dist/Subscriber-2mEi0ImH.d.cts.map +0 -1
  364. package/dist/Subscriber-xTJ9ayPN.d.mts.map +0 -1
  365. package/dist/SubscriberBuilder-4OPehf2R.cjs.map +0 -1
  366. package/dist/SubscriberBuilder-BjkbeT9l.mjs.map +0 -1
  367. package/dist/SubscriberBuilder-Dptmo-1A.d.mts +0 -62
  368. package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +0 -1
  369. package/dist/SubscriberBuilder-waNhzjSM.d.cts +0 -62
  370. package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +0 -1
  371. package/dist/Topic-19QeHBIR.d.cts +0 -91
  372. package/dist/Topic-19QeHBIR.d.cts.map +0 -1
  373. package/dist/Topic-DuFeqkBh.d.mts +0 -91
  374. package/dist/Topic-DuFeqkBh.d.mts.map +0 -1
  375. package/dist/auth.d.cts.map +0 -1
  376. package/dist/auth.d.mts.map +0 -1
  377. package/dist/cache-0ANvRQnD.mjs +0 -51
  378. package/dist/cache-0ANvRQnD.mjs.map +0 -1
  379. package/dist/cache-3WSvAulx.cjs +0 -57
  380. package/dist/cache-3WSvAulx.cjs.map +0 -1
  381. package/dist/cache-BrRz3fEB.d.mts.map +0 -1
  382. package/dist/cache-BtZY_tHe.d.cts.map +0 -1
  383. package/dist/clone-DblgEZZa.mjs.map +0 -1
  384. package/dist/clone-Dy0cR2SZ.cjs.map +0 -1
  385. package/dist/construct-interface-BfjcOD_E.cjs +0 -117
  386. package/dist/construct-interface-BfjcOD_E.cjs.map +0 -1
  387. package/dist/construct-interface-D9d4Gm4p.d.cts.map +0 -1
  388. package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
  389. package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
  390. package/dist/construct-interface-g5GM5pwR.d.mts.map +0 -1
  391. package/dist/database/kysely.cjs.map +0 -1
  392. package/dist/database/kysely.d.cts.map +0 -1
  393. package/dist/database/kysely.d.mts.map +0 -1
  394. package/dist/database/kysely.mjs.map +0 -1
  395. package/dist/functions-i_la-N5r.cjs.map +0 -1
  396. package/dist/index-Bd5FqCoe.d.cts.map +0 -1
  397. package/dist/index-BknhM6Ux.d.mts +0 -31
  398. package/dist/index-BknhM6Ux.d.mts.map +0 -1
  399. package/dist/index-CBSfrowv.d.cts +0 -31
  400. package/dist/index-CBSfrowv.d.cts.map +0 -1
  401. package/dist/index-D24Xm79M.d.cts +0 -171
  402. package/dist/index-D24Xm79M.d.cts.map +0 -1
  403. package/dist/index-_ajboYxK.d.mts +0 -171
  404. package/dist/index-_ajboYxK.d.mts.map +0 -1
  405. package/dist/index-lAO9egTb.d.mts.map +0 -1
  406. package/dist/lazyAccessors-BoJN3SMd.mjs.map +0 -1
  407. package/dist/lazyAccessors-e3j2oE2m.cjs.map +0 -1
  408. package/dist/processAudits-CGqttuXm.cjs +0 -92
  409. package/dist/processAudits-CGqttuXm.cjs.map +0 -1
  410. package/dist/processAudits-Dmts9H_b.mjs +0 -80
  411. package/dist/processAudits-Dmts9H_b.mjs.map +0 -1
  412. package/dist/queue/index.cjs.map +0 -1
  413. package/dist/queue/index.d.cts.map +0 -1
  414. package/dist/queue/index.d.mts.map +0 -1
  415. package/dist/queue/index.mjs.map +0 -1
  416. package/dist/surfaceEnv-BFXEms2f.cjs +0 -39
  417. package/dist/surfaceEnv-BFXEms2f.cjs.map +0 -1
  418. package/dist/surfaceEnv-C3Ktahea.mjs +0 -27
  419. package/dist/surfaceEnv-C3Ktahea.mjs.map +0 -1
  420. package/dist/telemetry-C3L0iS28.d.cts.map +0 -1
  421. package/dist/telemetry-D7bVFLGi.d.mts.map +0 -1
  422. package/dist/topic/index.cjs.map +0 -1
  423. package/dist/topic/index.mjs.map +0 -1
  424. package/dist/types-BlAkSuGI.d.cts.map +0 -1
  425. package/dist/types-aKksMEWL.d.mts.map +0 -1
@@ -1,21 +1,23 @@
1
- import { __toESM } from "../Construct-BD5neF7w.mjs";
2
- import "../construct-interface-Z4CpS8tK.mjs";
3
- import { FunctionBuilder } from "../functions-14lpEFL4.mjs";
4
- import "../clone-DblgEZZa.mjs";
5
- import { Endpoint, ResponseBuilder, require_lodash } from "../Endpoint-DCQPMdUX.mjs";
6
- import { envParserFor } from "../surfaceEnv-C3Ktahea.mjs";
7
- import { createApiGatewayCookies, publishConstructEvents, publishEvents } from "../lazyAccessors-BoJN3SMd.mjs";
8
- import { createAuditContext, executeWithAuditTransaction } from "../processAudits-Dmts9H_b.mjs";
1
+ import { o as __toESM } from "../Construct-B1vGBPme.mjs";
2
+ import { n as recordCarrier } from "../tracing-CxaZ98IB.mjs";
3
+ import { a as publishEvents, i as publishConstructEvents, t as FunctionBuilder } from "../functions-BFizikJU.mjs";
4
+ import { i as require_lodash_set, n as ResponseBuilder, t as Endpoint } from "../Endpoint-BG4UJ9oA.mjs";
5
+ import { n as envParserFor } from "../surfaceEnv-wMT5QzgZ.mjs";
6
+ import { t as createApiGatewayCookies } from "../lazyAccessors-CFanua0O.mjs";
7
+ import { n as subscribedEvents, r as subscriberContext, t as runSubscriber } from "../runSubscriber-BHvJ8POr.mjs";
8
+ import { n as executeWithAuditTransaction, t as createAuditContext } from "../processAudits-BRRVVHUB.mjs";
9
+ import { consumeBatchTraced } from "@geekmidas/events";
9
10
  import { ForbiddenError, UnprocessableEntityError, wrapError } from "@geekmidas/errors";
10
11
  import { ServiceDiscovery, runWithRequestContext } from "@geekmidas/services";
12
+ import qs from "qs";
11
13
  import middy from "@middy/core";
12
14
  import { DefaultAuditor } from "@geekmidas/audit";
13
15
  import { withAuditableTransaction } from "@geekmidas/audit/kysely";
14
16
  import { withRlsContext } from "@geekmidas/db/rls";
15
- import qs from "qs";
16
-
17
17
  //#region src/functions/FunctionExecutionWrapper.ts
18
18
  var FunctionExecutionWrapper = class {
19
+ envParser;
20
+ fn;
19
21
  constructor(envParser, fn) {
20
22
  this.envParser = envParser;
21
23
  this.fn = fn;
@@ -25,25 +27,22 @@ var FunctionExecutionWrapper = class {
25
27
  return this._logger || this.fn.logger;
26
28
  }
27
29
  get serviceDiscovery() {
28
- const serviceDiscovery = ServiceDiscovery.getInstance(this.envParser);
29
- return serviceDiscovery;
30
+ return ServiceDiscovery.getInstance(this.envParser);
30
31
  }
31
32
  getServices() {
32
33
  return this.serviceDiscovery.register(this.fn.services);
33
34
  }
34
35
  async getDatabase() {
35
- if (!this.fn.databaseService) return void 0;
36
- const services = await this.serviceDiscovery.register([this.fn.databaseService]);
37
- return services[this.fn.databaseService.serviceName];
36
+ if (!this.fn.databaseService) return;
37
+ return (await this.serviceDiscovery.register([this.fn.databaseService]))[this.fn.databaseService.serviceName];
38
38
  }
39
39
  /**
40
40
  * Get the audit storage service if configured.
41
41
  * Returns undefined if no auditor storage is configured.
42
42
  */
43
43
  async getAuditStorage() {
44
- if (!this.fn.auditorStorageService) return void 0;
45
- const services = await this.serviceDiscovery.register([this.fn.auditorStorageService]);
46
- return services[this.fn.auditorStorageService.serviceName];
44
+ if (!this.fn.auditorStorageService) return;
45
+ return (await this.serviceDiscovery.register([this.fn.auditorStorageService]))[this.fn.auditorStorageService.serviceName];
47
46
  }
48
47
  /**
49
48
  * Create an auditor instance for the function.
@@ -51,7 +50,7 @@ var FunctionExecutionWrapper = class {
51
50
  */
52
51
  async createAuditor() {
53
52
  const storage = await this.getAuditStorage();
54
- if (!storage) return void 0;
53
+ if (!storage) return;
55
54
  return new DefaultAuditor({
56
55
  actor: {
57
56
  id: "system",
@@ -72,51 +71,44 @@ var FunctionExecutionWrapper = class {
72
71
  async executeWithAudit(handler) {
73
72
  const auditor = await this.createAuditor();
74
73
  const storage = await this.getAuditStorage();
75
- if (!auditor || !storage) {
76
- const db$1 = await this.getDatabase();
77
- return handler({ db: db$1 });
78
- }
74
+ if (!auditor || !storage) return handler({ db: await this.getDatabase() });
79
75
  const storageDb = storage.getDatabase?.();
80
76
  const databaseServiceName = this.fn.databaseService?.serviceName;
81
77
  const auditDbServiceName = this.fn.auditorStorageService?.serviceName;
82
78
  if (storageDb && databaseServiceName && auditDbServiceName) return withAuditableTransaction(storageDb, auditor, async (trx) => {
83
- const response$1 = await handler({
79
+ return await handler({
84
80
  auditor,
85
81
  db: trx
86
82
  });
87
- return response$1;
88
83
  });
89
- const db = await this.getDatabase();
90
84
  const response = await handler({
91
85
  auditor,
92
- db
86
+ db: await this.getDatabase()
93
87
  });
94
88
  await auditor.flush();
95
89
  return response;
96
90
  }
97
91
  async getFunctionInput(event) {
98
- const parsedInput = await FunctionBuilder.parseComposableStandardSchema(event, this.fn.input);
99
- return parsedInput;
92
+ return await FunctionBuilder.parseComposableStandardSchema(event, this.fn.input);
100
93
  }
101
94
  async publishEvents(response) {
102
- await publishEvents(this.logger, this.serviceDiscovery, this.fn.events, response, this.fn.publisherService);
95
+ await publishEvents(this.logger, this.serviceDiscovery, this.fn.events, response);
103
96
  }
104
97
  async parseComposableStandardSchema(data, schema) {
105
98
  return FunctionBuilder.parseComposableStandardSchema(data, schema);
106
99
  }
107
100
  };
108
-
109
101
  //#endregion
110
102
  //#region src/functions/AWSLambdaFunction.ts
111
103
  var AWSLambdaFunction = class extends FunctionExecutionWrapper {
104
+ fn;
112
105
  constructor(envParser, fn) {
113
106
  super(envParser, fn);
114
107
  this.fn = fn;
115
108
  }
116
109
  error() {
117
110
  return { onError: (req) => {
118
- const logger = req.event?.logger || this.fn.logger;
119
- logger.error(req.error || {}, "Error processing function");
111
+ (req.event?.logger || this.fn.logger).error(req.error || {}, "Error processing function");
120
112
  throw wrapError(req.error);
121
113
  } };
122
114
  }
@@ -132,7 +124,7 @@ var AWSLambdaFunction = class extends FunctionExecutionWrapper {
132
124
  } else req.event.parsedInput = req.event;
133
125
  } catch (error) {
134
126
  this.logger.error({
135
- error,
127
+ err: error,
136
128
  event: req.event
137
129
  }, "Failed to parse input");
138
130
  throw error;
@@ -192,8 +184,7 @@ var AWSLambdaFunction = class extends FunctionExecutionWrapper {
192
184
  db: event.db,
193
185
  auditor: event.auditor
194
186
  });
195
- const output = await this.fn.parseOutput(result);
196
- return output;
187
+ return await this.fn.parseOutput(result);
197
188
  }
198
189
  get handler() {
199
190
  const handler = this._handler.bind(this);
@@ -205,13 +196,13 @@ var AWSLambdaFunction = class extends FunctionExecutionWrapper {
205
196
  return runWithRequestContext({
206
197
  logger,
207
198
  requestId,
208
- startTime
199
+ startTime,
200
+ operation: context.functionName
209
201
  }, () => chain(event, context));
210
202
  };
211
203
  return wrappedHandler;
212
204
  }
213
205
  };
214
-
215
206
  //#endregion
216
207
  //#region src/crons/AWSScheduledFunction.ts
217
208
  /**
@@ -245,11 +236,11 @@ var AWSScheduledFunction = class extends AWSLambdaFunction {
245
236
  super(envParser, cron);
246
237
  }
247
238
  };
248
-
249
239
  //#endregion
250
240
  //#region src/endpoints/AmazonApiGatewayEndpointAdaptor.ts
251
- var import_lodash = __toESM(require_lodash(), 1);
241
+ var import_lodash_set = /* @__PURE__ */ __toESM(require_lodash_set(), 1);
252
242
  var AmazonApiGatewayEndpoint = class {
243
+ endpoint;
253
244
  options;
254
245
  /**
255
246
  * The parser this adaptor discovers services with.
@@ -287,8 +278,7 @@ var AmazonApiGatewayEndpoint = class {
287
278
  static decodeBody(body, isBase64Encoded, contentType) {
288
279
  if (!body) return void 0;
289
280
  const raw = isBase64Encoded ? Buffer.from(body, "base64").toString("utf-8") : body;
290
- const isJson = !contentType || contentType.toLowerCase().includes("application/json");
291
- if (isJson) return JSON.parse(raw);
281
+ if (!contentType || contentType.toLowerCase().includes("application/json")) return JSON.parse(raw);
292
282
  return raw;
293
283
  }
294
284
  getCookies(e) {
@@ -302,11 +292,11 @@ var AmazonApiGatewayEndpoint = class {
302
292
  const headers = req.event.headers;
303
293
  const header = Endpoint.createHeaders(headers);
304
294
  const cookie = this.getCookies(req.event);
305
- (0, import_lodash.default)(req.event, "body", await this.endpoint.parseInput(body, "body"));
306
- (0, import_lodash.default)(req.event, "query", await this.endpoint.parseInput(query, "query"));
307
- (0, import_lodash.default)(req.event, "params", await this.endpoint.parseInput(params, "params"));
308
- (0, import_lodash.default)(req.event, "header", header);
309
- (0, import_lodash.default)(req.event, "cookie", cookie);
295
+ (0, import_lodash_set.default)(req.event, "body", await this.endpoint.parseInput(body, "body"));
296
+ (0, import_lodash_set.default)(req.event, "query", await this.endpoint.parseInput(query, "query"));
297
+ (0, import_lodash_set.default)(req.event, "params", await this.endpoint.parseInput(params, "params"));
298
+ (0, import_lodash_set.default)(req.event, "header", header);
299
+ (0, import_lodash_set.default)(req.event, "cookie", cookie);
310
300
  } catch (error) {
311
301
  if (error && typeof error === "object" && Array.isArray(error)) throw new UnprocessableEntityError("Validation failed", error);
312
302
  throw error;
@@ -325,9 +315,8 @@ var AmazonApiGatewayEndpoint = class {
325
315
  }
326
316
  services() {
327
317
  return { before: async (req) => {
328
- const _logger = req.event.logger;
329
- const serviceDiscovery = ServiceDiscovery.getInstance(this.envParser);
330
- const services = await serviceDiscovery.register(this.endpoint.services);
318
+ req.event.logger;
319
+ const services = await ServiceDiscovery.getInstance(this.envParser).register(this.endpoint.services);
331
320
  req.event.services = services;
332
321
  } };
333
322
  }
@@ -338,7 +327,7 @@ var AmazonApiGatewayEndpoint = class {
338
327
  const header = req.event.header;
339
328
  const cookie = req.event.cookie;
340
329
  const session = req.event.session;
341
- const isAuthorized = await this.endpoint.authorize({
330
+ if (!await this.endpoint.authorize({
342
331
  header,
343
332
  cookie,
344
333
  services,
@@ -348,8 +337,7 @@ var AmazonApiGatewayEndpoint = class {
348
337
  body: req.event.body,
349
338
  query: req.event.query,
350
339
  params: req.event.params
351
- });
352
- if (!isAuthorized) {
340
+ })) {
353
341
  logger.warn("Forbidden access attempt");
354
342
  throw new ForbiddenError("Forbidden access to the endpoint", "You do not have permission to access this resource.");
355
343
  }
@@ -358,9 +346,8 @@ var AmazonApiGatewayEndpoint = class {
358
346
  database() {
359
347
  return { before: async (req) => {
360
348
  if (!this.endpoint.databaseService) return;
361
- const _logger = req.event.logger;
362
- const serviceDiscovery = ServiceDiscovery.getInstance(this.envParser);
363
- const db = await serviceDiscovery.register([this.endpoint.databaseService]).then((s) => s[this.endpoint.databaseService?.serviceName]);
349
+ req.event.logger;
350
+ const db = await ServiceDiscovery.getInstance(this.envParser).register([this.endpoint.databaseService]).then((s) => s[this.endpoint.databaseService?.serviceName]);
364
351
  req.event.db = db;
365
352
  } };
366
353
  }
@@ -411,9 +398,8 @@ var AmazonApiGatewayEndpoint = class {
411
398
  cookie: event.cookie,
412
399
  logger
413
400
  }) : void 0;
414
- const result = await executeWithAuditTransaction(auditContext, async (auditor) => {
415
- const sameDatabase = auditContext?.storage?.databaseServiceName && auditContext.storage.databaseServiceName === this.endpoint.databaseService?.serviceName;
416
- const baseDb = sameDatabase ? auditor?.getTransaction?.() ?? rawDb : rawDb;
401
+ const { output, metadata } = await executeWithAuditTransaction(auditContext, async (auditor) => {
402
+ const baseDb = auditContext?.storage?.databaseServiceName && auditContext.storage.databaseServiceName === this.endpoint.databaseService?.serviceName ? auditor?.getTransaction?.() ?? rawDb : rawDb;
417
403
  const executeHandler = async (db) => {
418
404
  const responseBuilder = new ResponseBuilder();
419
405
  const response = await this.endpoint.handler({
@@ -427,33 +413,31 @@ var AmazonApiGatewayEndpoint = class {
427
413
  ...input
428
414
  }, responseBuilder);
429
415
  let data = response;
430
- let metadata$1 = responseBuilder.getMetadata();
416
+ let metadata = responseBuilder.getMetadata();
431
417
  if (Endpoint.hasMetadata(response)) {
432
418
  data = response.data;
433
- metadata$1 = response.metadata;
419
+ metadata = response.metadata;
434
420
  }
435
- const output$1 = this.endpoint.outputSchema ? await this.endpoint.parseOutput(data) : void 0;
436
421
  return {
437
- output: output$1,
438
- metadata: metadata$1,
422
+ output: this.endpoint.outputSchema ? await this.endpoint.parseOutput(data) : void 0,
423
+ metadata,
439
424
  responseBuilder
440
425
  };
441
426
  };
442
427
  if (rlsActive && rlsContext && baseDb) return withRlsContext(baseDb, rlsContext, async (trx) => executeHandler(trx), { prefix: this.endpoint.rlsConfig?.prefix });
443
428
  return executeHandler(baseDb);
444
- }, async (result$1, auditor) => {
429
+ }, async (result, auditor) => {
445
430
  if (!audits?.length) return;
446
431
  for (const audit of audits) {
447
- if (audit.when && !audit.when(result$1.output)) continue;
448
- const payload = audit.payload(result$1.output);
449
- const entityId = audit.entityId?.(result$1.output);
432
+ if (audit.when && !audit.when(result.output)) continue;
433
+ const payload = audit.payload(result.output);
434
+ const entityId = audit.entityId?.(result.output);
450
435
  auditor.audit(audit.type, payload, {
451
436
  table: audit.table,
452
437
  entityId
453
438
  });
454
439
  }
455
440
  }, { db: rawDb });
456
- const { output, metadata } = result;
457
441
  const isJsonResponse = this.endpoint.responseType === "application/json";
458
442
  const body = output === void 0 ? void 0 : isJsonResponse ? JSON.stringify(output) : typeof output === "string" ? output : String(output);
459
443
  event.__response = output;
@@ -512,16 +496,17 @@ var AmazonApiGatewayEndpoint = class {
512
496
  const startTime = Date.now();
513
497
  const requestId = context.awsRequestId;
514
498
  const logger = this.endpoint.logger.child({ requestId });
499
+ const operation = `${this.endpoint.method} ${this.endpoint.route}`;
515
500
  return runWithRequestContext({
516
501
  logger,
517
502
  requestId,
518
- startTime
503
+ startTime,
504
+ operation
519
505
  }, () => chain(event, context));
520
506
  };
521
507
  return wrappedHandler;
522
508
  }
523
509
  };
524
-
525
510
  //#endregion
526
511
  //#region src/endpoints/parseQueryParams.ts
527
512
  /**
@@ -542,10 +527,10 @@ function parseQueryParams(queryParams) {
542
527
  }
543
528
  return qs.parse(parts.join("&"));
544
529
  }
545
-
546
530
  //#endregion
547
531
  //#region src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts
548
532
  var AmazonApiGatewayV1Endpoint = class extends AmazonApiGatewayEndpoint {
533
+ endpoint;
549
534
  getInput(e) {
550
535
  const multiValueParams = e.multiValueQueryStringParameters || {};
551
536
  const singleValueParams = e.queryStringParameters || {};
@@ -578,17 +563,16 @@ var AmazonApiGatewayV1Endpoint = class extends AmazonApiGatewayEndpoint {
578
563
  this.endpoint = endpoint;
579
564
  }
580
565
  };
581
-
582
566
  //#endregion
583
567
  //#region src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts
584
568
  var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
569
+ endpoint;
585
570
  getCookies(e) {
586
571
  return createApiGatewayCookies(e.cookies, e.headers?.cookie);
587
572
  }
588
573
  getInput(e) {
589
- const raw = AmazonApiGatewayEndpoint.decodeBody(e.body, e.isBase64Encoded, e.headers?.["content-type"]);
590
574
  return {
591
- body: raw,
575
+ body: AmazonApiGatewayEndpoint.decodeBody(e.body, e.isBase64Encoded, e.headers?.["content-type"]),
592
576
  query: qs.parse(e.rawQueryString),
593
577
  params: e.pathParameters || {}
594
578
  };
@@ -613,7 +597,6 @@ var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
613
597
  this.endpoint = endpoint;
614
598
  }
615
599
  };
616
-
617
600
  //#endregion
618
601
  //#region src/queue/AWSLambdaQueueAdaptor.ts
619
602
  /**
@@ -628,6 +611,8 @@ var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
628
611
  * retries only those records.
629
612
  */
630
613
  var AWSLambdaQueue = class {
614
+ envParser;
615
+ queue;
631
616
  _services;
632
617
  constructor(envParser, queue) {
633
618
  this.envParser = envParser;
@@ -642,6 +627,12 @@ var AWSLambdaQueue = class {
642
627
  this._services = this.queue.services.length > 0 ? await serviceDiscovery.register(this.queue.services) : {};
643
628
  return this._services;
644
629
  }
630
+ /** The queue's database, registered as functions register theirs. */
631
+ async getDatabase() {
632
+ const service = this.queue.databaseService;
633
+ if (!service) return void 0;
634
+ return (await ServiceDiscovery.getInstance(this.envParser).register([service]))[service.serviceName];
635
+ }
645
636
  safeJsonParse(value) {
646
637
  try {
647
638
  return JSON.parse(value);
@@ -667,6 +658,7 @@ var AWSLambdaQueue = class {
667
658
  req: { id: context.awsRequestId }
668
659
  });
669
660
  const services = await this.getServices();
661
+ const db = await this.getDatabase();
670
662
  const schema = this.queue.messageSchema;
671
663
  const batchItemFailures = [];
672
664
  const messages = [];
@@ -684,7 +676,7 @@ var AWSLambdaQueue = class {
684
676
  messages.push(validation.value);
685
677
  } catch (error) {
686
678
  logger.error({
687
- error,
679
+ err: error,
688
680
  messageId: record.messageId
689
681
  }, "Failed to parse SQS record");
690
682
  batchItemFailures.push({ itemIdentifier: record.messageId });
@@ -694,7 +686,8 @@ var AWSLambdaQueue = class {
694
686
  await this.queue.handler({
695
687
  messages,
696
688
  services,
697
- logger
689
+ logger,
690
+ db
698
691
  });
699
692
  } catch (error) {
700
693
  logger.error(wrapError(error), "Queue handler failed; retrying batch");
@@ -704,24 +697,28 @@ var AWSLambdaQueue = class {
704
697
  }
705
698
  get handler() {
706
699
  const handler = this._handler.bind(this);
707
- return async (event, context) => {
700
+ return (async (event, context) => {
708
701
  const startTime = Date.now();
709
702
  const requestId = context.awsRequestId;
710
703
  const logger = this.queue.logger.child({ requestId });
711
704
  return runWithRequestContext({
712
705
  logger,
713
706
  requestId,
714
- startTime
715
- }, () => handler(event, context));
716
- };
707
+ startTime,
708
+ operation: `queue ${this.queue.name}`
709
+ }, () => consumeBatchTraced({
710
+ system: "aws_sqs",
711
+ destination: this.queue.name
712
+ }, event.Records.map(recordCarrier), () => handler(event, context)));
713
+ });
717
714
  }
718
715
  };
719
-
720
716
  //#endregion
721
717
  //#region src/subscribers/AWSLambdaSubscriberAdaptor.ts
722
718
  var AWSLambdaSubscriber = class {
719
+ envParser;
720
+ subscriber;
723
721
  _logger;
724
- _services;
725
722
  constructor(envParser, subscriber) {
726
723
  this.envParser = envParser;
727
724
  this.subscriber = subscriber;
@@ -730,19 +727,9 @@ var AWSLambdaSubscriber = class {
730
727
  get logger() {
731
728
  return this._logger;
732
729
  }
733
- async getServices() {
734
- if (this._services) return this._services;
735
- const serviceDiscovery = ServiceDiscovery.getInstance(this.envParser);
736
- if (this.subscriber.services.length > 0) {
737
- const registered = await serviceDiscovery.register(this.subscriber.services);
738
- this._services = registered;
739
- } else this._services = {};
740
- return this._services;
741
- }
742
730
  error() {
743
731
  return { onError: (req) => {
744
- const logger = req.event?.logger || this.subscriber.logger;
745
- logger.error(req.error || {}, "Error processing subscriber");
732
+ (req.event?.logger || this.subscriber.logger).error(req.error || {}, "Error processing subscriber");
746
733
  throw wrapError(req.error);
747
734
  } };
748
735
  }
@@ -761,110 +748,26 @@ var AWSLambdaSubscriber = class {
761
748
  }
762
749
  services() {
763
750
  return { before: async (req) => {
764
- req.event.services = await this.getServices();
751
+ const { services, db } = await subscriberContext(this.subscriber, this.envParser);
752
+ req.event.services = services;
753
+ req.event.db = db;
765
754
  } };
766
755
  }
767
756
  parseEvents() {
768
757
  return { before: async (req) => {
769
- const { logger,...e } = req.event;
770
- const rawEvent = e;
758
+ const { logger, ...rawEvent } = req.event;
771
759
  logger.info({ rawEvent });
772
- const events = [];
773
- if ("Records" in rawEvent) {
774
- if (this.isSQSEvent(rawEvent)) for (const record of rawEvent.Records) try {
775
- const event = this.parseSQSRecord(record);
776
- if (this.shouldIncludeEvent(event)) events.push(event);
777
- } catch (error) {
778
- this.logger.error({
779
- error,
780
- record
781
- }, "Failed to parse SQS record");
782
- }
783
- else if (this.isSNSEvent(rawEvent)) for (const record of rawEvent.Records) try {
784
- const event = this.parseSNSRecord(record);
785
- if (this.shouldIncludeEvent(event)) events.push(event);
786
- } catch (error) {
787
- this.logger.error({
788
- error,
789
- record
790
- }, "Failed to parse SNS record");
791
- }
792
- }
793
- req.event.events = events;
760
+ req.event.events = subscribedEvents(this.subscriber, rawEvent, this.logger);
794
761
  } };
795
762
  }
796
- isSQSEvent(event) {
797
- const firstRecord = event.Records[0];
798
- return "Records" in event && event.Records.length > 0 && firstRecord !== void 0 && "eventSource" in firstRecord && firstRecord.eventSource === "aws:sqs";
799
- }
800
- isSNSEvent(event) {
801
- const firstRecord = event.Records[0];
802
- return "Records" in event && event.Records.length > 0 && firstRecord !== void 0 && "EventSource" in firstRecord && firstRecord.EventSource === "aws:sns";
803
- }
804
- parseSNSRecord(record) {
805
- const message = this.safeJsonParse(record.Sns.Message);
806
- const messageType = record.Sns.MessageAttributes?.type?.Value;
807
- if (message === null) return messageType ? {
808
- type: messageType,
809
- payload: record.Sns.Message
810
- } : record.Sns.Message;
811
- const resolvedType = messageType ?? message.type;
812
- if (message.type) return message;
813
- return resolvedType ? {
814
- type: resolvedType,
815
- payload: message
816
- } : message;
817
- }
818
- parseSQSRecord(record) {
819
- const body = this.safeJsonParse(record.body);
820
- if (body === null) return record.body;
821
- if (body.Type === "Notification" && body.Message) {
822
- const snsMessage = this.safeJsonParse(body.Message);
823
- const messageType = body.MessageAttributes?.type?.Value;
824
- if (snsMessage === null) return messageType ? {
825
- type: messageType,
826
- payload: body.Message
827
- } : body.Message;
828
- if (snsMessage.type) return snsMessage;
829
- const resolvedType = messageType ?? snsMessage.type;
830
- return resolvedType ? {
831
- type: resolvedType,
832
- payload: snsMessage
833
- } : snsMessage;
834
- }
835
- return body;
836
- }
837
- safeJsonParse(value) {
838
- try {
839
- return JSON.parse(value);
840
- } catch {
841
- return null;
842
- }
843
- }
844
- shouldIncludeEvent(event) {
845
- if (typeof event !== "object" || !event?.type) return true;
846
- if (!this.subscriber.subscribedEvents) return true;
847
- return this.subscriber.subscribedEvents.includes(event.type);
848
- }
849
763
  async _handler(event) {
850
- if (event.events.length === 0) {
851
- this.logger.info("No subscribed events to process");
852
- return { batchItemFailures: [] };
853
- }
854
- const result = await this.subscriber.handler({
855
- events: event.events,
856
- services: event.services,
857
- logger: event.logger
764
+ const { events, services, logger, db } = event;
765
+ return runSubscriber(this.subscriber, {
766
+ events,
767
+ services,
768
+ logger,
769
+ db
858
770
  });
859
- if (this.subscriber.outputSchema && result) {
860
- const validationResult = await this.subscriber.outputSchema["~standard"].validate(result);
861
- if (validationResult.issues) {
862
- this.logger.error({ issues: validationResult.issues }, "Subscriber output validation failed");
863
- throw new Error("Subscriber output validation failed");
864
- }
865
- return validationResult.value;
866
- }
867
- return result;
868
771
  }
869
772
  get handler() {
870
773
  const handler = this._handler.bind(this);
@@ -873,16 +776,22 @@ var AWSLambdaSubscriber = class {
873
776
  const startTime = Date.now();
874
777
  const requestId = context.awsRequestId;
875
778
  const logger = this.subscriber.logger.child({ requestId });
779
+ const operation = `subscriber ${this.subscriber.topicName ?? context.functionName}`;
780
+ const records = event?.Records ?? [];
876
781
  return runWithRequestContext({
877
782
  logger,
878
783
  requestId,
879
- startTime
880
- }, () => chain(event, context));
784
+ startTime,
785
+ operation
786
+ }, () => consumeBatchTraced({
787
+ system: records[0]?.Sns ? "aws_sns" : "aws_sqs",
788
+ destination: this.subscriber.topicName ?? context.functionName
789
+ }, records.map(recordCarrier), () => chain(event, context)));
881
790
  };
882
791
  return wrappedHandler;
883
792
  }
884
793
  };
885
-
886
794
  //#endregion
887
795
  export { AWSLambdaFunction, AWSLambdaQueue, AWSLambdaSubscriber, AWSScheduledFunction, AmazonApiGatewayV1Endpoint, AmazonApiGatewayV2Endpoint };
796
+
888
797
  //# sourceMappingURL=aws.mjs.map