@geekmidas/constructs 0.0.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 (329) hide show
  1. package/README.md +614 -0
  2. package/dist/AWSLambdaFunction-CpHFE2m6.d.mts +27 -0
  3. package/dist/AWSLambdaFunction-CwagvPG3.d.cts +27 -0
  4. package/dist/AWSLambdaFunction-DWIZYsCy.mjs +79 -0
  5. package/dist/AWSLambdaFunction-DWIZYsCy.mjs.map +1 -0
  6. package/dist/AWSLambdaFunction-qA5LqPsv.cjs +85 -0
  7. package/dist/AWSLambdaFunction-qA5LqPsv.cjs.map +1 -0
  8. package/dist/AWSLambdaSubscriberAdaptor-C1wQuucQ.d.mts +32 -0
  9. package/dist/AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs +138 -0
  10. package/dist/AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs.map +1 -0
  11. package/dist/AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs +132 -0
  12. package/dist/AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs.map +1 -0
  13. package/dist/AWSLambdaSubscriberAdaptor-QKVxR6qh.d.cts +32 -0
  14. package/dist/AmazonApiGatewayEndpointAdaptor-BoBh7vvD.d.mts +61 -0
  15. package/dist/AmazonApiGatewayEndpointAdaptor-Cx1oqcqh.mjs +124 -0
  16. package/dist/AmazonApiGatewayEndpointAdaptor-Cx1oqcqh.mjs.map +1 -0
  17. package/dist/AmazonApiGatewayEndpointAdaptor-DtzgQ9Vb.d.cts +61 -0
  18. package/dist/AmazonApiGatewayEndpointAdaptor-i74DEUbc.cjs +130 -0
  19. package/dist/AmazonApiGatewayEndpointAdaptor-i74DEUbc.cjs.map +1 -0
  20. package/dist/AmazonApiGatewayV1EndpointAdaptor-CLmBDYsl.mjs +42 -0
  21. package/dist/AmazonApiGatewayV1EndpointAdaptor-CLmBDYsl.mjs.map +1 -0
  22. package/dist/AmazonApiGatewayV1EndpointAdaptor-EhMd1YqV.d.mts +21 -0
  23. package/dist/AmazonApiGatewayV1EndpointAdaptor-GkMAUPL5.cjs +47 -0
  24. package/dist/AmazonApiGatewayV1EndpointAdaptor-GkMAUPL5.cjs.map +1 -0
  25. package/dist/AmazonApiGatewayV1EndpointAdaptor-Gw-j61qM.d.cts +21 -0
  26. package/dist/AmazonApiGatewayV2EndpointAdaptor-3RqegmJC.mjs +41 -0
  27. package/dist/AmazonApiGatewayV2EndpointAdaptor-3RqegmJC.mjs.map +1 -0
  28. package/dist/AmazonApiGatewayV2EndpointAdaptor-LUlpwmUW.d.cts +21 -0
  29. package/dist/AmazonApiGatewayV2EndpointAdaptor-YlFoFSS9.cjs +46 -0
  30. package/dist/AmazonApiGatewayV2EndpointAdaptor-YlFoFSS9.cjs.map +1 -0
  31. package/dist/AmazonApiGatewayV2EndpointAdaptor-zfd1gqXA.d.mts +21 -0
  32. package/dist/BaseFunctionBuilder-5QCHkchp.d.cts +31 -0
  33. package/dist/BaseFunctionBuilder-BFPVGnKi.d.mts +31 -0
  34. package/dist/BaseFunctionBuilder-BPE9JBbT.mjs +56 -0
  35. package/dist/BaseFunctionBuilder-BPE9JBbT.mjs.map +1 -0
  36. package/dist/BaseFunctionBuilder-DtO4Nwxm.cjs +62 -0
  37. package/dist/BaseFunctionBuilder-DtO4Nwxm.cjs.map +1 -0
  38. package/dist/Construct-BSEs6uwW.cjs +75 -0
  39. package/dist/Construct-BSEs6uwW.cjs.map +1 -0
  40. package/dist/Construct-BbKCIPQm.mjs +63 -0
  41. package/dist/Construct-BbKCIPQm.mjs.map +1 -0
  42. package/dist/Construct-Bm-PSO2V.d.cts +42 -0
  43. package/dist/Construct-DIguIyw4.d.mts +42 -0
  44. package/dist/Construct.cjs +4 -0
  45. package/dist/Construct.d.cts +2 -0
  46. package/dist/Construct.d.mts +2 -0
  47. package/dist/Construct.mjs +3 -0
  48. package/dist/Cron-Bgs6EQOb.mjs +20 -0
  49. package/dist/Cron-Bgs6EQOb.mjs.map +1 -0
  50. package/dist/Cron-DQiCj3ef.cjs +25 -0
  51. package/dist/Cron-DQiCj3ef.cjs.map +1 -0
  52. package/dist/Cron-FpAw03k6.d.mts +25 -0
  53. package/dist/Cron-ztnK6zgU.d.cts +25 -0
  54. package/dist/CronBuilder-B2clNQSP.d.mts +24 -0
  55. package/dist/CronBuilder-Cje9K8lZ.d.cts +24 -0
  56. package/dist/CronBuilder-DIBqJkh_.cjs +60 -0
  57. package/dist/CronBuilder-DIBqJkh_.cjs.map +1 -0
  58. package/dist/CronBuilder-DecAvvcn.mjs +54 -0
  59. package/dist/CronBuilder-DecAvvcn.mjs.map +1 -0
  60. package/dist/Endpoint-BaHC9y4Z.cjs +291 -0
  61. package/dist/Endpoint-BaHC9y4Z.cjs.map +1 -0
  62. package/dist/Endpoint-C7z9YJHK.d.cts +405 -0
  63. package/dist/Endpoint-DCn53Vd8.d.mts +405 -0
  64. package/dist/Endpoint-ierdM62O.mjs +279 -0
  65. package/dist/Endpoint-ierdM62O.mjs.map +1 -0
  66. package/dist/EndpointBuilder-BHFSpbPR.cjs +107 -0
  67. package/dist/EndpointBuilder-BHFSpbPR.cjs.map +1 -0
  68. package/dist/EndpointBuilder-BLUsoK3l.mjs +101 -0
  69. package/dist/EndpointBuilder-BLUsoK3l.mjs.map +1 -0
  70. package/dist/EndpointBuilder-Bfnb2oJr.d.mts +49 -0
  71. package/dist/EndpointBuilder-CP9RGwZH.d.cts +49 -0
  72. package/dist/EndpointFactory-BYdDVCNj.mjs +127 -0
  73. package/dist/EndpointFactory-BYdDVCNj.mjs.map +1 -0
  74. package/dist/EndpointFactory-CNtMXgIh.d.mts +52 -0
  75. package/dist/EndpointFactory-CXX4E6Gx.cjs +139 -0
  76. package/dist/EndpointFactory-CXX4E6Gx.cjs.map +1 -0
  77. package/dist/EndpointFactory-D2zgWbXZ.d.cts +52 -0
  78. package/dist/Function-BP58p9Mp.d.cts +59 -0
  79. package/dist/Function-BsBxc2wA.d.mts +59 -0
  80. package/dist/Function-C5mW-38v.mjs +72 -0
  81. package/dist/Function-C5mW-38v.mjs.map +1 -0
  82. package/dist/Function-CbO2NZx-.cjs +84 -0
  83. package/dist/Function-CbO2NZx-.cjs.map +1 -0
  84. package/dist/FunctionBuilder-BS1KgxA_.d.cts +24 -0
  85. package/dist/FunctionBuilder-C-PfPN3r.d.mts +24 -0
  86. package/dist/FunctionBuilder-CosgPmMl.mjs +53 -0
  87. package/dist/FunctionBuilder-CosgPmMl.mjs.map +1 -0
  88. package/dist/FunctionBuilder-DuOeWCAl.cjs +59 -0
  89. package/dist/FunctionBuilder-DuOeWCAl.cjs.map +1 -0
  90. package/dist/FunctionExecutionWrapper-Bx-Dl-2a.d.cts +24 -0
  91. package/dist/FunctionExecutionWrapper-CElXEjPe.cjs +42 -0
  92. package/dist/FunctionExecutionWrapper-CElXEjPe.cjs.map +1 -0
  93. package/dist/FunctionExecutionWrapper-DvglBBjE.d.mts +24 -0
  94. package/dist/FunctionExecutionWrapper-XGrSAAPD.mjs +36 -0
  95. package/dist/FunctionExecutionWrapper-XGrSAAPD.mjs.map +1 -0
  96. package/dist/HonoEndpointAdaptor-B0IO1zj2.d.mts +41 -0
  97. package/dist/HonoEndpointAdaptor-B4snrp7v.cjs +154 -0
  98. package/dist/HonoEndpointAdaptor-B4snrp7v.cjs.map +1 -0
  99. package/dist/HonoEndpointAdaptor-B6lW9Q1k.d.cts +41 -0
  100. package/dist/HonoEndpointAdaptor-D-M4-6Tf.mjs +148 -0
  101. package/dist/HonoEndpointAdaptor-D-M4-6Tf.mjs.map +1 -0
  102. package/dist/Subscriber-BoFm12i_.d.cts +33 -0
  103. package/dist/Subscriber-BwuCaC9G.mjs +28 -0
  104. package/dist/Subscriber-BwuCaC9G.mjs.map +1 -0
  105. package/dist/Subscriber-THGsj7Iy.d.mts +33 -0
  106. package/dist/Subscriber-iMRFG7ba.cjs +34 -0
  107. package/dist/Subscriber-iMRFG7ba.cjs.map +1 -0
  108. package/dist/SubscriberBuilder-CiPxgnKT.d.mts +26 -0
  109. package/dist/SubscriberBuilder-Dhz0C_t-.mjs +54 -0
  110. package/dist/SubscriberBuilder-Dhz0C_t-.mjs.map +1 -0
  111. package/dist/SubscriberBuilder-DuIgxuzc.d.cts +26 -0
  112. package/dist/SubscriberBuilder-wthr-FL9.cjs +60 -0
  113. package/dist/SubscriberBuilder-wthr-FL9.cjs.map +1 -0
  114. package/dist/adaptors/aws.cjs +19 -0
  115. package/dist/adaptors/aws.d.cts +15 -0
  116. package/dist/adaptors/aws.d.mts +15 -0
  117. package/dist/adaptors/aws.mjs +16 -0
  118. package/dist/adaptors/hono.cjs +12 -0
  119. package/dist/adaptors/hono.d.cts +9 -0
  120. package/dist/adaptors/hono.d.mts +9 -0
  121. package/dist/adaptors/hono.mjs +12 -0
  122. package/dist/chunk-CUT6urMc.cjs +30 -0
  123. package/dist/crons/Cron.cjs +8 -0
  124. package/dist/crons/Cron.d.cts +7 -0
  125. package/dist/crons/Cron.d.mts +7 -0
  126. package/dist/crons/Cron.mjs +8 -0
  127. package/dist/crons/CronBuilder.cjs +9 -0
  128. package/dist/crons/CronBuilder.d.cts +8 -0
  129. package/dist/crons/CronBuilder.d.mts +8 -0
  130. package/dist/crons/CronBuilder.mjs +9 -0
  131. package/dist/crons/index.cjs +16 -0
  132. package/dist/crons/index.cjs.map +1 -0
  133. package/dist/crons/index.d.cts +16 -0
  134. package/dist/crons/index.d.mts +16 -0
  135. package/dist/crons/index.mjs +14 -0
  136. package/dist/crons/index.mjs.map +1 -0
  137. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +10 -0
  138. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +9 -0
  139. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +9 -0
  140. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +10 -0
  141. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +12 -0
  142. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +10 -0
  143. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +10 -0
  144. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +12 -0
  145. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +12 -0
  146. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +10 -0
  147. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +10 -0
  148. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +12 -0
  149. package/dist/endpoints/Endpoint.cjs +9 -0
  150. package/dist/endpoints/Endpoint.d.cts +8 -0
  151. package/dist/endpoints/Endpoint.d.mts +8 -0
  152. package/dist/endpoints/Endpoint.mjs +8 -0
  153. package/dist/endpoints/EndpointBuilder.cjs +9 -0
  154. package/dist/endpoints/EndpointBuilder.d.cts +9 -0
  155. package/dist/endpoints/EndpointBuilder.d.mts +9 -0
  156. package/dist/endpoints/EndpointBuilder.mjs +9 -0
  157. package/dist/endpoints/EndpointFactory.cjs +11 -0
  158. package/dist/endpoints/EndpointFactory.d.cts +10 -0
  159. package/dist/endpoints/EndpointFactory.d.mts +10 -0
  160. package/dist/endpoints/EndpointFactory.mjs +10 -0
  161. package/dist/endpoints/HonoEndpointAdaptor.cjs +12 -0
  162. package/dist/endpoints/HonoEndpointAdaptor.d.cts +9 -0
  163. package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -0
  164. package/dist/endpoints/HonoEndpointAdaptor.mjs +12 -0
  165. package/dist/endpoints/TestEndpointAdaptor.cjs +54 -0
  166. package/dist/endpoints/TestEndpointAdaptor.cjs.map +1 -0
  167. package/dist/endpoints/TestEndpointAdaptor.d.cts +29 -0
  168. package/dist/endpoints/TestEndpointAdaptor.d.mts +29 -0
  169. package/dist/endpoints/TestEndpointAdaptor.mjs +53 -0
  170. package/dist/endpoints/TestEndpointAdaptor.mjs.map +1 -0
  171. package/dist/endpoints/helpers.cjs +10 -0
  172. package/dist/endpoints/helpers.d.cts +58 -0
  173. package/dist/endpoints/helpers.d.mts +58 -0
  174. package/dist/endpoints/helpers.mjs +9 -0
  175. package/dist/endpoints/index.cjs +16 -0
  176. package/dist/endpoints/index.cjs.map +1 -0
  177. package/dist/endpoints/index.d.cts +16 -0
  178. package/dist/endpoints/index.d.mts +16 -0
  179. package/dist/endpoints/index.mjs +15 -0
  180. package/dist/endpoints/index.mjs.map +1 -0
  181. package/dist/endpoints/parseHonoQuery.cjs +3 -0
  182. package/dist/endpoints/parseHonoQuery.d.cts +12 -0
  183. package/dist/endpoints/parseHonoQuery.d.mts +12 -0
  184. package/dist/endpoints/parseHonoQuery.mjs +3 -0
  185. package/dist/endpoints/parseQueryParams.cjs +3 -0
  186. package/dist/endpoints/parseQueryParams.d.cts +13 -0
  187. package/dist/endpoints/parseQueryParams.d.mts +13 -0
  188. package/dist/endpoints/parseQueryParams.mjs +3 -0
  189. package/dist/functions/AWSLambdaFunction.cjs +9 -0
  190. package/dist/functions/AWSLambdaFunction.d.cts +5 -0
  191. package/dist/functions/AWSLambdaFunction.d.mts +5 -0
  192. package/dist/functions/AWSLambdaFunction.mjs +9 -0
  193. package/dist/functions/BaseFunctionBuilder.cjs +4 -0
  194. package/dist/functions/BaseFunctionBuilder.d.cts +3 -0
  195. package/dist/functions/BaseFunctionBuilder.d.mts +3 -0
  196. package/dist/functions/BaseFunctionBuilder.mjs +4 -0
  197. package/dist/functions/Function.cjs +5 -0
  198. package/dist/functions/Function.d.cts +3 -0
  199. package/dist/functions/Function.d.mts +3 -0
  200. package/dist/functions/Function.mjs +4 -0
  201. package/dist/functions/FunctionBuilder.cjs +6 -0
  202. package/dist/functions/FunctionBuilder.d.cts +5 -0
  203. package/dist/functions/FunctionBuilder.d.mts +5 -0
  204. package/dist/functions/FunctionBuilder.mjs +6 -0
  205. package/dist/functions/FunctionExecutionWrapper.cjs +8 -0
  206. package/dist/functions/FunctionExecutionWrapper.d.cts +4 -0
  207. package/dist/functions/FunctionExecutionWrapper.d.mts +4 -0
  208. package/dist/functions/FunctionExecutionWrapper.mjs +8 -0
  209. package/dist/functions/TestFunctionAdaptor.cjs +38 -0
  210. package/dist/functions/TestFunctionAdaptor.cjs.map +1 -0
  211. package/dist/functions/TestFunctionAdaptor.d.cts +26 -0
  212. package/dist/functions/TestFunctionAdaptor.d.mts +26 -0
  213. package/dist/functions/TestFunctionAdaptor.mjs +37 -0
  214. package/dist/functions/TestFunctionAdaptor.mjs.map +1 -0
  215. package/dist/functions/index.cjs +10 -0
  216. package/dist/functions/index.d.cts +6 -0
  217. package/dist/functions/index.d.mts +6 -0
  218. package/dist/functions/index.mjs +7 -0
  219. package/dist/functions-DVDb5wEA.cjs +13 -0
  220. package/dist/functions-DVDb5wEA.cjs.map +1 -0
  221. package/dist/functions-mM-jcphA.mjs +8 -0
  222. package/dist/functions-mM-jcphA.mjs.map +1 -0
  223. package/dist/helpers-BeGM4pP_.cjs +95 -0
  224. package/dist/helpers-BeGM4pP_.cjs.map +1 -0
  225. package/dist/helpers-DbpO95aE.mjs +83 -0
  226. package/dist/helpers-DbpO95aE.mjs.map +1 -0
  227. package/dist/index-CuGR4L7O.d.mts +9 -0
  228. package/dist/index-Fg3N3EKD.d.cts +9 -0
  229. package/dist/index.cjs +4 -0
  230. package/dist/index.d.cts +4 -0
  231. package/dist/index.d.mts +4 -0
  232. package/dist/index.mjs +3 -0
  233. package/dist/parseHonoQuery-DopC24vB.cjs +37 -0
  234. package/dist/parseHonoQuery-DopC24vB.cjs.map +1 -0
  235. package/dist/parseHonoQuery-znDKBhdE.mjs +31 -0
  236. package/dist/parseHonoQuery-znDKBhdE.mjs.map +1 -0
  237. package/dist/parseQueryParams-BJaRh3OB.mjs +32 -0
  238. package/dist/parseQueryParams-BJaRh3OB.mjs.map +1 -0
  239. package/dist/parseQueryParams-BzPop4I1.cjs +38 -0
  240. package/dist/parseQueryParams-BzPop4I1.cjs.map +1 -0
  241. package/dist/publisher-Bw4770Hi.mjs +41 -0
  242. package/dist/publisher-Bw4770Hi.mjs.map +1 -0
  243. package/dist/publisher-lFQleddL.cjs +53 -0
  244. package/dist/publisher-lFQleddL.cjs.map +1 -0
  245. package/dist/publisher.cjs +4 -0
  246. package/dist/publisher.d.cts +13 -0
  247. package/dist/publisher.d.mts +13 -0
  248. package/dist/publisher.mjs +3 -0
  249. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +3 -0
  250. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +4 -0
  251. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +4 -0
  252. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +3 -0
  253. package/dist/subscribers/Subscriber.cjs +4 -0
  254. package/dist/subscribers/Subscriber.d.cts +3 -0
  255. package/dist/subscribers/Subscriber.d.mts +3 -0
  256. package/dist/subscribers/Subscriber.mjs +4 -0
  257. package/dist/subscribers/SubscriberBuilder.cjs +5 -0
  258. package/dist/subscribers/SubscriberBuilder.d.cts +4 -0
  259. package/dist/subscribers/SubscriberBuilder.d.mts +4 -0
  260. package/dist/subscribers/SubscriberBuilder.mjs +5 -0
  261. package/dist/subscribers/index.cjs +12 -0
  262. package/dist/subscribers/index.cjs.map +1 -0
  263. package/dist/subscribers/index.d.cts +10 -0
  264. package/dist/subscribers/index.d.mts +10 -0
  265. package/dist/subscribers/index.mjs +10 -0
  266. package/dist/subscribers/index.mjs.map +1 -0
  267. package/dist/types-Bp9ysFXd.d.cts +7 -0
  268. package/dist/types-DBKNYvsW.d.mts +7 -0
  269. package/dist/types.cjs +0 -0
  270. package/dist/types.d.cts +2 -0
  271. package/dist/types.d.mts +2 -0
  272. package/dist/types.mjs +0 -0
  273. package/package.json +91 -0
  274. package/src/Construct.ts +98 -0
  275. package/src/__tests__/Construct.environment.spec.ts +360 -0
  276. package/src/__tests__/publisher.setting.spec.ts +511 -0
  277. package/src/__tests__/publisher.spec.ts +454 -0
  278. package/src/adaptors/aws.ts +4 -0
  279. package/src/adaptors/hono.ts +1 -0
  280. package/src/crons/Cron.ts +137 -0
  281. package/src/crons/CronBuilder.ts +192 -0
  282. package/src/crons/__tests__/Cron.spec.ts +464 -0
  283. package/src/crons/index.ts +11 -0
  284. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +315 -0
  285. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +101 -0
  286. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +95 -0
  287. package/src/endpoints/Endpoint.ts +771 -0
  288. package/src/endpoints/EndpointBuilder.ts +308 -0
  289. package/src/endpoints/EndpointFactory.ts +329 -0
  290. package/src/endpoints/HonoEndpointAdaptor.ts +365 -0
  291. package/src/endpoints/TestEndpointAdaptor.ts +130 -0
  292. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +553 -0
  293. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +927 -0
  294. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +721 -0
  295. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +296 -0
  296. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +441 -0
  297. package/src/endpoints/__tests__/Endpoint.spec.ts +800 -0
  298. package/src/endpoints/__tests__/EndpointBuilder.spec.ts +488 -0
  299. package/src/endpoints/__tests__/EndpointFactory.spec.ts +479 -0
  300. package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +569 -0
  301. package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +313 -0
  302. package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +1078 -0
  303. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +236 -0
  304. package/src/endpoints/__tests__/__snapshots__/HonoEndpointAdaptor.spec.ts.snap +54 -0
  305. package/src/endpoints/__tests__/endpoint-types.test.ts +88 -0
  306. package/src/endpoints/helpers.ts +99 -0
  307. package/src/endpoints/index.ts +5 -0
  308. package/src/endpoints/parseHonoQuery.ts +51 -0
  309. package/src/endpoints/parseQueryParams.ts +51 -0
  310. package/src/functions/AWSLambdaFunction.ts +222 -0
  311. package/src/functions/BaseFunctionBuilder.ts +110 -0
  312. package/src/functions/Function.ts +160 -0
  313. package/src/functions/FunctionBuilder.ts +182 -0
  314. package/src/functions/FunctionExecutionWrapper.ts +86 -0
  315. package/src/functions/TestFunctionAdaptor.ts +125 -0
  316. package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +376 -0
  317. package/src/functions/__tests__/Function.spec.ts +402 -0
  318. package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +398 -0
  319. package/src/functions/index.ts +10 -0
  320. package/src/index.ts +14 -0
  321. package/src/publisher.ts +83 -0
  322. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +269 -0
  323. package/src/subscribers/Subscriber.ts +112 -0
  324. package/src/subscribers/SubscriberBuilder.ts +150 -0
  325. package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +623 -0
  326. package/src/subscribers/__tests__/Subscriber.spec.ts +432 -0
  327. package/src/subscribers/index.ts +5 -0
  328. package/src/types.ts +13 -0
  329. package/tsdown.config.ts +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-Bw4770Hi.mjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any, any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<Logger, TServiceName, T, OutSchema, TServices>"],"sources":["../src/publisher.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n logger: Logger,\n serviceDiscovery: ServiceDiscovery<any, any>,\n ev: MappedEvent<T, OutSchema>[] = [],\n response: InferStandardSchema<OutSchema>,\n publisherService: TPublisherService,\n) {\n try {\n if (!ev?.length) {\n logger.debug('No events to publish');\n return;\n }\n if (!publisherService) {\n logger.warn('No publisher service available');\n return;\n }\n\n const services = await serviceDiscovery.register([publisherService]);\n\n const publisher = services[\n publisherService.serviceName\n ] as EventPublisher<any>;\n\n const events: MappedEvent<T, OutSchema>[] = [];\n\n for (const { when, payload, type, ...e } of ev) {\n logger.debug({ event: type }, 'Processing event');\n const resolvedPayload = await payload(response);\n const event = {\n ...e,\n type,\n payload: resolvedPayload,\n };\n\n if (!when || when(response as any)) {\n events.push(event);\n }\n }\n\n if (events.length) {\n logger.debug({ eventCount: ev.length }, 'Publishing events');\n\n await publisher.publish(events).catch((err) => {\n logger.error(err, 'Failed to publish events');\n });\n }\n } catch (error) {\n logger.error(error as any, 'Something went wrong publishing events');\n }\n}\n\nexport async function publishConstructEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TServices extends Service[] = [],\n>(\n construct: Construct<Logger, TServiceName, T, OutSchema, TServices>,\n response: InferStandardSchema<OutSchema>,\n serviceDiscovery: ServiceDiscovery<any, any>,\n logger: Logger = construct.logger,\n) {\n return publishEvents(\n logger,\n serviceDiscovery,\n construct.events,\n response,\n construct.publisherService,\n );\n}\n"],"mappings":";AAQA,eAAsB,cAMpBA,QACAC,kBACAC,KAAkC,CAAE,GACpCC,UACAC,kBACA;AACA,KAAI;AACF,OAAK,IAAI,QAAQ;AACf,UAAO,MAAM,uBAAuB;AACpC;EACD;AACD,OAAK,kBAAkB;AACrB,UAAO,KAAK,iCAAiC;AAC7C;EACD;EAED,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAAC,gBAAiB,EAAC;EAEpE,MAAM,YAAY,SAChB,iBAAiB;EAGnB,MAAMC,SAAsC,CAAE;AAE9C,OAAK,MAAM,EAAE,MAAM,SAAS,KAAM,GAAG,GAAG,IAAI,IAAI;AAC9C,UAAO,MAAM,EAAE,OAAO,KAAM,GAAE,mBAAmB;GACjD,MAAM,kBAAkB,MAAM,QAAQ,SAAS;GAC/C,MAAM,QAAQ;IACZ,GAAG;IACH;IACA,SAAS;GACV;AAED,QAAK,QAAQ,KAAK,SAAgB,CAChC,QAAO,KAAK,MAAM;EAErB;AAED,MAAI,OAAO,QAAQ;AACjB,UAAO,MAAM,EAAE,YAAY,GAAG,OAAQ,GAAE,oBAAoB;AAE5D,SAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC7C,WAAO,MAAM,KAAK,2BAA2B;GAC9C,EAAC;EACH;CACF,SAAQ,OAAO;AACd,SAAO,MAAM,OAAc,yCAAyC;CACrE;AACF;AAED,eAAsB,uBAMpBC,WACAH,UACAF,kBACAD,SAAiB,UAAU,QAC3B;AACA,QAAO,cACL,QACA,kBACA,UAAU,QACV,UACA,UAAU,iBACX;AACF"}
