@geekmidas/constructs 7.0.1 → 10.0.0-alpha.0

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 (385) hide show
  1. package/README.md +71 -44
  2. package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts → AWSScheduledFunction-BvFvBsBN.d.cts} +10 -5
  3. package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts.map → AWSScheduledFunction-BvFvBsBN.d.cts.map} +1 -1
  4. package/dist/{AWSScheduledFunction-CTIa90EH.d.cts → AWSScheduledFunction-CVccZO-L.d.mts} +10 -5
  5. package/dist/{AWSScheduledFunction-CTIa90EH.d.cts.map → AWSScheduledFunction-CVccZO-L.d.mts.map} +1 -1
  6. package/dist/{AWSScheduledFunction-CufMMhGB.mjs → AWSScheduledFunction-Db1lttJH.mjs} +3 -3
  7. package/dist/{AWSScheduledFunction-CufMMhGB.mjs.map → AWSScheduledFunction-Db1lttJH.mjs.map} +1 -1
  8. package/dist/{AWSScheduledFunction-DbkDr8CA.cjs → AWSScheduledFunction-qu4ieRZR.cjs} +9 -9
  9. package/dist/{AWSScheduledFunction-DbkDr8CA.cjs.map → AWSScheduledFunction-qu4ieRZR.cjs.map} +1 -1
  10. package/dist/{Construct-_1wX7p_Y.d.cts → Construct-B-xc0SE9.d.mts} +27 -5
  11. package/dist/Construct-B-xc0SE9.d.mts.map +1 -0
  12. package/dist/{Construct-r0U2zBwW.mjs → Construct-HmWM6YYu.mjs} +4 -3
  13. package/dist/Construct-HmWM6YYu.mjs.map +1 -0
  14. package/dist/{Construct-DCMuYOox.d.mts → Construct-WhCXIOPV.d.cts} +29 -7
  15. package/dist/Construct-WhCXIOPV.d.cts.map +1 -0
  16. package/dist/{Construct-vXMZJgRp.cjs → Construct-roId57cU.cjs} +7 -43
  17. package/dist/Construct-roId57cU.cjs.map +1 -0
  18. package/dist/{lazyAccessors-DmTG8sQH.cjs → Endpoint-BBkV6l0k.cjs} +869 -1079
  19. package/dist/Endpoint-BBkV6l0k.cjs.map +1 -0
  20. package/dist/{lazyAccessors-DfqZR6C4.mjs → Endpoint-BGwpNEX4.mjs} +840 -1003
  21. package/dist/Endpoint-BGwpNEX4.mjs.map +1 -0
  22. package/dist/{Endpoint-CAzNbDEt.d.cts → Endpoint-BnxZqIX-.d.cts} +53 -4
  23. package/dist/Endpoint-BnxZqIX-.d.cts.map +1 -0
  24. package/dist/{Endpoint-CLPSIl6S.d.mts → Endpoint-ROcXU-eH.d.mts} +55 -6
  25. package/dist/Endpoint-ROcXU-eH.d.mts.map +1 -0
  26. package/dist/EndpointFactory-DYoGLaIT.cjs +850 -0
  27. package/dist/EndpointFactory-DYoGLaIT.cjs.map +1 -0
  28. package/dist/EndpointFactory-Di0X9AWp.mjs +808 -0
  29. package/dist/EndpointFactory-Di0X9AWp.mjs.map +1 -0
  30. package/dist/{HonoEndpointAdaptor-DJDT3PMx.mjs → HonoEndpointAdaptor-DFKIIG2o.mjs} +5 -4
  31. package/dist/HonoEndpointAdaptor-DFKIIG2o.mjs.map +1 -0
  32. package/dist/{HonoEndpointAdaptor-CkJENANP.cjs → HonoEndpointAdaptor-wMsCyMgt.cjs} +24 -23
  33. package/dist/HonoEndpointAdaptor-wMsCyMgt.cjs.map +1 -0
  34. package/dist/{Queue-DaxjwmOQ.d.cts → Queue-D6WeziRD.d.cts} +43 -4
  35. package/dist/Queue-D6WeziRD.d.cts.map +1 -0
  36. package/dist/{Queue-HBDf0fqz.d.mts → Queue-DpUeqdC8.d.mts} +43 -4
  37. package/dist/Queue-DpUeqdC8.d.mts.map +1 -0
  38. package/dist/{Subscriber-B69ngPwl.d.cts → Subscriber-4rBJgDKI.d.mts} +9 -4
  39. package/dist/{Subscriber-B69ngPwl.d.cts.map → Subscriber-4rBJgDKI.d.mts.map} +1 -1
  40. package/dist/{Subscriber-D8Xm-86W.d.mts → Subscriber-DVQowdyj.d.cts} +11 -6
  41. package/dist/Subscriber-DVQowdyj.d.cts.map +1 -0
  42. package/dist/{Topic-C5ZMfveW.d.cts → Topic-Ohx9dvWr.d.cts} +33 -2
  43. package/dist/Topic-Ohx9dvWr.d.cts.map +1 -0
  44. package/dist/{Topic-DT10AqHk.d.mts → Topic-cmy2jOUy.d.mts} +33 -2
  45. package/dist/Topic-cmy2jOUy.d.mts.map +1 -0
  46. package/dist/adaptors/aws.cjs +39 -26
  47. package/dist/adaptors/aws.cjs.map +1 -1
  48. package/dist/adaptors/aws.d.cts +24 -16
  49. package/dist/adaptors/aws.d.cts.map +1 -1
  50. package/dist/adaptors/aws.d.mts +25 -17
  51. package/dist/adaptors/aws.d.mts.map +1 -1
  52. package/dist/adaptors/aws.mjs +26 -14
  53. package/dist/adaptors/aws.mjs.map +1 -1
  54. package/dist/adaptors/hono.cjs +9 -6
  55. package/dist/adaptors/hono.d.cts +7 -6
  56. package/dist/adaptors/hono.d.cts.map +1 -1
  57. package/dist/adaptors/hono.d.mts +8 -7
  58. package/dist/adaptors/hono.d.mts.map +1 -1
  59. package/dist/adaptors/hono.mjs +9 -6
  60. package/dist/adaptors/testing.cjs +18 -14
  61. package/dist/adaptors/testing.cjs.map +1 -1
  62. package/dist/adaptors/testing.d.cts +7 -6
  63. package/dist/adaptors/testing.d.cts.map +1 -1
  64. package/dist/adaptors/testing.d.mts +11 -10
  65. package/dist/adaptors/testing.d.mts.map +1 -1
  66. package/dist/adaptors/testing.mjs +10 -7
  67. package/dist/adaptors/testing.mjs.map +1 -1
  68. package/dist/auth.cjs +165 -0
  69. package/dist/auth.cjs.map +1 -0
  70. package/dist/auth.d.cts +108 -0
  71. package/dist/auth.d.cts.map +1 -0
  72. package/dist/auth.d.mts +108 -0
  73. package/dist/auth.d.mts.map +1 -0
  74. package/dist/auth.mjs +164 -0
  75. package/dist/auth.mjs.map +1 -0
  76. package/dist/cache-0ANvRQnD.mjs +51 -0
  77. package/dist/cache-0ANvRQnD.mjs.map +1 -0
  78. package/dist/cache-3WSvAulx.cjs +57 -0
  79. package/dist/cache-3WSvAulx.cjs.map +1 -0
  80. package/dist/cache-CdQ7OLpR.d.cts +47 -0
  81. package/dist/cache-CdQ7OLpR.d.cts.map +1 -0
  82. package/dist/cache-DYoJFcfd.d.mts +47 -0
  83. package/dist/cache-DYoJFcfd.d.mts.map +1 -0
  84. package/dist/cache.cjs +3 -0
  85. package/dist/cache.d.cts +3 -0
  86. package/dist/cache.d.mts +3 -0
  87. package/dist/cache.mjs +3 -0
  88. package/dist/chunk-DWy1uDak.cjs +39 -0
  89. package/dist/clone-DblgEZZa.mjs +39 -0
  90. package/dist/clone-DblgEZZa.mjs.map +1 -0
  91. package/dist/clone-Dy0cR2SZ.cjs +45 -0
  92. package/dist/clone-Dy0cR2SZ.cjs.map +1 -0
  93. package/dist/construct-interface-BfjcOD_E.cjs +117 -0
  94. package/dist/construct-interface-BfjcOD_E.cjs.map +1 -0
  95. package/dist/construct-interface-BqwRNYA2.d.mts +131 -0
  96. package/dist/construct-interface-BqwRNYA2.d.mts.map +1 -0
  97. package/dist/construct-interface-D2nNkHUN.d.cts +131 -0
  98. package/dist/construct-interface-D2nNkHUN.d.cts.map +1 -0
  99. package/dist/construct-interface-Z4CpS8tK.mjs +81 -0
  100. package/dist/construct-interface-Z4CpS8tK.mjs.map +1 -0
  101. package/dist/construct-interface.cjs +8 -0
  102. package/dist/construct-interface.d.cts +2 -0
  103. package/dist/construct-interface.d.mts +2 -0
  104. package/dist/construct-interface.mjs +3 -0
  105. package/dist/credential.cjs +96 -0
  106. package/dist/credential.cjs.map +1 -0
  107. package/dist/credential.d.cts +61 -0
  108. package/dist/credential.d.cts.map +1 -0
  109. package/dist/credential.d.mts +61 -0
  110. package/dist/credential.d.mts.map +1 -0
  111. package/dist/credential.mjs +94 -0
  112. package/dist/credential.mjs.map +1 -0
  113. package/dist/crons/index.cjs +39 -37
  114. package/dist/crons/index.cjs.map +1 -1
  115. package/dist/crons/index.d.cts +21 -8
  116. package/dist/crons/index.d.cts.map +1 -1
  117. package/dist/crons/index.d.mts +29 -13
  118. package/dist/crons/index.d.mts.map +1 -1
  119. package/dist/crons/index.mjs +37 -36
  120. package/dist/crons/index.mjs.map +1 -1
  121. package/dist/database/kysely.cjs +181 -0
  122. package/dist/database/kysely.cjs.map +1 -0
  123. package/dist/database/kysely.d.cts +152 -0
  124. package/dist/database/kysely.d.cts.map +1 -0
  125. package/dist/database/kysely.d.mts +152 -0
  126. package/dist/database/kysely.d.mts.map +1 -0
  127. package/dist/database/kysely.mjs +180 -0
  128. package/dist/database/kysely.mjs.map +1 -0
  129. package/dist/email.cjs +59 -0
  130. package/dist/email.cjs.map +1 -0
  131. package/dist/email.d.cts +50 -0
  132. package/dist/email.d.cts.map +1 -0
  133. package/dist/email.d.mts +50 -0
  134. package/dist/email.d.mts.map +1 -0
  135. package/dist/email.mjs +58 -0
  136. package/dist/email.mjs.map +1 -0
  137. package/dist/endpoints/index.cjs +21 -747
  138. package/dist/endpoints/index.d.cts +7 -343
  139. package/dist/endpoints/index.d.mts +7 -342
  140. package/dist/endpoints/index.mjs +11 -738
  141. package/dist/file-server.cjs +154 -0
  142. package/dist/file-server.cjs.map +1 -0
  143. package/dist/file-server.d.cts +156 -0
  144. package/dist/file-server.d.cts.map +1 -0
  145. package/dist/file-server.d.mts +156 -0
  146. package/dist/file-server.d.mts.map +1 -0
  147. package/dist/file-server.mjs +152 -0
  148. package/dist/file-server.mjs.map +1 -0
  149. package/dist/functions/index.cjs +4 -2
  150. package/dist/functions/index.d.cts +3 -2
  151. package/dist/functions/index.d.mts +3 -2
  152. package/dist/functions/index.mjs +4 -2
  153. package/dist/{functions-B-qt91O7.mjs → functions-CvT_q7Y4.mjs} +55 -51
  154. package/dist/functions-CvT_q7Y4.mjs.map +1 -0
  155. package/dist/{functions-C8i1kCMM.cjs → functions-DukjG8ov.cjs} +62 -57
  156. package/dist/functions-DukjG8ov.cjs.map +1 -0
  157. package/dist/index-7OcOWe75.d.cts +419 -0
  158. package/dist/index-7OcOWe75.d.cts.map +1 -0
  159. package/dist/index-Bt-F7u8L.d.mts +419 -0
  160. package/dist/index-Bt-F7u8L.d.mts.map +1 -0
  161. package/dist/{index-DP6fqv0I.d.mts → index-CPeqtKgq.d.mts} +48 -19
  162. package/dist/index-CPeqtKgq.d.mts.map +1 -0
  163. package/dist/{index-BGeTScmi.d.cts → index-Dadljnh_.d.cts} +36 -9
  164. package/dist/index-Dadljnh_.d.cts.map +1 -0
  165. package/dist/index.cjs +1 -1
  166. package/dist/index.d.cts +3 -3
  167. package/dist/index.d.mts +3 -3
  168. package/dist/index.mjs +1 -1
  169. package/dist/lazyAccessors-DM6HcXQk.mjs +175 -0
  170. package/dist/lazyAccessors-DM6HcXQk.mjs.map +1 -0
  171. package/dist/lazyAccessors-DrJj8NpA.cjs +223 -0
  172. package/dist/lazyAccessors-DrJj8NpA.cjs.map +1 -0
  173. package/dist/object-storage.cjs +48 -0
  174. package/dist/object-storage.cjs.map +1 -0
  175. package/dist/object-storage.d.cts +36 -0
  176. package/dist/object-storage.d.cts.map +1 -0
  177. package/dist/object-storage.d.mts +36 -0
  178. package/dist/object-storage.d.mts.map +1 -0
  179. package/dist/object-storage.mjs +47 -0
  180. package/dist/object-storage.mjs.map +1 -0
  181. package/dist/{processAudits-CKjjivyz.cjs → processAudits-Bc8rz6Ev.cjs} +3 -3
  182. package/dist/{processAudits-CKjjivyz.cjs.map → processAudits-Bc8rz6Ev.cjs.map} +1 -1
  183. package/dist/{processAudits-ySnizdMG.mjs → processAudits-D89tICM4.mjs} +1 -1
  184. package/dist/{processAudits-ySnizdMG.mjs.map → processAudits-D89tICM4.mjs.map} +1 -1
  185. package/dist/{publisher-BrFOF847.mjs → publisher-CGEo8UKD.mjs} +1 -1
  186. package/dist/{publisher-BrFOF847.mjs.map → publisher-CGEo8UKD.mjs.map} +1 -1
  187. package/dist/{publisher-lFQleddL.cjs → publisher-CqGsXB2X.cjs} +1 -1
  188. package/dist/{publisher-lFQleddL.cjs.map → publisher-CqGsXB2X.cjs.map} +1 -1
  189. package/dist/queue/index.cjs +92 -30
  190. package/dist/queue/index.cjs.map +1 -1
  191. package/dist/queue/index.d.cts +19 -4
  192. package/dist/queue/index.d.cts.map +1 -1
  193. package/dist/queue/index.d.mts +22 -6
  194. package/dist/queue/index.d.mts.map +1 -1
  195. package/dist/queue/index.mjs +90 -29
  196. package/dist/queue/index.mjs.map +1 -1
  197. package/dist/rest-api.cjs +187 -0
  198. package/dist/rest-api.cjs.map +1 -0
  199. package/dist/rest-api.d.cts +221 -0
  200. package/dist/rest-api.d.cts.map +1 -0
  201. package/dist/rest-api.d.mts +221 -0
  202. package/dist/rest-api.d.mts.map +1 -0
  203. package/dist/rest-api.mjs +186 -0
  204. package/dist/rest-api.mjs.map +1 -0
  205. package/dist/site.cjs +48 -0
  206. package/dist/site.cjs.map +1 -0
  207. package/dist/site.d.cts +101 -0
  208. package/dist/site.d.cts.map +1 -0
  209. package/dist/site.d.mts +101 -0
  210. package/dist/site.d.mts.map +1 -0
  211. package/dist/site.mjs +47 -0
  212. package/dist/site.mjs.map +1 -0
  213. package/dist/subscribers/index.cjs +35 -27
  214. package/dist/subscribers/index.cjs.map +1 -1
  215. package/dist/subscribers/index.d.cts +20 -5
  216. package/dist/subscribers/index.d.cts.map +1 -1
  217. package/dist/subscribers/index.d.mts +23 -7
  218. package/dist/subscribers/index.d.mts.map +1 -1
  219. package/dist/subscribers/index.mjs +34 -27
  220. package/dist/subscribers/index.mjs.map +1 -1
  221. package/dist/surfaceEnv-BFXEms2f.cjs +39 -0
  222. package/dist/surfaceEnv-BFXEms2f.cjs.map +1 -0
  223. package/dist/surfaceEnv-C3Ktahea.mjs +27 -0
  224. package/dist/surfaceEnv-C3Ktahea.mjs.map +1 -0
  225. package/dist/{telemetry-3vdxGn4q.d.mts → telemetry-C3L0iS28.d.cts} +2 -2
  226. package/dist/{telemetry-3vdxGn4q.d.mts.map → telemetry-C3L0iS28.d.cts.map} +1 -1
  227. package/dist/{telemetry-Dqx-D3F7.d.cts → telemetry-D7bVFLGi.d.mts} +2 -2
  228. package/dist/{telemetry-Dqx-D3F7.d.cts.map → telemetry-D7bVFLGi.d.mts.map} +1 -1
  229. package/dist/topic/index.cjs +56 -13
  230. package/dist/topic/index.cjs.map +1 -1
  231. package/dist/topic/index.d.cts +2 -2
  232. package/dist/topic/index.d.cts.map +1 -1
  233. package/dist/topic/index.d.mts +2 -2
  234. package/dist/topic/index.d.mts.map +1 -1
  235. package/dist/topic/index.mjs +54 -12
  236. package/dist/topic/index.mjs.map +1 -1
  237. package/dist/{types-BDNGr7pv.d.mts → types-BlAkSuGI.d.cts} +1 -1
  238. package/dist/{types-BDNGr7pv.d.mts.map → types-BlAkSuGI.d.cts.map} +1 -1
  239. package/dist/{types-BdAaYDvd.d.cts → types-aKksMEWL.d.mts} +1 -1
  240. package/dist/{types-BdAaYDvd.d.cts.map → types-aKksMEWL.d.mts.map} +1 -1
  241. package/dist/types.d.cts +1 -1
  242. package/dist/types.d.mts +1 -1
  243. package/package.json +155 -23
  244. package/CHANGELOG.md +0 -366
  245. package/dist/Construct-DCMuYOox.d.mts.map +0 -1
  246. package/dist/Construct-_1wX7p_Y.d.cts.map +0 -1
  247. package/dist/Construct-r0U2zBwW.mjs.map +0 -1
  248. package/dist/Construct-vXMZJgRp.cjs.map +0 -1
  249. package/dist/Endpoint-CAzNbDEt.d.cts.map +0 -1
  250. package/dist/Endpoint-CLPSIl6S.d.mts.map +0 -1
  251. package/dist/HonoEndpointAdaptor-CkJENANP.cjs.map +0 -1
  252. package/dist/HonoEndpointAdaptor-DJDT3PMx.mjs.map +0 -1
  253. package/dist/Queue-DaxjwmOQ.d.cts.map +0 -1
  254. package/dist/Queue-HBDf0fqz.d.mts.map +0 -1
  255. package/dist/Subscriber-D8Xm-86W.d.mts.map +0 -1
  256. package/dist/Topic-C5ZMfveW.d.cts.map +0 -1
  257. package/dist/Topic-DT10AqHk.d.mts.map +0 -1
  258. package/dist/endpoints/index.cjs.map +0 -1
  259. package/dist/endpoints/index.d.cts.map +0 -1
  260. package/dist/endpoints/index.d.mts.map +0 -1
  261. package/dist/endpoints/index.mjs.map +0 -1
  262. package/dist/functions-B-qt91O7.mjs.map +0 -1
  263. package/dist/functions-C8i1kCMM.cjs.map +0 -1
  264. package/dist/index-BGeTScmi.d.cts.map +0 -1
  265. package/dist/index-DP6fqv0I.d.mts.map +0 -1
  266. package/dist/lazyAccessors-DfqZR6C4.mjs.map +0 -1
  267. package/dist/lazyAccessors-DmTG8sQH.cjs.map +0 -1
  268. package/src/Construct.ts +0 -204
  269. package/src/__benchmarks__/build-time-optimization.bench.ts +0 -274
  270. package/src/__benchmarks__/endpoint.bench.ts +0 -494
  271. package/src/__benchmarks__/fixtures.ts +0 -241
  272. package/src/__benchmarks__/hono-adaptor.bench.ts +0 -533
  273. package/src/__benchmarks__/hono-server.bench.ts +0 -249
  274. package/src/__benchmarks__/response-builder.bench.ts +0 -428
  275. package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +0 -319
  276. package/src/__benchmarks__/strategies/strategy-c-middleware.ts +0 -530
  277. package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +0 -567
  278. package/src/__tests__/Construct.environment.spec.ts +0 -704
  279. package/src/__tests__/publisher.setting.spec.ts +0 -508
  280. package/src/__tests__/publisher.spec.ts +0 -452
  281. package/src/adaptors/aws.ts +0 -6
  282. package/src/adaptors/hono.ts +0 -1
  283. package/src/adaptors/testing.ts +0 -11
  284. package/src/crons/AWSScheduledFunction.ts +0 -73
  285. package/src/crons/Cron.ts +0 -149
  286. package/src/crons/CronBuilder.ts +0 -271
  287. package/src/crons/__tests__/AWSScheduledFunction.spec.ts +0 -152
  288. package/src/crons/__tests__/Cron.spec.ts +0 -464
  289. package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +0 -227
  290. package/src/crons/index.ts +0 -12
  291. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +0 -677
  292. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +0 -105
  293. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +0 -97
  294. package/src/endpoints/Authorizer.ts +0 -152
  295. package/src/endpoints/Endpoint.ts +0 -1287
  296. package/src/endpoints/EndpointBuilder.ts +0 -758
  297. package/src/endpoints/EndpointFactory.ts +0 -1148
  298. package/src/endpoints/HonoEndpointAdaptor.ts +0 -677
  299. package/src/endpoints/MswEndpointAdaptor.ts +0 -226
  300. package/src/endpoints/TestEndpointAdaptor.ts +0 -422
  301. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +0 -499
  302. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +0 -560
  303. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +0 -1304
  304. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +0 -626
  305. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +0 -732
  306. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +0 -296
  307. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +0 -951
  308. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.responseType.spec.ts +0 -111
  309. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +0 -307
  310. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +0 -629
  311. package/src/endpoints/__tests__/Authorizer.spec.ts +0 -286
  312. package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +0 -207
  313. package/src/endpoints/__tests__/Endpoint.headers.spec.ts +0 -187
  314. package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +0 -175
  315. package/src/endpoints/__tests__/Endpoint.spec.ts +0 -857
  316. package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +0 -448
  317. package/src/endpoints/__tests__/EndpointBuilder.responseType.spec.ts +0 -47
  318. package/src/endpoints/__tests__/EndpointBuilder.spec.ts +0 -523
  319. package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +0 -492
  320. package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +0 -509
  321. package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +0 -190
  322. package/src/endpoints/__tests__/EndpointFactory.spec.ts +0 -479
  323. package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +0 -155
  324. package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +0 -703
  325. package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +0 -632
  326. package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +0 -577
  327. package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +0 -1067
  328. package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +0 -317
  329. package/src/endpoints/__tests__/HonoEndpointAdaptor.pgboss-publisher.spec.ts +0 -289
  330. package/src/endpoints/__tests__/HonoEndpointAdaptor.responseType.spec.ts +0 -128
  331. package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +0 -1207
  332. package/src/endpoints/__tests__/MswEndpointAdaptor.spec.ts +0 -211
  333. package/src/endpoints/__tests__/ResponseBuilder.spec.ts +0 -235
  334. package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +0 -602
  335. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +0 -1044
  336. package/src/endpoints/__tests__/__snapshots__/HonoEndpointAdaptor.spec.ts.snap +0 -54
  337. package/src/endpoints/__tests__/endpoint-types.test.ts +0 -88
  338. package/src/endpoints/__tests__/helpers.spec.ts +0 -37
  339. package/src/endpoints/__tests__/lazyAccessors.spec.ts +0 -330
  340. package/src/endpoints/__tests__/processAudits.spec.ts +0 -631
  341. package/src/endpoints/audit.ts +0 -87
  342. package/src/endpoints/helpers.ts +0 -98
  343. package/src/endpoints/index.ts +0 -42
  344. package/src/endpoints/lazyAccessors.ts +0 -241
  345. package/src/endpoints/parseHonoQuery.ts +0 -16
  346. package/src/endpoints/parseQueryParams.ts +0 -32
  347. package/src/endpoints/processAudits.ts +0 -371
  348. package/src/endpoints/rls.ts +0 -67
  349. package/src/functions/AWSLambdaFunction.ts +0 -348
  350. package/src/functions/BaseFunctionBuilder.ts +0 -201
  351. package/src/functions/Function.ts +0 -238
  352. package/src/functions/FunctionBuilder.ts +0 -391
  353. package/src/functions/FunctionExecutionWrapper.ts +0 -216
  354. package/src/functions/TestFunctionAdaptor.ts +0 -217
  355. package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +0 -513
  356. package/src/functions/__tests__/Function.audits.spec.ts +0 -393
  357. package/src/functions/__tests__/Function.spec.ts +0 -477
  358. package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +0 -207
  359. package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +0 -480
  360. package/src/functions/index.ts +0 -12
  361. package/src/index.ts +0 -23
  362. package/src/publisher.ts +0 -93
  363. package/src/queue/AWSLambdaQueueAdaptor.ts +0 -162
  364. package/src/queue/Queue.ts +0 -128
  365. package/src/queue/QueueBuilder.ts +0 -115
  366. package/src/queue/TestQueueAdaptor.ts +0 -63
  367. package/src/queue/__tests__/QueueBuilder.spec.ts +0 -137
  368. package/src/queue/index.ts +0 -12
  369. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +0 -342
  370. package/src/subscribers/Subscriber.ts +0 -117
  371. package/src/subscribers/SubscriberBuilder.ts +0 -186
  372. package/src/subscribers/TestSubscriberAdaptor.ts +0 -133
  373. package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +0 -1018
  374. package/src/subscribers/__tests__/Subscriber.spec.ts +0 -430
  375. package/src/subscribers/__tests__/TestSubscriberAdaptor.spec.ts +0 -652
  376. package/src/subscribers/index.ts +0 -6
  377. package/src/telemetry.ts +0 -103
  378. package/src/topic/Topic.ts +0 -103
  379. package/src/topic/TopicBuilder.ts +0 -51
  380. package/src/topic/__tests__/TopicBuilder.spec.ts +0 -82
  381. package/src/topic/index.ts +0 -11
  382. package/src/types.ts +0 -13
  383. package/test.ts +0 -91
  384. package/tsconfig.json +0 -9
  385. package/tsdown.config.ts +0 -34
