@geekmidas/constructs 10.0.0-alpha.37 → 10.0.0-alpha.39

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 (267) hide show
  1. package/README.md +156 -155
  2. package/dist/{Construct-Detz65RA.mjs → Construct-BO1X-kt9.mjs} +3 -6
  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-yG9Sw-5p.cjs → Construct-DmvXceVY.cjs} +3 -6
  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-CA2oa2nC.d.cts → Cron-CMEGfRs8.d.cts} +7 -5
  11. package/dist/Cron-CMEGfRs8.d.cts.map +1 -0
  12. package/dist/{Cron-B_iuyNxr.d.mts → Cron-D6X4-xjB.d.mts} +7 -5
  13. package/dist/Cron-D6X4-xjB.d.mts.map +1 -0
  14. package/dist/{CronBuilder-B_KqaodP.d.cts → CronBuilder-CEK7aOqD.d.cts} +21 -16
  15. package/dist/CronBuilder-CEK7aOqD.d.cts.map +1 -0
  16. package/dist/{CronBuilder-BbnT7tqo.cjs → CronBuilder-DB35T5dL.cjs} +13 -11
  17. package/dist/CronBuilder-DB35T5dL.cjs.map +1 -0
  18. package/dist/{CronBuilder-BRkzUOAs.mjs → CronBuilder-Dv0IlZs0.mjs} +14 -12
  19. package/dist/CronBuilder-Dv0IlZs0.mjs.map +1 -0
  20. package/dist/{CronBuilder-BIKCLWu7.d.mts → CronBuilder-O_gvButp.d.mts} +21 -16
  21. package/dist/CronBuilder-O_gvButp.d.mts.map +1 -0
  22. package/dist/{Endpoint-DO332Dnm.mjs → Endpoint-CQAeh1Rh.mjs} +5 -5
  23. package/dist/Endpoint-CQAeh1Rh.mjs.map +1 -0
  24. package/dist/{Endpoint-QKuFg5gs.cjs → Endpoint-D1L9qu5C.cjs} +5 -5
  25. package/dist/Endpoint-D1L9qu5C.cjs.map +1 -0
  26. package/dist/{Endpoint-1-XYQSx0.d.cts → Endpoint-Dp5AKIXl.d.cts} +10 -13
  27. package/dist/Endpoint-Dp5AKIXl.d.cts.map +1 -0
  28. package/dist/{Endpoint-GFIxYb9L.d.mts → Endpoint-DtI7heFm.d.mts} +10 -13
  29. package/dist/Endpoint-DtI7heFm.d.mts.map +1 -0
  30. package/dist/{EndpointFactory-B9HAjDAP.mjs → EndpointFactory-BBdNeaGJ.mjs} +23 -52
  31. package/dist/EndpointFactory-BBdNeaGJ.mjs.map +1 -0
  32. package/dist/{EndpointFactory-BmO0WnXE.cjs → EndpointFactory-BZOCOaK6.cjs} +22 -51
  33. package/dist/EndpointFactory-BZOCOaK6.cjs.map +1 -0
  34. package/dist/{EndpointFactory-BCZdh_u3.d.mts → EndpointFactory-CgMDvERK.d.mts} +58 -48
  35. package/dist/EndpointFactory-CgMDvERK.d.mts.map +1 -0
  36. package/dist/{EndpointFactory-BnK_YkW1.d.cts → EndpointFactory-FeFRmlDZ.d.cts} +58 -48
  37. package/dist/EndpointFactory-FeFRmlDZ.d.cts.map +1 -0
  38. package/dist/{HonoEndpointAdaptor-CiqAZ5Mt.mjs → HonoEndpointAdaptor-Aui-x9Lg.mjs} +4 -3
  39. package/dist/HonoEndpointAdaptor-Aui-x9Lg.mjs.map +1 -0
  40. package/dist/{HonoEndpointAdaptor-DoEQdC3r.cjs → HonoEndpointAdaptor-Cq99r9H7.cjs} +5 -4
  41. package/dist/HonoEndpointAdaptor-Cq99r9H7.cjs.map +1 -0
  42. package/dist/{Queue-DpKTLl6E.mjs → Queue-C1uDgjxt.mjs} +29 -48
  43. package/dist/Queue-C1uDgjxt.mjs.map +1 -0
  44. package/dist/{Queue-B7yRXQmL.cjs → Queue-Ckmudcm8.cjs} +29 -48
  45. package/dist/Queue-Ckmudcm8.cjs.map +1 -0
  46. package/dist/{Queue-Bhzi2WQC.d.cts → Queue-CpQIGB_2.d.cts} +22 -33
  47. package/dist/Queue-CpQIGB_2.d.cts.map +1 -0
  48. package/dist/{Queue-BoUA-e83.d.mts → Queue-YmvN2vEP.d.mts} +21 -32
  49. package/dist/Queue-YmvN2vEP.d.mts.map +1 -0
  50. package/dist/QueueBuilder-CJNcv4dy.cjs +112 -0
  51. package/dist/QueueBuilder-CJNcv4dy.cjs.map +1 -0
  52. package/dist/QueueBuilder-CM0WUxfw.d.mts +62 -0
  53. package/dist/QueueBuilder-CM0WUxfw.d.mts.map +1 -0
  54. package/dist/QueueBuilder-XEnnOWGe.d.cts +62 -0
  55. package/dist/QueueBuilder-XEnnOWGe.d.cts.map +1 -0
  56. package/dist/QueueBuilder-XuPKZwKH.mjs +95 -0
  57. package/dist/QueueBuilder-XuPKZwKH.mjs.map +1 -0
  58. package/dist/{Subscriber-DQCaiOXF.d.cts → Subscriber-B91YSkZt.d.cts} +12 -13
  59. package/dist/Subscriber-B91YSkZt.d.cts.map +1 -0
  60. package/dist/{Subscriber-CIO3pwji.d.mts → Subscriber-BjHYe5hK.d.mts} +11 -12
  61. package/dist/Subscriber-BjHYe5hK.d.mts.map +1 -0
  62. package/dist/{SubscriberBuilder-CjDGSTZc.d.cts → SubscriberBuilder-BSpQX1JT.d.cts} +19 -23
  63. package/dist/SubscriberBuilder-BSpQX1JT.d.cts.map +1 -0
  64. package/dist/{SubscriberBuilder-C2FRfd26.d.mts → SubscriberBuilder-BhMphk4z.d.mts} +18 -22
  65. package/dist/SubscriberBuilder-BhMphk4z.d.mts.map +1 -0
  66. package/dist/{SubscriberBuilder-C2bCOuPT.cjs → SubscriberBuilder-Duk028pD.cjs} +11 -19
  67. package/dist/SubscriberBuilder-Duk028pD.cjs.map +1 -0
  68. package/dist/{SubscriberBuilder-B4YRTBng.mjs → SubscriberBuilder-DzQUWE08.mjs} +11 -19
  69. package/dist/SubscriberBuilder-DzQUWE08.mjs.map +1 -0
  70. package/dist/{Topic-D5rlM9wS.cjs → Topic-BBVXC3H4.cjs} +46 -51
  71. package/dist/Topic-BBVXC3H4.cjs.map +1 -0
  72. package/dist/Topic-DOw051ch.mjs +98 -0
  73. package/dist/Topic-DOw051ch.mjs.map +1 -0
  74. package/dist/adaptors/aws.cjs +5 -5
  75. package/dist/adaptors/aws.cjs.map +1 -1
  76. package/dist/adaptors/aws.d.cts +26 -26
  77. package/dist/adaptors/aws.d.cts.map +1 -1
  78. package/dist/adaptors/aws.d.mts +25 -25
  79. package/dist/adaptors/aws.d.mts.map +1 -1
  80. package/dist/adaptors/aws.mjs +5 -5
  81. package/dist/adaptors/aws.mjs.map +1 -1
  82. package/dist/adaptors/hono.cjs +1 -1
  83. package/dist/adaptors/hono.d.cts +4 -5
  84. package/dist/adaptors/hono.d.cts.map +1 -1
  85. package/dist/adaptors/hono.d.mts +4 -5
  86. package/dist/adaptors/hono.d.mts.map +1 -1
  87. package/dist/adaptors/hono.mjs +1 -1
  88. package/dist/adaptors/testing.cjs +59 -23
  89. package/dist/adaptors/testing.cjs.map +1 -1
  90. package/dist/adaptors/testing.d.cts +40 -28
  91. package/dist/adaptors/testing.d.cts.map +1 -1
  92. package/dist/adaptors/testing.d.mts +40 -28
  93. package/dist/adaptors/testing.d.mts.map +1 -1
  94. package/dist/adaptors/testing.mjs +59 -23
  95. package/dist/adaptors/testing.mjs.map +1 -1
  96. package/dist/{auth-c6nWnvD8.d.cts → auth-CMwml9QN.d.mts} +4 -4
  97. package/dist/{auth-c6nWnvD8.d.cts.map → auth-CMwml9QN.d.mts.map} +1 -1
  98. package/dist/{auth-pS_U1H_X.d.mts → auth-rVRDjIw_.d.cts} +4 -4
  99. package/dist/{auth-pS_U1H_X.d.mts.map → auth-rVRDjIw_.d.cts.map} +1 -1
  100. package/dist/auth.d.cts +1 -1
  101. package/dist/auth.d.mts +1 -1
  102. package/dist/{cache-B2s0b-ss.d.mts → cache-C9a_hVCc.d.cts} +3 -3
  103. package/dist/{cache-B2s0b-ss.d.mts.map → cache-C9a_hVCc.d.cts.map} +1 -1
  104. package/dist/{cache-CYe2Kzjc.d.cts → cache-CeTMI8LR.d.mts} +3 -3
  105. package/dist/{cache-CYe2Kzjc.d.cts.map → cache-CeTMI8LR.d.mts.map} +1 -1
  106. package/dist/cache.d.cts +1 -1
  107. package/dist/cache.d.mts +1 -1
  108. package/dist/{construct-interface-D2gesxos.d.mts → construct-interface-_3zgxzXl.d.mts} +11 -20
  109. package/dist/{construct-interface-D2gesxos.d.mts.map → construct-interface-_3zgxzXl.d.mts.map} +1 -1
  110. package/dist/{construct-interface-DPusCUSQ.d.cts → construct-interface-_xi4BPN8.d.cts} +11 -20
  111. package/dist/{construct-interface-DPusCUSQ.d.cts.map → construct-interface-_xi4BPN8.d.cts.map} +1 -1
  112. package/dist/construct-interface.cjs +4 -33
  113. package/dist/construct-interface.cjs.map +1 -1
  114. package/dist/construct-interface.d.cts +2 -2
  115. package/dist/construct-interface.d.mts +2 -2
  116. package/dist/construct-interface.mjs +5 -32
  117. package/dist/construct-interface.mjs.map +1 -1
  118. package/dist/credential.cjs +22 -9
  119. package/dist/credential.cjs.map +1 -1
  120. package/dist/credential.d.cts +12 -2
  121. package/dist/credential.d.cts.map +1 -1
  122. package/dist/credential.d.mts +12 -2
  123. package/dist/credential.d.mts.map +1 -1
  124. package/dist/credential.mjs +22 -10
  125. package/dist/credential.mjs.map +1 -1
  126. package/dist/crons/index.cjs +1 -1
  127. package/dist/crons/index.d.cts +2 -2
  128. package/dist/crons/index.d.mts +2 -2
  129. package/dist/crons/index.mjs +1 -1
  130. package/dist/database/kysely.d.cts +1 -1
  131. package/dist/database/kysely.d.mts +1 -1
  132. package/dist/email.d.cts +1 -1
  133. package/dist/email.d.mts +1 -1
  134. package/dist/endpoints/index.cjs +5 -4
  135. package/dist/endpoints/index.d.cts +4 -13
  136. package/dist/endpoints/index.d.cts.map +1 -1
  137. package/dist/endpoints/index.d.mts +4 -13
  138. package/dist/endpoints/index.d.mts.map +1 -1
  139. package/dist/endpoints/index.mjs +4 -3
  140. package/dist/external-api-DS3mujT5.d.mts +86 -0
  141. package/dist/external-api-DS3mujT5.d.mts.map +1 -0
  142. package/dist/external-api-LBfE-q3g.d.cts +86 -0
  143. package/dist/external-api-LBfE-q3g.d.cts.map +1 -0
  144. package/dist/external-api.cjs +124 -0
  145. package/dist/external-api.cjs.map +1 -0
  146. package/dist/external-api.d.cts +2 -0
  147. package/dist/external-api.d.mts +2 -0
  148. package/dist/external-api.mjs +121 -0
  149. package/dist/external-api.mjs.map +1 -0
  150. package/dist/file-server.d.cts +1 -1
  151. package/dist/file-server.d.mts +1 -1
  152. package/dist/functions/index.cjs +1 -1
  153. package/dist/functions/index.d.cts +1 -1
  154. package/dist/functions/index.d.mts +1 -1
  155. package/dist/functions/index.mjs +1 -1
  156. package/dist/{functions-DlFm8HmH.mjs → functions-DCIfCRR-.mjs} +94 -23
  157. package/dist/functions-DCIfCRR-.mjs.map +1 -0
  158. package/dist/{functions-DKN6aQWJ.cjs → functions-ZH60FE7H.cjs} +99 -19
  159. package/dist/functions-ZH60FE7H.cjs.map +1 -0
  160. package/dist/{index-BI23K3wy.d.cts → index-B0kxstwf.d.cts} +36 -24
  161. package/dist/index-B0kxstwf.d.cts.map +1 -0
  162. package/dist/{index-yb3fXNyH.d.mts → index-CjVEjOw0.d.mts} +36 -24
  163. package/dist/index-CjVEjOw0.d.mts.map +1 -0
  164. package/dist/index.cjs +1 -1
  165. package/dist/index.d.cts +1 -1
  166. package/dist/index.d.mts +1 -1
  167. package/dist/index.mjs +1 -1
  168. package/dist/{kysely-CEVXacPN.d.cts → kysely-BJ8IQ_1P.d.mts} +4 -4
  169. package/dist/{kysely-CEVXacPN.d.cts.map → kysely-BJ8IQ_1P.d.mts.map} +1 -1
  170. package/dist/{kysely-mcTdPNhl.d.mts → kysely-DVF8wOT4.d.cts} +4 -4
  171. package/dist/{kysely-mcTdPNhl.d.mts.map → kysely-DVF8wOT4.d.cts.map} +1 -1
  172. package/dist/{lazyAccessors-BHtcqgz2.mjs → lazyAccessors-CFanua0O.mjs} +2 -39
  173. package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
  174. package/dist/{lazyAccessors-Dx9NLwJZ.cjs → lazyAccessors-hJKGv8Ay.cjs} +1 -50
  175. package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
  176. package/dist/mobile-app.d.cts +1 -1
  177. package/dist/mobile-app.d.mts +1 -1
  178. package/dist/object-storage.d.cts +1 -1
  179. package/dist/object-storage.d.mts +1 -1
  180. package/dist/processAudits-BpRlPQMW.mjs.map +1 -1
  181. package/dist/processAudits-D_2W5x8k.cjs.map +1 -1
  182. package/dist/queue/index.cjs +4 -78
  183. package/dist/queue/index.d.cts +3 -53
  184. package/dist/queue/index.d.mts +3 -53
  185. package/dist/queue/index.mjs +3 -77
  186. package/dist/rest-api.cjs +2 -4
  187. package/dist/rest-api.cjs.map +1 -1
  188. package/dist/rest-api.d.cts +4 -5
  189. package/dist/rest-api.d.cts.map +1 -1
  190. package/dist/rest-api.d.mts +4 -5
  191. package/dist/rest-api.d.mts.map +1 -1
  192. package/dist/rest-api.mjs +2 -4
  193. package/dist/rest-api.mjs.map +1 -1
  194. package/dist/site.d.cts +1 -1
  195. package/dist/site.d.mts +1 -1
  196. package/dist/subscribers/index.cjs +1 -1
  197. package/dist/subscribers/index.d.cts +2 -2
  198. package/dist/subscribers/index.d.mts +2 -2
  199. package/dist/subscribers/index.mjs +1 -1
  200. package/dist/topic/index.cjs +1 -36
  201. package/dist/topic/index.d.cts +2 -3
  202. package/dist/topic/index.d.mts +2 -3
  203. package/dist/topic/index.mjs +2 -35
  204. package/dist/worker.cjs +26 -17
  205. package/dist/worker.cjs.map +1 -1
  206. package/dist/worker.d.cts +37 -29
  207. package/dist/worker.d.cts.map +1 -1
  208. package/dist/worker.d.mts +37 -29
  209. package/dist/worker.d.mts.map +1 -1
  210. package/dist/worker.mjs +26 -17
  211. package/dist/worker.mjs.map +1 -1
  212. package/package.json +41 -31
  213. package/dist/Construct-DTqYvkPG.d.cts +0 -115
  214. package/dist/Construct-DTqYvkPG.d.cts.map +0 -1
  215. package/dist/Construct-Detz65RA.mjs.map +0 -1
  216. package/dist/Construct-pVadmURD.d.mts +0 -115
  217. package/dist/Construct-pVadmURD.d.mts.map +0 -1
  218. package/dist/Construct-yG9Sw-5p.cjs.map +0 -1
  219. package/dist/Cron-B_iuyNxr.d.mts.map +0 -1
  220. package/dist/Cron-CA2oa2nC.d.cts.map +0 -1
  221. package/dist/CronBuilder-BIKCLWu7.d.mts.map +0 -1
  222. package/dist/CronBuilder-BRkzUOAs.mjs.map +0 -1
  223. package/dist/CronBuilder-B_KqaodP.d.cts.map +0 -1
  224. package/dist/CronBuilder-BbnT7tqo.cjs.map +0 -1
  225. package/dist/Endpoint-1-XYQSx0.d.cts.map +0 -1
  226. package/dist/Endpoint-DO332Dnm.mjs.map +0 -1
  227. package/dist/Endpoint-GFIxYb9L.d.mts.map +0 -1
  228. package/dist/Endpoint-QKuFg5gs.cjs.map +0 -1
  229. package/dist/EndpointFactory-B9HAjDAP.mjs.map +0 -1
  230. package/dist/EndpointFactory-BCZdh_u3.d.mts.map +0 -1
  231. package/dist/EndpointFactory-BmO0WnXE.cjs.map +0 -1
  232. package/dist/EndpointFactory-BnK_YkW1.d.cts.map +0 -1
  233. package/dist/HonoEndpointAdaptor-CiqAZ5Mt.mjs.map +0 -1
  234. package/dist/HonoEndpointAdaptor-DoEQdC3r.cjs.map +0 -1
  235. package/dist/Queue-B7yRXQmL.cjs.map +0 -1
  236. package/dist/Queue-Bhzi2WQC.d.cts.map +0 -1
  237. package/dist/Queue-BoUA-e83.d.mts.map +0 -1
  238. package/dist/Queue-DpKTLl6E.mjs.map +0 -1
  239. package/dist/Subscriber-CIO3pwji.d.mts.map +0 -1
  240. package/dist/Subscriber-DQCaiOXF.d.cts.map +0 -1
  241. package/dist/SubscriberBuilder-B4YRTBng.mjs.map +0 -1
  242. package/dist/SubscriberBuilder-C2FRfd26.d.mts.map +0 -1
  243. package/dist/SubscriberBuilder-C2bCOuPT.cjs.map +0 -1
  244. package/dist/SubscriberBuilder-CjDGSTZc.d.cts.map +0 -1
  245. package/dist/Topic-Ct3Le8Wt.mjs +0 -103
  246. package/dist/Topic-Ct3Le8Wt.mjs.map +0 -1
  247. package/dist/Topic-D5rlM9wS.cjs.map +0 -1
  248. package/dist/Topic-D6blllEn.d.cts +0 -89
  249. package/dist/Topic-D6blllEn.d.cts.map +0 -1
  250. package/dist/Topic-DVvheJ_-.d.mts +0 -89
  251. package/dist/Topic-DVvheJ_-.d.mts.map +0 -1
  252. package/dist/functions-DKN6aQWJ.cjs.map +0 -1
  253. package/dist/functions-DlFm8HmH.mjs.map +0 -1
  254. package/dist/index-BI23K3wy.d.cts.map +0 -1
  255. package/dist/index-fnpjXiA-.d.mts +0 -26
  256. package/dist/index-fnpjXiA-.d.mts.map +0 -1
  257. package/dist/index-tE_119SX.d.cts +0 -26
  258. package/dist/index-tE_119SX.d.cts.map +0 -1
  259. package/dist/index-yb3fXNyH.d.mts.map +0 -1
  260. package/dist/lazyAccessors-BHtcqgz2.mjs.map +0 -1
  261. package/dist/lazyAccessors-Dx9NLwJZ.cjs.map +0 -1
  262. package/dist/queue/index.cjs.map +0 -1
  263. package/dist/queue/index.d.cts.map +0 -1
  264. package/dist/queue/index.d.mts.map +0 -1
  265. package/dist/queue/index.mjs.map +0 -1
  266. package/dist/topic/index.cjs.map +0 -1
  267. package/dist/topic/index.mjs.map +0 -1
