@geekmidas/constructs 0.3.0 → 0.3.1

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 (262) hide show
  1. package/dist/{AWSLambdaFunction-D9RZhm0N.d.mts → AWSLambdaFunction-BdebRMUh.d.mts} +5 -3
  2. package/dist/AWSLambdaFunction-BdebRMUh.d.mts.map +1 -0
  3. package/dist/AWSLambdaFunction-C54a1doJ.mjs.map +1 -1
  4. package/dist/{AWSLambdaFunction-gpqm7UBb.d.cts → AWSLambdaFunction-D0tEOTXQ.d.cts} +5 -3
  5. package/dist/AWSLambdaFunction-D0tEOTXQ.d.cts.map +1 -0
  6. package/dist/AWSLambdaFunction-EPGY4s7i.cjs.map +1 -1
  7. package/dist/{AWSLambdaSubscriberAdaptor-CyFh7MN8.mjs → AWSLambdaSubscriberAdaptor-BLfO612H.mjs} +5 -3
  8. package/dist/{AWSLambdaSubscriberAdaptor-CyFh7MN8.mjs.map → AWSLambdaSubscriberAdaptor-BLfO612H.mjs.map} +1 -1
  9. package/dist/{AWSLambdaSubscriberAdaptor-Dum5bkw3.cjs → AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs} +5 -3
  10. package/dist/{AWSLambdaSubscriberAdaptor-Dum5bkw3.cjs.map → AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs.map} +1 -1
  11. package/dist/{AWSLambdaSubscriberAdaptor-C0aZBU64.d.mts → AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts} +4 -2
  12. package/dist/AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts.map +1 -0
  13. package/dist/{AWSLambdaSubscriberAdaptor-DT8icDRf.d.cts → AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts} +4 -2
  14. package/dist/AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts.map +1 -0
  15. package/dist/{AmazonApiGatewayEndpointAdaptor-CbJqLU6I.d.cts → AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts} +5 -3
  16. package/dist/AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts.map +1 -0
  17. package/dist/{AmazonApiGatewayEndpointAdaptor-DC3N7zY_.d.mts → AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts} +5 -3
  18. package/dist/AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts.map +1 -0
  19. package/dist/{AmazonApiGatewayV1EndpointAdaptor-BbkfC1dk.mjs → AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs} +2 -2
  20. package/dist/AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs.map +1 -0
  21. package/dist/{AmazonApiGatewayV1EndpointAdaptor-BiNzaAxD.cjs → AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs} +2 -2
  22. package/dist/AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs.map +1 -0
  23. package/dist/{AmazonApiGatewayV1EndpointAdaptor-BVxgQ-7J.d.mts → AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts} +8 -6
  24. package/dist/AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts.map +1 -0
  25. package/dist/{AmazonApiGatewayV1EndpointAdaptor-CVwJ5k16.d.cts → AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts} +8 -6
  26. package/dist/AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts.map +1 -0
  27. package/dist/{AmazonApiGatewayV2EndpointAdaptor-DZclCykB.cjs → AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs} +2 -2
  28. package/dist/AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs.map +1 -0
  29. package/dist/{AmazonApiGatewayV2EndpointAdaptor-1oBZdQH3.d.cts → AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts} +6 -4
  30. package/dist/AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts.map +1 -0
  31. package/dist/{AmazonApiGatewayV2EndpointAdaptor-C3H8Hpv7.d.mts → AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts} +6 -4
  32. package/dist/AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts.map +1 -0
  33. package/dist/{AmazonApiGatewayV2EndpointAdaptor-jRrQrIdm.mjs → AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs} +2 -2
  34. package/dist/AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs.map +1 -0
  35. package/dist/{Authorizer-CpSUMTIs.d.cts → Authorizer-B-btowNd.d.cts} +2 -1
  36. package/dist/Authorizer-B-btowNd.d.cts.map +1 -0
  37. package/dist/{Authorizer-Cpx59w_q.d.mts → Authorizer-gWxYsGEp.d.mts} +2 -1
  38. package/dist/Authorizer-gWxYsGEp.d.mts.map +1 -0
  39. package/dist/{BaseFunctionBuilder-CoV7J45W.d.mts → BaseFunctionBuilder-BAtutR6q.d.cts} +5 -3
  40. package/dist/BaseFunctionBuilder-BAtutR6q.d.cts.map +1 -0
  41. package/dist/{BaseFunctionBuilder-DaQA0uKE.d.cts → BaseFunctionBuilder-DRY419e7.d.mts} +5 -3
  42. package/dist/BaseFunctionBuilder-DRY419e7.d.mts.map +1 -0
  43. package/dist/{Construct-Dkd8Kvc9.d.cts → Construct-C4rPE67v.d.cts} +8 -7
  44. package/dist/Construct-C4rPE67v.d.cts.map +1 -0
  45. package/dist/{Construct-jBKqb-Zi.d.mts → Construct-XrijZFFh.d.mts} +8 -7
  46. package/dist/Construct-XrijZFFh.d.mts.map +1 -0
  47. package/dist/Construct.d.cts +1 -1
  48. package/dist/Construct.d.mts +1 -1
  49. package/dist/{Cron-7VPR2cNR.d.cts → Cron-bDLcTvV5.d.cts} +4 -4
  50. package/dist/Cron-bDLcTvV5.d.cts.map +1 -0
  51. package/dist/{Cron-JZkp_fHy.d.mts → Cron-cdjlSKNp.d.mts} +4 -4
  52. package/dist/Cron-cdjlSKNp.d.mts.map +1 -0
  53. package/dist/{CronBuilder-290th4zF.d.cts → CronBuilder-BC4m5-p1.d.mts} +7 -5
  54. package/dist/CronBuilder-BC4m5-p1.d.mts.map +1 -0
  55. package/dist/CronBuilder-CcxKRtVP.cjs.map +1 -1
  56. package/dist/{CronBuilder-BmFDO0Dm.d.mts → CronBuilder-DKVXyE0Q.d.cts} +7 -5
  57. package/dist/CronBuilder-DKVXyE0Q.d.cts.map +1 -0
  58. package/dist/CronBuilder-d2jh-IB2.mjs.map +1 -1
  59. package/dist/{Endpoint-C5djXyae.d.mts → Endpoint-BPv9_-m_.d.cts} +9 -7
  60. package/dist/Endpoint-BPv9_-m_.d.cts.map +1 -0
  61. package/dist/{Endpoint-CC2RGjkl.d.cts → Endpoint-BdwG75G_.d.mts} +9 -7
  62. package/dist/Endpoint-BdwG75G_.d.mts.map +1 -0
  63. package/dist/{EndpointBuilder-CD8LkBda.d.mts → EndpointBuilder-B3az942t.d.mts} +7 -5
  64. package/dist/EndpointBuilder-B3az942t.d.mts.map +1 -0
  65. package/dist/EndpointBuilder-Cgj1P_ra.cjs.map +1 -1
  66. package/dist/{EndpointBuilder-vXk6eIJk.d.cts → EndpointBuilder-DIy_m1bu.d.cts} +7 -5
  67. package/dist/EndpointBuilder-DIy_m1bu.d.cts.map +1 -0
  68. package/dist/EndpointBuilder-DnCB1h1j.mjs.map +1 -1
  69. package/dist/{EndpointFactory-jAkQxWRj.d.mts → EndpointFactory-C-0nE6Jg.d.mts} +6 -4
  70. package/dist/EndpointFactory-C-0nE6Jg.d.mts.map +1 -0
  71. package/dist/{EndpointFactory-D8I4NNCo.d.cts → EndpointFactory-CyPbm3AD.d.cts} +6 -4
  72. package/dist/EndpointFactory-CyPbm3AD.d.cts.map +1 -0
  73. package/dist/{Function-DHD1V9QW.d.cts → Function-Cf7f_kCz.d.cts} +5 -5
  74. package/dist/Function-Cf7f_kCz.d.cts.map +1 -0
  75. package/dist/{Function-Vh1t-Qjj.d.mts → Function-DN2G6OT5.d.mts} +5 -5
  76. package/dist/Function-DN2G6OT5.d.mts.map +1 -0
  77. package/dist/{FunctionBuilder-3jsoFffg.d.mts → FunctionBuilder-CJBzzXL3.d.cts} +7 -5
  78. package/dist/FunctionBuilder-CJBzzXL3.d.cts.map +1 -0
  79. package/dist/FunctionBuilder-CrDYgfiI.mjs.map +1 -1
  80. package/dist/{FunctionBuilder-FV6r3I7X.d.cts → FunctionBuilder-Cxx8D2na.d.mts} +7 -5
  81. package/dist/FunctionBuilder-Cxx8D2na.d.mts.map +1 -0
  82. package/dist/FunctionBuilder-DswJ-9sD.cjs.map +1 -1
  83. package/dist/{FunctionExecutionWrapper-CI3CaoCo.d.mts → FunctionExecutionWrapper-DF260Aaj.d.mts} +4 -2
  84. package/dist/FunctionExecutionWrapper-DF260Aaj.d.mts.map +1 -0
  85. package/dist/{FunctionExecutionWrapper-DYt3C8b9.d.cts → FunctionExecutionWrapper-Qy8bmgFR.d.cts} +4 -2
  86. package/dist/FunctionExecutionWrapper-Qy8bmgFR.d.cts.map +1 -0
  87. package/dist/{HonoEndpointAdaptor-Bx9Y1bCZ.d.cts → HonoEndpointAdaptor-Bqm6SEuP.d.cts} +7 -5
  88. package/dist/HonoEndpointAdaptor-Bqm6SEuP.d.cts.map +1 -0
  89. package/dist/{HonoEndpointAdaptor-e6l9eVDU.cjs → HonoEndpointAdaptor-CQe2FqMR.cjs} +2 -2
  90. package/dist/{HonoEndpointAdaptor-e6l9eVDU.cjs.map → HonoEndpointAdaptor-CQe2FqMR.cjs.map} +1 -1
  91. package/dist/{HonoEndpointAdaptor-kb1ByjUL.d.mts → HonoEndpointAdaptor-CRe-ij5f.d.mts} +7 -5
  92. package/dist/HonoEndpointAdaptor-CRe-ij5f.d.mts.map +1 -0
  93. package/dist/{HonoEndpointAdaptor-NLlQk5iU.mjs → HonoEndpointAdaptor-Ce-2HBxn.mjs} +2 -2
  94. package/dist/{HonoEndpointAdaptor-NLlQk5iU.mjs.map → HonoEndpointAdaptor-Ce-2HBxn.mjs.map} +1 -1
  95. package/dist/Subscriber-BiHjVXtM.cjs.map +1 -1
  96. package/dist/Subscriber-BmPf9GFb.mjs.map +1 -1
  97. package/dist/{Subscriber-DMSzvO_J.d.cts → Subscriber-COYMSevD.d.cts} +6 -6
  98. package/dist/Subscriber-COYMSevD.d.cts.map +1 -0
  99. package/dist/{Subscriber-aNr1qkxR.d.mts → Subscriber-ikctpU3I.d.mts} +6 -6
  100. package/dist/Subscriber-ikctpU3I.d.mts.map +1 -0
  101. package/dist/{SubscriberBuilder-BxJM3Hz_.d.cts → SubscriberBuilder-D_9zzllj.d.mts} +5 -3
  102. package/dist/SubscriberBuilder-D_9zzllj.d.mts.map +1 -0
  103. package/dist/{SubscriberBuilder-CWS4tdbp.d.mts → SubscriberBuilder-ivHAGIVi.d.cts} +5 -3
  104. package/dist/SubscriberBuilder-ivHAGIVi.d.cts.map +1 -0
  105. package/dist/{TestEndpointAdaptor-oq5mfglM.mjs → TestEndpointAdaptor-BXTofAKc.mjs} +16 -1
  106. package/dist/TestEndpointAdaptor-BXTofAKc.mjs.map +1 -0
  107. package/dist/{TestEndpointAdaptor-5-unBV8O.d.mts → TestEndpointAdaptor-C10xBI--.d.cts} +4 -4
  108. package/dist/TestEndpointAdaptor-C10xBI--.d.cts.map +1 -0
  109. package/dist/{TestEndpointAdaptor-opEisC30.cjs → TestEndpointAdaptor-D9IwhIYg.cjs} +16 -1
  110. package/dist/TestEndpointAdaptor-D9IwhIYg.cjs.map +1 -0
  111. package/dist/{TestEndpointAdaptor-Bm0UjDtV.d.cts → TestEndpointAdaptor-DB7bREhS.d.mts} +4 -4
  112. package/dist/TestEndpointAdaptor-DB7bREhS.d.mts.map +1 -0
  113. package/dist/adaptors/aws.cjs +4 -4
  114. package/dist/adaptors/aws.d.cts +15 -15
  115. package/dist/adaptors/aws.d.mts +15 -15
  116. package/dist/adaptors/aws.mjs +4 -4
  117. package/dist/adaptors/hono.cjs +2 -2
  118. package/dist/adaptors/hono.d.cts +9 -9
  119. package/dist/adaptors/hono.d.mts +9 -9
  120. package/dist/adaptors/hono.mjs +2 -2
  121. package/dist/adaptors/testing.cjs +1 -1
  122. package/dist/adaptors/testing.d.cts +9 -9
  123. package/dist/adaptors/testing.d.mts +9 -9
  124. package/dist/adaptors/testing.mjs +1 -1
  125. package/dist/crons/Cron.d.cts +6 -6
  126. package/dist/crons/Cron.d.mts +6 -6
  127. package/dist/crons/CronBuilder.d.cts +7 -7
  128. package/dist/crons/CronBuilder.d.mts +7 -7
  129. package/dist/crons/index.d.cts +9 -7
  130. package/dist/crons/index.d.cts.map +1 -0
  131. package/dist/crons/index.d.mts +9 -7
  132. package/dist/crons/index.d.mts.map +1 -0
  133. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +9 -9
  134. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +9 -9
  135. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +2 -2
  136. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +10 -10
  137. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +10 -10
  138. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +2 -2
  139. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +2 -2
  140. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +10 -10
  141. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +10 -10
  142. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +2 -2
  143. package/dist/endpoints/Authorizer.d.cts +1 -1
  144. package/dist/endpoints/Authorizer.d.mts +1 -1
  145. package/dist/endpoints/Endpoint.d.cts +8 -8
  146. package/dist/endpoints/Endpoint.d.mts +8 -8
  147. package/dist/endpoints/EndpointBuilder.d.cts +9 -9
  148. package/dist/endpoints/EndpointBuilder.d.mts +9 -9
  149. package/dist/endpoints/EndpointFactory.d.cts +10 -10
  150. package/dist/endpoints/EndpointFactory.d.mts +10 -10
  151. package/dist/endpoints/HonoEndpointAdaptor.cjs +2 -2
  152. package/dist/endpoints/HonoEndpointAdaptor.d.cts +9 -9
  153. package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -9
  154. package/dist/endpoints/HonoEndpointAdaptor.mjs +2 -2
  155. package/dist/endpoints/TestEndpointAdaptor.cjs +1 -1
  156. package/dist/endpoints/TestEndpointAdaptor.d.cts +9 -9
  157. package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -9
  158. package/dist/endpoints/TestEndpointAdaptor.mjs +1 -1
  159. package/dist/endpoints/audit.d.cts +8 -8
  160. package/dist/endpoints/audit.d.mts +8 -8
  161. package/dist/endpoints/helpers.d.cts +9 -8
  162. package/dist/endpoints/helpers.d.cts.map +1 -0
  163. package/dist/endpoints/helpers.d.mts +9 -8
  164. package/dist/endpoints/helpers.d.mts.map +1 -0
  165. package/dist/endpoints/index.d.cts +14 -12
  166. package/dist/endpoints/index.d.cts.map +1 -0
  167. package/dist/endpoints/index.d.mts +12 -10
  168. package/dist/endpoints/index.d.mts.map +1 -0
  169. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  170. package/dist/endpoints/parseHonoQuery.d.cts +2 -0
  171. package/dist/endpoints/parseHonoQuery.d.cts.map +1 -0
  172. package/dist/endpoints/parseHonoQuery.d.mts +2 -0
  173. package/dist/endpoints/parseHonoQuery.d.mts.map +1 -0
  174. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  175. package/dist/endpoints/parseQueryParams.cjs +1 -1
  176. package/dist/endpoints/parseQueryParams.d.cts +1 -0
  177. package/dist/endpoints/parseQueryParams.d.cts.map +1 -0
  178. package/dist/endpoints/parseQueryParams.d.mts +1 -0
  179. package/dist/endpoints/parseQueryParams.d.mts.map +1 -0
  180. package/dist/endpoints/parseQueryParams.mjs +1 -1
  181. package/dist/endpoints/processAudits.d.cts +10 -8
  182. package/dist/endpoints/processAudits.d.cts.map +1 -0
  183. package/dist/endpoints/processAudits.d.mts +10 -8
  184. package/dist/endpoints/processAudits.d.mts.map +1 -0
  185. package/dist/endpoints/rls.d.cts +8 -8
  186. package/dist/endpoints/rls.d.mts +8 -8
  187. package/dist/functions/AWSLambdaFunction.d.cts +4 -4
  188. package/dist/functions/AWSLambdaFunction.d.mts +4 -4
  189. package/dist/functions/BaseFunctionBuilder.d.cts +2 -2
  190. package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
  191. package/dist/functions/Function.d.cts +2 -2
  192. package/dist/functions/Function.d.mts +2 -2
  193. package/dist/functions/FunctionBuilder.d.cts +4 -4
  194. package/dist/functions/FunctionBuilder.d.mts +4 -4
  195. package/dist/functions/FunctionExecutionWrapper.d.cts +3 -3
  196. package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
  197. package/dist/functions/TestFunctionAdaptor.d.cts +4 -2
  198. package/dist/functions/TestFunctionAdaptor.d.cts.map +1 -0
  199. package/dist/functions/TestFunctionAdaptor.d.mts +4 -2
  200. package/dist/functions/TestFunctionAdaptor.d.mts.map +1 -0
  201. package/dist/functions/index.d.cts +5 -5
  202. package/dist/functions/index.d.mts +5 -5
  203. package/dist/{index-CFyaRrck.d.mts → index-BWzGIj06.d.mts} +4 -2
  204. package/dist/index-BWzGIj06.d.mts.map +1 -0
  205. package/dist/index-SI4V0XwK.d.cts +12 -0
  206. package/dist/index-SI4V0XwK.d.cts.map +1 -0
  207. package/dist/index.d.cts +2 -2
  208. package/dist/index.d.mts +2 -2
  209. package/dist/{parseHonoQuery-CT8Cvin-.cjs → parseHonoQuery-CZC5_97v.cjs} +3 -1
  210. package/dist/parseHonoQuery-CZC5_97v.cjs.map +1 -0
  211. package/dist/{parseHonoQuery-CwFKw2ua.mjs → parseHonoQuery-DDgIkTO4.mjs} +3 -1
  212. package/dist/parseHonoQuery-DDgIkTO4.mjs.map +1 -0
  213. package/dist/{parseQueryParams-CwvXXwkW.cjs → parseQueryParams-BSNkjmZ9.cjs} +3 -1
  214. package/dist/parseQueryParams-BSNkjmZ9.cjs.map +1 -0
  215. package/dist/{parseQueryParams-CHINupbZ.mjs → parseQueryParams-UMTRnRrW.mjs} +3 -1
  216. package/dist/parseQueryParams-UMTRnRrW.mjs.map +1 -0
  217. package/dist/publisher.d.cts +4 -2
  218. package/dist/publisher.d.cts.map +1 -0
  219. package/dist/publisher.d.mts +4 -2
  220. package/dist/publisher.d.mts.map +1 -0
  221. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  222. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +3 -3
  223. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
  224. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  225. package/dist/subscribers/Subscriber.d.cts +2 -2
  226. package/dist/subscribers/Subscriber.d.mts +2 -2
  227. package/dist/subscribers/SubscriberBuilder.d.cts +3 -3
  228. package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
  229. package/dist/subscribers/index.d.cts +5 -3
  230. package/dist/subscribers/index.d.cts.map +1 -0
  231. package/dist/subscribers/index.d.mts +5 -3
  232. package/dist/subscribers/index.d.mts.map +1 -0
  233. package/dist/{types-Bp9ysFXd.d.cts → types-B5H3piDg.d.cts} +3 -1
  234. package/dist/types-B5H3piDg.d.cts.map +1 -0
  235. package/dist/{types-CScirkHt.d.mts → types-DdIlpxAd.d.mts} +3 -1
  236. package/dist/types-DdIlpxAd.d.mts.map +1 -0
  237. package/dist/types.d.cts +1 -1
  238. package/dist/types.d.mts +1 -1
  239. package/package.json +7 -7
  240. package/src/crons/CronBuilder.ts +8 -8
  241. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +4 -4
  242. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +4 -4
  243. package/src/endpoints/EndpointBuilder.ts +4 -4
  244. package/src/endpoints/TestEndpointAdaptor.ts +18 -0
  245. package/src/endpoints/parseHonoQuery.ts +2 -0
  246. package/src/endpoints/parseQueryParams.ts +2 -0
  247. package/src/functions/AWSLambdaFunction.ts +1 -1
  248. package/src/functions/FunctionBuilder.ts +5 -5
  249. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +8 -4
  250. package/src/subscribers/Subscriber.ts +5 -5
  251. package/tsconfig.json +9 -0
  252. package/dist/AmazonApiGatewayV1EndpointAdaptor-BbkfC1dk.mjs.map +0 -1
  253. package/dist/AmazonApiGatewayV1EndpointAdaptor-BiNzaAxD.cjs.map +0 -1
  254. package/dist/AmazonApiGatewayV2EndpointAdaptor-DZclCykB.cjs.map +0 -1
  255. package/dist/AmazonApiGatewayV2EndpointAdaptor-jRrQrIdm.mjs.map +0 -1
  256. package/dist/TestEndpointAdaptor-opEisC30.cjs.map +0 -1
  257. package/dist/TestEndpointAdaptor-oq5mfglM.mjs.map +0 -1
  258. package/dist/index-CqH4_Ieb.d.cts +0 -10
  259. package/dist/parseHonoQuery-CT8Cvin-.cjs.map +0 -1
  260. package/dist/parseHonoQuery-CwFKw2ua.mjs.map +0 -1
  261. package/dist/parseQueryParams-CHINupbZ.mjs.map +0 -1
  262. package/dist/parseQueryParams-CwvXXwkW.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseQueryParams-BSNkjmZ9.cjs","names":["queryParams: Record<string, string | string[] | undefined> | null","result: Record<string, any>"],"sources":["../src/endpoints/parseQueryParams.ts"],"sourcesContent":["/**\n * Parse query parameters from a flat object into a nested structure\n * Handles arrays (multiple values with same key) and objects (dot notation)\n *\n * @example\n * parseQueryParams({ 'tags': ['a', 'b'], 'filter.name': 'john' })\n * // Returns: { tags: ['a', 'b'], filter: { name: 'john' } }\n */\nexport function parseQueryParams(\n queryParams: Record<string, string | string[] | undefined> | null,\n): Record<string, any> {\n if (!queryParams) {\n return {};\n }\n\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value === undefined) {\n continue;\n }\n\n // Check if the key contains dot notation\n if (key.includes('.')) {\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (!part) continue;\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value\n const lastPart = parts[parts.length - 1];\n if (!lastPart) continue;\n current[lastPart] = value;\n } else {\n // Simple key, just assign the value\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,iBACdA,aACqB;AACrB,MAAK,YACH,QAAO,CAAE;CAGX,MAAMC,SAA8B,CAAE;AAEtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,YAAY,EAAE;AACtD,MAAI,iBACF;AAIF,MAAI,IAAI,SAAS,IAAI,EAAE;GACrB,MAAM,QAAQ,IAAI,MAAM,IAAI;GAC5B,IAAI,UAAU;AAGd,QAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;IACzC,MAAM,OAAO,MAAM;AACnB,SAAK,KAAM;AACX,SACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,cAAU,QAAQ;GACnB;GAGD,MAAM,WAAW,MAAM,MAAM,SAAS;AACtC,QAAK,SAAU;AACf,WAAQ,YAAY;EACrB,MAEC,QAAO,OAAO;CAEjB;AAED,QAAO;AACR"}