@@ -1,17 +1,20 @@
1
- import { Construct, ConstructType } from "./Construct-DCMuYOox.mjs";
1
+ import { Construct, ConstructType } from "./Construct-B-xc0SE9.mjs";
2
+ import { Consumable, ServicesOf } from "./construct-interface-BqwRNYA2.mjs";
2
3
  import { Service, ServiceRecord } from "@geekmidas/services";
3
4
  import { AuditStorage, AuditableAction as AuditableAction$1, Auditor } from "@geekmidas/audit";
4
5
  import { EventPublisher, MappedEvent } from "@geekmidas/events";
5
- import { Logger as Logger$1 } from "@geekmidas/logger";
6
- import { ComposableStandardSchema as ComposableStandardSchema$1, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
6
+ import * as _geekmidas_logger18 from "@geekmidas/logger";
7
+ import { Logger } from "@geekmidas/logger";
8
+ import * as _geekmidas_schema17 from "@geekmidas/schema";
9
+ import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
7
10
  import { StandardSchemaV1 } from "@standard-schema/spec";
8
11
 
9
12
  //#region src/functions/Function.d.ts
10
13
 
11
- declare class Function<TInput extends ComposableStandardSchema$1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger$1 = Logger$1, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>, Fn extends FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction> = FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>> extends Construct<TLogger, TEventPublisherServiceName, TEventPublisher, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage> {
14
+ declare class Function<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>, Fn extends FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction> = FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>> extends Construct<TLogger, TEventPublisherServiceName, TEventPublisher, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage> {
12
15
  readonly fn: Fn;
13
16
  input?: TInput | undefined;
14
- databaseService?: Service<TDatabaseServiceName, TDatabase>;
17
+ databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined;
15
18
  __IS_FUNCTION__: boolean;
16
19
  static isFunction(obj: any): obj is Function<any, any, any, any, any>;
17
20
  /**
@@ -41,9 +44,14 @@ declare class Function<TInput extends ComposableStandardSchema$1 | undefined = u
41
44
  parseOutput(output: unknown): Promise<InferStandardSchema<OutSchema>>;
42
45
  constructor(fn: Fn, timeout?: number,
43
46
  // Default timeout of 30 seconds
44
- type?: ConstructType, input?: TInput | undefined, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: MappedEvent<TEventPublisher, OutSchema>[], memorySize?: number, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>, databaseService?: Service<TDatabaseServiceName, TDatabase>);
47
+ type?: ConstructType, input?: TInput | undefined, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: MappedEvent<TEventPublisher, OutSchema>[], memorySize?: number, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>, databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined,
48
+ /**
49
+ * The construct ids `.dependsOn()` named — last, so no existing positional
50
+ * argument moves.
51
+ */
52
+ constructs?: string[]);
45
53
  }
46
- type FunctionHandler<TInput extends ComposableStandardSchema$1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger$1 = Logger$1, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> = (ctx: FunctionContext<TInput, TServices, TLogger, TDatabase, TAuditStorage, TAuditAction>) => OutSchema extends StandardSchemaV1 ? InferStandardSchema<OutSchema> | Promise<InferStandardSchema<OutSchema>> : any | Promise<any>;
54
+ type FunctionHandler<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> = (ctx: FunctionContext<TInput, TServices, TLogger, TDatabase, TAuditStorage, TAuditAction>) => OutSchema extends StandardSchemaV1 ? InferStandardSchema<OutSchema> | Promise<InferStandardSchema<OutSchema>> : any | Promise<any>;
47
55
  /**
48
56
  * Conditional type that adds `db` property only when TDatabase is configured.
49
57
  */
@@ -60,32 +68,41 @@ type AuditorContext<TAuditAction extends AuditableAction$1<string, unknown> = Au
60
68
  */
61
69
  auditor: Auditor<TAuditAction>;
62
70
  };