@@ -1,15 +1,16 @@
1
1
  import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
2
- import { n as BaseFunctionBuilder } from "./index-yb3fXNyH.mjs";
3
- import { c as ServicesOf, r as Consumable } from "./construct-interface-D2gesxos.mjs";
2
+ import { a as EventFor, c as Topic } from "./Construct-QXnl3VqT.mjs";
3
+ import { n as BaseFunctionBuilder } from "./index-CjVEjOw0.mjs";
4
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-_3zgxzXl.mjs";
4
5
  import { t as HttpMethod } from "./types-DMuSQeLL.mjs";
5
- import { C as Authorizer, O as SecurityScheme, S as MappedAudit, T as BuiltInSecuritySchemeId, _ as RlsBypass, c as EndpointSchemas, f as SessionFn, i as Endpoint, l as EndpointSurface, o as EndpointHandler, p as SuccessStatus, t as AuthorizeFn, v as RlsConfig, x as ActorExtractor } from "./Endpoint-GFIxYb9L.mjs";
6
- import { EventPublisher, MappedEvent } from "@geekmidas/events";
6
+ import { C as Authorizer, O as SecurityScheme, S as MappedAudit, T as BuiltInSecuritySchemeId, _ as RlsBypass, c as EndpointSchemas, f as SessionFn, i as Endpoint, l as EndpointSurface, o as EndpointHandler, p as SuccessStatus, t as AuthorizeFn, v as RlsConfig, x as ActorExtractor } from "./Endpoint-DtI7heFm.mjs";
7
7
  import { RateLimitConfig } from "@geekmidas/rate-limit";