@@ -17,10 +17,12 @@ function parseQueryParams(queryParams) {
17
17
  let current = result;
18
18
  for (let i = 0; i < parts.length - 1; i++) {
19
19
  const part = parts[i];
20
+ if (!part) continue;
20
21
  if (!current[part] || typeof current[part] !== "object" || Array.isArray(current[part])) current[part] = {};
21
22
  current = current[part];
22
23
  }
23
24
  const lastPart = parts[parts.length - 1];
25
+ if (!lastPart) continue;
24
26
  current[lastPart] = value;
25
27
  } else result[key] = value;
26
28
  }
@@ -29,4 +31,4 @@ function parseQueryParams(queryParams) {
29
31
 
30
32
  //#endregion
31
33
  export { parseQueryParams };
32
- //# sourceMappingURL=parseQueryParams-CHINupbZ.mjs.map
34
+ //# sourceMappingURL=parseQueryParams-UMTRnRrW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseQueryParams-UMTRnRrW.mjs","names":["queryParams: Record<string, string | string[] | undefined> | null","result: Record<string, any>"],"sources":["../src/endpoints/parseQueryParams.ts"],"sourcesContent":["/**\n * Parse query parameters from a flat object into a nested structure\n * Handles arrays (multiple values with same key) and objects (dot notation)\n *\n * @example\n * parseQueryParams({ 'tags': ['a', 'b'], 'filter.name': 'john' })\n * // Returns: { tags: ['a', 'b'], filter: { name: 'john' } }\n */\nexport function parseQueryParams(\n queryParams: Record<string, string | string[] | undefined> | null,\n): Record<string, any> {\n if (!queryParams) {\n return {};\n }\n\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value === undefined) {\n continue;\n }\n\n // Check if the key contains dot notation\n if (key.includes('.')) {\n const parts = key.split('.');\n let current = result;\n\n // Navigate/create the nested structure\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (!part) continue;\n if (\n !current[part] ||\n typeof current[part] !== 'object' ||\n Array.isArray(current[part])\n ) {\n current[part] = {};\n }\n current = current[part];\n }\n\n // Set the final value\n const lastPart = parts[parts.length - 1];\n if (!lastPart) continue;\n current[lastPart] = value;\n } else {\n // Simple key, just assign the value\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;AAQA,SAAgB,iBACdA,aACqB;AACrB,MAAK,YACH,QAAO,CAAE;CAGX,MAAMC,SAA8B,CAAE;AAEtC,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,YAAY,EAAE;AACtD,MAAI,iBACF;AAIF,MAAI,IAAI,SAAS,IAAI,EAAE;GACrB,MAAM,QAAQ,IAAI,MAAM,IAAI;GAC5B,IAAI,UAAU;AAGd,QAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;IACzC,MAAM,OAAO,MAAM;AACnB,SAAK,KAAM;AACX,SACG,QAAQ,gBACF,QAAQ,UAAU,YACzB,MAAM,QAAQ,QAAQ,MAAM,CAE5B,SAAQ,QAAQ,CAAE;AAEpB,cAAU,QAAQ;GACnB;GAGD,MAAM,WAAW,MAAM,MAAM,SAAS;AACtC,QAAK,SAAU;AACf,WAAQ,YAAY;EACrB,MAEC,QAAO,OAAO;CAEjB;AAED,QAAO;AACR"}
@@ -1,4 +1,4 @@
1
- import { Construct } from "./Construct-Dkd8Kvc9.cjs";
1
+ import { Construct } from "./Construct-C4rPE67v.cjs";
2
2
  import { AuditStorage } from "@geekmidas/audit";
3
3
  import { EventPublisher, MappedEvent } from "@geekmidas/events";
4
4
  import { Logger } from "@geekmidas/logger";
@@ -7,8 +7,10 @@ import { StandardSchemaV1 } from "@standard-schema/spec";
7
7
  import { InferStandardSchema } from "@geekmidas/schema";
8
8
 
9
9
  //#region src/publisher.d.ts
10
- declare function publishEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TPublisherService extends Service<TServiceName, T> | undefined = undefined>(logger: Logger, serviceDiscovery: ServiceDiscovery<any, any>, ev: MappedEvent<T, OutSchema>[], response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): Promise<void>;
10
+ declare function publishEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TPublisherService extends Service<TServiceName, T> | undefined = undefined>(logger: Logger, serviceDiscovery: ServiceDiscovery<any, any>, ev: MappedEvent<T, OutSchema>[] | undefined, response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): Promise<void>;
11
11
  declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
12
+ //# sourceMappingURL=publisher.d.ts.map
13
+
12
14
  //#endregion
13
15
  export { publishConstructEvents, publishEvents };
14
16
  //# sourceMappingURL=publisher.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.d.cts","names":[],"sources":["../src/publisher.ts"],"sourcesContent":[],"mappings":";;;;;;;;;iBASsB,wBACV,mDACQ,0GAEQ,QAAQ,cAAc,oCAExC,0BACU,gCACd,YAAY,GAAG,oCACT,oBAAoB,8BACZ,oBAAiB;iBA8Cf,iCACV,mDACQ,kGAEA,wFAEI,iDAEX,UACT,QACA,cACA,GACA,WACA,WACA,0BACA,0BAEQ,oBAAoB,8BACZ,qCACV,SAAyB;AA3EnC"}
@@ -1,4 +1,4 @@
1
- import { Construct } from "./Construct-jBKqb-Zi.mjs";
1
+ import { Construct } from "./Construct-XrijZFFh.mjs";
2
2
  import { Service, ServiceDiscovery } from "@geekmidas/services";
3
3
  import { AuditStorage } from "@geekmidas/audit";
4
4
  import { EventPublisher, MappedEvent } from "@geekmidas/events";
@@ -7,8 +7,10 @@ import { StandardSchemaV1 } from "@standard-schema/spec";
7
7
  import { InferStandardSchema } from "@geekmidas/schema";
8
8
 
9
9
  //#region src/publisher.d.ts
10
- declare function publishEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TPublisherService extends Service<TServiceName, T> | undefined = undefined>(logger: Logger, serviceDiscovery: ServiceDiscovery<any, any>, ev: MappedEvent<T, OutSchema>[], response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): Promise<void>;
10
+ declare function publishEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TPublisherService extends Service<TServiceName, T> | undefined = undefined>(logger: Logger, serviceDiscovery: ServiceDiscovery<any, any>, ev: MappedEvent<T, OutSchema>[] | undefined, response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): Promise<void>;
11
11
  declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
12
+ //# sourceMappingURL=publisher.d.ts.map
13
+
12
14
  //#endregion
13
15
  export { publishConstructEvents, publishEvents };
14
16
  //# sourceMappingURL=publisher.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.d.mts","names":[],"sources":["../src/publisher.ts"],"sourcesContent":[],"mappings":";;;;;;;;;iBASsB,wBACV,mDACQ,0GAEQ,QAAQ,cAAc,oCAExC,0BACU,gCACd,YAAY,GAAG,oCACT,oBAAoB,8BACZ,oBAAiB;iBA8Cf,iCACV,mDACQ,kGAEA,wFAEI,iDAEX,UACT,QACA,cACA,GACA,WACA,WACA,0BACA,0BAEQ,oBAAoB,8BACZ,qCACV,SAAyB;AA3EnC"}
@@ -1,3 +1,3 @@
1
- const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-Dum5bkw3.cjs');
1
+ const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs');
2
2
 
3
3
  exports.AWSLambdaSubscriber = require_AWSLambdaSubscriberAdaptor.AWSLambdaSubscriber;
@@ -1,4 +1,4 @@
1
- import "../Construct-Dkd8Kvc9.cjs";
2
- import "../Subscriber-DMSzvO_J.cjs";
3
- import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-DT8icDRf.cjs";
1
+ import "../Construct-C4rPE67v.cjs";
2
+ import "../Subscriber-COYMSevD.cjs";
3
+ import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.cjs";
4
4
  export { AWSLambdaHandler, AWSLambdaSubscriber };
@@ -1,4 +1,4 @@
1
- import "../Construct-jBKqb-Zi.mjs";
2
- import "../Subscriber-aNr1qkxR.mjs";
3
- import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-C0aZBU64.mjs";
1
+ import "../Construct-XrijZFFh.mjs";
2
+ import "../Subscriber-ikctpU3I.mjs";
3
+ import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-DrFAvHOp.mjs";
4
4
  export { AWSLambdaHandler, AWSLambdaSubscriber };
@@ -1,3 +1,3 @@
1
- import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-CyFh7MN8.mjs";
1
+ import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-BLfO612H.mjs";
2
2
 
3
3
  export { AWSLambdaSubscriber };
@@ -1,3 +1,3 @@
1
- import "../Construct-Dkd8Kvc9.cjs";
2
- import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-DMSzvO_J.cjs";
1
+ import "../Construct-C4rPE67v.cjs";
2
+ import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-COYMSevD.cjs";
3
3
  export { Subscriber, SubscriberContext, SubscriberHandler };
@@ -1,3 +1,3 @@
1
- import "../Construct-jBKqb-Zi.mjs";
2
- import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-aNr1qkxR.mjs";
1
+ import "../Construct-XrijZFFh.mjs";
2
+ import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-ikctpU3I.mjs";
3
3
  export { Subscriber, SubscriberContext, SubscriberHandler };
@@ -1,4 +1,4 @@
1
- import "../Construct-Dkd8Kvc9.cjs";
2
- import "../Subscriber-DMSzvO_J.cjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-BxJM3Hz_.cjs";
1
+ import "../Construct-C4rPE67v.cjs";
2
+ import "../Subscriber-COYMSevD.cjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-ivHAGIVi.cjs";
4
4
  export { SubscriberBuilder };
@@ -1,4 +1,4 @@
1
- import "../Construct-jBKqb-Zi.mjs";
2
- import "../Subscriber-aNr1qkxR.mjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-CWS4tdbp.mjs";
1
+ import "../Construct-XrijZFFh.mjs";
2
+ import "../Subscriber-ikctpU3I.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-D_9zzllj.mjs";
4
4
  export { SubscriberBuilder };
@@ -1,10 +1,12 @@
1
- import "../Construct-Dkd8Kvc9.cjs";
2
- import { Subscriber } from "../Subscriber-DMSzvO_J.cjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-BxJM3Hz_.cjs";
1
+ import "../Construct-C4rPE67v.cjs";
2
+ import { Subscriber } from "../Subscriber-COYMSevD.cjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-ivHAGIVi.cjs";
4
4
  import * as _geekmidas_logger10 from "@geekmidas/logger";
5
5
 
6
6
  //#region src/subscribers/index.d.ts
7
7
  declare const s: SubscriberBuilder<[], _geekmidas_logger10.Logger, undefined, undefined, string, []>;
8
+ //# sourceMappingURL=index.d.ts.map
9
+
8
10
  //#endregion
9
11
  export { Subscriber, SubscriberBuilder, s };
10
12
  //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAIa,GAAC,sBAA0B,mBAAA,CAA1B,MAAA"}
@@ -1,10 +1,12 @@
1
- import "../Construct-jBKqb-Zi.mjs";
2
- import { Subscriber } from "../Subscriber-aNr1qkxR.mjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-CWS4tdbp.mjs";
1
+ import "../Construct-XrijZFFh.mjs";
2
+ import { Subscriber } from "../Subscriber-ikctpU3I.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-D_9zzllj.mjs";
4
4
  import * as _geekmidas_logger10 from "@geekmidas/logger";
5
5
 
6
6
  //#region src/subscribers/index.d.ts
7
7
  declare const s: SubscriberBuilder<[], _geekmidas_logger10.Logger, undefined, undefined, string, []>;
8
+ //# sourceMappingURL=index.d.ts.map
9
+
8
10
  //#endregion
9
11
  export { Subscriber, SubscriberBuilder, s };
10
12
  //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAIa,GAAC,sBAA0B,mBAAA,CAA1B,MAAA"}
@@ -2,6 +2,8 @@
2
2
  type RemoveUndefined<T> = { [K in keyof T as T[K] extends undefined ? never : K]: T[K] };
3
3
  type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
4
4
  type LowerHttpMethod<T extends HttpMethod> = Lowercase<T>;
5
+ //# sourceMappingURL=types.d.ts.map
6
+
5
7
  //#endregion
6
8
  export { HttpMethod, LowerHttpMethod, RemoveUndefined };
7
- //# sourceMappingURL=types-Bp9ysFXd.d.cts.map
9
+ //# sourceMappingURL=types-B5H3piDg.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-B5H3piDg.d.cts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";KAAY,6BAAA,MACE,CADF,IACO,CADQ,CACN,CADM,CAAA,SAAA,SAAA,GAAA,KAAA,GACyB,CADzB,GAC6B,CAD7B,CAC+B,CAD/B,CAAA,EAAA;AACb,KAGF,UAAA,GAHE,KAAA,GAAA,MAAA,GAAA,KAAA,GAAA,OAAA,GAAA,QAAA,GAAA,SAAA;AAAK,KAWP,eAXO,CAAA,UAWmB,UAXnB,CAAA,GAWiC,SAXjC,CAW2C,CAX3C,CAAA"}
@@ -2,6 +2,8 @@
2
2
  type RemoveUndefined<T> = { [K in keyof T as T[K] extends undefined ? never : K]: T[K] };
3
3
  type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
4
4
  type LowerHttpMethod<T extends HttpMethod> = Lowercase<T>;
5
+ //# sourceMappingURL=types.d.ts.map
6
+
5
7
  //#endregion
6
8
  export { HttpMethod, LowerHttpMethod, RemoveUndefined };
7
- //# sourceMappingURL=types-CScirkHt.d.mts.map
9
+ //# sourceMappingURL=types-DdIlpxAd.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-DdIlpxAd.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";KAAY,6BAAA,MACE,CADF,IACO,CADQ,CACN,CADM,CAAA,SAAA,SAAA,GAAA,KAAA,GACyB,CADzB,GAC6B,CAD7B,CAC+B,CAD/B,CAAA,EAAA;AACb,KAGF,UAAA,GAHE,KAAA,GAAA,MAAA,GAAA,KAAA,GAAA,OAAA,GAAA,QAAA,GAAA,SAAA;AAAK,KAWP,eAXO,CAAA,UAWmB,UAXnB,CAAA,GAWiC,SAXjC,CAW2C,CAX3C,CAAA"}
package/dist/types.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-Bp9ysFXd.cjs";
1
+ import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-B5H3piDg.cjs";
2
2
  export { HttpMethod, LowerHttpMethod, RemoveUndefined };
package/dist/types.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-CScirkHt.mjs";
1
+ import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-DdIlpxAd.mjs";
2
2
  export { HttpMethod, LowerHttpMethod, RemoveUndefined };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekmidas/constructs",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -82,12 +82,12 @@
82
82
  "@geekmidas/db": "^0.2.0",
83
83
  "@geekmidas/envkit": "^0.2.0",
84
84
  "@geekmidas/errors": "^0.1.0",
85
- "@geekmidas/logger": "^0.3.0",
86
- "@geekmidas/rate-limit": "^0.2.0",
87
85
  "@geekmidas/events": "^0.1.0",
86
+ "@geekmidas/rate-limit": "^0.2.0",
88
87
  "@geekmidas/services": "^0.1.0",
89
- "@geekmidas/testkit": "^0.4.0",
90
- "@geekmidas/schema": "^0.1.0"
88
+ "@geekmidas/logger": "^0.3.0",
89
+ "@geekmidas/schema": "^0.1.0",
90
+ "@geekmidas/testkit": "^0.4.0"
91
91
  },
