@geekmidas/constructs 0.0.1 → 0.0.3

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 (215) hide show
  1. package/dist/{AWSLambdaFunction-CpHFE2m6.d.mts → AWSLambdaFunction-CANc3Qo2.d.mts} +3 -3
  2. package/dist/{AWSLambdaFunction-qA5LqPsv.cjs → AWSLambdaFunction-DW9qrBNR.cjs} +2 -2
  3. package/dist/{AWSLambdaFunction-qA5LqPsv.cjs.map → AWSLambdaFunction-DW9qrBNR.cjs.map} +1 -1
  4. package/dist/{AWSLambdaFunction-DWIZYsCy.mjs → AWSLambdaFunction-nic3vzt3.mjs} +2 -2
  5. package/dist/{AWSLambdaFunction-DWIZYsCy.mjs.map → AWSLambdaFunction-nic3vzt3.mjs.map} +1 -1
  6. package/dist/{AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs → AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs} +1 -1
  7. package/dist/{AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs.map → AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs.map} +1 -1
  8. package/dist/{AWSLambdaSubscriberAdaptor-C1wQuucQ.d.mts → AWSLambdaSubscriberAdaptor-C6JYIZxn.d.mts} +2 -2
  9. package/dist/{AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs → AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs} +1 -1
  10. package/dist/{AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs.map → AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs.map} +1 -1
  11. package/dist/{AmazonApiGatewayEndpointAdaptor-BoBh7vvD.d.mts → AmazonApiGatewayEndpointAdaptor-DNZLntHj.d.mts} +3 -3
  12. package/dist/{AmazonApiGatewayEndpointAdaptor-i74DEUbc.cjs → AmazonApiGatewayEndpointAdaptor-D_Q_NTMT.cjs} +3 -3
  13. package/dist/{AmazonApiGatewayEndpointAdaptor-i74DEUbc.cjs.map → AmazonApiGatewayEndpointAdaptor-D_Q_NTMT.cjs.map} +1 -1
  14. package/dist/{AmazonApiGatewayEndpointAdaptor-Cx1oqcqh.mjs → AmazonApiGatewayEndpointAdaptor-QzIAnWzS.mjs} +3 -3
  15. package/dist/{AmazonApiGatewayEndpointAdaptor-Cx1oqcqh.mjs.map → AmazonApiGatewayEndpointAdaptor-QzIAnWzS.mjs.map} +1 -1
  16. package/dist/{AmazonApiGatewayV1EndpointAdaptor-CLmBDYsl.mjs → AmazonApiGatewayV1EndpointAdaptor-BF5bGWV1.mjs} +3 -3
  17. package/dist/{AmazonApiGatewayV1EndpointAdaptor-CLmBDYsl.mjs.map → AmazonApiGatewayV1EndpointAdaptor-BF5bGWV1.mjs.map} +1 -1
  18. package/dist/{AmazonApiGatewayV1EndpointAdaptor-GkMAUPL5.cjs → AmazonApiGatewayV1EndpointAdaptor-Bh4tckwd.cjs} +3 -3
  19. package/dist/{AmazonApiGatewayV1EndpointAdaptor-GkMAUPL5.cjs.map → AmazonApiGatewayV1EndpointAdaptor-Bh4tckwd.cjs.map} +1 -1
  20. package/dist/{AmazonApiGatewayV1EndpointAdaptor-EhMd1YqV.d.mts → AmazonApiGatewayV1EndpointAdaptor-DbJa4cpU.d.mts} +4 -4
  21. package/dist/{AmazonApiGatewayV2EndpointAdaptor-3RqegmJC.mjs → AmazonApiGatewayV2EndpointAdaptor-BOaOkLXF.mjs} +3 -3
  22. package/dist/{AmazonApiGatewayV2EndpointAdaptor-3RqegmJC.mjs.map → AmazonApiGatewayV2EndpointAdaptor-BOaOkLXF.mjs.map} +1 -1
  23. package/dist/{AmazonApiGatewayV2EndpointAdaptor-zfd1gqXA.d.mts → AmazonApiGatewayV2EndpointAdaptor-BlKn-KJ6.d.mts} +4 -4
  24. package/dist/{AmazonApiGatewayV2EndpointAdaptor-YlFoFSS9.cjs → AmazonApiGatewayV2EndpointAdaptor-L4Ywv3Pk.cjs} +3 -3
  25. package/dist/{AmazonApiGatewayV2EndpointAdaptor-YlFoFSS9.cjs.map → AmazonApiGatewayV2EndpointAdaptor-L4Ywv3Pk.cjs.map} +1 -1
  26. package/dist/{BaseFunctionBuilder-BFPVGnKi.d.mts → BaseFunctionBuilder-Dda7AiID.d.mts} +2 -2
  27. package/dist/{Construct-DIguIyw4.d.mts → Construct-DdyYENBD.d.mts} +1 -1
  28. package/dist/Construct.d.mts +1 -1
  29. package/dist/{Cron-Bgs6EQOb.mjs → Cron-BgJo6EW6.mjs} +1 -1
  30. package/dist/{Cron-Bgs6EQOb.mjs.map → Cron-BgJo6EW6.mjs.map} +1 -1
  31. package/dist/{Cron-ztnK6zgU.d.cts → Cron-BxMXmn4t.d.cts} +1 -1
  32. package/dist/{Cron-DQiCj3ef.cjs → Cron-JYYGj5ik.cjs} +1 -1
  33. package/dist/{Cron-DQiCj3ef.cjs.map → Cron-JYYGj5ik.cjs.map} +1 -1
  34. package/dist/{Cron-FpAw03k6.d.mts → Cron-NDBlJhb3.d.mts} +2 -2
  35. package/dist/{CronBuilder-DIBqJkh_.cjs → CronBuilder-BDDS21OP.cjs} +2 -2
  36. package/dist/{CronBuilder-DIBqJkh_.cjs.map → CronBuilder-BDDS21OP.cjs.map} +1 -1
  37. package/dist/{CronBuilder-Cje9K8lZ.d.cts → CronBuilder-C6K5AbIO.d.cts} +2 -2
  38. package/dist/{CronBuilder-DecAvvcn.mjs → CronBuilder-DVuhB_kA.mjs} +2 -2
  39. package/dist/{CronBuilder-DecAvvcn.mjs.map → CronBuilder-DVuhB_kA.mjs.map} +1 -1
  40. package/dist/{CronBuilder-B2clNQSP.d.mts → CronBuilder-s5x8V8hH.d.mts} +4 -4
  41. package/dist/{Endpoint-BaHC9y4Z.cjs → Endpoint-D1nnEsBU.cjs} +1 -1
  42. package/dist/{Endpoint-BaHC9y4Z.cjs.map → Endpoint-D1nnEsBU.cjs.map} +1 -1
  43. package/dist/{Endpoint-ierdM62O.mjs → Endpoint-DNlmybXV.mjs} +1 -1
  44. package/dist/{Endpoint-ierdM62O.mjs.map → Endpoint-DNlmybXV.mjs.map} +1 -1
  45. package/dist/{Endpoint-DCn53Vd8.d.mts → Endpoint-DYUjJdEs.d.mts} +3 -3
  46. package/dist/{EndpointBuilder-CP9RGwZH.d.cts → EndpointBuilder-1fw103D6.d.cts} +1 -1
  47. package/dist/{EndpointBuilder-Bfnb2oJr.d.mts → EndpointBuilder-B2iScUND.d.mts} +4 -4
  48. package/dist/{EndpointBuilder-BHFSpbPR.cjs → EndpointBuilder-BhRd626m.cjs} +2 -2
  49. package/dist/{EndpointBuilder-BHFSpbPR.cjs.map → EndpointBuilder-BhRd626m.cjs.map} +1 -1
  50. package/dist/{EndpointBuilder-BLUsoK3l.mjs → EndpointBuilder-CpjIMYb0.mjs} +2 -2
  51. package/dist/{EndpointBuilder-BLUsoK3l.mjs.map → EndpointBuilder-CpjIMYb0.mjs.map} +1 -1
  52. package/dist/{EndpointFactory-CXX4E6Gx.cjs → EndpointFactory-ChmVHWim.cjs} +2 -2
  53. package/dist/{EndpointFactory-CXX4E6Gx.cjs.map → EndpointFactory-ChmVHWim.cjs.map} +1 -1
  54. package/dist/{EndpointFactory-D2zgWbXZ.d.cts → EndpointFactory-D576BhaH.d.cts} +2 -2
  55. package/dist/{EndpointFactory-BYdDVCNj.mjs → EndpointFactory-DLpEbLzL.mjs} +2 -2
  56. package/dist/{EndpointFactory-BYdDVCNj.mjs.map → EndpointFactory-DLpEbLzL.mjs.map} +1 -1
  57. package/dist/{EndpointFactory-CNtMXgIh.d.mts → EndpointFactory-DZQpM-9K.d.mts} +3 -3
  58. package/dist/{Function-BsBxc2wA.d.mts → Function-C98H68DW.d.mts} +2 -2
  59. package/dist/{FunctionBuilder-C-PfPN3r.d.mts → FunctionBuilder-DBwR7jg7.d.mts} +4 -4
  60. package/dist/{FunctionExecutionWrapper-DvglBBjE.d.mts → FunctionExecutionWrapper-B0V7V8YS.d.mts} +2 -2
  61. package/dist/{FunctionExecutionWrapper-XGrSAAPD.mjs → FunctionExecutionWrapper-CPzSbfaI.mjs} +1 -1
  62. package/dist/{FunctionExecutionWrapper-XGrSAAPD.mjs.map → FunctionExecutionWrapper-CPzSbfaI.mjs.map} +1 -1
  63. package/dist/{FunctionExecutionWrapper-CElXEjPe.cjs → FunctionExecutionWrapper-UzfHDM2R.cjs} +1 -1
  64. package/dist/{FunctionExecutionWrapper-CElXEjPe.cjs.map → FunctionExecutionWrapper-UzfHDM2R.cjs.map} +1 -1
  65. package/dist/{HonoEndpointAdaptor-B0IO1zj2.d.mts → HonoEndpointAdaptor-01cH100U.d.mts} +5 -5
  66. package/dist/{HonoEndpointAdaptor-B4snrp7v.cjs → HonoEndpointAdaptor-6LERutxi.cjs} +4 -4
  67. package/dist/{HonoEndpointAdaptor-B4snrp7v.cjs.map → HonoEndpointAdaptor-6LERutxi.cjs.map} +1 -1
  68. package/dist/{HonoEndpointAdaptor-D-M4-6Tf.mjs → HonoEndpointAdaptor-fs2928iO.mjs} +4 -4
  69. package/dist/{HonoEndpointAdaptor-D-M4-6Tf.mjs.map → HonoEndpointAdaptor-fs2928iO.mjs.map} +1 -1
  70. package/dist/{HonoEndpointAdaptor-B6lW9Q1k.d.cts → HonoEndpointAdaptor-ua6mp3gt.d.cts} +3 -3
  71. package/dist/{Subscriber-BwuCaC9G.mjs → Subscriber-BTwKnz3c.mjs} +1 -1
  72. package/dist/{Subscriber-BwuCaC9G.mjs.map → Subscriber-BTwKnz3c.mjs.map} +1 -1
  73. package/dist/{Subscriber-THGsj7Iy.d.mts → Subscriber-BxH6n8zQ.d.mts} +2 -2
  74. package/dist/{Subscriber-iMRFG7ba.cjs → Subscriber-G7EUI3yc.cjs} +1 -1
  75. package/dist/{Subscriber-iMRFG7ba.cjs.map → Subscriber-G7EUI3yc.cjs.map} +1 -1
  76. package/dist/{SubscriberBuilder-CiPxgnKT.d.mts → SubscriberBuilder-BpSDPzBz.d.mts} +2 -2
  77. package/dist/{SubscriberBuilder-Dhz0C_t-.mjs → SubscriberBuilder-C1me_972.mjs} +2 -2
  78. package/dist/{SubscriberBuilder-Dhz0C_t-.mjs.map → SubscriberBuilder-C1me_972.mjs.map} +1 -1
  79. package/dist/{SubscriberBuilder-wthr-FL9.cjs → SubscriberBuilder-C6iZvuDe.cjs} +2 -2
  80. package/dist/{SubscriberBuilder-wthr-FL9.cjs.map → SubscriberBuilder-C6iZvuDe.cjs.map} +1 -1
  81. package/dist/{SubscriberBuilder-DuIgxuzc.d.cts → SubscriberBuilder-DgljKtYu.d.cts} +1 -1
  82. package/dist/TestEndpointAdaptor-B4SvJvK-.cjs +54 -0
  83. package/dist/TestEndpointAdaptor-B4SvJvK-.cjs.map +1 -0
  84. package/dist/TestEndpointAdaptor-CHcgyI3V.d.cts +24 -0
  85. package/dist/TestEndpointAdaptor-CelYsQi0.mjs +48 -0
  86. package/dist/TestEndpointAdaptor-CelYsQi0.mjs.map +1 -0
  87. package/dist/TestEndpointAdaptor-Da0ooGt2.d.mts +24 -0
  88. package/dist/adaptors/aws.cjs +8 -8
  89. package/dist/adaptors/aws.d.cts +1 -1
  90. package/dist/adaptors/aws.d.mts +14 -14
  91. package/dist/adaptors/aws.mjs +8 -8
  92. package/dist/adaptors/hono.cjs +4 -4
  93. package/dist/adaptors/hono.d.cts +2 -2
  94. package/dist/adaptors/hono.d.mts +8 -8
  95. package/dist/adaptors/hono.mjs +4 -4
  96. package/dist/adaptors/testing.cjs +10 -0
  97. package/dist/adaptors/testing.d.cts +9 -0
  98. package/dist/adaptors/testing.d.mts +9 -0
  99. package/dist/adaptors/testing.mjs +10 -0
  100. package/dist/crons/Cron.cjs +1 -1
  101. package/dist/crons/Cron.d.cts +2 -2
  102. package/dist/crons/Cron.d.mts +6 -6
  103. package/dist/crons/Cron.mjs +1 -1
  104. package/dist/crons/CronBuilder.cjs +2 -2
  105. package/dist/crons/CronBuilder.d.cts +3 -3
  106. package/dist/crons/CronBuilder.d.mts +7 -7
  107. package/dist/crons/CronBuilder.mjs +2 -2
  108. package/dist/crons/index.cjs +2 -2
  109. package/dist/crons/index.d.cts +7 -7
  110. package/dist/crons/index.d.mts +11 -11
  111. package/dist/crons/index.mjs +2 -2
  112. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +2 -2
  113. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +1 -1
  114. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +8 -8
  115. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +2 -2
  116. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +4 -4
  117. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +1 -1
  118. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +9 -9
  119. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +4 -4
  120. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +4 -4
  121. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +1 -1
  122. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +9 -9
  123. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +4 -4
  124. package/dist/endpoints/Endpoint.cjs +1 -1
  125. package/dist/endpoints/Endpoint.d.cts +1 -1
  126. package/dist/endpoints/Endpoint.d.mts +7 -7
  127. package/dist/endpoints/Endpoint.mjs +1 -1
  128. package/dist/endpoints/EndpointBuilder.cjs +2 -2
  129. package/dist/endpoints/EndpointBuilder.d.cts +2 -2
  130. package/dist/endpoints/EndpointBuilder.d.mts +8 -8
  131. package/dist/endpoints/EndpointBuilder.mjs +2 -2
  132. package/dist/endpoints/EndpointFactory.cjs +3 -3
  133. package/dist/endpoints/EndpointFactory.d.cts +3 -3
  134. package/dist/endpoints/EndpointFactory.d.mts +9 -9
  135. package/dist/endpoints/EndpointFactory.mjs +3 -3
  136. package/dist/endpoints/HonoEndpointAdaptor.cjs +4 -4
  137. package/dist/endpoints/HonoEndpointAdaptor.d.cts +2 -2
  138. package/dist/endpoints/HonoEndpointAdaptor.d.mts +8 -8
  139. package/dist/endpoints/HonoEndpointAdaptor.mjs +4 -4
  140. package/dist/endpoints/TestEndpointAdaptor.cjs +4 -48
  141. package/dist/endpoints/TestEndpointAdaptor.d.cts +5 -25
  142. package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -29
  143. package/dist/endpoints/TestEndpointAdaptor.mjs +4 -47
  144. package/dist/endpoints/helpers.cjs +2 -2
  145. package/dist/endpoints/helpers.d.cts +1 -1
  146. package/dist/endpoints/helpers.d.mts +7 -7
  147. package/dist/endpoints/helpers.mjs +2 -2
  148. package/dist/endpoints/index.cjs +3 -3
  149. package/dist/endpoints/index.d.cts +5 -5
  150. package/dist/endpoints/index.d.mts +11 -11
  151. package/dist/endpoints/index.mjs +3 -3
  152. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  153. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  154. package/dist/endpoints/parseQueryParams.cjs +1 -1
  155. package/dist/endpoints/parseQueryParams.mjs +1 -1
  156. package/dist/functions/AWSLambdaFunction.cjs +2 -2
  157. package/dist/functions/AWSLambdaFunction.d.mts +4 -4
  158. package/dist/functions/AWSLambdaFunction.mjs +2 -2
  159. package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
  160. package/dist/functions/Function.d.mts +2 -2
  161. package/dist/functions/FunctionBuilder.d.mts +4 -4
  162. package/dist/functions/FunctionExecutionWrapper.cjs +1 -1
  163. package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
  164. package/dist/functions/FunctionExecutionWrapper.mjs +1 -1
  165. package/dist/functions/TestFunctionAdaptor.d.mts +2 -2
  166. package/dist/functions/index.d.cts +1 -1
  167. package/dist/functions/index.d.mts +5 -5
  168. package/dist/{helpers-DbpO95aE.mjs → helpers-CP7A0U_s.mjs} +2 -2
  169. package/dist/{helpers-DbpO95aE.mjs.map → helpers-CP7A0U_s.mjs.map} +1 -1
  170. package/dist/{helpers-BeGM4pP_.cjs → helpers-CjvCSIF5.cjs} +2 -2
  171. package/dist/{helpers-BeGM4pP_.cjs.map → helpers-CjvCSIF5.cjs.map} +1 -1
  172. package/dist/index-BXTN4mwI.d.mts +9 -0
  173. package/dist/index-zOH9f4sh.d.cts +9 -0
  174. package/dist/index.d.mts +2 -2
  175. package/dist/{parseHonoQuery-DopC24vB.cjs → parseHonoQuery-BiPp8bEJ.cjs} +1 -1
  176. package/dist/{parseHonoQuery-DopC24vB.cjs.map → parseHonoQuery-BiPp8bEJ.cjs.map} +1 -1
  177. package/dist/{parseHonoQuery-znDKBhdE.mjs → parseHonoQuery-yWRoKFFl.mjs} +1 -1
  178. package/dist/{parseHonoQuery-znDKBhdE.mjs.map → parseHonoQuery-yWRoKFFl.mjs.map} +1 -1
  179. package/dist/{parseQueryParams-BzPop4I1.cjs → parseQueryParams-C2EjouGt.cjs} +1 -1
  180. package/dist/{parseQueryParams-BzPop4I1.cjs.map → parseQueryParams-C2EjouGt.cjs.map} +1 -1
  181. package/dist/{parseQueryParams-BJaRh3OB.mjs → parseQueryParams-DSk9xl09.mjs} +1 -1
  182. package/dist/{parseQueryParams-BJaRh3OB.mjs.map → parseQueryParams-DSk9xl09.mjs.map} +1 -1
  183. package/dist/publisher.d.mts +1 -1
  184. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  185. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
  186. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  187. package/dist/subscribers/Subscriber.cjs +1 -1
  188. package/dist/subscribers/Subscriber.d.mts +2 -2
  189. package/dist/subscribers/Subscriber.mjs +1 -1
  190. package/dist/subscribers/SubscriberBuilder.cjs +2 -2
  191. package/dist/subscribers/SubscriberBuilder.d.cts +1 -1
  192. package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
  193. package/dist/subscribers/SubscriberBuilder.mjs +2 -2
  194. package/dist/subscribers/index.cjs +2 -2
  195. package/dist/subscribers/index.d.cts +3 -3
  196. package/dist/subscribers/index.d.mts +5 -5
  197. package/dist/subscribers/index.mjs +2 -2
  198. package/dist/{types-DBKNYvsW.d.mts → types-CVq20-fE.d.mts} +1 -1
  199. package/dist/types.d.mts +1 -1
  200. package/package.json +10 -5
  201. package/src/adaptors/testing.ts +1 -0
  202. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +62 -13
  203. package/src/endpoints/Endpoint.ts +243 -19
  204. package/src/endpoints/HonoEndpointAdaptor.ts +52 -16
  205. package/src/endpoints/TestEndpointAdaptor.ts +45 -12
  206. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +240 -0
  207. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +177 -200
  208. package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +120 -0
  209. package/src/endpoints/__tests__/Endpoint.spec.ts +12 -0
  210. package/src/endpoints/__tests__/ResponseBuilder.spec.ts +235 -0
  211. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +348 -0
  212. package/dist/endpoints/TestEndpointAdaptor.cjs.map +0 -1
  213. package/dist/endpoints/TestEndpointAdaptor.mjs.map +0 -1
  214. package/dist/index-CuGR4L7O.d.mts +0 -9
  215. package/dist/index-Fg3N3EKD.d.cts +0 -9