@@ -0,0 +1,53 @@
1
+
2
+ //#region src/publisher.ts
3
+ async function publishEvents(logger, serviceDiscovery, ev = [], response, publisherService) {
4
+ try {
5
+ if (!ev?.length) {
6
+ logger.debug("No events to publish");
7
+ return;
8
+ }
9
+ if (!publisherService) {
10
+ logger.warn("No publisher service available");
11
+ return;
12
+ }
13
+ const services = await serviceDiscovery.register([publisherService]);
14
+ const publisher = services[publisherService.serviceName];
15
+ const events = [];
16
+ for (const { when, payload, type,...e } of ev) {
17
+ logger.debug({ event: type }, "Processing event");
18
+ const resolvedPayload = await payload(response);
19
+ const event = {
20
+ ...e,
21
+ type,
22
+ payload: resolvedPayload
23
+ };
24
+ if (!when || when(response)) events.push(event);
25
+ }
26
+ if (events.length) {
27
+ logger.debug({ eventCount: ev.length }, "Publishing events");
28
+ await publisher.publish(events).catch((err) => {
29
+ logger.error(err, "Failed to publish events");
30
+ });
31
+ }
32
+ } catch (error) {
33
+ logger.error(error, "Something went wrong publishing events");
34
+ }
35
+ }
36
+ async function publishConstructEvents(construct, response, serviceDiscovery, logger = construct.logger) {
37
+ return publishEvents(logger, serviceDiscovery, construct.events, response, construct.publisherService);
38
+ }
39
+
40
+ //#endregion
41
+ Object.defineProperty(exports, 'publishConstructEvents', {
42
+ enumerable: true,
43
+ get: function () {
44
+ return publishConstructEvents;
45
+ }
46
+ });
47
+ Object.defineProperty(exports, 'publishEvents', {
48
+ enumerable: true,
49
+ get: function () {
50
+ return publishEvents;
51
+ }
52
+ });
53
+ //# sourceMappingURL=publisher-lFQleddL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher-lFQleddL.cjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any, any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<Logger, TServiceName, T, OutSchema, TServices>"],"sources":["../src/publisher.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n logger: Logger,\n serviceDiscovery: ServiceDiscovery<any, any>,\n ev: MappedEvent<T, OutSchema>[] = [],\n response: InferStandardSchema<OutSchema>,\n publisherService: TPublisherService,\n) {\n try {\n if (!ev?.length) {\n logger.debug('No events to publish');\n return;\n }\n if (!publisherService) {\n logger.warn('No publisher service available');\n return;\n }\n\n const services = await serviceDiscovery.register([publisherService]);\n\n const publisher = services[\n publisherService.serviceName\n ] as EventPublisher<any>;\n\n const events: MappedEvent<T, OutSchema>[] = [];\n\n for (const { when, payload, type, ...e } of ev) {\n logger.debug({ event: type }, 'Processing event');\n const resolvedPayload = await payload(response);\n const event = {\n ...e,\n type,\n payload: resolvedPayload,\n };\n\n if (!when || when(response as any)) {\n events.push(event);\n }\n }\n\n if (events.length) {\n logger.debug({ eventCount: ev.length }, 'Publishing events');\n\n await publisher.publish(events).catch((err) => {\n logger.error(err, 'Failed to publish events');\n });\n }\n } catch (error) {\n logger.error(error as any, 'Something went wrong publishing events');\n }\n}\n\nexport async function publishConstructEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TServices extends Service[] = [],\n>(\n construct: Construct<Logger, TServiceName, T, OutSchema, TServices>,\n response: InferStandardSchema<OutSchema>,\n serviceDiscovery: ServiceDiscovery<any, any>,\n logger: Logger = construct.logger,\n) {\n return publishEvents(\n logger,\n serviceDiscovery,\n construct.events,\n response,\n construct.publisherService,\n );\n}\n"],"mappings":";;AAQA,eAAsB,cAMpBA,QACAC,kBACAC,KAAkC,CAAE,GACpCC,UACAC,kBACA;AACA,KAAI;AACF,OAAK,IAAI,QAAQ;AACf,UAAO,MAAM,uBAAuB;AACpC;EACD;AACD,OAAK,kBAAkB;AACrB,UAAO,KAAK,iCAAiC;AAC7C;EACD;EAED,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAAC,gBAAiB,EAAC;EAEpE,MAAM,YAAY,SAChB,iBAAiB;EAGnB,MAAMC,SAAsC,CAAE;AAE9C,OAAK,MAAM,EAAE,MAAM,SAAS,KAAM,GAAG,GAAG,IAAI,IAAI;AAC9C,UAAO,MAAM,EAAE,OAAO,KAAM,GAAE,mBAAmB;GACjD,MAAM,kBAAkB,MAAM,QAAQ,SAAS;GAC/C,MAAM,QAAQ;IACZ,GAAG;IACH;IACA,SAAS;GACV;AAED,QAAK,QAAQ,KAAK,SAAgB,CAChC,QAAO,KAAK,MAAM;EAErB;AAED,MAAI,OAAO,QAAQ;AACjB,UAAO,MAAM,EAAE,YAAY,GAAG,OAAQ,GAAE,oBAAoB;AAE5D,SAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC7C,WAAO,MAAM,KAAK,2BAA2B;GAC9C,EAAC;EACH;CACF,SAAQ,OAAO;AACd,SAAO,MAAM,OAAc,yCAAyC;CACrE;AACF;AAED,eAAsB,uBAMpBC,WACAH,UACAF,kBACAD,SAAiB,UAAU,QAC3B;AACA,QAAO,cACL,QACA,kBACA,UAAU,QACV,UACA,UAAU,iBACX;AACF"}
@@ -0,0 +1,4 @@
1
+ const require_publisher = require('./publisher-lFQleddL.cjs');
2
+
3
+ exports.publishConstructEvents = require_publisher.publishConstructEvents;
4
+ exports.publishEvents = require_publisher.publishEvents;
@@ -0,0 +1,13 @@
1
+ import { Construct } from "./Construct-Bm-PSO2V.cjs";
2
+ import { EventPublisher, MappedEvent } from "@geekmidas/events";
3
+ import { Logger } from "@geekmidas/logger";
4
+ import { Service, ServiceDiscovery } from "@geekmidas/services";
5
+ import { StandardSchemaV1 } from "@standard-schema/spec";
6
+ import { InferStandardSchema } from "@geekmidas/schema";
7
+
8
+ //#region src/publisher.d.ts
9
+ 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>;
10
+ declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = []>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
11
+ //#endregion
12
+ export { publishConstructEvents, publishEvents };
13
+ //# sourceMappingURL=publisher.d.cts.map
@@ -0,0 +1,13 @@
1
+ import { Construct } from "./Construct-DIguIyw4.mjs";
2
+ import { Service, ServiceDiscovery } from "@geekmidas/services";
3
+ import { EventPublisher, MappedEvent } from "@geekmidas/events";
4
+ import { Logger } from "@geekmidas/logger";
5
+ import { StandardSchemaV1 } from "@standard-schema/spec";
6
+ import { InferStandardSchema } from "@geekmidas/schema";
7
+
8
+ //#region src/publisher.d.ts
9
+ 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>;
10
+ declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = []>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
11
+ //#endregion
12
+ export { publishConstructEvents, publishEvents };
13
+ //# sourceMappingURL=publisher.d.mts.map
@@ -0,0 +1,3 @@
1
+ import { publishConstructEvents, publishEvents } from "./publisher-Bw4770Hi.mjs";
2
+
3
+ export { publishConstructEvents, publishEvents };
@@ -0,0 +1,3 @@
1
+ const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs');
2
+
3
+ exports.AWSLambdaSubscriber = require_AWSLambdaSubscriberAdaptor.AWSLambdaSubscriber;
@@ -0,0 +1,4 @@
1
+ import "../Construct-Bm-PSO2V.cjs";
2
+ import "../Subscriber-BoFm12i_.cjs";
3
+ import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-QKVxR6qh.cjs";
4
+ export { AWSLambdaHandler, AWSLambdaSubscriber };
@@ -0,0 +1,4 @@
1
+ import "../Construct-DIguIyw4.mjs";
2
+ import "../Subscriber-THGsj7Iy.mjs";
3
+ import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-C1wQuucQ.mjs";
4
+ export { AWSLambdaHandler, AWSLambdaSubscriber };
@@ -0,0 +1,3 @@
1
+ import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs";
2
+
3
+ export { AWSLambdaSubscriber };
@@ -0,0 +1,4 @@
1
+ require('../Construct-BSEs6uwW.cjs');
2
+ const require_Subscriber = require('../Subscriber-iMRFG7ba.cjs');
3
+
4
+ exports.Subscriber = require_Subscriber.Subscriber;
@@ -0,0 +1,3 @@
1
+ import "../Construct-Bm-PSO2V.cjs";
2
+ import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-BoFm12i_.cjs";
3
+ export { Subscriber, SubscriberContext, SubscriberHandler };
@@ -0,0 +1,3 @@
1
+ import "../Construct-DIguIyw4.mjs";
2
+ import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-THGsj7Iy.mjs";
3
+ export { Subscriber, SubscriberContext, SubscriberHandler };
@@ -0,0 +1,4 @@
1
+ import "../Construct-BbKCIPQm.mjs";
2
+ import { Subscriber } from "../Subscriber-BwuCaC9G.mjs";
3
+
4
+ export { Subscriber };
@@ -0,0 +1,5 @@
1
+ require('../Construct-BSEs6uwW.cjs');
2
+ require('../Subscriber-iMRFG7ba.cjs');
3
+ const require_SubscriberBuilder = require('../SubscriberBuilder-wthr-FL9.cjs');
4
+
5
+ exports.SubscriberBuilder = require_SubscriberBuilder.SubscriberBuilder;
@@ -0,0 +1,4 @@
1
+ import "../Construct-Bm-PSO2V.cjs";
2
+ import "../Subscriber-BoFm12i_.cjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-DuIgxuzc.cjs";
4
+ export { SubscriberBuilder };
@@ -0,0 +1,4 @@
1
+ import "../Construct-DIguIyw4.mjs";
2
+ import "../Subscriber-THGsj7Iy.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-CiPxgnKT.mjs";
4
+ export { SubscriberBuilder };
@@ -0,0 +1,5 @@
1
+ import "../Construct-BbKCIPQm.mjs";
2
+ import "../Subscriber-BwuCaC9G.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-Dhz0C_t-.mjs";
4
+
5
+ export { SubscriberBuilder };
@@ -0,0 +1,12 @@
1
+ require('../Construct-BSEs6uwW.cjs');
2
+ const require_Subscriber = require('../Subscriber-iMRFG7ba.cjs');
3
+ const require_SubscriberBuilder = require('../SubscriberBuilder-wthr-FL9.cjs');
4
+
5
+ //#region src/subscribers/index.ts
6
+ const s = new require_SubscriberBuilder.SubscriberBuilder();
7
+
8
+ //#endregion
9
+ exports.Subscriber = require_Subscriber.Subscriber;
10
+ exports.SubscriberBuilder = require_SubscriberBuilder.SubscriberBuilder;
11
+ exports.s = s;
12
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["SubscriberBuilder"],"sources":["../../src/subscribers/index.ts"],"sourcesContent":["import { SubscriberBuilder } from './SubscriberBuilder';\nexport { Subscriber } from './Subscriber';\nexport { SubscriberBuilder };\n\nexport const s = new SubscriberBuilder();\n"],"mappings":";;;;;AAIA,MAAa,IAAI,IAAIA"}
@@ -0,0 +1,10 @@
1
+ import "../Construct-Bm-PSO2V.cjs";
2
+ import { Subscriber } from "../Subscriber-BoFm12i_.cjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-DuIgxuzc.cjs";
4
+ import * as _geekmidas_logger8 from "@geekmidas/logger";
5
+
6
+ //#region src/subscribers/index.d.ts
7
+ declare const s: SubscriberBuilder<[], _geekmidas_logger8.Logger, undefined, undefined, string, []>;
8
+ //#endregion
9
+ export { Subscriber, SubscriberBuilder, s };
10
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1,10 @@
1
+ import "../Construct-DIguIyw4.mjs";
2
+ import { Subscriber } from "../Subscriber-THGsj7Iy.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-CiPxgnKT.mjs";
4
+ import * as _geekmidas_logger1 from "@geekmidas/logger";
5
+
6
+ //#region src/subscribers/index.d.ts
7
+ declare const s: SubscriberBuilder<[], _geekmidas_logger1.Logger, undefined, undefined, string, []>;
8
+ //#endregion
9
+ export { Subscriber, SubscriberBuilder, s };
10
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1,10 @@
1
+ import "../Construct-BbKCIPQm.mjs";
2
+ import { Subscriber } from "../Subscriber-BwuCaC9G.mjs";
3
+ import { SubscriberBuilder } from "../SubscriberBuilder-Dhz0C_t-.mjs";
4
+
5
+ //#region src/subscribers/index.ts
6
+ const s = new SubscriberBuilder();
7
+
8
+ //#endregion
9
+ export { Subscriber, SubscriberBuilder, s };
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":["import { SubscriberBuilder } from './SubscriberBuilder';\nexport { Subscriber } from './Subscriber';\nexport { SubscriberBuilder };\n\nexport const s = new SubscriberBuilder();\n"],"mappings":";;;;;AAIA,MAAa,IAAI,IAAI"}
@@ -0,0 +1,7 @@
1
+ //#region src/types.d.ts
2
+ type RemoveUndefined<T> = { [K in keyof T as T[K] extends undefined ? never : K]: T[K] };
3
+ type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
4
+ type LowerHttpMethod<T extends HttpMethod> = Lowercase<T>;
5
+ //#endregion
6
+ export { HttpMethod, LowerHttpMethod, RemoveUndefined };
7
+ //# sourceMappingURL=types-Bp9ysFXd.d.cts.map
@@ -0,0 +1,7 @@
1
+ //#region src/types.d.ts
2
+ type RemoveUndefined<T> = { [K in keyof T as T[K] extends undefined ? never : K]: T[K] };
3
+ type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS';
4
+ type LowerHttpMethod<T extends HttpMethod> = Lowercase<T>;
5
+ //#endregion
6
+ export { HttpMethod, LowerHttpMethod, RemoveUndefined };
7
+ //# sourceMappingURL=types-DBKNYvsW.d.mts.map
package/dist/types.cjs ADDED
File without changes
@@ -0,0 +1,2 @@
1
+ import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-Bp9ysFXd.cjs";
2
+ export { HttpMethod, LowerHttpMethod, RemoveUndefined };
@@ -0,0 +1,2 @@
1
+ import { HttpMethod, LowerHttpMethod, RemoveUndefined } from "./types-DBKNYvsW.mjs";
2
+ export { HttpMethod, LowerHttpMethod, RemoveUndefined };
package/dist/types.mjs ADDED
File without changes
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "@geekmidas/constructs",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.mjs",
10
+ "require": "./dist/index.cjs"
11
+ },
12
+ "./endpoints": {
13
+ "types": "./dist/endpoints/index.d.ts",
14
+ "import": "./dist/endpoints/index.mjs",
15
+ "require": "./dist/endpoints/index.cjs"
16
+ },
17
+ "./functions": {
18
+ "types": "./dist/functions/index.d.ts",
19
+ "import": "./dist/functions/index.mjs",
20
+ "require": "./dist/functions/index.cjs"
21
+ },
22
+ "./crons": {
23
+ "types": "./dist/crons/index.d.ts",
24
+ "import": "./dist/crons/index.mjs",
25
+ "require": "./dist/crons/index.cjs"
26
+ },
27
+ "./subscribers": {
28
+ "types": "./dist/subscribers/index.d.ts",
29
+ "import": "./dist/subscribers/index.mjs",
30
+ "require": "./dist/subscribers/index.cjs"
31
+ },
32
+ "./types": {
33
+ "types": "./dist/types.d.ts",
34
+ "import": "./dist/types.mjs",
35
+ "require": "./dist/types.cjs"
36
+ },
37
+ "./hono": {
38
+ "types": "./dist/adaptors/hono.d.ts",
39
+ "import": "./dist/adaptors/hono.mjs",
40
+ "require": "./dist/adaptors/hono.cjs"
41
+ },
42
+ "./aws": {
43
+ "types": "./dist/adaptors/aws.d.ts",
44
+ "import": "./dist/adaptors/aws.mjs",
45
+ "require": "./dist/adaptors/aws.cjs"
46
+ }
47
+ },
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/geekmidas/toolbox.git"
51
+ },
52
+ "publishConfig": {
53
+ "registry": "https://registry.npmjs.org/",
54
+ "access": "public"
55
+ },
56
+ "dependencies": {
57
+ "lodash.pick": "~4.4.0",
58
+ "lodash.set": "~4.3.2",
59
+ "lodash.get": "~4.4.2",
60
+ "lodash.uniqby": "~4.7.0",
61
+ "lodash.compact": "~3.0.1",
62
+ "openapi-types": "~12.1.3",
63
+ "fast-glob": "~3.3.3",
64
+ "@geekmidas/services": "0.0.1",
65
+ "@geekmidas/logger": "0.0.1",
66
+ "@geekmidas/cache": "0.0.7",
67
+ "@geekmidas/rate-limit": "0.1.0",
68
+ "@geekmidas/schema": "0.0.1",
69
+ "@geekmidas/events": "0.0.1",
70
+ "@geekmidas/errors": "0.0.1"
71
+ },
72
+ "devDependencies": {
73
+ "@types/lodash.pick": "~4.4.9",
74
+ "@types/lodash.set": "~4.3.9",
75
+ "@types/lodash.get": "~4.4.9",
76
+ "@types/lodash.uniqby": "~4.7.9",
77
+ "@types/lodash.compact": "~3.0.9",
78
+ "zod": "~4.1.12",
79
+ "@geekmidas/testkit": "0.0.16"
80
+ },
81
+ "peerDependencies": {
82
+ "@standard-schema/spec": ">=1.0.0",
83
+ "@middy/core": ">=6.3.1",
84
+ "@types/aws-lambda": ">=8.10.92",
85
+ "hono": ">=4.8.2",
86
+ "@geekmidas/envkit": "0.0.7"
87
+ },
88
+ "scripts": {
89
+ "ts": "tsc --noEmit --skipLibCheck src/**/*.ts"
90
+ }
91
+ }
@@ -0,0 +1,98 @@
1
+ import { EnvironmentParser } from '@geekmidas/envkit';
2
+ import type { EventPublisher, MappedEvent } from '@geekmidas/events';
3
+ import type { Logger } from '@geekmidas/logger';
4
+ import type { Service } from '@geekmidas/services';
5
+ import type { StandardSchemaV1 } from '@standard-schema/spec';
6
+ import compact from 'lodash.compact';
7
+
8
+ export abstract class Construct<
9
+ TLogger extends Logger = Logger,
10
+ TServiceName extends string = string,
11
+ T extends EventPublisher<any> | undefined = undefined,
12
+ OutSchema extends StandardSchemaV1 | undefined = undefined,
13
+ TServices extends Service[] = [],
14
+ > {
15
+ constructor(
16
+ public readonly type: ConstructType,
17
+ public readonly logger: TLogger,
18
+ public readonly services: TServices,
19
+ public readonly events: MappedEvent<T, any>[] = [],
20
+
21
+ public readonly publisherService?: Service<TServiceName, T>,
22
+ public outputSchema?: OutSchema,
23
+ ) {}
24
+
25
+ /**
26
+ * Returns an array of environment variable names required by this construct's services.
27
+ * This is determined by running a "sniffer" EnvironmentParser through each service's
28
+ * register method to track which environment variables are accessed.
29
+ *
30
+ * @returns Promise that resolves to array of environment variable names, sorted alphabetically
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const endpoint = e
35
+ * .services([databaseService, authService])
36
+ * .get('/users')
37
+ * .handle(async () => []);
38
+ *
39
+ * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']
40
+ * ```
41
+ */
42
+ async getEnvironment(): Promise<string[]> {
43
+ const envVars = new Set<string>();
44
+ const sniffer = new EnvironmentParser({});
45
+ const services: Service[] = compact([
46
+ ...this.services,
47
+ this.publisherService,
48
+ ]);
49
+
50
+ try {
51
+ // Run each service's register method with the sniffer to track env var access
52
+ for (const service of services) {
53
+ try {
54
+ const config = service.register(sniffer);
55
+
56
+ // Await if it's a Promise (async services)
57
+ const resolvedConfig =
58
+ config && typeof config === 'object' && 'then' in config
59
+ ? await Promise.resolve(config)
60
+ : config;
61
+
62
+ // If register returns a ConfigParser, collect its env vars
63
+ if (
64
+ resolvedConfig &&
65
+ typeof resolvedConfig === 'object' &&
66
+ 'getEnvironmentVariables' in resolvedConfig &&
67
+ typeof resolvedConfig.getEnvironmentVariables === 'function'
68
+ ) {
69
+ const vars = resolvedConfig.getEnvironmentVariables();
70
+ if (Array.isArray(vars)) {
71
+ vars.forEach((v: string) => envVars.add(v));
72
+ }
73
+ }
74
+ } catch (serviceError) {
75
+ // Service registration failed (e.g., missing env vars during .parse())
76
+ // But env vars were already tracked during .create(), so we continue
77
+ continue;
78
+ }
79
+ }
80
+
81
+ return Array.from(envVars).sort();
82
+ } catch (error) {
83
+ console.error(
84
+ 'Error determining environment variables for construct:',
85
+ error,
86
+ );
87
+
88
+ return [];
89
+ }
90
+ }
91
+ }
92
+
93
+ export enum ConstructType {
94
+ Cron = 'dev.geekmidas.function.cron',
95
+ Endpoint = 'dev.geekmidas.function.endpoint',
96
+ Function = 'dev.geekmidas.function.function',
97
+ Subscriber = 'dev.geekmidas.function.subscriber',
98
+ }