63
- type FunctionContext<Input extends ComposableStandardSchema$1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger$1 = Logger$1, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> = {
71
+ type FunctionContext<Input extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> = {
64
72
  services: ServiceRecord<TServices>;
65
73
  logger: TLogger;
66
74
  input: InferComposableStandardSchema<Input>;
67
75
  } & DatabaseContext<TDatabase> & AuditorContext<TAuditAction, TAuditStorage>;
68
76
  //#endregion
69
77
  //#region src/functions/BaseFunctionBuilder.d.ts
70
- declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSchema$1, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger$1 = Logger$1, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> {
78
+ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSchema, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> {
71
79
  type: ConstructType;
72
80
  protected inputSchema?: TInput;
73
81
  protected outputSchema?: OutSchema;
74
82
  protected _timeout?: number;
75
83
  _services: TServices;
84
+ /**
85
+ * The construct ids `.dependsOn()` was given.
86
+ *
87
+ * Beside the services rather than instead of them: a handler *runs* with
88
+ * clients and the manifest *records* which constructs it reaches, and
89
+ * dissolving one into the other is what lost the edges. Shared by every
90
+ * builder because every one of them can depend on something.
91
+ */
92
+ _constructs: string[];
76
93
  _logger: TLogger;
77
94
  protected _events: MappedEvent<TEventPublisher, OutSchema>[];
78
95
  protected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
79
96
  protected _auditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;
80
97
  protected _databaseService?: Service<TDatabaseServiceName, TDatabase>;
81
98
  static isStandardSchemaV1(s: unknown): s is StandardSchemaV1;
82
- static parseComposableStandardSchema<T extends ComposableStandardSchema$1 | undefined>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>>;
99
+ static parseComposableStandardSchema<T extends ComposableStandardSchema | undefined>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>>;
83
100
  constructor(type?: ConstructType);
84
101
  abstract services<T extends Service[]>(services: T): any;
85
- abstract logger<T extends Logger$1>(logger: T): any;
102
+ abstract logger<T extends Logger>(logger: T): any;
86
103
  timeout(timeout: number): this;
87
104
  abstract output<T extends StandardSchemaV1>(schema: T): any;
88
- abstract input<T extends ComposableStandardSchema$1>(schema: T): any;
105
+ abstract input<T extends ComposableStandardSchema>(schema: T): any;
89
106
  event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(event: TEvent): this;
90
107
  publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName>;
91
108
  auditor<T extends AuditStorage, TName extends string>(storage: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, T, TName, TDatabase, TDatabaseServiceName>;
@@ -93,21 +110,33 @@ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSche
93
110
  * Set the database service for this function.
94
111
  * The database will be available in the handler context as `db`.
95
112
  */
96
- database<T, TName extends string>(service: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName>;
113
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName>;
97
114
  }
98
115
  //# sourceMappingURL=BaseFunctionBuilder.d.ts.map
99
116
  //#endregion
100
117
  //#region src/functions/FunctionBuilder.d.ts
101
- declare class FunctionBuilder<TInput extends ComposableStandardSchema$1, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger$1 = Logger$1, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
118
+ declare class FunctionBuilder<TInput extends ComposableStandardSchema, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction$1<string, unknown> = AuditableAction$1<string, unknown>> extends BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName> {
102
119
  type: ConstructType;
103
120
  protected _memorySize?: number;
104
121
  constructor(type?: ConstructType);
105
122
  timeout(timeout: number): this;
106
123
  memorySize(memorySize: number): this;
107
124
  output<T extends StandardSchemaV1>(schema: T): FunctionBuilder<TInput, T, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
108
- input<T extends ComposableStandardSchema$1>(schema: T): FunctionBuilder<T, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
125
+ input<T extends ComposableStandardSchema>(schema: T): FunctionBuilder<T, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
126
+ /**
127
+ * Depend on constructs — a database, a bucket, a mail sender, a queue, a
128
+ * topic.
129
+ *
130
+ * It records the edge and dissolves each construct's client into the
131
+ * handler's service record under the construct's own id, so
132
+ * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
133
+ *
134
+ * Constructs only. A `Service` does not match the shape, which is what keeps
135
+ * env sniffing confined to `.services()` and the explicit lift.
136
+ */
137
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): FunctionBuilder<TInput, OutSchema, [...TServices, ...ServicesOf<T>], TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
109
138
  services<T extends Service[]>(services: T): FunctionBuilder<TInput, OutSchema, [...TServices, ...T], TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
110
- logger<T extends Logger$1>(logger: T): FunctionBuilder<TInput, OutSchema, TServices, T, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
139
+ logger<T extends Logger>(logger: T): FunctionBuilder<TInput, OutSchema, TServices, T, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
111
140
  publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
112
141
  auditor<T extends AuditStorage, TName extends string>(storage: Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, T, TName, TDatabase, TDatabaseServiceName, TAuditAction>;
113
142
  /**
@@ -119,15 +148,15 @@ declare class FunctionBuilder<TInput extends ComposableStandardSchema$1, OutSche
119
148
  * Set the database service for this function.
120
149
  * The database will be available in the handler context as `db`.
121
150
  */
122
- database<T, TName extends string>(service: Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName, TAuditAction>;
151
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName, TAuditAction>;
123
152
  handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>): Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>>;
124
153
  }
125
154
  //# sourceMappingURL=FunctionBuilder.d.ts.map
126
155
  //#endregion
127
156
  //#region src/functions/index.d.ts
128
- declare const f: FunctionBuilder<ComposableStandardSchema, undefined, [], Logger, undefined, string, undefined, string, undefined, string, AuditableAction<string, unknown>>;
157
+ declare const f: FunctionBuilder<_geekmidas_schema17.ComposableStandardSchema, undefined, [], _geekmidas_logger18.Logger, undefined, string, undefined, string, undefined, string, AuditableAction<string, unknown>>;
129
158
  //# sourceMappingURL=index.d.ts.map
130
159
 
131
160
  //#endregion
132
161
  export { BaseFunctionBuilder, Function, FunctionBuilder, FunctionContext, FunctionHandler, f };
133
- //# sourceMappingURL=index-DP6fqv0I.d.mts.map
162
+ //# sourceMappingURL=index-CPeqtKgq.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CPeqtKgq.d.mts","names":[],"sources":["../src/functions/Function.ts","../src/functions/BaseFunctionBuilder.ts","../src/functions/FunctionBuilder.ts","../src/functions/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AAgDgB,cADH,QACG,CAAA,eAAA,wBAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACG,OADH,EAAA,GAAA,EAAA,EAAA,gBAEC,MAFD,GAEU,MAFV,EAAA,kBAGG,gBAHH,GAAA,SAAA,GAAA,SAAA,EAAA,wBAIS,cAJT,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,mCAAA,MAAA,GAAA,MAAA,EAAA,sBAMO,YANP,GAAA,SAAA,GAAA,SAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,YAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,EAAA,qBAUM,iBAVN,CAAA,MAAA,EAAA,OAAA,CAAA,GAUyC,iBAVzC,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,WAcJ,eAdI,CAed,MAfc,EAgBd,SAhBc,EAiBd,OAjBc,EAkBd,SAlBc,EAmBd,SAnBc,EAoBd,aApBc,EAqBd,YArBc,CAAA,GAsBX,eAtBW,CAuBd,MAvBc,EAwBd,SAxBc,EAyBd,OAzBc,EA0Bd,SA1Bc,EA2Bd,SA3Bc,EA4Bd,aA5Bc,EA6Bd,YA7Bc,CAAA,CAAA,SA+BN,SA/BM,CAgCf,OAhCe,EAiCf,0BAjCe,EAkCf,eAlCe,EAmCf,SAnCe,EAoCf,SApCe,EAqCf,wBArCe,EAsCf,aAtCe,CAAA,CAAA;EAAwB,SACrB,EAAA,EA8FG,EA9FH;EAAO,KACT,CAAA,EAgGA,MAhGA,GAAA,SAAA;EAAM,eAAG,CAAA,EAwGU,OAxGV,CAwGkB,oBAxGlB,EAwGwC,SAxGxC,CAAA,GAAA,SAAA;EAAM,eACb,EAAA,OAAA;EAAgB,OACV,UAAA,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAsCY,QAtCZ,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA;EAAc;;;;;;;EAc5B,OACT,QAAA,CAAA,UAsCyB,gBAtCzB,CAAA,CAAA,MAAA,EAsCmD,CAtCnD,EAAA,IAAA,EAAA,OAAA,CAAA,EAsCmE,gBAAA,CAAA,MAtCnE,CAAA,OAAA,CAAA,GAsCmE,OAtCnE,CAsCmE,gBAAA,CAAA,MAtCnE,CAAA,OAAA,CAAA,CAAA;EAAS;;;;;;;;EAQA,OACT,WAAA,CAAA,UAyCkC,gBAzClC,CAAA,CAAA,MAAA,EA0CQ,CA1CR,EAAA,IAAA,EAAA,OAAA,CAAA,EA4CE,OA5CF,CA4CU,mBA5CV,CA4C8B,CA5C9B,CAAA,CAAA;EAAa;;;;;;;EAQL,WACT,CAAA,MAAA,EAAA,OAAA,CAAA,EAkDoC,OAlDpC,CAkD4C,mBAlD5C,CAkDgE,SAlDhE,CAAA,CAAA;EAAwB,WACxB,CAAA,EAAA,EAyDqB,EAzDrB,EAAA,OAAA,CAAA,EAAA,MAAA;EAAA;EAAa,IAyDQ,CAAA,EAEd,aAFc,EAAA,KAAA,CAAA,EAGL,MAHK,GAAA,SAAA,EAAA,YAAA,CAAA,EAIL,SAJK,EAAA,QAAA,CAAA,EAKV,SALU,EAAA,MAAA,CAAA,EAMZ,OANY,EAAA,gBAAA,CAAA,EAOD,OAPC,CAOO,0BAPP,EAOmC,eAPnC,CAAA,EAAA,MAAA,CAAA,EAQZ,WARY,CAQA,eARA,EAQiB,SARjB,CAAA,EAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,qBAAA,CAAA,EAUI,OAVJ,CAUY,wBAVZ,EAUsC,aAVtC,CAAA,EAAA,eAAA,CAAA,EAWc,OAXd,CAWsB,oBAXtB,EAW4C,SAX5C,CAAA,GAAA,SAAA;EAAE;;;;EAWmB,UAhEN,CAAA,EAAA,MAAA,EAAA;;AAegB,KAuEzC,eAvEyC,CAAA,eAwErC,wBAxEqC,GAAA,SAAA,GAAA,SAAA,EAAA,kBAyElC,OAzEkC,EAAA,GAAA,EAAA,EAAA,gBA0EpC,MA1EoC,GA0E3B,MA1E2B,EAAA,kBA2ElC,gBA3EkC,GAAA,SAAA,GAAA,SAAA,EAAA,YAAA,SAAA,EAAA,sBA6E9B,YA7E8B,GAAA,SAAA,GAAA,SAAA,EAAA,qBA8E/B,iBA9E+B,CAAA,MAAA,EAAA,OAAA,CAAA,GA8EI,iBA9EJ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,EAmF/C,eAnF+C,CAoFnD,MApFmD,EAqFnD,SArFmD,EAsFnD,OAtFmD,EAuFnD,SAvFmD,EAwFnD,aAxFmD,EAyFnD,YAzFmD,CAAA,EAAA,GA2FhD,SA3FgD,SA2F9B,gBA3F8B,GA4FlD,mBA5FkD,CA4F9B,SA5F8B,CAAA,GA4FjB,OA5FiB,CA4FT,mBA5FS,CA4FW,SA5FX,CAAA,CAAA,GAAA,GAAA,GA6F5C,OA7F4C,CAAA,GAAA,CAAA;;;;KAkGhD,eAtF+B,CAAA,SAAA,CAAA,GAsFF,SAtFE,SAAA,SAAA,GAAA,CAAA,CAAA,GAAA;EAAgB,EAAA,EAwF3C,SAvFC;CAAC;;;;KA4FN,cA3EwC,CAAA,qBA4EvB,iBA5EuB,CAAA,MAAA,EAAA,OAAA,CAAA,GA4EY,iBA5EZ,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,gBAAA,SAAA,CAAA,GAiFzC,aAjFyC,SAAA,SAAA,GAAA,CAAA,CAAA,GAAA;EAAmB;;;;EAWzC,OACN,EA4EL,OA5EK,CA4EG,YA5EH,CAAA;CAAS;AAEhB,KA6EE,eA7EF,CAAA,cA8EK,wBA9EL,GAAA,SAAA,GAAA,SAAA,EAAA,kBA+ES,OA/ET,EAAA,GAAA,EAAA,EAAA,gBAgFO,MAhFP,GAgFgB,MAhFhB,EAAA,YAAA,SAAA,EAAA,sBAkFa,YAlFb,GAAA,SAAA,GAAA,SAAA,EAAA,qBAmFY,iBAnFZ,CAAA,MAAA,EAAA,OAAA,CAAA,GAmF+C,iBAnF/C,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GAAA;EAAwB,QACL,EAuFlB,aAvFkB,CAuFJ,SAvFI,CAAA;EAA0B,MAAE,EAwFhD,OAxFgD;EAAe,KAAnD,EAyFb,6BAzFa,CAyFiB,KAzFjB,CAAA;CAAO,GA0FxB,eAzFkB,CAyFF,SAzFE,CAAA,GA0FrB,cA1FqB,CA0FN,YA1FM,EA0FQ,aA1FR,CAAA;;;uBCxIA,mCACN,4CACG,4DACA,gCACF,SAAS,gCACD,uHAEF;QA+DC;0BA1DC;2BACC;EDmBb,UAAA,QAAQ,CAAA,EAAA,MAAA;EAAA,SAAA,EChBF,SDgBE;EAAA;;;;;;;;EAWgB,WAAoB,EAAA,MAAA,EAAA;EAAe,OAKtE,ECtBe,ODsBf;EAAM,UACN,OAAA,ECrBkB,WDqBlB,CCrB8B,eDqB9B,ECrB+C,SDqB/C,CAAA,EAAA;EAAS,UACT,UAAA,CAAA,ECrBsB,ODqBtB,CCrB8B,0BDqB9B,ECrB0D,eDqB1D,CAAA;EAAO,UACP,eAAA,CAAA,ECrB2B,ODqB3B,CCrBmC,wBDqBnC,ECrB6D,aDqB7D,CAAA;EAAS,UACT,gBAAA,CAAA,ECrB4B,ODqB5B,CCrBoC,oBDqBpC,ECrB0D,SDqB1D,CAAA;EAAS,OACT,kBAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,ICpB2C,gBDoB3C;EAAa,OACb,6BAAA,CAAA,UCdU,wBDcV,GAAA,SAAA,CAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,ECbwB,CDaxB,CAAA,ECb4B,ODa5B,CCboC,6BDapC,CCbkE,CDalE,CAAA,CAAA;EAAY,WAPF,CAAA,IAAA,CAAA,ECuBY,aDvBZ;EAAe,SASzB,QAAA,CAAA,UCgB2B,ODhB3B,EAAA,CAAA,CAAA,QAAA,ECgBgD,CDhBhD,CAAA,EAAA,GAAA;EAAM,SACN,MAAA,CAAA,UCiByB,MDjBzB,CAAA,CAAA,MAAA,ECiByC,CDjBzC,CAAA,EAAA,GAAA;EAAS,OACT,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAO,SACP,MAAA,CAAA,UCqByB,gBDrBzB,CAAA,CAAA,MAAA,ECqBmD,CDrBnD,CAAA,EAAA,GAAA;EAAS,SACT,KAAA,CAAA,UCsBwB,wBDtBxB,CAAA,CAAA,MAAA,ECsB0D,CDtB1D,CAAA,EAAA,GAAA;EAAS,KACT,CAAA,eCuBoB,WDvBpB,CCuBgC,eDvBhC,ECuBiD,SDvBjD,CAAA,CAAA,CAAA,KAAA,ECwBO,MDxBP,CAAA,EAAA,IAAA;EAAa,SACb,CAAA,UC8BmB,cD9BnB,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,SAAA,EC+BW,OD/BX,CC+BmB,KD/BnB,EC+B0B,CD/B1B,CAAA,CAAA,ECgCE,mBDhCF,CCiCA,MDjCA,ECkCA,SDlCA,ECmCA,SDnCA,ECoCA,ODpCA,ECqCA,CDrCA,ECsCA,KDtCA,ECuCA,aDvCA,ECwCA,wBDxCA,ECyCA,SDzCA,EC0CA,oBD1CA,CAAA;EAAY,OAPT,CAAA,UCsEc,YDtEd,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,ECuEM,ODvEN,CCuEc,KDvEd,ECuEqB,CDvErB,CAAA,CAAA,ECwED,mBDxEC,CCyEH,MDzEG,EC0EH,SD1EG,EC2EH,SD3EG,EC4EH,OD5EG,EC6EH,eD7EG,EC8EH,0BD9EG,EC+EH,CD/EG,ECgFH,KDhFG,ECiFH,SDjFG,ECkFH,oBDlFG,CAAA;EAAe;;;;EAaV,QACT,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,EC8FS,UD9FT,CC8FoB,KD9FpB,EC8F2B,CD9F3B,CAAA,GC8FgC,OD9FhC,CC8FwC,KD9FxC,EC8F+C,CD9F/C,CAAA,CAAA,EC+FG,mBD/FH,CCgGC,MDhGD,ECiGC,SDjGD,ECkGC,SDlGD,ECmGC,ODnGD,ECoGC,eDpGD,ECqGC,0BDrGD,ECsGC,aDtGD,ECuGC,wBDvGD,ECwGC,CDxGD,ECyGC,KDzGD,CAAA;;;;;cEjEY,+BACG,4CACG,4DACA,gCACF,SAAS,gCACD,uHAEF,kLAID,qCAAmC,4CAI/C,oBACT,QACA,WACA,WACA,SACA,iBACA,4BACA,eACA,0BACA,WACA;QAIgC;EFDpB,UAAA,WAAQ,CAAA,EAAA,MAAA;EAAA,WAAA,CAAA,IAAA,CAAA,EECY,aFDZ;EAAA,OACL,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAwB,UACrB,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAO,MACT,CAAA,UEUC,gBFVD,CAAA,CAAA,MAAA,EEWP,CFXO,CAAA,EEYb,eFZa,CEaf,MFbe,EEcf,CFde,EEef,SFfe,EEgBf,OFhBe,EEiBf,eFjBe,EEkBf,0BFlBe,EEmBf,aFnBe,EEoBf,wBFpBe,EEqBf,SFrBe,EEsBf,oBFtBe,EEuBf,YFvBe,CAAA;EAAM,KAAG,CAAA,UE0CT,wBF1CS,CAAA,CAAA,MAAA,EE2ChB,CF3CgB,CAAA,EE4CtB,eF5CsB,CE6CxB,CF7CwB,EE8CxB,SF9CwB,EE+CxB,SF/CwB,EEgDxB,OFhDwB,EEiDxB,eFjDwB,EEkDxB,0BFlDwB,EEmDxB,aFnDwB,EEoDxB,wBFpDwB,EEqDxB,SFrDwB,EEsDxB,oBFtDwB,EEuDxB,YFvDwB,CAAA;EAAM;;;;;;;;;;;EAkBjB,SACb,CAAA,gBAAA,SEkEkC,UFlElC,EAAA,CAAA,CAAA,UAAA,EEmEY,CFnEZ,CAAA,EEoEE,eFpEF,CEqEA,MFrEA,EEsEA,SFtEA,EAAA,CAPU,GE8EN,SF9EM,EASV,GEqEkB,UFrElB,CEqE6B,CFrE7B,CAAA,CAAM,EEsEN,OFrEA,EEsEA,eFtEA,EEuEA,0BFvEA,EEwEA,aFxEA,EEyEA,wBFzEA,EE0EA,SF1EA,EE2EA,oBF3EA,EE4EA,YF5EA,CAAA;EAAS,QACT,CAAA,UE2GkB,OF3GlB,EAAA,CAAA,CAAA,QAAA,EE4GU,CF5GV,CAAA,EE6GE,eF7GF,CE8GA,MF9GA,EE+GA,SF/GA,EAAA,CACA,GE+GI,SF/GJ,EACA,GE8GkB,CF9GlB,CAAS,EE+GT,OF9GA,EE+GA,eF/GA,EEgHA,0BFhHA,EEiHA,aFjHA,EEkHA,wBFlHA,EEmHA,SFnHA,EEoHA,oBFpHA,EEqHA,YFrHA,CAAA;EAAa,MACb,CAAA,UE0IgB,MF1IhB,CAAA,CAAA,MAAA,EE2IQ,CF3IR,CAAA,EE4IE,eF5IF,CE6IA,MF7IA,EE8IA,SF9IA,EE+IA,SF/IA,EEgJA,CFhJA,EEiJA,eFjJA,EEkJA,0BFlJA,EEmJA,aFnJA,EEoJA,wBFpJA,EEqJA,SFrJA,EEsJA,oBFtJA,EEuJA,YFvJA,CAAA;EAAY,SAPT,CAAA,UEiLyB,cFjLzB,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,SAAA,EEkLQ,OFlLR,CEkLgB,KFlLhB,EEkLuB,CFlLvB,CAAA,CAAA,EEmLD,eFnLC,CEoLH,MFpLG,EEqLH,SFrLG,EEsLH,SFtLG,EEuLH,OFvLG,EEwLH,CFxLG,EEyLH,KFzLG,EE0LH,aF1LG,EE2LH,wBF3LG,EE4LH,SF5LG,EE6LH,oBF7LG,EE8LH,YF9LG,CAAA;EAAe,OAUnB,CAAA,UE0M2B,YF1M3B,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,EE2MU,OF3MV,CE2MkB,KF3MlB,EE2MyB,CF3MzB,CAAA,CAAA,EE4MG,eF5MH,CE6MC,MF7MD,EE8MC,SF9MD,EE+MC,SF/MD,EEgNC,OFhND,EEiNC,eFjND,EEkNC,0BFlND,EEmNC,CFnND,EEoNC,KFpND,EEqNC,SFrND,EEsNC,oBFtND,EEuNC,YFvND,CAAA;EAAO;;;;EAIE,OACT,CAAA,UE4OkB,iBF5OlB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,EE4OuD,eF5OvD,CE6OC,MF7OD,EE8OC,SF9OD,EE+OC,SF/OD,EEgPC,OFhPD,EEiPC,eFjPD,EEkPC,0BFlPD,EEmPC,aFnPD,EEoPC,wBFpPD,EEqPC,SFrPD,EEsPC,oBFtPD,EEuPC,CFvPD,CAAA;EAAwB;;;;EAqEuC,QAAE,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,EEwMxD,UFxMwD,CEwM7C,KFxM6C,EEwMtC,CFxMsC,CAAA,GEwMjC,OFxMiC,CEwMzB,KFxMyB,EEwMlB,CFxMkB,CAAA,CAAA,EEyM9D,eFzM8D,CE0MhE,MF1MgE,EE2MhE,SF3MgE,EE4MhE,SF5MgE,EE6MhE,OF7MgE,EE8MhE,eF9MgE,EE+MhE,0BF/MgE,EEgNhE,aFhNgE,EEiNhE,wBFjNgE,EEkNhE,CFlNgE,EEmNhE,KFnNgE,EEoNhE,YFpNgE,CAAA;EAAS,MAAvC,CAAA,EAAA,EE6O9B,eF7O8B,CE8OjC,MF9OiC,EE+OjC,SF/OiC,EEgPjC,OFhPiC,EEiPjC,SFjPiC,EEkPjC,SFlPiC,EEmPjC,aFnPiC,EEoPjC,YFpPiC,CAAA,CAAA,EEsPhC,QFtPgC,CEuPlC,MFvPkC,EEwPlC,SFxPkC,EEyPlC,OFzPkC,EE0PlC,SF1PkC,EE2PlC,eF3PkC,EE4PlC,0BF5PkC,EE6PlC,aF7PkC,EE8PlC,wBF9PkC,EE+PlC,SF/PkC,EEgQlC,oBFhQkC,EEiQlC,YFjQkC,EEkQlC,eFlQkC,CEmQjC,MFnQiC,EEoQjC,SFpQiC,EEqQjC,OFrQiC,EEsQjC,SFtQiC,EEuQjC,SFvQiC,EEwQjC,aFxQiC,EEyQjC,YFzQiC,CAAA,CAAA;;;;;cG/IvB,GAAC,gBAAwB,mBAAA,CAAxB,wBAAA,iBAAA,mBAAA,CAAA,MAAA,2DAAA"}
@@ -1,12 +1,13 @@
1
- import { Construct, ConstructType } from "./Construct-_1wX7p_Y.cjs";
1
+ import { Construct, ConstructType } from "./Construct-WhCXIOPV.cjs";
2
+ import { Consumable, ServicesOf } from "./construct-interface-D2nNkHUN.cjs";
2
3
  import { EventPublisher, MappedEvent } from "@geekmidas/events";
3
- import * as _geekmidas_logger3 from "@geekmidas/logger";
4
+ import * as _geekmidas_logger16 from "@geekmidas/logger";
4
5
  import { Logger } from "@geekmidas/logger";
5
- import * as _geekmidas_schema2 from "@geekmidas/schema";
6
+ import * as _geekmidas_schema15 from "@geekmidas/schema";
6
7
  import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
7
8
  import { Service, ServiceRecord } from "@geekmidas/services";
8
9
  import { StandardSchemaV1 } from "@standard-schema/spec";
9
- import * as _geekmidas_audit4 from "@geekmidas/audit";
10
+ import * as _geekmidas_audit17 from "@geekmidas/audit";
10
11
  import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
11
12
 
12
13
  //#region src/functions/Function.d.ts
@@ -44,7 +45,12 @@ declare class Function<TInput extends ComposableStandardSchema | undefined = und
44
45
  parseOutput(output: unknown): Promise<InferStandardSchema<OutSchema>>;
45
46
  constructor(fn: Fn, timeout?: number,
46
47
  // Default timeout of 30 seconds
47
- type?: ConstructType, input?: TInput | undefined, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: MappedEvent<TEventPublisher, OutSchema>[], memorySize?: number, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>, databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined);
48
+ type?: ConstructType, input?: TInput | undefined, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: MappedEvent<TEventPublisher, OutSchema>[], memorySize?: number, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>, databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined,
49
+ /**
50
+ * The construct ids `.dependsOn()` named — last, so no existing positional
51
+ * argument moves.
52
+ */
53
+ constructs?: string[]);
48
54
  }
49
55
  type FunctionHandler<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> = (ctx: FunctionContext<TInput, TServices, TLogger, TDatabase, TAuditStorage, TAuditAction>) => OutSchema extends StandardSchemaV1 ? InferStandardSchema<OutSchema> | Promise<InferStandardSchema<OutSchema>> : any | Promise<any>;
50
56
  /**
@@ -76,6 +82,15 @@ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSche
76
82
  protected outputSchema?: OutSchema;
77
83
  protected _timeout?: number;
78
84
  _services: TServices;
85
+ /**
86
+ * The construct ids `.dependsOn()` was given.
87
+ *
88
+ * Beside the services rather than instead of them: a handler *runs* with
89
+ * clients and the manifest *records* which constructs it reaches, and
90
+ * dissolving one into the other is what lost the edges. Shared by every
91
+ * builder because every one of them can depend on something.
92
+ */
93
+ _constructs: string[];
79
94
  _logger: TLogger;
80
95
  protected _events: MappedEvent<TEventPublisher, OutSchema>[];
81
96
  protected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
@@ -96,7 +111,7 @@ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSche
96
111
  * Set the database service for this function.
97
112
  * The database will be available in the handler context as `db`.
98
113
  */
99
- database<T, TName extends string>(service: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName>;
114
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName>;
100
115
  }
101
116
  //# sourceMappingURL=BaseFunctionBuilder.d.ts.map
102
117
  //#endregion
@@ -109,6 +124,18 @@ declare class FunctionBuilder<TInput extends ComposableStandardSchema, OutSchema
109
124
  memorySize(memorySize: number): this;
110
125
  output<T extends StandardSchemaV1>(schema: T): FunctionBuilder<TInput, T, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
111
126
  input<T extends ComposableStandardSchema>(schema: T): FunctionBuilder<T, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
127
+ /**
128
+ * Depend on constructs — a database, a bucket, a mail sender, a queue, a
129
+ * topic.
130
+ *
131
+ * It records the edge and dissolves each construct's client into the
132
+ * handler's service record under the construct's own id, so
133
+ * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
134
+ *
135
+ * Constructs only. A `Service` does not match the shape, which is what keeps
136
+ * env sniffing confined to `.services()` and the explicit lift.
137
+ */
138
+ dependsOn<const T extends readonly Consumable[]>(constructs: T): FunctionBuilder<TInput, OutSchema, [...TServices, ...ServicesOf<T>], TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
112
139
  services<T extends Service[]>(services: T): FunctionBuilder<TInput, OutSchema, [...TServices, ...T], TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
113
140
  logger<T extends Logger>(logger: T): FunctionBuilder<TInput, OutSchema, TServices, T, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
114
141
  publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction>;
@@ -122,15 +149,15 @@ declare class FunctionBuilder<TInput extends ComposableStandardSchema, OutSchema
122
149
  * Set the database service for this function.
123
150
  * The database will be available in the handler context as `db`.
124
151
  */
125
- database<T, TName extends string>(service: Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName, TAuditAction>;
152
+ database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): FunctionBuilder<TInput, OutSchema, TServices, TLogger, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, T, TName, TAuditAction>;
126
153
  handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>): Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>>;
127
154
  }