92
92
  "peerDependencies": {
93
93
  "@middy/core": ">=6.3.1",
@@ -97,11 +97,11 @@
97
97
  "@geekmidas/cache": "^0.1.0",
98
98
  "@geekmidas/db": "^0.2.0",
99
99
  "@geekmidas/envkit": "^0.2.0",
100
- "@geekmidas/events": "^0.1.0",
101
100
  "@geekmidas/errors": "^0.1.0",
101
+ "@geekmidas/events": "^0.1.0",
102
102
  "@geekmidas/logger": "^0.3.0",
103
- "@geekmidas/schema": "^0.1.0",
104
103
  "@geekmidas/rate-limit": "^0.2.0",
104
+ "@geekmidas/schema": "^0.1.0",
105
105
  "@geekmidas/services": "^0.1.0"
106
106
  },
107
107
  "peerDependenciesMeta": {
@@ -39,7 +39,7 @@ export class CronBuilder<
39
39
  super(ConstructType.Cron);
40
40
  }
41
41
 
42
- memorySize(memorySize: number): this {
42
+ override memorySize(memorySize: number): this {
43
43
  this._memorySize = memorySize;
44
44
  return this;
45
45
  }
@@ -60,7 +60,7 @@ export class CronBuilder<
60
60
  return this;
61
61
  }