8
8
  import { Service } from "@geekmidas/services";
9
9
  import { AuditStorage, AuditableAction, ExtractStorageAuditAction } from "@geekmidas/audit";
10
10
  import { Logger } from "@geekmidas/logger";
11
+ import { InferStandardSchema } from "@geekmidas/schema";
11
12
  //#region src/endpoints/EndpointBuilder.d.ts
12
- declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
13
+ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
13
14
  readonly route: TRoute;
14
15
  readonly method: TMethod;
15
16
  protected schemas: TInput;
@@ -36,12 +37,26 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
36
37
  _rlsConfig?: RlsConfig<TServices, TSession, TLogger>;
37
38
  _rlsBypass?: boolean;
38
39
  constructor(route: TRoute, method: TMethod);
39
- _setPublisher(publisher: Service<TEventPublisherServiceName, TEventPublisher>): void;
40
40
  _setAuditorStorage(storage: Service<TAuditStorageServiceName, TAuditStorage>): void;
41
41
  _setDatabaseService(service: Service<TDatabaseServiceName, TDatabase>): void;
42
42
  description(description: string): this;
43
43
  status(status: SuccessStatus): this;
44
- event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(event: TEvent): this;
44
+ /**
45
+ * Publish `event` to `topic` once the handler has succeeded — repeatable,
46
+ * one call per event, to as many topics as the endpoint names. The topic
47
+ * becomes a dependency as with `.dependsOn([topic])`, so `services.<topic>`
48
+ * is there for events the handler decides on itself.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * router.post('/users')
53
+ * .event(users, {
54
+ * type: 'user.created',
55
+ * payload: (user) => ({ userId: user.id, email: user.email }),
56
+ * })
57
+ * ```
58
+ */
59
+ event<TTopic extends Topic<any, any>>(topic: TTopic, event: EventFor<TTopic, InferStandardSchema<OutSchema>>): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, TTopic['service']], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
45
60
  tags(tags: string[]): this;