128
155
  //# sourceMappingURL=FunctionBuilder.d.ts.map
129
156
  //#endregion
130
157
  //#region src/functions/index.d.ts
131
- declare const f: FunctionBuilder<_geekmidas_schema2.ComposableStandardSchema, undefined, [], _geekmidas_logger3.Logger, undefined, string, undefined, string, undefined, string, _geekmidas_audit4.AuditableAction<string, unknown>>;
158
+ declare const f: FunctionBuilder<_geekmidas_schema15.ComposableStandardSchema, undefined, [], _geekmidas_logger16.Logger, undefined, string, undefined, string, undefined, string, _geekmidas_audit17.AuditableAction<string, unknown>>;
132
159
  //# sourceMappingURL=index.d.ts.map
133
160
 
134
161
  //#endregion
135
162
  export { BaseFunctionBuilder, Function, FunctionBuilder, FunctionContext, FunctionHandler, f };
136
- //# sourceMappingURL=index-BGeTScmi.d.cts.map
163
+ //# sourceMappingURL=index-Dadljnh_.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dadljnh_.d.cts","names":[],"sources":["../src/functions/Function.ts","../src/functions/BaseFunctionBuilder.ts","../src/functions/FunctionBuilder.ts","../src/functions/index.ts"],"sourcesContent":[],"mappings":"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3CA,CAAA;EAAa,OACb,CAAA,UC+DiB,YD/DjB,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,ECgES,ODhET,CCgEiB,KDhEjB,ECgEwB,CDhExB,CAAA,CAAA,ECiEE,mBDjEF,CCkEA,MDlEA,ECmEA,SDnEA,ECoEA,SDpEA,ECqEA,ODrEA,ECsEA,eDtEA,ECuEA,0BDvEA,ECwEA,CDxEA,ECyEA,KDzEA,EC0EA,SD1EA,EC2EA,oBD3EA,CAAA;EAAY;;;;EAKE,QACf,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,EC+FS,UD/FT,CC+FoB,KD/FpB,EC+F2B,CD/F3B,CAAA,GC+FgC,OD/FhC,CC+FwC,KD/FxC,EC+F+C,CD/F/C,CAAA,CAAA,ECgGG,mBDhGH,CCiGC,MDjGD,ECkGC,SDlGD,ECmGC,SDnGD,ECoGC,ODpGD,ECqGC,eDrGD,ECsGC,0BDtGD,ECuGC,aDvGD,ECwGC,wBDxGD,ECyGC,CDzGD,EC0GC,KD1GD,CAAA;;;;;cEhEY,+BACG,4CACG,4DACA,gCACF,SAAS,gCACD,uHAEF,kLAID,mCAAmC,0CAI/C,oBACT,QACA,WACA,WACA,SACA,iBACA,4BACA,eACA,0BACA,WACA;QAIgC;;EFDpB,WAAQ,CAAA,IAAA,CAAA,EECY,aFDZ;EAAA,OAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAA,UACL,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAwB,MACrB,CAAA,UEWD,gBFXC,CAAA,CAAA,MAAA,EEYT,CFZS,CAAA,EEaf,eFbe,CEcjB,MFdiB,EEejB,CFfiB,EEgBjB,SFhBiB,EEiBjB,OFjBiB,EEkBjB,eFlBiB,EEmBjB,0BFnBiB,EEoBjB,aFpBiB,EEqBjB,wBFrBiB,EEsBjB,SFtBiB,EEuBjB,oBFvBiB,EEwBjB,YFxBiB,CAAA;EAAO,KACT,CAAA,UE0CA,wBF1CA,CAAA,CAAA,MAAA,EE2CP,CF3CO,CAAA,EE4Cb,eF5Ca,CE6Cf,CF7Ce,EE8Cf,SF9Ce,EE+Cf,SF/Ce,EEgDf,OFhDe,EEiDf,eFjDe,EEkDf,0BFlDe,EEmDf,aFnDe,EEoDf,wBFpDe,EEqDf,SFrDe,EEsDf,oBFtDe,EEuDf,YFvDe,CAAA;EAAM;;;;;;;;;;;EAiBZ,SACT,CAAA,gBAAA,SEmEkC,UFnElC,EAAA,CAAA,CAAA,UAAA,EEoEY,CFpEZ,CAAA,EEqEE,eFrEF,CEsEA,MFtEA,EEuEA,SFvEA,EAAA,CACA,GEuEI,SFvEJ,EAPU,GE8EQ,UF9ER,CE8EmB,CF9EnB,CAAA,CAAe,EE+EzB,OFtEA,EEuEA,eFvEA,EEwEA,0BFxEA,EEyEA,aFzEA,EE0EA,wBF1EA,EE2EA,SF3EA,EE4EA,oBF5EA,EE6EA,YF7EA,CAAA;EAAM,QACN,CAAA,UE4GkB,OF5GlB,EAAA,CAAA,CAAA,QAAA,EE6GU,CF7GV,CAAA,EE8GE,eF9GF,CE+GA,MF/GA,EEgHA,SFhHA,EAAA,CACA,GEgHI,SFhHJ,EACA,GE+GkB,CF/GlB,CAAS,EEgHT,OF/GA,EEgHA,eFhHA,EEiHA,0BFjHA,EEkHA,aFlHA,EEmHA,wBFnHA,EEoHA,SFpHA,EEqHA,oBFrHA,EEsHA,YFtHA,CAAA;EAAS,MACT,CAAA,UE2IgB,MF3IhB,CAAA,CAAA,MAAA,EE4IQ,CF5IR,CAAA,EE6IE,eF7IF,CE8IA,MF9IA,EE+IA,SF/IA,EEgJA,SFhJA,EEiJA,CFjJA,EEkJA,eFlJA,EEmJA,0BFnJA,EEoJA,aFpJA,EEqJA,wBFrJA,EEsJA,SFtJA,EEuJA,oBFvJA,EEwJA,YFxJA,CAAA;EAAa,SACb,CAAA,UE0K4B,cF1K5B,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,SAAA,EE2KW,OF3KX,CE2KmB,KF3KnB,EE2K0B,CF3K1B,CAAA,CAAA,EE4KE,eF5KF,CE6KA,MF7KA,EE8KA,SF9KA,EE+KA,SF/KA,EEgLA,OFhLA,EEiLA,CFjLA,EEkLA,KFlLA,EEmLA,aFnLA,EEoLA,wBFpLA,EEqLA,SFrLA,EEsLA,oBFtLA,EEuLA,YFvLA,CAAA;EAAY,OAPT,CAAA,UEoNuB,YFpNvB,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,EEqNM,OFrNN,CEqNc,KFrNd,EEqNqB,CFrNrB,CAAA,CAAA,EEsND,eFtNC,CEuNH,MFvNG,EEwNH,SFxNG,EEyNH,SFzNG,EE0NH,OF1NG,EE2NH,eF3NG,EE4NH,0BF5NG,EE6NH,CF7NG,EE8NH,KF9NG,EE+NH,SF/NG,EEgOH,oBFhOG,EEiOH,YFjOG,CAAA;EAAe;;;;EAaV,OACT,CAAA,UE6OkB,eF7OlB,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,EE6OuD,eF7OvD,CE8OC,MF9OD,EE+OC,SF/OD,EEgPC,SFhPD,EEiPC,OFjPD,EEkPC,eFlPD,EEmPC,0BFnPD,EEoPC,aFpPD,EEqPC,wBFrPD,EEsPC,SFtPD,EEuPC,oBFvPD,EEwPC,CFxPD,CAAA;EAAS;;;;EA8Da,QAQqB,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,MAAA,EEwMlC,UFxMkC,CEwMvB,KFxMuB,EEwMhB,CFxMgB,CAAA,GEwMX,OFxMW,CEwMH,KFxMG,EEwMI,CFxMJ,CAAA,CAAA,EEyMxC,eFzMwC,CE0M1C,MF1M0C,EE2M1C,SF3M0C,EE4M1C,SF5M0C,EE6M1C,OF7M0C,EE8M1C,eF9M0C,EE+M1C,0BF/M0C,EEgN1C,aFhN0C,EEiN1C,wBFjN0C,EEkN1C,CFlN0C,EEmN1C,KFnN0C,EEoN1C,YFpN0C,CAAA;EAAoB,MAAE,CAAA,EAAA,EE6O5D,eF7O4D,CE8O/D,MF9O+D,EE+O/D,SF/O+D,EEgP/D,OFhP+D,EEiP/D,SFjP+D,EEkP/D,SFlP+D,EEmP/D,aFnP+D,EEoP/D,YFpP+D,CAAA,CAAA,EEsP9D,QFtP8D,CEuPhE,MFvPgE,EEwPhE,SFxPgE,EEyPhE,OFzPgE,EE0PhE,SF1PgE,EE2PhE,eF3PgE,EE4PhE,0BF5PgE,EE6PhE,aF7PgE,EE8PhE,wBF9PgE,EE+PhE,SF/PgE,EEgQhE,oBFhQgE,EEiQhE,YFjQgE,EEkQhE,eFlQgE,CEmQ/D,MFnQ+D,EEoQ/D,SFpQ+D,EEqQ/D,OFrQ+D,EEsQ/D,SFtQ+D,EEuQ/D,SFvQ+D,EEwQ/D,aFxQ+D,EEyQ/D,YFzQ+D,CAAA,CAAA;;;;;cG/IrD,GAAC,gBAAwB,mBAAA,CAAxB,wBAAA,iBAAA,mBAAA,CAAA,MAAA,2DAAA,kBAAA,CAAA"}
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_Construct = require('./Construct-vXMZJgRp.cjs');
1
+ const require_Construct = require('./Construct-roId57cU.cjs');
2
2
 