62
62
 
63
- input<T extends ComposableStandardSchema>(
63
+ override input<T extends ComposableStandardSchema>(
64
64
  schema: T,
65
65
  ): CronBuilder<
66
66
  T,
@@ -86,7 +86,7 @@ export class CronBuilder<
86
86
  >;
87
87
  }
88
88
 
89
- output<T extends StandardSchemaV1>(
89
+ override output<T extends StandardSchemaV1>(
90
90
  schema: T,
91
91
  ): CronBuilder<
92
92
  TInput,
@@ -112,7 +112,7 @@ export class CronBuilder<
112
112
  >;
113
113
  }
114
114
 
115
- services<T extends Service[]>(
115
+ override services<T extends Service[]>(
116
116
  services: T,
117
117
  ): CronBuilder<
118
118
  TInput,
@@ -141,7 +141,7 @@ export class CronBuilder<
141
141
  >;
142
142
  }
143
143
 
144
- logger<T extends Logger>(
144
+ override logger<T extends Logger>(
145
145
  logger: T,
146
146
  ): CronBuilder<
147
147
  TInput,
@@ -167,7 +167,7 @@ export class CronBuilder<
167
167
  >;
168
168
  }
169
169
 
170
- publisher<T extends EventPublisher<any>, TName extends string>(
170
+ override publisher<T extends EventPublisher<any>, TName extends string>(
171
171
  publisher: Service<TName, T>,
172
172
  ): CronBuilder<
173
173
  TInput,
@@ -200,7 +200,7 @@ export class CronBuilder<
200
200
  * Set the database service for this cron job.
201
201
  * The database will be available in the handler context as `db`.
202
202
  */
203
- database<T, TName extends string>(
203
+ override database<T, TName extends string>(
204
204
  service: Service<TName, T>,
205
205
  ): CronBuilder<
206
206
  TInput,
@@ -229,7 +229,7 @@ export class CronBuilder<
229
229
  >;
230
230
  }
231
231
 
232
- handle(
232
+ override handle(
233
233
  fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,
234
234
  ): Cron<
235
235
  TInput,
@@ -37,7 +37,7 @@ export class AmazonApiGatewayV1Endpoint<
37
37
  TSession,
38
38
  TEventPublisher
39
39
  > {
40
- getInput(e: APIGatewayProxyEvent): GetInputResponse {
40
+ override getInput(e: APIGatewayProxyEvent): GetInputResponse {
41
41
  // For arrays, AWS API Gateway V1 provides multiValueQueryStringParameters
42
42
  const multiValueParams = e.multiValueQueryStringParameters || {};
43
43
  const singleValueParams = e.queryStringParameters || {};
@@ -65,7 +65,7 @@ export class AmazonApiGatewayV1Endpoint<
65
65
  params: e.pathParameters || {},
66
66
  };
67
67
  }
68
- getLoggerContext(
68
+ override getLoggerContext(
69
69
  data: APIGatewayProxyEvent,
70
70
  context: Context,
71
71
  ): LoggerContext {
@@ -84,8 +84,8 @@ export class AmazonApiGatewayV1Endpoint<
84
84
  };
85
85
  }
86
86
  constructor(
87
- protected envParser: EnvironmentParser<{}>,
88
- protected readonly endpoint: Endpoint<
87
+ protected override envParser: EnvironmentParser<{}>,
88
+ protected override readonly endpoint: Endpoint<
89
89
  TRoute,
90
90
  TMethod,
91
91
  TInput,
@@ -36,7 +36,7 @@ export class AmazonApiGatewayV2Endpoint<
36
36
  TSession,
37
37
  TEventPublisher
38
38
  > {
39
- getInput(e: APIGatewayProxyEventV2): GetInputResponse {
39
+ override getInput(e: APIGatewayProxyEventV2): GetInputResponse {
40
40
  // API Gateway V2 handles arrays as comma-separated values
41
41
  const queryParams = e.queryStringParameters || {};
42
42
  const processedParams: Record<string, string | string[]> = {};
@@ -59,7 +59,7 @@ export class AmazonApiGatewayV2Endpoint<
59
59
  params: e.pathParameters || {},
60
60
  };
61
61
  }
62
- getLoggerContext(
62
+ override getLoggerContext(
63
63
  event: APIGatewayProxyEventV2,
64
64
  context: Context,
65
65
  ): LoggerContext {
@@ -78,8 +78,8 @@ export class AmazonApiGatewayV2Endpoint<
78
78
  };
79
79
  }
80
80
  constructor(
81
- protected envParser: EnvironmentParser<{}>,
82
- protected readonly endpoint: Endpoint<
81
+ protected override envParser: EnvironmentParser<{}>,
82
+ protected override readonly endpoint: Endpoint<
83
83
  TRoute,
84
84
  TMethod,
85
85
  TInput,
@@ -109,7 +109,7 @@ export class EndpointBuilder<
109
109
  return this;
110
110
  }
111
111
 
112
- event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(
112
+ override event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(
113
113
  event: TEvent,
114
114
  ): this {
115
115
  this._events.push(event);
@@ -126,7 +126,7 @@ export class EndpointBuilder<
126
126
  return this;
127
127
  }
128
128
 
129
- publisher<T extends EventPublisher<any>, TName extends string>(
129
+ override publisher<T extends EventPublisher<any>, TName extends string>(
130
130
  publisher: Service<TName, T>,
131
131
  ): EndpointBuilder<
132
132
  TRoute,
@@ -437,7 +437,7 @@ export class EndpointBuilder<
437
437
  * This enables audit functionality and makes `auditor` available in the handler context.
438
438
  * The audit action type is automatically inferred from the storage's generic parameter.
439
439
  */
440
- auditor<T extends AuditStorage<any>, TName extends string>(
440
+ override auditor<T extends AuditStorage<any>, TName extends string>(
441
441
  storage: Service<TName, T>,
442
442
  ): EndpointBuilder<
443
443
  TRoute,
@@ -544,7 +544,7 @@ export class EndpointBuilder<
544
544
  * })
545
545
  * ```
546
546
  */
547
- database<T, TName extends string>(
547
+ override database<T, TName extends string>(
548
548
  service: Service<TName, T>,
549
549
  ): EndpointBuilder<
550
550
  TRoute,
@@ -195,6 +195,24 @@ export class TestEndpointAdaptor<
195
195
  ...(rawDb !== undefined && { db: rawDb }),
196
196
  } as any);
197
197
 
198
+ // Check authorization
199
+ const isAuthorized = await this.endpoint.authorize({
200
+ header,
201
+ cookie,
202
+ services: ctx.services,
203
+ logger,
204
+ session,
205
+ });
206
+
207
+ if (!isAuthorized) {
208
+ logger.warn('Unauthorized access attempt');
209
+ return {
210
+ body: { error: 'Unauthorized' } as any,
211
+ status: 401,
212
+ headers: {},
213
+ };
214
+ }
215
+
198
216
  // Create audit context if audit storage is provided
199
217
  // The auditorStorage instance is required when endpoint uses .auditor()
200
218
  const auditorStorage = (ctx as any).auditorStorage as TAuditStorage;
@@ -18,6 +18,7 @@ export function parseHonoQuery(c: Context): Record<string, any> {
18
18
  // Navigate/create the nested structure
19
19
  for (let i = 0; i < parts.length - 1; i++) {
20
20
  const part = parts[i];
21
+ if (!part) continue;
21
22
  if (
22
23
  !current[part] ||
23
24
  typeof current[part] !== 'object' ||
@@ -30,6 +31,7 @@ export function parseHonoQuery(c: Context): Record<string, any> {
30
31
 
31
32
  // Set the final value, checking for arrays in nested keys
32
33
  const lastPart = parts[parts.length - 1];
34
+ if (!lastPart) continue;
33
35
  const multipleValues = c.req.queries(key);
34
36
  if (multipleValues && multipleValues.length > 1) {
35
37
  current[lastPart] = multipleValues;
@@ -28,6 +28,7 @@ export function parseQueryParams(
28
28
  // Navigate/create the nested structure
29
29
  for (let i = 0; i < parts.length - 1; i++) {
30
30
  const part = parts[i];
31
+ if (!part) continue;
31
32
  if (
32
33
  !current[part] ||
33
34
  typeof current[part] !== 'object' ||
@@ -40,6 +41,7 @@ export function parseQueryParams(
40
41
 
41
42
  // Set the final value
42
43
  const lastPart = parts[parts.length - 1];
44
+ if (!lastPart) continue;
43
45
  current[lastPart] = value;
44
46
  } else {
45
47
  // Simple key, just assign the value
@@ -88,7 +88,7 @@ export class AWSLambdaFunction<
88
88
  > {
89
89
  constructor(
90
90
  envParser: EnvironmentParser<{}>,
91
- readonly fn: Function<
91
+ override readonly fn: Function<
92
92
  TInput,
93
93
  TServices,
94
94
  TLogger,
@@ -41,11 +41,11 @@ export class FunctionBuilder<
41
41
  > {
42
42
  protected _memorySize?: number;
43
43
 
44
- constructor(public type = ConstructType.Function) {
44
+ constructor(public override type = ConstructType.Function) {
45
45
  super(type);
46
46
  }
47
47
 
48
- timeout(timeout: number): this {
48
+ override timeout(timeout: number): this {
49
49
  this._timeout = timeout;
50
50
  return this;
51
51
  }
@@ -186,7 +186,7 @@ export class FunctionBuilder<
186
186
  >;
187
187
  }
188
188
 
189
- publisher<T extends EventPublisher<any>, TName extends string>(
189
+ override publisher<T extends EventPublisher<any>, TName extends string>(
190
190
  publisher: Service<TName, T>,
191
191
  ): FunctionBuilder<
192
192
  TInput,
@@ -221,7 +221,7 @@ export class FunctionBuilder<
221
221
  >;
222
222
  }
223
223
 
224
- auditor<T extends AuditStorage, TName extends string>(
224
+ override auditor<T extends AuditStorage, TName extends string>(
225
225
  storage: Service<TName, T>,
226
226
  ): FunctionBuilder<
227
227
  TInput,
@@ -292,7 +292,7 @@ export class FunctionBuilder<
292
292
  * Set the database service for this function.
293
293
  * The database will be available in the handler context as `db`.
294
294
  */
295
- database<T, TName extends string>(
295
+ override database<T, TName extends string>(
296
296
  service: Service<TName, T>,
297
297
  ): FunctionBuilder<
298
298
  TInput,
@@ -177,20 +177,24 @@ export class AWSLambdaSubscriber<
177
177
  }
178
178
 
179
179
  private isSQSEvent(event: SQSEvent | SNSEvent): event is SQSEvent {
180
+ const firstRecord = event.Records[0];
180
181
  return (
181
182
  'Records' in event &&
182
183
  event.Records.length > 0 &&
183
- 'eventSource' in event.Records[0] &&
184
- event.Records[0].eventSource === 'aws:sqs'
184
+ firstRecord !== undefined &&
185
+ 'eventSource' in firstRecord &&
186
+ firstRecord.eventSource === 'aws:sqs'
185
187
  );
186
188
  }
187
189
 
188
190
  private isSNSEvent(event: SQSEvent | SNSEvent): event is SNSEvent {
191
+ const firstRecord = event.Records[0];
189
192
  return (
190
193
  'Records' in event &&
191
194
  event.Records.length > 0 &&
192
- 'EventSource' in event.Records[0] &&
193
- event.Records[0].EventSource === 'aws:sns'
195
+ firstRecord !== undefined &&
196
+ 'EventSource' in firstRecord &&
197
+ firstRecord.EventSource === 'aws:sns'
194
198
  );
195
199
  }
196
200
 
@@ -56,12 +56,12 @@ export class Subscriber<
56
56
  TLogger,
57
57
  OutSchema
58
58
  >,
59
- public readonly timeout: number = 30000,
59
+ public override readonly timeout: number = 30000,
60
60
  protected _subscribedEvents?: TSubscribedEvents,
61
- public readonly outputSchema?: OutSchema,
62
- public readonly services: TServices = [] as unknown as TServices,
63
- public readonly logger: TLogger = DEFAULT_LOGGER as TLogger,
64
- public readonly publisherService?: Service<
61
+ public override readonly outputSchema?: OutSchema,
62
+ public override readonly services: TServices = [] as unknown as TServices,
63
+ public override readonly logger: TLogger = DEFAULT_LOGGER as TLogger,
64
+ public override readonly publisherService?: Service<
65
65
  TEventPublisherServiceName,
66
66
  TEventPublisher
67
67
  >,
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src",
6
+ "composite": true
7
+ },
8
+ "include": ["src/**/*"]
9
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"AmazonApiGatewayV1EndpointAdaptor-BbkfC1dk.mjs","names":["e: APIGatewayProxyEvent","mergedParams: Record<string, string | string[]>","data: APIGatewayProxyEvent","context: Context","envParser: EnvironmentParser<{}>","endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >"],"sources":["../src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { HttpMethod } from '../types';\nimport type { Endpoint, EndpointSchemas } from './Endpoint';\n\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { APIGatewayProxyEvent, Context } from 'aws-lambda';\n\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Service } from '@geekmidas/services';\nimport {\n AmazonApiGatewayEndpoint,\n type AmazonApiGatewayV1EndpointHandler,\n type GetInputResponse,\n type LoggerContext,\n} from './AmazonApiGatewayEndpointAdaptor';\nimport { parseQueryParams } from './parseQueryParams';\n\nexport class AmazonApiGatewayV1Endpoint<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n> extends AmazonApiGatewayEndpoint<\n AmazonApiGatewayV1EndpointHandler,\n APIGatewayProxyEvent,\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n> {\n getInput(e: APIGatewayProxyEvent): GetInputResponse {\n // For arrays, AWS API Gateway V1 provides multiValueQueryStringParameters\n const multiValueParams = e.multiValueQueryStringParameters || {};\n const singleValueParams = e.queryStringParameters || {};\n\n // Merge single and multi-value parameters\n const mergedParams: Record<string, string | string[]> = {};\n\n // Add single value parameters\n for (const [key, value] of Object.entries(singleValueParams)) {\n if (value !== undefined) {\n mergedParams[key] = value;\n }\n }\n\n // Override with multi-value parameters where applicable\n for (const [key, values] of Object.entries(multiValueParams)) {\n if (values && values.length > 1) {\n mergedParams[key] = values;\n }\n }\n\n return {\n body: e.body ? JSON.parse(e.body) : undefined,\n query: parseQueryParams(mergedParams),\n params: e.pathParameters || {},\n };\n }\n getLoggerContext(\n data: APIGatewayProxyEvent,\n context: Context,\n ): LoggerContext {\n return {\n fn: {\n name: context.functionName,\n version: context.functionVersion,\n },\n req: {\n id: data.requestContext.requestId,\n awsRequestId: context.awsRequestId,\n ip: data.requestContext.identity.sourceIp,\n userAgent: data.requestContext.identity.userAgent || undefined,\n path: data.requestContext.path,\n },\n };\n }\n constructor(\n protected envParser: EnvironmentParser<{}>,\n protected readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >,\n ) {\n super(envParser, endpoint);\n }\n}\n"],"mappings":";;;;AAkBA,IAAa,6BAAb,cASU,yBAWR;CACA,SAASA,GAA2C;EAElD,MAAM,mBAAmB,EAAE,mCAAmC,CAAE;EAChE,MAAM,oBAAoB,EAAE,yBAAyB,CAAE;EAGvD,MAAMC,eAAkD,CAAE;AAG1D,OAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,kBAAkB,CAC1D,KAAI,iBACF,cAAa,OAAO;AAKxB,OAAK,MAAM,CAAC,KAAK,OAAO,IAAI,OAAO,QAAQ,iBAAiB,CAC1D,KAAI,UAAU,OAAO,SAAS,EAC5B,cAAa,OAAO;AAIxB,SAAO;GACL,MAAM,EAAE,OAAO,KAAK,MAAM,EAAE,KAAK;GACjC,OAAO,iBAAiB,aAAa;GACrC,QAAQ,EAAE,kBAAkB,CAAE;EAC/B;CACF;CACD,iBACEC,MACAC,SACe;AACf,SAAO;GACL,IAAI;IACF,MAAM,QAAQ;IACd,SAAS,QAAQ;GAClB;GACD,KAAK;IACH,IAAI,KAAK,eAAe;IACxB,cAAc,QAAQ;IACtB,IAAI,KAAK,eAAe,SAAS;IACjC,WAAW,KAAK,eAAe,SAAS;IACxC,MAAM,KAAK,eAAe;GAC3B;EACF;CACF;CACD,YACYC,WACSC,UAUnB;AACA,QAAM,WAAW,SAAS;EAZhB;EACS;CAYpB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AmazonApiGatewayV1EndpointAdaptor-BiNzaAxD.cjs","names":["AmazonApiGatewayEndpoint","e: APIGatewayProxyEvent","mergedParams: Record<string, string | string[]>","data: APIGatewayProxyEvent","context: Context","envParser: EnvironmentParser<{}>","endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >"],"sources":["../src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { HttpMethod } from '../types';\nimport type { Endpoint, EndpointSchemas } from './Endpoint';\n\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { APIGatewayProxyEvent, Context } from 'aws-lambda';\n\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Service } from '@geekmidas/services';\nimport {\n AmazonApiGatewayEndpoint,\n type AmazonApiGatewayV1EndpointHandler,\n type GetInputResponse,\n type LoggerContext,\n} from './AmazonApiGatewayEndpointAdaptor';\nimport { parseQueryParams } from './parseQueryParams';\n\nexport class AmazonApiGatewayV1Endpoint<\n TRoute extends string,\n TMethod extends HttpMethod,\n TInput extends EndpointSchemas = {},\n TOutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TSession = unknown,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n> extends AmazonApiGatewayEndpoint<\n AmazonApiGatewayV1EndpointHandler,\n APIGatewayProxyEvent,\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n> {\n getInput(e: APIGatewayProxyEvent): GetInputResponse {\n // For arrays, AWS API Gateway V1 provides multiValueQueryStringParameters\n const multiValueParams = e.multiValueQueryStringParameters || {};\n const singleValueParams = e.queryStringParameters || {};\n\n // Merge single and multi-value parameters\n const mergedParams: Record<string, string | string[]> = {};\n\n // Add single value parameters\n for (const [key, value] of Object.entries(singleValueParams)) {\n if (value !== undefined) {\n mergedParams[key] = value;\n }\n }\n\n // Override with multi-value parameters where applicable\n for (const [key, values] of Object.entries(multiValueParams)) {\n if (values && values.length > 1) {\n mergedParams[key] = values;\n }\n }\n\n return {\n body: e.body ? JSON.parse(e.body) : undefined,\n query: parseQueryParams(mergedParams),\n params: e.pathParameters || {},\n };\n }\n getLoggerContext(\n data: APIGatewayProxyEvent,\n context: Context,\n ): LoggerContext {\n return {\n fn: {\n name: context.functionName,\n version: context.functionVersion,\n },\n req: {\n id: data.requestContext.requestId,\n awsRequestId: context.awsRequestId,\n ip: data.requestContext.identity.sourceIp,\n userAgent: data.requestContext.identity.userAgent || undefined,\n path: data.requestContext.path,\n },\n };\n }\n constructor(\n protected envParser: EnvironmentParser<{}>,\n protected readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >,\n ) {\n super(envParser, endpoint);\n }\n}\n"],"mappings":";;;;AAkBA,IAAa,6BAAb,cASUA,iEAWR;CACA,SAASC,GAA2C;EAElD,MAAM,mBAAmB,EAAE,mCAAmC,CAAE;EAChE,MAAM,oBAAoB,EAAE,yBAAyB,CAAE;EAGvD,MAAMC,eAAkD,CAAE;AAG1D,OAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,kBAAkB,CAC1D,KAAI,iBACF,cAAa,OAAO;AAKxB,OAAK,MAAM,CAAC,KAAK,OAAO,IAAI,OAAO,QAAQ,iBAAiB,CAC1D,KAAI,UAAU,OAAO,SAAS,EAC5B,cAAa,OAAO;AAIxB,SAAO;GACL,MAAM,EAAE,OAAO,KAAK,MAAM,EAAE,KAAK;GACjC,OAAO,0CAAiB,aAAa;GACrC,QAAQ,EAAE,kBAAkB,CAAE;EAC/B;CACF;CACD,iBACEC,MACAC,SACe;AACf,SAAO;GACL,IAAI;IACF,MAAM,QAAQ;IACd,SAAS,QAAQ;GAClB;GACD,KAAK;IACH,IAAI,KAAK,eAAe;IACxB,cAAc,QAAQ;IACtB,IAAI,KAAK,eAAe,SAAS;IACjC,WAAW,KAAK,eAAe,SAAS;IACxC,MAAM,KAAK,eAAe;GAC3B;EACF;CACF;CACD,YACYC,WACSC,UAUnB;AACA,QAAM,WAAW,SAAS;EAZhB;EACS;CAYpB;AACF"}