46
61
  memorySize(memorySize: number): this;
47
62
  /**
@@ -63,22 +78,21 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
63
78
  * ```
64
79
  */
65
80
  responseType(type: string): this;
66
- publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, T, TName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
67
81
  body<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'body'> & {
68
82
  body: T;
69
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
83
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
70
84
  search<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
71
85
  query: T;
72
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
86
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
73
87
  query<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
74
88
  query: T;
75
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
89
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
76
90
  params<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'params'> & {
77
91
  params: T;
78
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
92
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
79
93
  authorize(fn: AuthorizeFn<TServices, TLogger, TSession, TInput, TDatabase>): this;
80
94
  rateLimit(config: RateLimitConfig): this;
81
- authorizer(name: TAuthorizers[number] | 'none'): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
95
+ authorizer(name: TAuthorizers[number] | 'none'): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
82
96
  /**
83
97
  * Depend on constructs — a database, a bucket, a mail sender, a queue, a
84
98
  * topic.
@@ -90,21 +104,21 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
90
104
  * Constructs only. A `Service` does not match the shape, which is what keeps
91
105
  * env sniffing confined to `.services()` and the explicit lift.
92
106
  */
93
- dependsOn<const T extends readonly Consumable[]>(constructs: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
94
- services<T extends Service[]>(services: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...T], TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
95
- logger<T extends Logger>(logger: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, T, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
96
- output<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, T, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
107
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
108
+ services<T extends Service[]>(services: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...T], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
109
+ logger<T extends Logger>(logger: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, T, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
110
+ output<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, T, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
97
111
  /**
98
112
  * Set the auditor storage service for this endpoint.
99
113
  * This enables audit functionality and makes `auditor` available in the handler context.
100
114
  * The audit action type is automatically inferred from the storage's generic parameter.
101
115
  */
102
- auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName>;
116
+ auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName>;
103
117
  /**
104
118
  * Set the actor extractor function for audit records.
105
119
  * The actor is extracted from the request context and attached to all audits.
106
120
  */
107
- actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
121
+ actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
108
122
  /**
109
123
  * Add declarative audit definitions that are processed after the handler executes.
110
124
  * Similar to `.event()` for events, but for audits.
@@ -138,7 +152,7 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
138
152
  * })
139
153
  * ```
140
154
  */
141
- database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName>;
155
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName>;
142
156
  /**
143
157
  * Configure RLS (Row-Level Security) context for this endpoint.
144
158
  * Pass `false` or `RLS_BYPASS` to explicitly bypass RLS for this endpoint.
@@ -174,11 +188,11 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
174
188
  */
175
189
  rlsBypass(): this;
176
190
  input(_schema: any): any;
177
- handle(fn: EndpointHandler<TInput, TServices, TLogger, OutSchema, TSession, TDatabase, TAuditStorage, TAuditAction>): Endpoint<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
191
+ handle(fn: EndpointHandler<TInput, TServices, TLogger, OutSchema, TSession, TDatabase, TAuditStorage, TAuditAction>): Endpoint<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
178
192
  }
179
193
  //#endregion
180
194
  //#region src/endpoints/EndpointFactory.d.ts
181
- declare class EndpointFactory<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage<any> | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = ExtractStorageAuditAction<NonNullable<TAuditStorage>>, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
195
+ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage<any> | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = ExtractStorageAuditAction<NonNullable<TAuditStorage>>, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
182
196
  private defaultServices;
183
197
  /**
184
198
  * The constructs `.dependsOn()` was given, kept alongside the services they
@@ -193,7 +207,6 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
193
207
  private defaultConstructs;
194
208
  private basePath;
195
209
  private defaultAuthorizeFn?;
196
- private defaultEventPublisher;
197
210
  private defaultSessionExtractor?;
198
211
  private defaultLogger;
199
212
  /**
@@ -211,9 +224,9 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
211
224
  private defaultActorExtractor?;
212
225
  private customSecuritySchemes;
213
226
  private defaultRlsConfig?;
214
- constructor({ basePath, defaultAuthorizeFn, defaultLogger, defaultSessionExtractor, defaultServices, defaultConstructs, defaultEventPublisher, availableAuthorizers, defaultAuthorizerName, defaultAuditorStorage, defaultDatabaseService, defaultActorExtractor, customSecuritySchemes, defaultRlsConfig, surface }: EndpointFactoryOptions<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>);
227
+ constructor({ basePath, defaultAuthorizeFn, defaultLogger, defaultSessionExtractor, defaultServices, defaultConstructs, availableAuthorizers, defaultAuthorizerName, defaultAuditorStorage, defaultDatabaseService, defaultActorExtractor, customSecuritySchemes, defaultRlsConfig, surface }: EndpointFactoryOptions<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>);
215
228
  static joinPaths<TBasePath extends string, P extends string>(path: P, basePath?: TBasePath): JoinPaths<TBasePath, P>;
216
- authorizers<const T extends readonly string[]>(authorizers: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, T, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
229
+ authorizers<const T extends readonly string[]>(authorizers: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, T, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
217
230
  /**
218
231
  * Define custom security schemes for this factory.
219
232
  * These extend the built-in schemes (jwt, bearer, apiKey, oauth2, oidc).
@@ -230,7 +243,7 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
230
243
  * });
231
244
  * ```
232
245
  */
233
- securitySchemes<T extends Record<string, SecurityScheme>>(schemes: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes & T, TRlsConfig>;
246
+ securitySchemes<T extends Record<string, SecurityScheme>>(schemes: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes & T, TRlsConfig>;
234
247
  /**
235
248
  * Set the default authorizer for all endpoints created from this factory.
236
249
  * Individual endpoints can override this by calling `.authorizer()` on the builder.
@@ -241,9 +254,9 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
241
254
  * - Custom security scheme names defined via `.securitySchemes()`
242
255
  * - 'none' to disable authorization
243
256
  */
244
- authorizer(name: BuiltInSecuritySchemeId | keyof TSecuritySchemes | TAuthorizers[number] | 'none'): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
245
- route<TPath extends string>(path: TPath): EndpointFactory<TServices, JoinPaths<TBasePath, TPath>, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
246
- authorize(fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
257
+ authorizer(name: BuiltInSecuritySchemeId | keyof TSecuritySchemes | TAuthorizers[number] | 'none'): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
258
+ route<TPath extends string>(path: TPath): EndpointFactory<TServices, JoinPaths<TBasePath, TPath>, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
259
+ authorize(fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
247
260
  /**
248
261
  * Depend on constructs — a database, a bucket, a mail sender, a queue, a
249
262
  * topic.
@@ -255,27 +268,26 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
255
268
  * Constructs only. A `Service` does not match the shape, which is what keeps
256
269
  * env sniffing confined to `.services()` and the explicit lift.
257
270
  */
258
- dependsOn<const S extends readonly Consumable[]>(constructs: S): EndpointFactory<[...ServicesOf<S>, ...TServices], TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...ServicesOf<S>, ...TServices], TSession, TLogger> | undefined>;
259
- services<S extends Service[]>(services: S): EndpointFactory<[...S, ...TServices], TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...S, ...TServices], TSession, TLogger> | undefined>;
260
- logger<L extends Logger>(logger: L): EndpointFactory<TServices, TBasePath, L, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, TSession, L> | undefined>;
261
- publisher<T extends EventPublisher<any>, TServiceName extends string = string>(publisher: Service<TServiceName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, T, TServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
262
- session<T>(session: SessionFn<TServices, TLogger, T, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, T, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, T, TLogger> | undefined>;
271
+ dependsOn<const S extends readonly Consumable[]>(constructs: S): EndpointFactory<[...ServicesOf<S>, ...TServices], TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...ServicesOf<S>, ...TServices], TSession, TLogger> | undefined>;
272
+ services<S extends Service[]>(services: S): EndpointFactory<[...S, ...TServices], TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...S, ...TServices], TSession, TLogger> | undefined>;
273
+ logger<L extends Logger>(logger: L): EndpointFactory<TServices, TBasePath, L, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, TSession, L> | undefined>;
274
+ session<T>(session: SessionFn<TServices, TLogger, T, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, T, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, T, TLogger> | undefined>;
263
275
  /**
264
276
  * Set the database service for endpoints created from this factory.
265
277
  * The database will be available in handler context as `db`.
266
278
  */
267
- database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName, TSecuritySchemes, TRlsConfig>;
279
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName, TSecuritySchemes, TRlsConfig>;
268
280
  /**
269
281
  * Set the auditor storage service for endpoints created from this factory.
270
282
  * This enables audit functionality and makes `auditor` available in handler context.
271
283
  * The audit action type is automatically inferred from the storage's generic parameter.
272
284
  */
273
- auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
285
+ auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
274
286
  /**
275
287
  * Set the actor extractor function for endpoints created from this factory.
276
288
  * The actor is extracted from the request context and attached to all audits.
277
289
  */
278
- actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
290
+ actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
279
291
  /**
280
292
  * Set the RLS (Row-Level Security) configuration for endpoints created from this factory.
281
293
  * This enables automatic PostgreSQL session variable setting for RLS policies.
@@ -294,18 +306,18 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
294
306
  * });
295
307
  * ```
296
308
  */
297
- rls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(config: TConfig): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TConfig>;
309
+ rls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(config: TConfig): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TConfig>;
298
310
  private createBuilder;
299
- post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "POST", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
300
- get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "GET", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
301
- put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PUT", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
302
- delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "DELETE", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
303
- patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PATCH", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
304
- options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "OPTIONS", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
311
+ post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "POST", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
312
+ get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "GET", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
313
+ put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PUT", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
314
+ delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "DELETE", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
315
+ patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PATCH", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
316
+ options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "OPTIONS", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
305
317
  }
306
318
  type RemoveTrailingSlash<T extends string> = T extends `${infer Rest}/` ? Rest extends '' ? T : Rest : T;
307
319
  type JoinPaths<TBasePath extends string, TPath extends string> = RemoveTrailingSlash<TBasePath extends '' ? TPath : TPath extends '' ? TBasePath : TBasePath extends '/' ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest}` ? `${TBasePath}/${Rest}` : `${TBasePath}/${TPath}`>;
308
- interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
320
+ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
309
321
  defaultServices?: TServices;
310
322
  /** Construct ids from `.dependsOn()`, carried so a route can declare edges. */
311
323
  defaultConstructs?: string[];
@@ -313,8 +325,6 @@ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath ext
313
325
  defaultAuthorizeFn?: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>;
314
326
  defaultLogger?: TLogger;
315
327
  defaultSessionExtractor?: SessionFn<TServices, TLogger, TSession, TDatabase>;
316
- defaultEventPublisher?: Service<TEventPublisherServiceName, TEventPublisher>;
317
- defaultEvents?: MappedEvent<TEventPublisher, undefined>[];
318
328
  availableAuthorizers?: Authorizer[];
319
329
  defaultAuthorizerName?: TAuthorizers[number];
320
330
  defaultAuditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;
@@ -336,4 +346,4 @@ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath ext
336
346
  }
337
347
  //#endregion
338
348
  export { EndpointBuilder as n, EndpointFactory as t };
339
- //# sourceMappingURL=EndpointFactory-BCZdh_u3.d.mts.map
349
+ //# sourceMappingURL=EndpointFactory-CgMDvERK.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EndpointFactory-CgMDvERK.d.mts","names":[],"sources":["../src/endpoints/EndpointBuilder.ts","../src/endpoints/EndpointFactory.ts"],"mappings":";;;;;;;;;;;;cAyCa,gBACZ,uBACA,gBAAgB,YAChB,eAAe,sBACf,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,oBACA,4DACA,sBAAsB,sCACtB,kDACA,qBAAqB,mCAAmC,kCAIxD,uBACA,sDACS,oBACT,QACA,WACA,WACA,SACA,eACA,0BACA,WACA;WA6BU,OAAO;WACP,QAAQ;YA5BR,SAAS;YACT;YACA,UAAU;YACV;YACA;YACA;EACV,aAAa,UAAU,WAAW,SAAS,UAAU;EAErD,YAAY,YAAY,WAAW,SAAS,UAAU,QAAQ;EAE9D,aAAa;EACb,uBAAuB;EACvB,kBAAkB;EAClB,kBAAkB,eAAe,WAAW,UAAU;EACtD,SAAS,YAAY,cAAc;;;;;;;EAOnC,UAAW;EACX,wBAAwB,eAAe;EACvC,aAAa,UAAU,WAAW,UAAU;EAC5C;EAEA,YACU,OAAO,QACP,QAAQ;EAMlB,mBACC,SAAS,QAAQ,0BAA0B;EAM5C,oBAAoB,SAAS,QAAQ,sBAAsB;EAI3D,YAAY;EAIZ,OAAO,QAAQ;;;;;;;;;;;;;;;;EAmBf,MAAM,eAAe,iBACpB,OAAO,QACP,OAAO,SAAS,QAAQ,oBAAoB,cAC1C,gBACF,QACA,SACA,YACI,WAAW,oBACf,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAmBD,KAAK;EAIL,WAAW;;;;;;;;;;;;;;;;;;;EAsBX,aAAa;EAIb,KAAK,UAAU,kBACd,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAoB,MAAM;KAC/B,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAOD,OAAO,UAAU,kBAChB,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAqB,OAAO;KACjC,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAOD,MAAM,UAAU,kBACf,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAqB,OAAO;KACjC,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAKD,OAAO,UAAU,kBAChB,QAAQ,IACN,gBACF,QACA,SACA,KAAK;IAAsB,QAAQ;KACnC,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAOD,UACC,IAAI,YAAY,WAAW,SAAS,UAAU,QAAQ;EAKvD,UAAU,QAAQ;EAIlB,WACC,MAAM,gCACJ,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;;;;;;;;;;;;EAkCD,gBAAgB,mBAAmB,cAClC,YAAY,IACV,gBACF,QACA,SACA,YACI,cAAc,WAAW,KAC7B,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAkCD,SAAS,UAAU,WAClB,UAAU,IACR,gBACF,QACA,SACA,YACI,cAAc,IAClB,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAwBD,OAAO,UAAU,QAChB,QAAQ,IACN,gBACF,QACA,SACA,QACA,WACA,GACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;EAqBD,OAAO,UAAU,kBAChB,QAAQ,IACN,gBACF,QACA,SACA,QACA,WACA,SACA,GACA,UACA,cACA,eACA,0BACA,cACA,WACA;;;;;;EA0BQ,QAAQ,UAAU,mBAAmB,sBAC7C,SAAS,QAAQ,OAAO,KACtB,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,GACA,OACA,0BAA0B,IAC1B,WACA;;;;;EA4BD,MACC,WAAW,eAAe,WAAW,UAAU,WAC7C,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,WACA;;;;;;;;;;;;;;;;;;EAsBD,MAAM,QAAQ,YAAY,cAAc;;;;;;;;;;;;;;;;EAmB/B,SAAS,GAAG,sBACpB,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,gBACF,QACA,SACA,QACA,WACA,SACA,WACA,UACA,cACA,eACA,0BACA,cACA,GACA;;;;;;;;;;;;;;;;;;;;EA6CD,IACC,QAAQ,UAAU,WAAW,UAAU,mBAAmB;;;;;;;;;;;;;;EAyB3D;EAKA,MAAM;EAMN,OACC,IAAI,gBACH,QACA,WACA,SACA,WACA,UACA,WACA,eACA,gBAEC,SACF,QACA,SACA,QACA,WACA,WACA,SACA,UACA,eACA,0BACA,cACA,WACA;;;;cC1rBW,gBACZ,kBAAkB,gBAClB,+BACA,gBAAgB,SAAS,QACzB,oBACA,4DACA,sBAAsB,2CACtB,kDACA,qBAAqB,mCAGjB,0BAA0B,YAAY,iBAC1C,uBACA,8CACA,yBAAyB,eAAe,kBAAkB,eAEzD,iBAED,mBACG,UAAU,WAAW,UAAU;UAG1B;;;;;;;;;;;UAWA;UACA;UACA;UAOA;UAMA;;;;;;;;UAQA;UACA;UACA;UACA;UAGA;UAGA;UACA;UACA;EAER,cACC,UACA,oBACA,eACA,yBAEA,iBACA,mBACA,sBACA,uBACA,uBACA,wBACA,uBACA,uBACA,kBACA,WACE,uBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,WACA,sBACA,kBACA;SAuBM,UAAU,0BAA0B,kBAC1C,MAAM,GACN,WAAU,YACR,UAAU,WAAW;EAmCxB,kBAAkB,6BACjB,aAAa,IACX,gBACF,WACA,WACA,SACA,UACA,GACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;;;;;;;;;;;;;;;;;EAqDD,gBAAgB,UAAU,eAAe,iBACxC,SAAS,IACP,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,mBAAmB,GACnB;;;;;;;;;;;EA8CD,WACC,MACG,gCACM,mBACN,gCAED,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;EAkDD,MAAM,sBACL,MAAM,QACJ,gBACF,WACA,UAAU,WAAW,QACrB,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;EAmCD,UACC,IAAI,YAAY,WAAW,SAAS,qBAAqB,aACvD,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;;;;;;;;;;;;EA6CD,gBAAgB,mBAAmB,cAClC,YAAY,IACV,oBACE,WAAW,OAAO,YACtB,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,cAAc,WAAW,OAAO,YAAY,UAAU;EA6BvD,SAAS,UAAU,WAClB,UAAU,IACR,oBACE,MAAM,YACV,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,cAAc,MAAM,YAAY,UAAU;EA2C3C,OAAO,UAAU,QAChB,QAAQ,IACN,gBACF,WACA,WACA,GACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,UAAU,WAAW,UAAU;EAiDhC,QAAQ,GACP,SAAS,UAAU,WAAW,SAAS,GAAG,aACxC,gBACF,WACA,WACA,SACA,GACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA,UAAU,WAAW,GAAG;;;;;EAgDzB,SAAS,GAAG,sBACX,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,GACA,OACA,kBACA;;;;;;EAmDD,QAAQ,UAAU,mBAAmB,sBACpC,SAAS,QAAQ,OAAO,KACtB,gBACF,WACA,WACA,SACA,UACA,cACA,GACA,OACA,0BAA0B,IAC1B,WACA,sBACA,kBACA;;;;;EA0CD,MACC,WAAW,eAAe,WAAW,UAAU,WAC7C,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;;;;;;;;;;;;;;;;;;;EAmDD,IAAI,gBAAgB,UAAU,WAAW,UAAU,UAClD,QAAQ,UACN,gBACF,WACA,WACA,SACA,UACA,cACA,eACA,0BACA,cACA,WACA,sBACA,kBACA;UAiCO;EA8FR,KAAK,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BA2CN,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,sBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EAxClC,IAAI,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BAuCL,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,qBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EApClC,IAAI,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BAmCL,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,qBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EAhClC,OAAO,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BA+BR,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,wBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EA5BlC,MAAM,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BA2BP,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,uBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;EAxBlC,QAAQ,sBAAsB,MAAM,QAAK,gBAAA,oBAAA,uBAAA,QAAA,mBAAA,YAAA,wBAAA,6BAAA,YAAA,UAAA,2BAuBT,UAAI,wBACN,YAAI,QAAA,YAAA,QAAA,UAAA,wBAAA,cAAA,aAAA,cAAA,aAAA,yBAAA,WAAA,oBAAA,UAAA,cAAA,eAAA,0BAAA,cAAA,WAAA;;KAnBvB,oBAAoB,oBAAoB,mBAAmB,UACpE,kBACC,IACA,OACD;KAES,UACX,0BACA,wBACG,oBACH,uBACG,QACA,mBACC,YACA,wBACC,6BACC,YACI,UACL,2BAA2B,UAC1B,wBAAwB,YACpB,QAAQ,YACR,QAAQ,UACZ,wBAAwB,YACpB,aAAa,YACb,aAAa;UAGP,uBAChB,kBAAkB,gBAClB,+BACA,gBAAgB,SAAS,QACzB,oBACA,4DACA,sBAAsB,sCACtB,kDACA,uBACA,8CACA,yBAAyB,eAAe,kBAAkB,eAEzD,iBAED,mBACG,UAAU,WAAW,UAAU;EAGlC,kBAAkB;;EAElB;EACA,WAAW;EACX,qBAAqB,YACpB,WACA,SACA,qBAEA;EAED,gBAAgB;EAChB,0BAA0B,UAAU,WAAW,SAAS,UAAU;EAClE,uBAAuB;EACvB,wBAAwB;EACxB,wBAAwB,QAAQ,0BAA0B;EAC1D,yBAAyB,QAAQ,sBAAsB;EACvD,wBAAwB,eAAe,WAAW,UAAU;EAC5D,wBAAwB;EACxB,mBAAmB;;;;;;;;;;;EAWnB,SAAS"}
@@ -1,15 +1,16 @@
1
1
  import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
2
- import { n as BaseFunctionBuilder } from "./index-BI23K3wy.cjs";
3
- import { c as ServicesOf, r as Consumable } from "./construct-interface-DPusCUSQ.cjs";
2
+ import { a as EventFor, c as Topic } from "./Construct-BQALFCh2.cjs";
3
+ import { n as BaseFunctionBuilder } from "./index-B0kxstwf.cjs";
4
+ import { c as ServicesOf, r as Consumable } from "./construct-interface-_xi4BPN8.cjs";
4
5
  import { t as HttpMethod } from "./types-DMuSQeLL.cjs";
5
- import { C as Authorizer, O as SecurityScheme, S as MappedAudit, T as BuiltInSecuritySchemeId, _ as RlsBypass, c as EndpointSchemas, f as SessionFn, i as Endpoint, l as EndpointSurface, o as EndpointHandler, p as SuccessStatus, t as AuthorizeFn, v as RlsConfig, x as ActorExtractor } from "./Endpoint-1-XYQSx0.cjs";
6
- import { EventPublisher, MappedEvent } from "@geekmidas/events";
6
+ import { C as Authorizer, O as SecurityScheme, S as MappedAudit, T as BuiltInSecuritySchemeId, _ as RlsBypass, c as EndpointSchemas, f as SessionFn, i as Endpoint, l as EndpointSurface, o as EndpointHandler, p as SuccessStatus, t as AuthorizeFn, v as RlsConfig, x as ActorExtractor } from "./Endpoint-Dp5AKIXl.cjs";
7
7
  import { Logger } from "@geekmidas/logger";
8
+ import { InferStandardSchema } from "@geekmidas/schema";
8
9
  import { Service } from "@geekmidas/services";
9
10
  import { AuditStorage, AuditableAction, ExtractStorageAuditAction } from "@geekmidas/audit";
10
11
  import { RateLimitConfig } from "@geekmidas/rate-limit";
11
12
  //#region src/endpoints/EndpointBuilder.d.ts
12
- declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
13
+ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
13
14
  readonly route: TRoute;
14
15
  readonly method: TMethod;
15
16
  protected schemas: TInput;
@@ -36,12 +37,26 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
36
37
  _rlsConfig?: RlsConfig<TServices, TSession, TLogger>;
37
38
  _rlsBypass?: boolean;
38
39
  constructor(route: TRoute, method: TMethod);
39
- _setPublisher(publisher: Service<TEventPublisherServiceName, TEventPublisher>): void;
40
40
  _setAuditorStorage(storage: Service<TAuditStorageServiceName, TAuditStorage>): void;
41
41
  _setDatabaseService(service: Service<TDatabaseServiceName, TDatabase>): void;
42
42
  description(description: string): this;
43
43
  status(status: SuccessStatus): this;
44
- event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(event: TEvent): this;
44
+ /**
45
+ * Publish `event` to `topic` once the handler has succeeded — repeatable,
46
+ * one call per event, to as many topics as the endpoint names. The topic
47
+ * becomes a dependency as with `.dependsOn([topic])`, so `services.<topic>`
48
+ * is there for events the handler decides on itself.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * router.post('/users')
53
+ * .event(users, {
54
+ * type: 'user.created',
55
+ * payload: (user) => ({ userId: user.id, email: user.email }),
56
+ * })
57
+ * ```
58
+ */
59
+ event<TTopic extends Topic<any, any>>(topic: TTopic, event: EventFor<TTopic, InferStandardSchema<OutSchema>>): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, TTopic['service']], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
45
60
  tags(tags: string[]): this;
46
61
  memorySize(memorySize: number): this;
47
62
  /**
@@ -63,22 +78,21 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
63
78
  * ```
64
79
  */
65
80
  responseType(type: string): this;
66
- publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, T, TName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
67
81
  body<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'body'> & {
68
82
  body: T;
69
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
83
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
70
84
  search<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
71
85
  query: T;
72
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
86
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
73
87
  query<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'query'> & {
74
88
  query: T;
75
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
89
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
76
90
  params<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, Omit<TInput, 'params'> & {
77
91
  params: T;
78
- }, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
92
+ }, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
79
93
  authorize(fn: AuthorizeFn<TServices, TLogger, TSession, TInput, TDatabase>): this;
80
94
  rateLimit(config: RateLimitConfig): this;
81
- authorizer(name: TAuthorizers[number] | 'none'): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
95
+ authorizer(name: TAuthorizers[number] | 'none'): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
82
96
  /**
83
97
  * Depend on constructs — a database, a bucket, a mail sender, a queue, a
84
98
  * topic.
@@ -90,21 +104,21 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
90
104
  * Constructs only. A `Service` does not match the shape, which is what keeps
91
105
  * env sniffing confined to `.services()` and the explicit lift.
92
106
  */
93
- dependsOn<const T extends readonly Consumable[]>(constructs: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
94
- services<T extends Service[]>(services: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...T], TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
95
- logger<T extends Logger>(logger: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, T, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
96
- output<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, T, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
107
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
108
+ services<T extends Service[]>(services: T): EndpointBuilder<TRoute, TMethod, TInput, [...TServices, ...T], TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
109
+ logger<T extends Logger>(logger: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, T, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
110
+ output<T extends StandardSchemaV1>(schema: T): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, T, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
97
111
  /**
98
112
  * Set the auditor storage service for this endpoint.
99
113
  * This enables audit functionality and makes `auditor` available in the handler context.
100
114
  * The audit action type is automatically inferred from the storage's generic parameter.
101
115
  */
102
- auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName>;
116
+ auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName>;
103
117
  /**
104
118
  * Set the actor extractor function for audit records.
105
119
  * The actor is extracted from the request context and attached to all audits.
106
120
  */
107
- actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
121
+ actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
108
122
  /**
109
123
  * Add declarative audit definitions that are processed after the handler executes.
110
124
  * Similar to `.event()` for events, but for audits.
@@ -138,7 +152,7 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
138
152
  * })
139
153
  * ```
140
154
  */
141
- database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName>;
155
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointBuilder<TRoute, TMethod, TInput, TServices, TLogger, OutSchema, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName>;
142
156
  /**
143
157
  * Configure RLS (Row-Level Security) context for this endpoint.
144
158
  * Pass `false` or `RLS_BYPASS` to explicitly bypass RLS for this endpoint.
@@ -174,11 +188,11 @@ declare class EndpointBuilder<TRoute extends string, TMethod extends HttpMethod,
174
188
  */
175
189
  rlsBypass(): this;
176
190
  input(_schema: any): any;
177
- handle(fn: EndpointHandler<TInput, TServices, TLogger, OutSchema, TSession, TDatabase, TAuditStorage, TAuditAction>): Endpoint<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
191
+ handle(fn: EndpointHandler<TInput, TServices, TLogger, OutSchema, TSession, TDatabase, TAuditStorage, TAuditAction>): Endpoint<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
178
192
  }
179
193
  //#endregion
180
194
  //#region src/endpoints/EndpointFactory.d.ts
181
- declare class EndpointFactory<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage<any> | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = ExtractStorageAuditAction<NonNullable<TAuditStorage>>, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
195
+ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage<any> | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = ExtractStorageAuditAction<NonNullable<TAuditStorage>>, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
182
196
  private defaultServices;
183
197
  /**
184
198
  * The constructs `.dependsOn()` was given, kept alongside the services they
@@ -193,7 +207,6 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
193
207
  private defaultConstructs;
194
208
  private basePath;
195
209
  private defaultAuthorizeFn?;
196
- private defaultEventPublisher;
197
210
  private defaultSessionExtractor?;
198
211
  private defaultLogger;
199
212
  /**
@@ -211,9 +224,9 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
211
224
  private defaultActorExtractor?;
212
225
  private customSecuritySchemes;
213
226
  private defaultRlsConfig?;
214
- constructor({ basePath, defaultAuthorizeFn, defaultLogger, defaultSessionExtractor, defaultServices, defaultConstructs, defaultEventPublisher, availableAuthorizers, defaultAuthorizerName, defaultAuditorStorage, defaultDatabaseService, defaultActorExtractor, customSecuritySchemes, defaultRlsConfig, surface }: EndpointFactoryOptions<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>);
227
+ constructor({ basePath, defaultAuthorizeFn, defaultLogger, defaultSessionExtractor, defaultServices, defaultConstructs, availableAuthorizers, defaultAuthorizerName, defaultAuditorStorage, defaultDatabaseService, defaultActorExtractor, customSecuritySchemes, defaultRlsConfig, surface }: EndpointFactoryOptions<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>);
215
228
  static joinPaths<TBasePath extends string, P extends string>(path: P, basePath?: TBasePath): JoinPaths<TBasePath, P>;
216
- authorizers<const T extends readonly string[]>(authorizers: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, T, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
229
+ authorizers<const T extends readonly string[]>(authorizers: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, T, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
217
230
  /**
218
231
  * Define custom security schemes for this factory.
219
232
  * These extend the built-in schemes (jwt, bearer, apiKey, oauth2, oidc).
@@ -230,7 +243,7 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
230
243
  * });
231
244
  * ```
232
245
  */
233
- securitySchemes<T extends Record<string, SecurityScheme>>(schemes: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes & T, TRlsConfig>;
246
+ securitySchemes<T extends Record<string, SecurityScheme>>(schemes: T): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes & T, TRlsConfig>;
234
247
  /**
235
248
  * Set the default authorizer for all endpoints created from this factory.
236
249
  * Individual endpoints can override this by calling `.authorizer()` on the builder.
@@ -241,9 +254,9 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
241
254
  * - Custom security scheme names defined via `.securitySchemes()`
242
255
  * - 'none' to disable authorization
243
256
  */
244
- authorizer(name: BuiltInSecuritySchemeId | keyof TSecuritySchemes | TAuthorizers[number] | 'none'): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
245
- route<TPath extends string>(path: TPath): EndpointFactory<TServices, JoinPaths<TBasePath, TPath>, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
246
- authorize(fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
257
+ authorizer(name: BuiltInSecuritySchemeId | keyof TSecuritySchemes | TAuthorizers[number] | 'none'): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
258
+ route<TPath extends string>(path: TPath): EndpointFactory<TServices, JoinPaths<TBasePath, TPath>, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
259
+ authorize(fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
247
260
  /**
248
261
  * Depend on constructs — a database, a bucket, a mail sender, a queue, a
249
262
  * topic.
@@ -255,27 +268,26 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
255
268
  * Constructs only. A `Service` does not match the shape, which is what keeps
256
269
  * env sniffing confined to `.services()` and the explicit lift.
257
270
  */
258
- dependsOn<const S extends readonly Consumable[]>(constructs: S): EndpointFactory<[...ServicesOf<S>, ...TServices], TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...ServicesOf<S>, ...TServices], TSession, TLogger> | undefined>;
259
- services<S extends Service[]>(services: S): EndpointFactory<[...S, ...TServices], TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...S, ...TServices], TSession, TLogger> | undefined>;
260
- logger<L extends Logger>(logger: L): EndpointFactory<TServices, TBasePath, L, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, TSession, L> | undefined>;
261
- publisher<T extends EventPublisher<any>, TServiceName extends string = string>(publisher: Service<TServiceName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, T, TServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
262
- session<T>(session: SessionFn<TServices, TLogger, T, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, T, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, T, TLogger> | undefined>;
271
+ dependsOn<const S extends readonly Consumable[]>(constructs: S): EndpointFactory<[...ServicesOf<S>, ...TServices], TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...ServicesOf<S>, ...TServices], TSession, TLogger> | undefined>;
272
+ services<S extends Service[]>(services: S): EndpointFactory<[...S, ...TServices], TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<[...S, ...TServices], TSession, TLogger> | undefined>;
273
+ logger<L extends Logger>(logger: L): EndpointFactory<TServices, TBasePath, L, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, TSession, L> | undefined>;
274
+ session<T>(session: SessionFn<TServices, TLogger, T, TDatabase>): EndpointFactory<TServices, TBasePath, TLogger, T, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, RlsConfig<TServices, T, TLogger> | undefined>;
263
275
  /**
264
276
  * Set the database service for endpoints created from this factory.
265
277
  * The database will be available in handler context as `db`.
266
278
  */
267
- database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName, TSecuritySchemes, TRlsConfig>;
279
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, T, TName, TSecuritySchemes, TRlsConfig>;
268
280
  /**
269
281
  * Set the auditor storage service for endpoints created from this factory.
270
282
  * This enables audit functionality and makes `auditor` available in handler context.
271
283
  * The audit action type is automatically inferred from the storage's generic parameter.
272
284
  */
273
- auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
285
+ auditor<T extends AuditStorage<any>, TName extends string>(storage: Service<TName, T>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, T, TName, ExtractStorageAuditAction<T>, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
274
286
  /**
275
287
  * Set the actor extractor function for endpoints created from this factory.
276
288
  * The actor is extracted from the request context and attached to all audits.
277
289
  */
278
- actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
290
+ actor(extractor: ActorExtractor<TServices, TSession, TLogger>): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TRlsConfig>;
279
291
  /**
280
292
  * Set the RLS (Row-Level Security) configuration for endpoints created from this factory.
281
293
  * This enables automatic PostgreSQL session variable setting for RLS policies.
@@ -294,18 +306,18 @@ declare class EndpointFactory<TServices extends Service[] = [], TBasePath extend
294
306
  * });
295
307
  * ```
296
308
  */
297
- rls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(config: TConfig): EndpointFactory<TServices, TBasePath, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TConfig>;
309
+ rls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(config: TConfig): EndpointFactory<TServices, TBasePath, TLogger, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName, TSecuritySchemes, TConfig>;
298
310
  private createBuilder;
299
- post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "POST", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
300
- get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "GET", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
301
- put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PUT", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
302
- delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "DELETE", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
303
- patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PATCH", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
304
- options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "OPTIONS", {}, TServices, TLogger, undefined, TSession, TEventPublisher, TEventPublisherServiceName, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
311
+ post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "POST", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
312
+ get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "GET", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
313
+ put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PUT", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
314
+ delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "DELETE", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
315
+ patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "PATCH", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
316
+ options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TBasePath extends "" ? TPath : TPath extends "" ? TBasePath : TBasePath extends "/" ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest_1}` ? `${TBasePath}/${Rest_1}` : `${TBasePath}/${TPath}`>, "OPTIONS", {}, TServices, TLogger, undefined, TSession, TAuthorizers, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>;
305
317
  }
306
318
  type RemoveTrailingSlash<T extends string> = T extends `${infer Rest}/` ? Rest extends '' ? T : Rest : T;
307
319
  type JoinPaths<TBasePath extends string, TPath extends string> = RemoveTrailingSlash<TBasePath extends '' ? TPath : TPath extends '' ? TBasePath : TBasePath extends '/' ? TPath extends `/${string}` ? TPath : `/${TPath}` : TBasePath extends `${infer Base}/` ? TPath extends `/${infer Rest}` ? `${Base}/${Rest}` : `${Base}/${TPath}` : TPath extends `/${infer Rest}` ? `${TBasePath}/${Rest}` : `${TBasePath}/${TPath}`>;
308
- interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
320
+ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath extends string = '', TLogger extends Logger = Logger, TSession = unknown, TAuthorizers extends readonly string[] = readonly string[], TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TSecuritySchemes extends Record<string, SecurityScheme> = Record<string, SecurityScheme>, TRlsConfig extends RlsConfig<TServices, TSession, TLogger> | undefined = undefined> {
309
321
  defaultServices?: TServices;
310
322
  /** Construct ids from `.dependsOn()`, carried so a route can declare edges. */
311
323
  defaultConstructs?: string[];
@@ -313,8 +325,6 @@ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath ext
313
325
  defaultAuthorizeFn?: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>;
314
326
  defaultLogger?: TLogger;
315
327
  defaultSessionExtractor?: SessionFn<TServices, TLogger, TSession, TDatabase>;
316
- defaultEventPublisher?: Service<TEventPublisherServiceName, TEventPublisher>;
317
- defaultEvents?: MappedEvent<TEventPublisher, undefined>[];
318
328
  availableAuthorizers?: Authorizer[];
319
329
  defaultAuthorizerName?: TAuthorizers[number];
320
330
  defaultAuditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;
@@ -336,4 +346,4 @@ interface EndpointFactoryOptions<TServices extends Service[] = [], TBasePath ext
336
346
  }
337
347
  //#endregion
338
348
  export { EndpointBuilder as n, EndpointFactory as t };
339
- //# sourceMappingURL=EndpointFactory-BnK_YkW1.d.cts.map
349
+ //# sourceMappingURL=EndpointFactory-FeFRmlDZ.d.cts.map