3
3
  exports.Construct = require_Construct.Construct;
4
4
  exports.ConstructType = require_Construct.ConstructType;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-_1wX7p_Y.cjs";
2
- import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-BdAaYDvd.cjs";
3
- import { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "./telemetry-Dqx-D3F7.cjs";
1
+ import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-WhCXIOPV.cjs";
2
+ import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-BlAkSuGI.cjs";
3
+ import { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "./telemetry-C3L0iS28.cjs";
4
4
  import { Service, ServiceRecord } from "@geekmidas/services";
5
5
  export { Construct, ConstructType, HttpMethod, LowerHttpMethod, RemoveUndefined, Service, ServiceRecord, Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse, sniffService, snifferContext };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-DCMuYOox.mjs";
2
- import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-BDNGr7pv.mjs";
3
- import { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "./telemetry-3vdxGn4q.mjs";
1
+ import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-B-xc0SE9.mjs";
2
+ import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-aKksMEWL.mjs";
3
+ import { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "./telemetry-D7bVFLGi.mjs";
4
4
  import { Service, ServiceRecord } from "@geekmidas/services";
5
5
  export { Construct, ConstructType, HttpMethod, LowerHttpMethod, RemoveUndefined, Service, ServiceRecord, Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse, sniffService, snifferContext };
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-r0U2zBwW.mjs";
1
+ import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-HmWM6YYu.mjs";
2
2
 
3
3
  export { Construct, ConstructType, sniffService, snifferContext };
@@ -0,0 +1,175 @@
1
+ import { getCookie } from "hono/cookie";
2
+
3
+ //#region src/endpoints/lazyAccessors.ts
4
+ /**
5
+ * Create a lazy header accessor for Hono.
6
+ * Uses `c.req.header(name)` for single lookups (native, case-insensitive).
7
+ * Only calls `c.req.header()` to get all headers when needed.
8
+ */
9
+ function createHonoHeaders(c) {
10
+ let allHeaders = null;
11
+ return (key) => {
12
+ if (key !== void 0) return c.req.header(key);
13
+ if (!allHeaders) allHeaders = c.req.header();
14
+ return allHeaders;
15
+ };
16
+ }
17
+ /**
18
+ * Create a lazy cookie accessor for Hono.
19
+ * Uses `getCookie(c, name)` for single lookups (native).
20
+ * Only parses the cookie header when all cookies are requested.
21
+ */
22
+ function createHonoCookies(c) {
23
+ let allCookies = null;
24
+ return (name) => {
25
+ if (name !== void 0) return getCookie(c, name);
26
+ if (!allCookies) {
27
+ allCookies = {};
28
+ const cookieHeader = c.req.header("cookie");
29
+ if (cookieHeader) for (const part of cookieHeader.split(";")) {
30
+ const trimmed = part.trim();
31
+ const eqIndex = trimmed.indexOf("=");
32
+ if (eqIndex > 0) {
33
+ const key = trimmed.slice(0, eqIndex);
34
+ const value = trimmed.slice(eqIndex + 1);
35
+ allCookies[key] = value;
36
+ }
37
+ }
38
+ }
39
+ return allCookies;
40
+ };
41
+ }
42
+ /**
43
+ * Create a lazy header accessor for API Gateway events.
44
+ * Handles case-insensitive lookups.
45
+ */
46
+ function createApiGatewayHeaders(headers) {
47
+ let normalizedHeaders = null;
48
+ const normalize = () => {
49
+ if (!normalizedHeaders) {
50
+ normalizedHeaders = {};
51
+ if (headers) {
52
+ for (const [k, v] of Object.entries(headers)) if (v !== void 0) normalizedHeaders[k.toLowerCase()] = v;
53
+ }
54
+ }
55
+ return normalizedHeaders;
56
+ };
57
+ return (key) => {
58
+ if (key !== void 0) {
59
+ if (headers) {
60
+ const direct = headers[key] ?? headers[key.toLowerCase()];
61
+ if (direct !== void 0) return direct;
62
+ return normalize()[key.toLowerCase()];
63
+ }
64
+ return void 0;
65
+ }
66
+ return normalize();
67
+ };
68
+ }
69
+ /**
70
+ * Create a lazy cookie accessor for API Gateway events.
71
+ * Decodes URL-encoded values to match browser behavior.
72
+ */
73
+ function createApiGatewayCookies(cookies, cookieHeader) {
74
+ let parsed = null;
75
+ const parse = () => {
76
+ if (!parsed) {
77
+ parsed = {};
78
+ if (cookies) for (const cookie of cookies) {
79
+ const eqIndex = cookie.indexOf("=");
80
+ if (eqIndex > 0) {
81
+ const key = cookie.slice(0, eqIndex);
82
+ const value = cookie.slice(eqIndex + 1);
83
+ parsed[key] = decodeURIComponent(value);
84
+ }
85
+ }
86
+ else if (cookieHeader) for (const part of cookieHeader.split(";")) {
87
+ const trimmed = part.trim();
88
+ const eqIndex = trimmed.indexOf("=");
89
+ if (eqIndex > 0) {
90
+ const key = trimmed.slice(0, eqIndex);
91
+ const value = trimmed.slice(eqIndex + 1);
92
+ parsed[key] = decodeURIComponent(value);
93
+ }
94
+ }
95
+ }
96
+ return parsed;
97
+ };
98
+ return (name) => {
99
+ if (name !== void 0) return parse()[name];
100
+ return parse();
101
+ };
102
+ }
103
+ /**
104
+ * Create a lazy header accessor for plain object headers (test adaptor, etc).
105
+ * Headers are already available as an object, just provide lazy access.
106
+ */
107
+ function createObjectHeaders(headers) {
108
+ let normalized = null;
109
+ return (key) => {
110
+ if (key !== void 0) {
111
+ if (headers) {
112
+ const direct = headers[key] ?? headers[key.toLowerCase()];
113
+ if (direct !== void 0) return direct;
114
+ }
115
+ if (!normalized && headers) {
116
+ normalized = {};
117
+ for (const [k, v] of Object.entries(headers)) normalized[k.toLowerCase()] = v;
118
+ }
119
+ return normalized?.[key.toLowerCase()];
120
+ }
121
+ if (!normalized && headers) {
122
+ normalized = {};
123
+ for (const [k, v] of Object.entries(headers)) normalized[k.toLowerCase()] = v;
124
+ }
125
+ return normalized ?? {};
126
+ };
127
+ }
128
+ /**
129
+ * Create a lazy cookie accessor from a cookie header string.
130
+ * Decodes URL-encoded values to match browser behavior.
131
+ */
132
+ function createCookieHeaderAccessor(cookieHeader) {
133
+ let parsed = null;
134
+ const parse = () => {
135
+ if (!parsed) {
136
+ parsed = {};
137
+ if (cookieHeader) for (const part of cookieHeader.split(";")) {
138
+ const trimmed = part.trim();
139
+ const eqIndex = trimmed.indexOf("=");
140
+ if (eqIndex > 0) {
141
+ const key = trimmed.slice(0, eqIndex);
142
+ const value = trimmed.slice(eqIndex + 1);
143
+ parsed[key] = decodeURIComponent(value);
144
+ }
145
+ }
146
+ }
147
+ return parsed;
148
+ };
149
+ return (name) => {
150
+ if (name !== void 0) return parse()[name];
151
+ return parse();
152
+ };
153
+ }
154
+ /**
155
+ * Create a no-op header accessor (for minimal endpoints that don't use headers).
156
+ */
157
+ function createNoopHeaders() {
158
+ return (key) => {
159
+ if (key !== void 0) return void 0;
160
+ return {};
161
+ };
162
+ }
163
+ /**
164
+ * Create a no-op cookie accessor (for minimal endpoints that don't use cookies).
165
+ */
166
+ function createNoopCookies() {
167
+ return (name) => {
168
+ if (name !== void 0) return void 0;
169
+ return {};
170
+ };
171
+ }
172
+
173
+ //#endregion
174
+ export { createApiGatewayCookies, createApiGatewayHeaders, createCookieHeaderAccessor, createHonoCookies, createHonoHeaders, createNoopCookies, createNoopHeaders, createObjectHeaders };
175
+ //# sourceMappingURL=lazyAccessors-DM6HcXQk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazyAccessors-DM6HcXQk.mjs","names":["c: Context","allHeaders: Record<string, string> | null","key?: string","allCookies: Record<string, string> | null","name?: string","headers: Record<string, string | undefined> | null | undefined","normalizedHeaders: Record<string, string> | null","cookies: string[] | undefined","cookieHeader: string | undefined","parsed: Record<string, string> | null","headers: Record<string, string> | undefined","normalized: Record<string, string> | null"],"sources":["../src/endpoints/lazyAccessors.ts"],"sourcesContent":["/**\n * Lazy header and cookie accessors for different adaptors.\n *\n * Instead of parsing all headers/cookies upfront, these accessors\n * use native adaptor methods for single lookups and only parse\n * everything when `header()` or `cookie()` is called without arguments.\n */\nimport type { Context } from 'hono';\nimport { getCookie } from 'hono/cookie';\nimport type { CookieFn, HeaderFn } from './Endpoint';\n\n/**\n * Create a lazy header accessor for Hono.\n * Uses `c.req.header(name)` for single lookups (native, case-insensitive).\n * Only calls `c.req.header()` to get all headers when needed.\n */\nexport function createHonoHeaders(c: Context): HeaderFn {\n\tlet allHeaders: Record<string, string> | null = null;\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Single header lookup - use native Hono method (case-insensitive)\n\t\t\treturn c.req.header(key);\n\t\t}\n\t\t// Get all headers - cache the result\n\t\tif (!allHeaders) {\n\t\t\tallHeaders = c.req.header();\n\t\t}\n\t\treturn allHeaders;\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor for Hono.\n * Uses `getCookie(c, name)` for single lookups (native).\n * Only parses the cookie header when all cookies are requested.\n */\nexport function createHonoCookies(c: Context): CookieFn {\n\tlet allCookies: Record<string, string> | null = null;\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\t// Single cookie lookup - use native Hono method\n\t\t\treturn getCookie(c, name);\n\t\t}\n\t\t// Get all cookies - parse and cache\n\t\tif (!allCookies) {\n\t\t\tallCookies = {};\n\t\t\tconst cookieHeader = c.req.header('cookie');\n\t\t\tif (cookieHeader) {\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\tallCookies[key] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn allCookies;\n\t}) as CookieFn;\n}\n\n/**\n * Create a lazy header accessor for API Gateway events.\n * Handles case-insensitive lookups.\n */\nexport function createApiGatewayHeaders(\n\theaders: Record<string, string | undefined> | null | undefined,\n): HeaderFn {\n\tlet normalizedHeaders: Record<string, string> | null = null;\n\n\tconst normalize = () => {\n\t\tif (!normalizedHeaders) {\n\t\t\tnormalizedHeaders = {};\n\t\t\tif (headers) {\n\t\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\t\tif (v !== undefined) {\n\t\t\t\t\t\tnormalizedHeaders[k.toLowerCase()] = v;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn normalizedHeaders;\n\t};\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Try direct lookup first (common case: headers already lowercase)\n\t\t\tif (headers) {\n\t\t\t\tconst direct = headers[key] ?? headers[key.toLowerCase()];\n\t\t\t\tif (direct !== undefined) return direct;\n\t\t\t\t// Fall back to normalized lookup\n\t\t\t\treturn normalize()[key.toLowerCase()];\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\t\treturn normalize();\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor for API Gateway events.\n * Decodes URL-encoded values to match browser behavior.\n */\nexport function createApiGatewayCookies(\n\tcookies: string[] | undefined,\n\tcookieHeader: string | undefined,\n): CookieFn {\n\tlet parsed: Record<string, string> | null = null;\n\n\tconst parse = () => {\n\t\tif (!parsed) {\n\t\t\tparsed = {};\n\t\t\t// API Gateway v2 provides cookies as array\n\t\t\tif (cookies) {\n\t\t\t\tfor (const cookie of cookies) {\n\t\t\t\t\tconst eqIndex = cookie.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = cookie.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = cookie.slice(eqIndex + 1);\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (cookieHeader) {\n\t\t\t\t// Fall back to parsing cookie header\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn parsed;\n\t};\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\treturn parse()[name];\n\t\t}\n\t\treturn parse();\n\t}) as CookieFn;\n}\n\n/**\n * Create a lazy header accessor for plain object headers (test adaptor, etc).\n * Headers are already available as an object, just provide lazy access.\n */\nexport function createObjectHeaders(\n\theaders: Record<string, string> | undefined,\n): HeaderFn {\n\tlet normalized: Record<string, string> | null = null;\n\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) {\n\t\t\t// Try direct lookup first (common case)\n\t\t\tif (headers) {\n\t\t\t\tconst direct = headers[key] ?? headers[key.toLowerCase()];\n\t\t\t\tif (direct !== undefined) return direct;\n\t\t\t}\n\t\t\t// Fall back to normalized lookup for case-insensitivity\n\t\t\tif (!normalized && headers) {\n\t\t\t\tnormalized = {};\n\t\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\t\tnormalized[k.toLowerCase()] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn normalized?.[key.toLowerCase()];\n\t\t}\n\t\t// Return all headers\n\t\tif (!normalized && headers) {\n\t\t\tnormalized = {};\n\t\t\tfor (const [k, v] of Object.entries(headers)) {\n\t\t\t\tnormalized[k.toLowerCase()] = v;\n\t\t\t}\n\t\t}\n\t\treturn normalized ?? {};\n\t}) as HeaderFn;\n}\n\n/**\n * Create a lazy cookie accessor from a cookie header string.\n * Decodes URL-encoded values to match browser behavior.\n */\nexport function createCookieHeaderAccessor(\n\tcookieHeader: string | undefined,\n): CookieFn {\n\tlet parsed: Record<string, string> | null = null;\n\n\tconst parse = () => {\n\t\tif (!parsed) {\n\t\t\tparsed = {};\n\t\t\tif (cookieHeader) {\n\t\t\t\tfor (const part of cookieHeader.split(';')) {\n\t\t\t\t\tconst trimmed = part.trim();\n\t\t\t\t\tconst eqIndex = trimmed.indexOf('=');\n\t\t\t\t\tif (eqIndex > 0) {\n\t\t\t\t\t\tconst key = trimmed.slice(0, eqIndex);\n\t\t\t\t\t\tconst value = trimmed.slice(eqIndex + 1);\n\t\t\t\t\t\t// Decode URL-encoded values to match Endpoint.createCookies behavior\n\t\t\t\t\t\tparsed[key] = decodeURIComponent(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn parsed;\n\t};\n\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) {\n\t\t\treturn parse()[name];\n\t\t}\n\t\treturn parse();\n\t}) as CookieFn;\n}\n\n/**\n * Create a no-op header accessor (for minimal endpoints that don't use headers).\n */\nexport function createNoopHeaders(): HeaderFn {\n\treturn ((key?: string) => {\n\t\tif (key !== undefined) return undefined;\n\t\treturn {};\n\t}) as HeaderFn;\n}\n\n/**\n * Create a no-op cookie accessor (for minimal endpoints that don't use cookies).\n */\nexport function createNoopCookies(): CookieFn {\n\treturn ((name?: string) => {\n\t\tif (name !== undefined) return undefined;\n\t\treturn {};\n\t}) as CookieFn;\n}\n"],"mappings":"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"}