@@ -924,4 +924,244 @@ describe('AmazonApiGatewayV1Endpoint', () => {
924
924
  );
925
925
  });
926
926
  });
927
+
928
+ describe('response metadata', () => {
929
+ it('should set response cookies', async () => {
930
+ const endpoint = new Endpoint({
931
+ route: '/test',
932
+ method: 'GET',
933
+ fn: async (_, response) => {
934
+ response.cookie('session', 'abc123', {
935
+ httpOnly: true,
936
+ secure: true,
937
+ });
938
+ return { success: true };
939
+ },
940
+ input: {},
941
+ output: z.object({ success: z.boolean() }),
942
+ services: [],
943
+ logger: mockLogger,
944
+ timeout: undefined,
945
+ status: undefined,
946
+ getSession: undefined,
947
+ authorize: undefined,
948
+ description: 'Test endpoint',
949
+ });
950
+
951
+ const adapter = new AmazonApiGatewayV1Endpoint(envParser, endpoint);
952
+ const handler = adapter.handler;
953
+
954
+ const event = createMockV1Event();
955
+ const context = createMockContext();
956
+ const response = await handler(event, context);
957
+
958
+ expect(response.multiValueHeaders?.['Set-Cookie']).toEqual([
959
+ 'session=abc123; HttpOnly; Secure',
960
+ ]);
961
+ expect(response.statusCode).toBe(200);
962
+ expect(response.body).toBe(JSON.stringify({ success: true }));
963
+ });
964
+
965
+ it('should set custom headers', async () => {
966
+ const endpoint = new Endpoint({
967
+ route: '/test',
968
+ method: 'GET',
969
+ fn: async (_, response) => {
970
+ response.header('X-Custom-Header', 'custom-value');
971
+ response.header('X-Request-Id', '12345');
972
+ return { success: true };
973
+ },
974
+ input: {},
975
+ output: z.object({ success: z.boolean() }),
976
+ services: [],
977
+ logger: mockLogger,
978
+ timeout: undefined,
979
+ status: undefined,
980
+ getSession: undefined,
981
+ authorize: undefined,
982
+ description: 'Test endpoint',
983
+ });
984
+
985
+ const adapter = new AmazonApiGatewayV1Endpoint(envParser, endpoint);
986
+ const handler = adapter.handler;
987
+
988
+ const event = createMockV1Event();
989
+ const context = createMockContext();
990
+ const response = await handler(event, context);
991
+
992
+ expect(response.headers).toEqual({
993
+ 'X-Custom-Header': 'custom-value',
994
+ 'X-Request-Id': '12345',
995
+ });
996
+ });
997
+
998
+ it('should set custom status code', async () => {
999
+ const endpoint = new Endpoint({
1000
+ route: '/test',
1001
+ method: 'POST',
1002
+ fn: async (_, response) => {
1003
+ response.status(201);
1004
+ return { id: '123' };
1005
+ },
1006
+ input: {},
1007
+ output: z.object({ id: z.string() }),
1008
+ services: [],
1009
+ logger: mockLogger,
1010
+ timeout: undefined,
1011
+ status: undefined,
1012
+ getSession: undefined,
1013
+ authorize: undefined,
1014
+ description: 'Test endpoint',
1015
+ });
1016
+
1017
+ const adapter = new AmazonApiGatewayV1Endpoint(envParser, endpoint);
1018
+ const handler = adapter.handler;
1019
+
1020
+ const event = createMockV1Event({ httpMethod: 'POST' });
1021
+ const context = createMockContext();
1022
+ const response = await handler(event, context);
1023
+
1024
+ expect(response.statusCode).toBe(201);
1025
+ });
1026
+
1027
+ it('should combine cookies, headers, and status', async () => {
1028
+ const endpoint = new Endpoint({
1029
+ route: '/test',
1030
+ method: 'POST',
1031
+ fn: async (_, response) => {
1032
+ response
1033
+ .status(201)
1034
+ .header('Location', '/test/123')
1035
+ .cookie('session', 'abc123', { httpOnly: true })
1036
+ .cookie('theme', 'dark');
1037
+ return { id: '123' };
1038
+ },
1039
+ input: {},
1040
+ output: z.object({ id: z.string() }),
1041
+ services: [],
1042
+ logger: mockLogger,
1043
+ timeout: undefined,
1044
+ status: undefined,
1045
+ getSession: undefined,
1046
+ authorize: undefined,
1047
+ description: 'Test endpoint',
1048
+ });
1049
+
1050
+ const adapter = new AmazonApiGatewayV1Endpoint(envParser, endpoint);
1051
+ const handler = adapter.handler;
1052
+
1053
+ const event = createMockV1Event({ httpMethod: 'POST' });
1054
+ const context = createMockContext();
1055
+ const response = await handler(event, context);
1056
+
1057
+ expect(response.statusCode).toBe(201);
1058
+ expect(response.headers).toEqual({ Location: '/test/123' });
1059
+ expect(response.multiValueHeaders?.['Set-Cookie']).toEqual([
1060
+ 'session=abc123; HttpOnly',
1061
+ 'theme=dark',
1062
+ ]);
1063
+ });
1064
+
1065
+ it('should delete cookies', async () => {
1066
+ const endpoint = new Endpoint({
1067
+ route: '/test',
1068
+ method: 'GET',
1069
+ fn: async (_, response) => {
1070
+ response.deleteCookie('session', {
1071
+ path: '/',
1072
+ domain: '.example.com',
1073
+ });
1074
+ return { success: true };
1075
+ },
1076
+ input: {},
1077
+ output: z.object({ success: z.boolean() }),
1078
+ services: [],
1079
+ logger: mockLogger,
1080
+ timeout: undefined,
1081
+ status: undefined,
1082
+ getSession: undefined,
1083
+ authorize: undefined,
1084
+ description: 'Test endpoint',
1085
+ });
1086
+
1087
+ const adapter = new AmazonApiGatewayV1Endpoint(envParser, endpoint);
1088
+ const handler = adapter.handler;
1089
+
1090
+ const event = createMockV1Event();
1091
+ const context = createMockContext();
1092
+ const response = await handler(event, context);
1093
+
1094
+ expect(response.multiValueHeaders?.['Set-Cookie']).toEqual([
1095
+ 'session=; Domain=.example.com; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0',
1096
+ ]);
1097
+ });
1098
+
1099
+ it('should use send() method with metadata', async () => {
1100
+ const endpoint = new Endpoint({
1101
+ route: '/test',
1102
+ method: 'GET',
1103
+ fn: async (_, response) => {
1104
+ return response
1105
+ .status(201)
1106
+ .header('X-Custom', 'value')
1107
+ .cookie('session', 'abc123')
1108
+ .send({ id: '123' });
1109
+ },
1110
+ input: {},
1111
+ output: z.object({ id: z.string() }),
1112
+ services: [],
1113
+ logger: mockLogger,
1114
+ timeout: undefined,
1115
+ status: undefined,
1116
+ getSession: undefined,
1117
+ authorize: undefined,
1118
+ description: 'Test endpoint',
1119
+ });
1120
+
1121
+ const adapter = new AmazonApiGatewayV1Endpoint(envParser, endpoint);
1122
+ const handler = adapter.handler;
1123
+
1124
+ const event = createMockV1Event();
1125
+ const context = createMockContext();
1126
+ const response = await handler(event, context);
1127
+
1128
+ expect(response.statusCode).toBe(201);
1129
+ expect(response.headers).toEqual({ 'X-Custom': 'value' });
1130
+ expect(response.multiValueHeaders?.['Set-Cookie']).toEqual([
1131
+ 'session=abc123',
1132
+ ]);
1133
+ expect(response.body).toBe(JSON.stringify({ id: '123' }));
1134
+ });
1135
+
1136
+ it('should return simple response without metadata when not using response builder', async () => {
1137
+ const endpoint = new Endpoint({
1138
+ route: '/test',
1139
+ method: 'GET',
1140
+ fn: async () => ({ success: true }),
1141
+ input: {},
1142
+ output: z.object({ success: z.boolean() }),
1143
+ services: [],
1144
+ logger: mockLogger,
1145
+ timeout: undefined,
1146
+ status: undefined,
1147
+ getSession: undefined,
1148
+ authorize: undefined,
1149
+ description: 'Test endpoint',
1150
+ });
1151
+
1152
+ const adapter = new AmazonApiGatewayV1Endpoint(envParser, endpoint);
1153
+ const handler = adapter.handler;
1154
+
1155
+ const event = createMockV1Event();
1156
+ const context = createMockContext();
1157
+ const response = await handler(event, context);
1158
+
1159
+ expect(response).toEqual({
1160
+ statusCode: 200,
1161
+ body: JSON.stringify({ success: true }),
1162
+ });
1163
+ expect(response.headers).toBeUndefined();
1164
+ expect(response.multiValueHeaders).toBeUndefined();
1165
+ });
1166
+ });
927
1167
  });