@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,46 @@
1
+ const require_AmazonApiGatewayEndpointAdaptor = require('./AmazonApiGatewayEndpointAdaptor-i74DEUbc.cjs');
2
+ const require_parseQueryParams = require('./parseQueryParams-BzPop4I1.cjs');
3
+
4
+ //#region src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts
5
+ var AmazonApiGatewayV2Endpoint = class extends require_AmazonApiGatewayEndpointAdaptor.AmazonApiGatewayEndpoint {
6
+ getInput(e) {
7
+ const queryParams = e.queryStringParameters || {};
8
+ const processedParams = {};
9
+ for (const [key, value] of Object.entries(queryParams)) if (value !== void 0) if (value.includes(",") && !value.includes("\"")) processedParams[key] = value.split(",").map((v) => v.trim());
10
+ else processedParams[key] = value;
11
+ return {
12
+ body: e.body ? JSON.parse(e.body) : void 0,
13
+ query: require_parseQueryParams.parseQueryParams(processedParams),
14
+ params: e.pathParameters || {}
15
+ };
16
+ }
17
+ getLoggerContext(event, context) {
18
+ return {
19
+ fn: {
20
+ name: context.functionName,
21
+ version: context.functionVersion
22
+ },
23
+ req: {
24
+ id: event.requestContext.requestId,
25
+ awsRequestId: context.awsRequestId,
26
+ ip: event.requestContext.http.sourceIp,
27
+ userAgent: event.requestContext.http.userAgent || void 0,
28
+ path: event.requestContext.http.path
29
+ }
30
+ };
31
+ }
32
+ constructor(envParser, endpoint) {
33
+ super(envParser, endpoint);
34
+ this.envParser = envParser;
35
+ this.endpoint = endpoint;
36
+ }
37
+ };
38
+
39
+ //#endregion
40
+ Object.defineProperty(exports, 'AmazonApiGatewayV2Endpoint', {
41
+ enumerable: true,
42
+ get: function () {
43
+ return AmazonApiGatewayV2Endpoint;
44
+ }
45
+ });
46
+ //# sourceMappingURL=AmazonApiGatewayV2EndpointAdaptor-YlFoFSS9.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmazonApiGatewayV2EndpointAdaptor-YlFoFSS9.cjs","names":["AmazonApiGatewayEndpoint","e: APIGatewayProxyEventV2","processedParams: Record<string, string | string[]>","event: APIGatewayProxyEventV2","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/AmazonApiGatewayV2EndpointAdaptor.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 { EventPublisher } from '@geekmidas/events';\nimport type { Service } from '@geekmidas/services';\nimport type { APIGatewayProxyEventV2, Context } from 'aws-lambda';\nimport {\n AmazonApiGatewayEndpoint,\n type AmazonApiGatewayV2EndpointHandler,\n type GetInputResponse,\n type LoggerContext,\n} from './AmazonApiGatewayEndpointAdaptor';\nimport { parseQueryParams } from './parseQueryParams';\n\nexport class AmazonApiGatewayV2Endpoint<\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 AmazonApiGatewayV2EndpointHandler,\n APIGatewayProxyEventV2,\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n> {\n getInput(e: APIGatewayProxyEventV2): GetInputResponse {\n // API Gateway V2 handles arrays as comma-separated values\n const queryParams = e.queryStringParameters || {};\n const processedParams: Record<string, string | string[]> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (value !== undefined) {\n // Check if value contains comma and could be an array\n // Be careful not to split values that legitimately contain commas\n if (value.includes(',') && !value.includes('\"')) {\n processedParams[key] = value.split(',').map((v) => v.trim());\n } else {\n processedParams[key] = value;\n }\n }\n }\n\n return {\n body: e.body ? JSON.parse(e.body) : undefined,\n query: parseQueryParams(processedParams),\n params: e.pathParameters || {},\n };\n }\n getLoggerContext(\n event: APIGatewayProxyEventV2,\n context: Context,\n ): LoggerContext {\n return {\n fn: {\n name: context.functionName,\n version: context.functionVersion,\n },\n req: {\n id: event.requestContext.requestId,\n awsRequestId: context.awsRequestId,\n ip: event.requestContext.http.sourceIp,\n userAgent: event.requestContext.http.userAgent || undefined,\n path: event.requestContext.http.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":";;;;AAiBA,IAAa,6BAAb,cASUA,iEAWR;CACA,SAASC,GAA6C;EAEpD,MAAM,cAAc,EAAE,yBAAyB,CAAE;EACjD,MAAMC,kBAAqD,CAAE;AAE7D,OAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,YAAY,CACpD,KAAI,iBAGF,KAAI,MAAM,SAAS,IAAI,KAAK,MAAM,SAAS,KAAI,CAC7C,iBAAgB,OAAO,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;MAE5D,iBAAgB,OAAO;AAK7B,SAAO;GACL,MAAM,EAAE,OAAO,KAAK,MAAM,EAAE,KAAK;GACjC,OAAO,0CAAiB,gBAAgB;GACxC,QAAQ,EAAE,kBAAkB,CAAE;EAC/B;CACF;CACD,iBACEC,OACAC,SACe;AACf,SAAO;GACL,IAAI;IACF,MAAM,QAAQ;IACd,SAAS,QAAQ;GAClB;GACD,KAAK;IACH,IAAI,MAAM,eAAe;IACzB,cAAc,QAAQ;IACtB,IAAI,MAAM,eAAe,KAAK;IAC9B,WAAW,MAAM,eAAe,KAAK;IACrC,MAAM,MAAM,eAAe,KAAK;GACjC;EACF;CACF;CACD,YACYC,WACSC,UAUnB;AACA,QAAM,WAAW,SAAS;EAZhB;EACS;CAYpB;AACF"}
@@ -0,0 +1,21 @@
1
+ import { HttpMethod } from "./types-DBKNYvsW.mjs";
2
+ import { Endpoint, EndpointSchemas } from "./Endpoint-DCn53Vd8.mjs";
3
+ import { AmazonApiGatewayEndpoint, AmazonApiGatewayV2EndpointHandler, GetInputResponse, LoggerContext } from "./AmazonApiGatewayEndpointAdaptor-BoBh7vvD.mjs";
4
+ import { EnvironmentParser } from "@geekmidas/envkit";
5
+ import { Service } from "@geekmidas/services";
6
+ import { EventPublisher } from "@geekmidas/events";
7
+ import { Logger } from "@geekmidas/logger";
8
+ import { StandardSchemaV1 } from "@standard-schema/spec";
9
+ import { APIGatewayProxyEventV2, Context } from "aws-lambda";
10
+
11
+ //#region src/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.ts
12
+ declare class AmazonApiGatewayV2Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined> extends AmazonApiGatewayEndpoint<AmazonApiGatewayV2EndpointHandler, APIGatewayProxyEventV2, TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher> {
13
+ protected envParser: EnvironmentParser<{}>;
14
+ protected readonly endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher>;
15
+ getInput(e: APIGatewayProxyEventV2): GetInputResponse;
16
+ getLoggerContext(event: APIGatewayProxyEventV2, context: Context): LoggerContext;
17
+ constructor(envParser: EnvironmentParser<{}>, endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher>);
18
+ }
19
+ //#endregion
20
+ export { AmazonApiGatewayV2Endpoint };
21
+ //# sourceMappingURL=AmazonApiGatewayV2EndpointAdaptor-zfd1gqXA.d.mts.map
@@ -0,0 +1,31 @@
1
+ import { ConstructType } from "./Construct-Bm-PSO2V.cjs";
2
+ import { EventPublisher, MappedEvent } from "@geekmidas/events";
3
+ import { Logger } from "@geekmidas/logger";
4
+ import { Service } from "@geekmidas/services";
5
+ import { StandardSchemaV1 } from "@standard-schema/spec";
6
+ import { ComposableStandardSchema, InferComposableStandardSchema } from "@geekmidas/schema";
7
+
8
+ //#region src/functions/BaseFunctionBuilder.d.ts
9
+ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSchema, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string> {
10
+ type: ConstructType;
11
+ protected inputSchema?: TInput;
12
+ protected outputSchema?: OutSchema;
13
+ protected _timeout?: number;
14
+ _services: TServices;
15
+ _logger: TLogger;
16
+ protected _events: MappedEvent<TEventPublisher, OutSchema>[];
17
+ protected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
18
+ static isStandardSchemaV1(s: unknown): s is StandardSchemaV1;
19
+ static parseComposableStandardSchema<T extends ComposableStandardSchema | undefined>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>>;
20
+ constructor(type?: ConstructType);
21
+ abstract services<T extends Service[]>(services: T): any;
22
+ abstract logger<T extends Logger>(logger: T): any;
23
+ timeout(timeout: number): this;
24
+ abstract output<T extends StandardSchemaV1>(schema: T): any;
25
+ abstract input<T extends ComposableStandardSchema>(schema: T): any;
26
+ event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(event: TEvent): this;
27
+ publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName>;
28
+ }
29
+ //#endregion
30
+ export { BaseFunctionBuilder };
31
+ //# sourceMappingURL=BaseFunctionBuilder-5QCHkchp.d.cts.map
@@ -0,0 +1,31 @@
1
+ import { ConstructType } from "./Construct-DIguIyw4.mjs";
2
+ import { Service } 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 { ComposableStandardSchema, InferComposableStandardSchema } from "@geekmidas/schema";
7
+
8
+ //#region src/functions/BaseFunctionBuilder.d.ts
9
+ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSchema, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string> {
10
+ type: ConstructType;
11
+ protected inputSchema?: TInput;
12
+ protected outputSchema?: OutSchema;
13
+ protected _timeout?: number;
14
+ _services: TServices;
15
+ _logger: TLogger;
16
+ protected _events: MappedEvent<TEventPublisher, OutSchema>[];
17
+ protected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;
18
+ static isStandardSchemaV1(s: unknown): s is StandardSchemaV1;
19
+ static parseComposableStandardSchema<T extends ComposableStandardSchema | undefined>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>>;
20
+ constructor(type?: ConstructType);
21
+ abstract services<T extends Service[]>(services: T): any;
22
+ abstract logger<T extends Logger>(logger: T): any;
23
+ timeout(timeout: number): this;
24
+ abstract output<T extends StandardSchemaV1>(schema: T): any;
25
+ abstract input<T extends ComposableStandardSchema>(schema: T): any;
26
+ event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(event: TEvent): this;
27
+ publisher<T extends EventPublisher<any>, TName extends string>(publisher: Service<TName, T>): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName>;
28
+ }
29
+ //#endregion
30
+ export { BaseFunctionBuilder };
31
+ //# sourceMappingURL=BaseFunctionBuilder-BFPVGnKi.d.mts.map
@@ -0,0 +1,56 @@
1
+ import { ConstructType } from "./Construct-BbKCIPQm.mjs";
2
+ import { ConsoleLogger } from "@geekmidas/logger/console";
3
+ import get from "lodash.get";
4
+
5
+ //#region src/functions/BaseFunctionBuilder.ts
6
+ const DEFAULT_LOGGER$1 = new ConsoleLogger();
7
+ var BaseFunctionBuilder = class BaseFunctionBuilder {
8
+ inputSchema;
9
+ outputSchema;
10
+ _timeout;
11
+ _services = [];
12
+ _logger = DEFAULT_LOGGER$1;
13
+ _events = [];
14
+ _publisher;
15
+ static isStandardSchemaV1(s) {
16
+ const schema = s["~standard"];
17
+ return schema && typeof schema.validate === "function";
18
+ }
19
+ static async parseComposableStandardSchema(data, schema) {
20
+ if (BaseFunctionBuilder.isStandardSchemaV1(schema)) {
21
+ const validated = await schema["~standard"].validate(data);
22
+ if (validated.issues) throw validated.issues;
23
+ return validated.value;
24
+ }
25
+ const result = {};
26
+ for (const key in schema) {
27
+ const item = schema[key];
28
+ if (BaseFunctionBuilder.isStandardSchemaV1(item)) {
29
+ const value = get(data, key);
30
+ const validated = await item["~standard"].validate(value);
31
+ if (validated.issues) throw validated.issues;
32
+ result[key] = validated.value;
33
+ }
34
+ }
35
+ return result;
36
+ }
37
+ constructor(type = ConstructType.Function) {
38
+ this.type = type;
39
+ }
40
+ timeout(timeout) {
41
+ this._timeout = timeout;
42
+ return this;
43
+ }
44
+ event(event) {
45
+ this._events.push(event);
46
+ return this;
47
+ }
48
+ publisher(publisher) {
49
+ this._publisher = publisher;
50
+ return this;
51
+ }
52
+ };
53
+
54
+ //#endregion
55
+ export { BaseFunctionBuilder };
56
+ //# sourceMappingURL=BaseFunctionBuilder-BPE9JBbT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseFunctionBuilder-BPE9JBbT.mjs","names":["DEFAULT_LOGGER","s: unknown","data: unknown","schema: T","result: any","timeout: number","event: TEvent","publisher: Service<TName, T>"],"sources":["../src/functions/BaseFunctionBuilder.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport { ConsoleLogger } from '@geekmidas/logger/console';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport get from 'lodash.get';\nimport { ConstructType } from '../Construct';\n\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type {\n ComposableStandardSchema,\n InferComposableStandardSchema,\n} from '@geekmidas/schema';\n\nconst DEFAULT_LOGGER = new ConsoleLogger() as any;\n\nexport abstract class BaseFunctionBuilder<\n TInput extends ComposableStandardSchema,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n> {\n protected inputSchema?: TInput;\n protected outputSchema?: OutSchema;\n protected _timeout?: number;\n\n public _services: TServices = [] as Service[] as TServices;\n public _logger: TLogger = DEFAULT_LOGGER;\n\n protected _events: MappedEvent<TEventPublisher, OutSchema>[] = [];\n protected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n\n static isStandardSchemaV1(s: unknown): s is StandardSchemaV1 {\n const schema = (s as StandardSchemaV1)['~standard'];\n\n return schema && typeof schema.validate === 'function';\n }\n\n static async parseComposableStandardSchema<\n T extends ComposableStandardSchema | undefined,\n >(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>> {\n if (BaseFunctionBuilder.isStandardSchemaV1(schema)) {\n const validated = await schema['~standard'].validate(data);\n\n if (validated.issues) {\n throw validated.issues;\n }\n\n return validated.value as InferComposableStandardSchema<T>;\n }\n\n const result: any = {};\n for (const key in schema) {\n const item = schema[key];\n if (BaseFunctionBuilder.isStandardSchemaV1(item)) {\n const value = get(data, key);\n const validated = await item['~standard'].validate(value);\n\n if (validated.issues) {\n throw validated.issues;\n }\n\n result[key] = validated.value;\n }\n }\n\n return result as InferComposableStandardSchema<T>;\n }\n\n constructor(public type = ConstructType.Function) {}\n\n abstract services<T extends Service[]>(services: T): any;\n\n abstract logger<T extends Logger>(logger: T): any;\n\n timeout(timeout: number): this {\n this._timeout = timeout;\n return this;\n }\n\n abstract output<T extends StandardSchemaV1>(schema: T): any;\n\n abstract input<T extends ComposableStandardSchema>(schema: T): any;\n\n event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(\n event: TEvent,\n ): this {\n this._events.push(event);\n return this;\n }\n\n publisher<T extends EventPublisher<any>, TName extends string>(\n publisher: Service<TName, T>,\n ): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName> {\n this._publisher = publisher as unknown as Service<\n TEventPublisherServiceName,\n TEventPublisher\n >;\n\n return this as unknown as BaseFunctionBuilder<\n TInput,\n OutSchema,\n TServices,\n TLogger,\n T,\n TName\n >;\n }\n}\n"],"mappings":";;;;;AAaA,MAAMA,mBAAiB,IAAI;AAE3B,IAAsB,sBAAtB,MAAsB,oBAOpB;CACA,AAAU;CACV,AAAU;CACV,AAAU;CAEV,AAAO,YAAuB,CAAE;CAChC,AAAO,UAAmBA;CAE1B,AAAU,UAAqD,CAAE;CACjE,AAAU;CAEV,OAAO,mBAAmBC,GAAmC;EAC3D,MAAM,SAAU,EAAuB;AAEvC,SAAO,iBAAiB,OAAO,aAAa;CAC7C;CAED,aAAa,8BAEXC,MAAeC,QAAsD;AACrE,MAAI,oBAAoB,mBAAmB,OAAO,EAAE;GAClD,MAAM,YAAY,MAAM,OAAO,aAAa,SAAS,KAAK;AAE1D,OAAI,UAAU,OACZ,OAAM,UAAU;AAGlB,UAAO,UAAU;EAClB;EAED,MAAMC,SAAc,CAAE;AACtB,OAAK,MAAM,OAAO,QAAQ;GACxB,MAAM,OAAO,OAAO;AACpB,OAAI,oBAAoB,mBAAmB,KAAK,EAAE;IAChD,MAAM,QAAQ,IAAI,MAAM,IAAI;IAC5B,MAAM,YAAY,MAAM,KAAK,aAAa,SAAS,MAAM;AAEzD,QAAI,UAAU,OACZ,OAAM,UAAU;AAGlB,WAAO,OAAO,UAAU;GACzB;EACF;AAED,SAAO;CACR;CAED,YAAmB,OAAO,cAAc,UAAU;EAA/B;CAAiC;CAMpD,QAAQC,SAAuB;AAC7B,OAAK,WAAW;AAChB,SAAO;CACR;CAMD,MACEC,OACM;AACN,OAAK,QAAQ,KAAK,MAAM;AACxB,SAAO;CACR;CAED,UACEC,WACsE;AACtE,OAAK,aAAa;AAKlB,SAAO;CAQR;AACF"}
@@ -0,0 +1,62 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_Construct = require('./Construct-BSEs6uwW.cjs');
3
+ const __geekmidas_logger_console = require_chunk.__toESM(require("@geekmidas/logger/console"));
4
+ const lodash_get = require_chunk.__toESM(require("lodash.get"));
5
+
6
+ //#region src/functions/BaseFunctionBuilder.ts
7
+ const DEFAULT_LOGGER = new __geekmidas_logger_console.ConsoleLogger();
8
+ var BaseFunctionBuilder = class BaseFunctionBuilder {
9
+ inputSchema;
10
+ outputSchema;
11
+ _timeout;
12
+ _services = [];
13
+ _logger = DEFAULT_LOGGER;
14
+ _events = [];
15
+ _publisher;
16
+ static isStandardSchemaV1(s) {
17
+ const schema = s["~standard"];
18
+ return schema && typeof schema.validate === "function";
19
+ }
20
+ static async parseComposableStandardSchema(data, schema) {
21
+ if (BaseFunctionBuilder.isStandardSchemaV1(schema)) {
22
+ const validated = await schema["~standard"].validate(data);
23
+ if (validated.issues) throw validated.issues;
24
+ return validated.value;
25
+ }
26
+ const result = {};
27
+ for (const key in schema) {
28
+ const item = schema[key];
29
+ if (BaseFunctionBuilder.isStandardSchemaV1(item)) {
30
+ const value = (0, lodash_get.default)(data, key);
31
+ const validated = await item["~standard"].validate(value);
32
+ if (validated.issues) throw validated.issues;
33
+ result[key] = validated.value;
34
+ }
35
+ }
36
+ return result;
37
+ }
38
+ constructor(type = require_Construct.ConstructType.Function) {
39
+ this.type = type;
40
+ }
41
+ timeout(timeout) {
42
+ this._timeout = timeout;
43
+ return this;
44
+ }
45
+ event(event) {
46
+ this._events.push(event);
47
+ return this;
48
+ }
49
+ publisher(publisher) {
50
+ this._publisher = publisher;
51
+ return this;
52
+ }
53
+ };
54
+
55
+ //#endregion
56
+ Object.defineProperty(exports, 'BaseFunctionBuilder', {
57
+ enumerable: true,
58
+ get: function () {
59
+ return BaseFunctionBuilder;
60
+ }
61
+ });
62
+ //# sourceMappingURL=BaseFunctionBuilder-DtO4Nwxm.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseFunctionBuilder-DtO4Nwxm.cjs","names":["ConsoleLogger","s: unknown","data: unknown","schema: T","result: any","ConstructType","timeout: number","event: TEvent","publisher: Service<TName, T>"],"sources":["../src/functions/BaseFunctionBuilder.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport { ConsoleLogger } from '@geekmidas/logger/console';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport get from 'lodash.get';\nimport { ConstructType } from '../Construct';\n\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type {\n ComposableStandardSchema,\n InferComposableStandardSchema,\n} from '@geekmidas/schema';\n\nconst DEFAULT_LOGGER = new ConsoleLogger() as any;\n\nexport abstract class BaseFunctionBuilder<\n TInput extends ComposableStandardSchema,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n> {\n protected inputSchema?: TInput;\n protected outputSchema?: OutSchema;\n protected _timeout?: number;\n\n public _services: TServices = [] as Service[] as TServices;\n public _logger: TLogger = DEFAULT_LOGGER;\n\n protected _events: MappedEvent<TEventPublisher, OutSchema>[] = [];\n protected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n\n static isStandardSchemaV1(s: unknown): s is StandardSchemaV1 {\n const schema = (s as StandardSchemaV1)['~standard'];\n\n return schema && typeof schema.validate === 'function';\n }\n\n static async parseComposableStandardSchema<\n T extends ComposableStandardSchema | undefined,\n >(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>> {\n if (BaseFunctionBuilder.isStandardSchemaV1(schema)) {\n const validated = await schema['~standard'].validate(data);\n\n if (validated.issues) {\n throw validated.issues;\n }\n\n return validated.value as InferComposableStandardSchema<T>;\n }\n\n const result: any = {};\n for (const key in schema) {\n const item = schema[key];\n if (BaseFunctionBuilder.isStandardSchemaV1(item)) {\n const value = get(data, key);\n const validated = await item['~standard'].validate(value);\n\n if (validated.issues) {\n throw validated.issues;\n }\n\n result[key] = validated.value;\n }\n }\n\n return result as InferComposableStandardSchema<T>;\n }\n\n constructor(public type = ConstructType.Function) {}\n\n abstract services<T extends Service[]>(services: T): any;\n\n abstract logger<T extends Logger>(logger: T): any;\n\n timeout(timeout: number): this {\n this._timeout = timeout;\n return this;\n }\n\n abstract output<T extends StandardSchemaV1>(schema: T): any;\n\n abstract input<T extends ComposableStandardSchema>(schema: T): any;\n\n event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(\n event: TEvent,\n ): this {\n this._events.push(event);\n return this;\n }\n\n publisher<T extends EventPublisher<any>, TName extends string>(\n publisher: Service<TName, T>,\n ): BaseFunctionBuilder<TInput, OutSchema, TServices, TLogger, T, TName> {\n this._publisher = publisher as unknown as Service<\n TEventPublisherServiceName,\n TEventPublisher\n >;\n\n return this as unknown as BaseFunctionBuilder<\n TInput,\n OutSchema,\n TServices,\n TLogger,\n T,\n TName\n >;\n }\n}\n"],"mappings":";;;;;;AAaA,MAAM,iBAAiB,IAAIA;AAE3B,IAAsB,sBAAtB,MAAsB,oBAOpB;CACA,AAAU;CACV,AAAU;CACV,AAAU;CAEV,AAAO,YAAuB,CAAE;CAChC,AAAO,UAAmB;CAE1B,AAAU,UAAqD,CAAE;CACjE,AAAU;CAEV,OAAO,mBAAmBC,GAAmC;EAC3D,MAAM,SAAU,EAAuB;AAEvC,SAAO,iBAAiB,OAAO,aAAa;CAC7C;CAED,aAAa,8BAEXC,MAAeC,QAAsD;AACrE,MAAI,oBAAoB,mBAAmB,OAAO,EAAE;GAClD,MAAM,YAAY,MAAM,OAAO,aAAa,SAAS,KAAK;AAE1D,OAAI,UAAU,OACZ,OAAM,UAAU;AAGlB,UAAO,UAAU;EAClB;EAED,MAAMC,SAAc,CAAE;AACtB,OAAK,MAAM,OAAO,QAAQ;GACxB,MAAM,OAAO,OAAO;AACpB,OAAI,oBAAoB,mBAAmB,KAAK,EAAE;IAChD,MAAM,QAAQ,wBAAI,MAAM,IAAI;IAC5B,MAAM,YAAY,MAAM,KAAK,aAAa,SAAS,MAAM;AAEzD,QAAI,UAAU,OACZ,OAAM,UAAU;AAGlB,WAAO,OAAO,UAAU;GACzB;EACF;AAED,SAAO;CACR;CAED,YAAmB,OAAOC,gCAAc,UAAU;EAA/B;CAAiC;CAMpD,QAAQC,SAAuB;AAC7B,OAAK,WAAW;AAChB,SAAO;CACR;CAMD,MACEC,OACM;AACN,OAAK,QAAQ,KAAK,MAAM;AACxB,SAAO;CACR;CAED,UACEC,WACsE;AACtE,OAAK,aAAa;AAKlB,SAAO;CAQR;AACF"}
@@ -0,0 +1,75 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const __geekmidas_envkit = require_chunk.__toESM(require("@geekmidas/envkit"));
3
+ const lodash_compact = require_chunk.__toESM(require("lodash.compact"));
4
+
5
+ //#region src/Construct.ts
6
+ var Construct = class {
7
+ constructor(type, logger, services, events = [], publisherService, outputSchema) {
8
+ this.type = type;
9
+ this.logger = logger;
10
+ this.services = services;
11
+ this.events = events;
12
+ this.publisherService = publisherService;
13
+ this.outputSchema = outputSchema;
14
+ }
15
+ /**
16
+ * Returns an array of environment variable names required by this construct's services.
17
+ * This is determined by running a "sniffer" EnvironmentParser through each service's
18
+ * register method to track which environment variables are accessed.
19
+ *
20
+ * @returns Promise that resolves to array of environment variable names, sorted alphabetically
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const endpoint = e
25
+ * .services([databaseService, authService])
26
+ * .get('/users')
27
+ * .handle(async () => []);
28
+ *
29
+ * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']
30
+ * ```
31
+ */
32
+ async getEnvironment() {
33
+ const envVars = /* @__PURE__ */ new Set();
34
+ const sniffer = new __geekmidas_envkit.EnvironmentParser({});
35
+ const services = (0, lodash_compact.default)([...this.services, this.publisherService]);
36
+ try {
37
+ for (const service of services) try {
38
+ const config = service.register(sniffer);
39
+ const resolvedConfig = config && typeof config === "object" && "then" in config ? await Promise.resolve(config) : config;
40
+ if (resolvedConfig && typeof resolvedConfig === "object" && "getEnvironmentVariables" in resolvedConfig && typeof resolvedConfig.getEnvironmentVariables === "function") {
41
+ const vars = resolvedConfig.getEnvironmentVariables();
42
+ if (Array.isArray(vars)) vars.forEach((v) => envVars.add(v));
43
+ }
44
+ } catch (serviceError) {
45
+ continue;
46
+ }
47
+ return Array.from(envVars).sort();
48
+ } catch (error) {
49
+ console.error("Error determining environment variables for construct:", error);
50
+ return [];
51
+ }
52
+ }
53
+ };
54
+ let ConstructType = /* @__PURE__ */ function(ConstructType$1) {
55
+ ConstructType$1["Cron"] = "dev.geekmidas.function.cron";
56
+ ConstructType$1["Endpoint"] = "dev.geekmidas.function.endpoint";
57
+ ConstructType$1["Function"] = "dev.geekmidas.function.function";
58
+ ConstructType$1["Subscriber"] = "dev.geekmidas.function.subscriber";
59
+ return ConstructType$1;
60
+ }({});
61
+
62
+ //#endregion
63
+ Object.defineProperty(exports, 'Construct', {
64
+ enumerable: true,
65
+ get: function () {
66
+ return Construct;
67
+ }
68
+ });
69
+ Object.defineProperty(exports, 'ConstructType', {
70
+ enumerable: true,
71
+ get: function () {
72
+ return ConstructType;
73
+ }
74
+ });
75
+ //# sourceMappingURL=Construct-BSEs6uwW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Construct-BSEs6uwW.cjs","names":["type: ConstructType","logger: TLogger","services: TServices","events: MappedEvent<T, any>[]","publisherService?: Service<TServiceName, T>","outputSchema?: OutSchema","EnvironmentParser","services: Service[]","v: string"],"sources":["../src/Construct.ts"],"sourcesContent":["import { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\nexport abstract class Construct<\n TLogger extends Logger = Logger,\n TServiceName extends string = string,\n T extends EventPublisher<any> | undefined = undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n> {\n constructor(\n public readonly type: ConstructType,\n public readonly logger: TLogger,\n public readonly services: TServices,\n public readonly events: MappedEvent<T, any>[] = [],\n\n public readonly publisherService?: Service<TServiceName, T>,\n public outputSchema?: OutSchema,\n ) {}\n\n /**\n * Returns an array of environment variable names required by this construct's services.\n * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n * register method to track which environment variables are accessed.\n *\n * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n *\n * @example\n * ```typescript\n * const endpoint = e\n * .services([databaseService, authService])\n * .get('/users')\n * .handle(async () => []);\n *\n * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n * ```\n */\n async getEnvironment(): Promise<string[]> {\n const envVars = new Set<string>();\n const sniffer = new EnvironmentParser({});\n const services: Service[] = compact([\n ...this.services,\n this.publisherService,\n ]);\n\n try {\n // Run each service's register method with the sniffer to track env var access\n for (const service of services) {\n try {\n const config = service.register(sniffer);\n\n // Await if it's a Promise (async services)\n const resolvedConfig =\n config && typeof config === 'object' && 'then' in config\n ? await Promise.resolve(config)\n : config;\n\n // If register returns a ConfigParser, collect its env vars\n if (\n resolvedConfig &&\n typeof resolvedConfig === 'object' &&\n 'getEnvironmentVariables' in resolvedConfig &&\n typeof resolvedConfig.getEnvironmentVariables === 'function'\n ) {\n const vars = resolvedConfig.getEnvironmentVariables();\n if (Array.isArray(vars)) {\n vars.forEach((v: string) => envVars.add(v));\n }\n }\n } catch (serviceError) {\n // Service registration failed (e.g., missing env vars during .parse())\n // But env vars were already tracked during .create(), so we continue\n continue;\n }\n }\n\n return Array.from(envVars).sort();\n } catch (error) {\n console.error(\n 'Error determining environment variables for construct:',\n error,\n );\n\n return [];\n }\n }\n}\n\nexport enum ConstructType {\n Cron = 'dev.geekmidas.function.cron',\n Endpoint = 'dev.geekmidas.function.endpoint',\n Function = 'dev.geekmidas.function.function',\n Subscriber = 'dev.geekmidas.function.subscriber',\n}\n"],"mappings":";;;;;AAOA,IAAsB,YAAtB,MAME;CACA,YACkBA,MACAC,QACAC,UACAC,SAAgC,CAAE,GAElCC,kBACTC,cACP;EAPgB;EACA;EACA;EACA;EAEA;EACT;CACL;;;;;;;;;;;;;;;;;;CAmBJ,MAAM,iBAAoC;EACxC,MAAM,0BAAU,IAAI;EACpB,MAAM,UAAU,IAAIC,qCAAkB,CAAE;EACxC,MAAMC,WAAsB,4BAAQ,CAClC,GAAG,KAAK,UACR,KAAK,gBACN,EAAC;AAEF,MAAI;AAEF,QAAK,MAAM,WAAW,SACpB,KAAI;IACF,MAAM,SAAS,QAAQ,SAAS,QAAQ;IAGxC,MAAM,iBACJ,iBAAiB,WAAW,YAAY,UAAU,SAC9C,MAAM,QAAQ,QAAQ,OAAO,GAC7B;AAGN,QACE,yBACO,mBAAmB,YAC1B,6BAA6B,yBACtB,eAAe,4BAA4B,YAClD;KACA,MAAM,OAAO,eAAe,yBAAyB;AACrD,SAAI,MAAM,QAAQ,KAAK,CACrB,MAAK,QAAQ,CAACC,MAAc,QAAQ,IAAI,EAAE,CAAC;IAE9C;GACF,SAAQ,cAAc;AAGrB;GACD;AAGH,UAAO,MAAM,KAAK,QAAQ,CAAC,MAAM;EAClC,SAAQ,OAAO;AACd,WAAQ,MACN,0DACA,MACD;AAED,UAAO,CAAE;EACV;CACF;AACF;AAED,IAAY,0DAAL;AACL;AACA;AACA;AACA;;AACD"}
@@ -0,0 +1,63 @@
1
+ import { EnvironmentParser } from "@geekmidas/envkit";
2
+ import compact from "lodash.compact";
3
+
4
+ //#region src/Construct.ts
5
+ var Construct = class {
6
+ constructor(type, logger, services, events = [], publisherService, outputSchema) {
7
+ this.type = type;
8
+ this.logger = logger;
9
+ this.services = services;
10
+ this.events = events;
11
+ this.publisherService = publisherService;
12
+ this.outputSchema = outputSchema;
13
+ }
14
+ /**
15
+ * Returns an array of environment variable names required by this construct's services.
16
+ * This is determined by running a "sniffer" EnvironmentParser through each service's
17
+ * register method to track which environment variables are accessed.
18
+ *
19
+ * @returns Promise that resolves to array of environment variable names, sorted alphabetically
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const endpoint = e
24
+ * .services([databaseService, authService])
25
+ * .get('/users')
26
+ * .handle(async () => []);
27
+ *
28
+ * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']
29
+ * ```
30
+ */
31
+ async getEnvironment() {
32
+ const envVars = /* @__PURE__ */ new Set();
33
+ const sniffer = new EnvironmentParser({});
34
+ const services = compact([...this.services, this.publisherService]);
35
+ try {
36
+ for (const service of services) try {
37
+ const config = service.register(sniffer);
38
+ const resolvedConfig = config && typeof config === "object" && "then" in config ? await Promise.resolve(config) : config;
39
+ if (resolvedConfig && typeof resolvedConfig === "object" && "getEnvironmentVariables" in resolvedConfig && typeof resolvedConfig.getEnvironmentVariables === "function") {
40
+ const vars = resolvedConfig.getEnvironmentVariables();
41
+ if (Array.isArray(vars)) vars.forEach((v) => envVars.add(v));
42
+ }
43
+ } catch (serviceError) {
44
+ continue;
45
+ }
46
+ return Array.from(envVars).sort();
47
+ } catch (error) {
48
+ console.error("Error determining environment variables for construct:", error);
49
+ return [];
50
+ }
51
+ }
52
+ };
53
+ let ConstructType = /* @__PURE__ */ function(ConstructType$1) {
54
+ ConstructType$1["Cron"] = "dev.geekmidas.function.cron";
55
+ ConstructType$1["Endpoint"] = "dev.geekmidas.function.endpoint";
56
+ ConstructType$1["Function"] = "dev.geekmidas.function.function";
57
+ ConstructType$1["Subscriber"] = "dev.geekmidas.function.subscriber";
58
+ return ConstructType$1;
59
+ }({});
60
+
61
+ //#endregion
62
+ export { Construct, ConstructType };
63
+ //# sourceMappingURL=Construct-BbKCIPQm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Construct-BbKCIPQm.mjs","names":["type: ConstructType","logger: TLogger","services: TServices","events: MappedEvent<T, any>[]","publisherService?: Service<TServiceName, T>","outputSchema?: OutSchema","services: Service[]","v: string"],"sources":["../src/Construct.ts"],"sourcesContent":["import { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\nexport abstract class Construct<\n TLogger extends Logger = Logger,\n TServiceName extends string = string,\n T extends EventPublisher<any> | undefined = undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServices extends Service[] = [],\n> {\n constructor(\n public readonly type: ConstructType,\n public readonly logger: TLogger,\n public readonly services: TServices,\n public readonly events: MappedEvent<T, any>[] = [],\n\n public readonly publisherService?: Service<TServiceName, T>,\n public outputSchema?: OutSchema,\n ) {}\n\n /**\n * Returns an array of environment variable names required by this construct's services.\n * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n * register method to track which environment variables are accessed.\n *\n * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n *\n * @example\n * ```typescript\n * const endpoint = e\n * .services([databaseService, authService])\n * .get('/users')\n * .handle(async () => []);\n *\n * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n * ```\n */\n async getEnvironment(): Promise<string[]> {\n const envVars = new Set<string>();\n const sniffer = new EnvironmentParser({});\n const services: Service[] = compact([\n ...this.services,\n this.publisherService,\n ]);\n\n try {\n // Run each service's register method with the sniffer to track env var access\n for (const service of services) {\n try {\n const config = service.register(sniffer);\n\n // Await if it's a Promise (async services)\n const resolvedConfig =\n config && typeof config === 'object' && 'then' in config\n ? await Promise.resolve(config)\n : config;\n\n // If register returns a ConfigParser, collect its env vars\n if (\n resolvedConfig &&\n typeof resolvedConfig === 'object' &&\n 'getEnvironmentVariables' in resolvedConfig &&\n typeof resolvedConfig.getEnvironmentVariables === 'function'\n ) {\n const vars = resolvedConfig.getEnvironmentVariables();\n if (Array.isArray(vars)) {\n vars.forEach((v: string) => envVars.add(v));\n }\n }\n } catch (serviceError) {\n // Service registration failed (e.g., missing env vars during .parse())\n // But env vars were already tracked during .create(), so we continue\n continue;\n }\n }\n\n return Array.from(envVars).sort();\n } catch (error) {\n console.error(\n 'Error determining environment variables for construct:',\n error,\n );\n\n return [];\n }\n }\n}\n\nexport enum ConstructType {\n Cron = 'dev.geekmidas.function.cron',\n Endpoint = 'dev.geekmidas.function.endpoint',\n Function = 'dev.geekmidas.function.function',\n Subscriber = 'dev.geekmidas.function.subscriber',\n}\n"],"mappings":";;;;AAOA,IAAsB,YAAtB,MAME;CACA,YACkBA,MACAC,QACAC,UACAC,SAAgC,CAAE,GAElCC,kBACTC,cACP;EAPgB;EACA;EACA;EACA;EAEA;EACT;CACL;;;;;;;;;;;;;;;;;;CAmBJ,MAAM,iBAAoC;EACxC,MAAM,0BAAU,IAAI;EACpB,MAAM,UAAU,IAAI,kBAAkB,CAAE;EACxC,MAAMC,WAAsB,QAAQ,CAClC,GAAG,KAAK,UACR,KAAK,gBACN,EAAC;AAEF,MAAI;AAEF,QAAK,MAAM,WAAW,SACpB,KAAI;IACF,MAAM,SAAS,QAAQ,SAAS,QAAQ;IAGxC,MAAM,iBACJ,iBAAiB,WAAW,YAAY,UAAU,SAC9C,MAAM,QAAQ,QAAQ,OAAO,GAC7B;AAGN,QACE,yBACO,mBAAmB,YAC1B,6BAA6B,yBACtB,eAAe,4BAA4B,YAClD;KACA,MAAM,OAAO,eAAe,yBAAyB;AACrD,SAAI,MAAM,QAAQ,KAAK,CACrB,MAAK,QAAQ,CAACC,MAAc,QAAQ,IAAI,EAAE,CAAC;IAE9C;GACF,SAAQ,cAAc;AAGrB;GACD;AAGH,UAAO,MAAM,KAAK,QAAQ,CAAC,MAAM;EAClC,SAAQ,OAAO;AACd,WAAQ,MACN,0DACA,MACD;AAED,UAAO,CAAE;EACV;CACF;AACF;AAED,IAAY,0DAAL;AACL;AACA;AACA;AACA;;AACD"}
@@ -0,0 +1,42 @@
1
+ import { EventPublisher, MappedEvent } from "@geekmidas/events";
2
+ import { Logger } from "@geekmidas/logger";
3
+ import { Service } from "@geekmidas/services";
4
+ import { StandardSchemaV1 } from "@standard-schema/spec";
5
+
6
+ //#region src/Construct.d.ts
7
+ declare abstract class Construct<TLogger extends Logger = Logger, TServiceName extends string = string, T extends EventPublisher<any> | undefined = undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = []> {
8
+ readonly type: ConstructType;
9
+ readonly logger: TLogger;
10
+ readonly services: TServices;
11
+ readonly events: MappedEvent<T, any>[];
12
+ readonly publisherService?: Service<TServiceName, T> | undefined;
13
+ outputSchema?: OutSchema | undefined;
14
+ constructor(type: ConstructType, logger: TLogger, services: TServices, events?: MappedEvent<T, any>[], publisherService?: Service<TServiceName, T> | undefined, outputSchema?: OutSchema | undefined);
15
+ /**
16
+ * Returns an array of environment variable names required by this construct's services.
17
+ * This is determined by running a "sniffer" EnvironmentParser through each service's
18
+ * register method to track which environment variables are accessed.
19
+ *
20
+ * @returns Promise that resolves to array of environment variable names, sorted alphabetically
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const endpoint = e
25
+ * .services([databaseService, authService])
26
+ * .get('/users')
27
+ * .handle(async () => []);
28
+ *
29
+ * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']
30
+ * ```
31
+ */
32
+ getEnvironment(): Promise<string[]>;
33
+ }
34
+ declare enum ConstructType {
35
+ Cron = "dev.geekmidas.function.cron",
36
+ Endpoint = "dev.geekmidas.function.endpoint",
37
+ Function = "dev.geekmidas.function.function",
38
+ Subscriber = "dev.geekmidas.function.subscriber",
39
+ }
40
+ //#endregion
41
+ export { Construct, ConstructType };
42
+ //# sourceMappingURL=Construct-Bm-PSO2V.d.cts.map
@@ -0,0 +1,42 @@
1
+ import { Service } from "@geekmidas/services";
2
+ import { EventPublisher, MappedEvent } from "@geekmidas/events";
3
+ import { Logger } from "@geekmidas/logger";
4
+ import { StandardSchemaV1 } from "@standard-schema/spec";
5
+
6
+ //#region src/Construct.d.ts
7
+ declare abstract class Construct<TLogger extends Logger = Logger, TServiceName extends string = string, T extends EventPublisher<any> | undefined = undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = []> {
8
+ readonly type: ConstructType;
9
+ readonly logger: TLogger;
10
+ readonly services: TServices;
11
+ readonly events: MappedEvent<T, any>[];
12
+ readonly publisherService?: Service<TServiceName, T> | undefined;
13
+ outputSchema?: OutSchema | undefined;
14
+ constructor(type: ConstructType, logger: TLogger, services: TServices, events?: MappedEvent<T, any>[], publisherService?: Service<TServiceName, T> | undefined, outputSchema?: OutSchema | undefined);
15
+ /**
16
+ * Returns an array of environment variable names required by this construct's services.
17
+ * This is determined by running a "sniffer" EnvironmentParser through each service's
18
+ * register method to track which environment variables are accessed.
19
+ *
20
+ * @returns Promise that resolves to array of environment variable names, sorted alphabetically
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const endpoint = e
25
+ * .services([databaseService, authService])
26
+ * .get('/users')
27
+ * .handle(async () => []);
28
+ *
29
+ * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']
30
+ * ```
31
+ */
32
+ getEnvironment(): Promise<string[]>;
33
+ }
34
+ declare enum ConstructType {
35
+ Cron = "dev.geekmidas.function.cron",
36
+ Endpoint = "dev.geekmidas.function.endpoint",
37
+ Function = "dev.geekmidas.function.function",
38
+ Subscriber = "dev.geekmidas.function.subscriber",
39
+ }
40
+ //#endregion
41
+ export { Construct, ConstructType };
42
+ //# sourceMappingURL=Construct-DIguIyw4.d.mts.map
@@ -0,0 +1,4 @@
1
+ const require_Construct = require('./Construct-BSEs6uwW.cjs');
2
+
3
+ exports.Construct = require_Construct.Construct;
4
+ exports.ConstructType = require_Construct.ConstructType;
@@ -0,0 +1,2 @@
1
+ import { Construct, ConstructType } from "./Construct-Bm-PSO2V.cjs";
2
+ export { Construct, ConstructType };
@@ -0,0 +1,2 @@
1
+ import { Construct, ConstructType } from "./Construct-DIguIyw4.mjs";
2
+ export { Construct, ConstructType };
@@ -0,0 +1,3 @@
1
+ import { Construct, ConstructType } from "./Construct-BbKCIPQm.mjs";
2
+
3
+ export { Construct, ConstructType };
@@ -0,0 +1,20 @@
1
+ import { ConstructType } from "./Construct-BbKCIPQm.mjs";
2
+ import { Function } from "./Function-C5mW-38v.mjs";
3
+
4
+ //#region src/crons/Cron.ts
5
+ var Cron = class extends Function {
6
+ static isCron(obj) {
7
+ return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === ConstructType.Cron);
8
+ }
9
+ constructor(fn, timeout, _schedule, input, outputSchema, services = [], logger, publisherService, events = []) {
10
+ super(fn, timeout, ConstructType.Cron, input, outputSchema, services, logger, publisherService, events);
11
+ this._schedule = _schedule;
12
+ }
13
+ get schedule() {
14
+ return this._schedule;
15
+ }
16
+ };
17
+
18
+ //#endregion
19
+ export { Cron };
20
+ //# sourceMappingURL=Cron-Bgs6EQOb.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cron-Bgs6EQOb.mjs","names":["obj: any","fn: FunctionHandler<TInput, TServices, TLogger, OutSchema>","timeout?: number","_schedule?: ScheduleExpression","input?: TInput","outputSchema?: OutSchema","services: TServices","logger?: TLogger","publisherService?: Service<TEventPublisherServiceName, TEventPublisher>","events: any[]"],"sources":["../src/crons/Cron.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport { ConstructType } from '../Construct';\nimport { Function, type FunctionHandler } from '../functions';\n\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\n\nexport class Cron<\n TInput extends ComposableStandardSchema | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n> extends Function<\n TInput,\n TServices,\n TLogger,\n OutSchema,\n FunctionHandler<TInput, TServices, TLogger, OutSchema>,\n TEventPublisher,\n TEventPublisherServiceName\n> {\n static isCron(obj: any): obj is Cron<any, any, any, any> {\n return Boolean(\n obj &&\n (obj as Function).__IS_FUNCTION__ === true &&\n obj.type === ConstructType.Cron,\n );\n }\n\n constructor(\n fn: FunctionHandler<TInput, TServices, TLogger, OutSchema>,\n timeout?: number,\n protected _schedule?: ScheduleExpression,\n input?: TInput,\n outputSchema?: OutSchema,\n services: TServices = [] as unknown as TServices,\n logger?: TLogger,\n publisherService?: Service<TEventPublisherServiceName, TEventPublisher>,\n events: any[] = [],\n ) {\n super(\n fn,\n timeout,\n ConstructType.Cron,\n input,\n outputSchema,\n services,\n logger,\n publisherService,\n events,\n );\n }\n\n get schedule(): ScheduleExpression | undefined {\n return this._schedule;\n }\n}\n\nexport type RateExpression = `rate(${string})`;\n\ntype CronMinute =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | `${number},${number}`\n | string; // Allow more complex patterns\n\ntype CronHour =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | `${number},${number}`\n | string; // Allow more complex patterns\n\ntype CronDay =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | `${number},${number}`\n | string; // Allow more complex patterns\n\ntype CronMonth =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | 'JAN'\n | 'FEB'\n | 'MAR'\n | 'APR'\n | 'MAY'\n | 'JUN'\n | 'JUL'\n | 'AUG'\n | 'SEP'\n | 'OCT'\n | 'NOV'\n | 'DEC'\n | string; // Allow more complex patterns\n\ntype CronWeekday =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | 'SUN'\n | 'MON'\n | 'TUE'\n | 'WED'\n | 'THU'\n | 'FRI'\n | 'SAT'\n | `${string}-${string}` // Allow patterns like MON-FRI\n | string; // Allow more complex patterns\n\nexport type CronExpression =\n `cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;\n\nexport type ScheduleExpression = RateExpression | CronExpression;\n"],"mappings":";;;;AAUA,IAAa,OAAb,cAOU,SAQR;CACA,OAAO,OAAOA,KAA2C;AACvD,SAAO,QACL,OACG,IAAiB,oBAAoB,QACtC,IAAI,SAAS,cAAc,KAC9B;CACF;CAED,YACEC,IACAC,SACUC,WACVC,OACAC,cACAC,WAAsB,CAAE,GACxBC,QACAC,kBACAC,SAAgB,CAAE,GAClB;AACA,QACE,IACA,SACA,cAAc,MACd,OACA,cACA,UACA,QACA,kBACA,OACD;EAlBS;CAmBX;CAED,IAAI,WAA2C;AAC7C,SAAO,KAAK;CACb;AACF"}
@@ -0,0 +1,25 @@
1
+ const require_Construct = require('./Construct-BSEs6uwW.cjs');
2
+ const require_Function = require('./Function-CbO2NZx-.cjs');
3
+
4
+ //#region src/crons/Cron.ts
5
+ var Cron = class extends require_Function.Function {
6
+ static isCron(obj) {
7
+ return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === require_Construct.ConstructType.Cron);
8
+ }
9
+ constructor(fn, timeout, _schedule, input, outputSchema, services = [], logger, publisherService, events = []) {
10
+ super(fn, timeout, require_Construct.ConstructType.Cron, input, outputSchema, services, logger, publisherService, events);
11
+ this._schedule = _schedule;
12
+ }
13
+ get schedule() {
14
+ return this._schedule;
15
+ }
16
+ };
17
+
18
+ //#endregion
19
+ Object.defineProperty(exports, 'Cron', {
20
+ enumerable: true,
21
+ get: function () {
22
+ return Cron;
23
+ }
24
+ });
25
+ //# sourceMappingURL=Cron-DQiCj3ef.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cron-DQiCj3ef.cjs","names":["Function","obj: any","ConstructType","fn: FunctionHandler<TInput, TServices, TLogger, OutSchema>","timeout?: number","_schedule?: ScheduleExpression","input?: TInput","outputSchema?: OutSchema","services: TServices","logger?: TLogger","publisherService?: Service<TEventPublisherServiceName, TEventPublisher>","events: any[]"],"sources":["../src/crons/Cron.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport { ConstructType } from '../Construct';\nimport { Function, type FunctionHandler } from '../functions';\n\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\n\nexport class Cron<\n TInput extends ComposableStandardSchema | undefined = undefined,\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n> extends Function<\n TInput,\n TServices,\n TLogger,\n OutSchema,\n FunctionHandler<TInput, TServices, TLogger, OutSchema>,\n TEventPublisher,\n TEventPublisherServiceName\n> {\n static isCron(obj: any): obj is Cron<any, any, any, any> {\n return Boolean(\n obj &&\n (obj as Function).__IS_FUNCTION__ === true &&\n obj.type === ConstructType.Cron,\n );\n }\n\n constructor(\n fn: FunctionHandler<TInput, TServices, TLogger, OutSchema>,\n timeout?: number,\n protected _schedule?: ScheduleExpression,\n input?: TInput,\n outputSchema?: OutSchema,\n services: TServices = [] as unknown as TServices,\n logger?: TLogger,\n publisherService?: Service<TEventPublisherServiceName, TEventPublisher>,\n events: any[] = [],\n ) {\n super(\n fn,\n timeout,\n ConstructType.Cron,\n input,\n outputSchema,\n services,\n logger,\n publisherService,\n events,\n );\n }\n\n get schedule(): ScheduleExpression | undefined {\n return this._schedule;\n }\n}\n\nexport type RateExpression = `rate(${string})`;\n\ntype CronMinute =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | `${number},${number}`\n | string; // Allow more complex patterns\n\ntype CronHour =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | `${number},${number}`\n | string; // Allow more complex patterns\n\ntype CronDay =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | `${number},${number}`\n | string; // Allow more complex patterns\n\ntype CronMonth =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | 'JAN'\n | 'FEB'\n | 'MAR'\n | 'APR'\n | 'MAY'\n | 'JUN'\n | 'JUL'\n | 'AUG'\n | 'SEP'\n | 'OCT'\n | 'NOV'\n | 'DEC'\n | string; // Allow more complex patterns\n\ntype CronWeekday =\n | '*'\n | number\n | `${number}`\n | `${number}-${number}`\n | `${number}/${number}`\n | `*/${number}`\n | 'SUN'\n | 'MON'\n | 'TUE'\n | 'WED'\n | 'THU'\n | 'FRI'\n | 'SAT'\n | `${string}-${string}` // Allow patterns like MON-FRI\n | string; // Allow more complex patterns\n\nexport type CronExpression =\n `cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;\n\nexport type ScheduleExpression = RateExpression | CronExpression;\n"],"mappings":";;;;AAUA,IAAa,OAAb,cAOUA,0BAQR;CACA,OAAO,OAAOC,KAA2C;AACvD,SAAO,QACL,OACG,IAAiB,oBAAoB,QACtC,IAAI,SAASC,gCAAc,KAC9B;CACF;CAED,YACEC,IACAC,SACUC,WACVC,OACAC,cACAC,WAAsB,CAAE,GACxBC,QACAC,kBACAC,SAAgB,CAAE,GAClB;AACA,QACE,IACA,SACAT,gCAAc,MACd,OACA,cACA,UACA,QACA,kBACA,OACD;EAlBS;CAmBX;CAED,IAAI,WAA2C;AAC7C,SAAO,KAAK;CACb;AACF"}