@geekmidas/constructs 0.0.3 → 0.0.4

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 (177) hide show
  1. package/dist/{AWSLambdaFunction-nic3vzt3.mjs → AWSLambdaFunction-DWIZYsCy.mjs} +2 -2
  2. package/dist/{AWSLambdaFunction-nic3vzt3.mjs.map → AWSLambdaFunction-DWIZYsCy.mjs.map} +1 -1
  3. package/dist/{AWSLambdaFunction-DW9qrBNR.cjs → AWSLambdaFunction-qA5LqPsv.cjs} +2 -2
  4. package/dist/{AWSLambdaFunction-DW9qrBNR.cjs.map → AWSLambdaFunction-qA5LqPsv.cjs.map} +1 -1
  5. package/dist/{AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs → AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs} +1 -1
  6. package/dist/{AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs.map → AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs.map} +1 -1
  7. package/dist/{AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs → AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs} +1 -1
  8. package/dist/{AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs.map → AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs.map} +1 -1
  9. package/dist/{AmazonApiGatewayEndpointAdaptor-D_Q_NTMT.cjs → AmazonApiGatewayEndpointAdaptor-B8mozTcG.cjs} +33 -10
  10. package/dist/AmazonApiGatewayEndpointAdaptor-B8mozTcG.cjs.map +1 -0
  11. package/dist/{AmazonApiGatewayEndpointAdaptor-DtzgQ9Vb.d.cts → AmazonApiGatewayEndpointAdaptor-BFhJ2Rpz.d.cts} +5 -2
  12. package/dist/{AmazonApiGatewayEndpointAdaptor-QzIAnWzS.mjs → AmazonApiGatewayEndpointAdaptor-Bmz6Cy1e.mjs} +33 -10
  13. package/dist/AmazonApiGatewayEndpointAdaptor-Bmz6Cy1e.mjs.map +1 -0
  14. package/dist/{AmazonApiGatewayEndpointAdaptor-DNZLntHj.d.mts → AmazonApiGatewayEndpointAdaptor-BrB3RfbI.d.mts} +5 -2
  15. package/dist/{AmazonApiGatewayV1EndpointAdaptor-BF5bGWV1.mjs → AmazonApiGatewayV1EndpointAdaptor-24g3dLn5.mjs} +3 -3
  16. package/dist/{AmazonApiGatewayV1EndpointAdaptor-BF5bGWV1.mjs.map → AmazonApiGatewayV1EndpointAdaptor-24g3dLn5.mjs.map} +1 -1
  17. package/dist/{AmazonApiGatewayV1EndpointAdaptor-Gw-j61qM.d.cts → AmazonApiGatewayV1EndpointAdaptor-Bd-o8ese.d.cts} +3 -3
  18. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DbJa4cpU.d.mts → AmazonApiGatewayV1EndpointAdaptor-BtNXt0-4.d.mts} +3 -3
  19. package/dist/{AmazonApiGatewayV1EndpointAdaptor-Bh4tckwd.cjs → AmazonApiGatewayV1EndpointAdaptor-D4eZ-fx5.cjs} +3 -3
  20. package/dist/{AmazonApiGatewayV1EndpointAdaptor-Bh4tckwd.cjs.map → AmazonApiGatewayV1EndpointAdaptor-D4eZ-fx5.cjs.map} +1 -1
  21. package/dist/{AmazonApiGatewayV2EndpointAdaptor-BOaOkLXF.mjs → AmazonApiGatewayV2EndpointAdaptor-Cc40RThv.mjs} +3 -3
  22. package/dist/{AmazonApiGatewayV2EndpointAdaptor-BOaOkLXF.mjs.map → AmazonApiGatewayV2EndpointAdaptor-Cc40RThv.mjs.map} +1 -1
  23. package/dist/{AmazonApiGatewayV2EndpointAdaptor-BlKn-KJ6.d.mts → AmazonApiGatewayV2EndpointAdaptor-DAJdtgek.d.mts} +3 -3
  24. package/dist/{AmazonApiGatewayV2EndpointAdaptor-LUlpwmUW.d.cts → AmazonApiGatewayV2EndpointAdaptor-DX-Uci5w.d.cts} +3 -3
  25. package/dist/{AmazonApiGatewayV2EndpointAdaptor-L4Ywv3Pk.cjs → AmazonApiGatewayV2EndpointAdaptor-J6tACl-N.cjs} +3 -3
  26. package/dist/{AmazonApiGatewayV2EndpointAdaptor-L4Ywv3Pk.cjs.map → AmazonApiGatewayV2EndpointAdaptor-J6tACl-N.cjs.map} +1 -1
  27. package/dist/{Cron-BgJo6EW6.mjs → Cron-Br2TtpGY.mjs} +1 -1
  28. package/dist/{Cron-BgJo6EW6.mjs.map → Cron-Br2TtpGY.mjs.map} +1 -1
  29. package/dist/{Cron-JYYGj5ik.cjs → Cron-DF1o3U_T.cjs} +1 -1
  30. package/dist/{Cron-JYYGj5ik.cjs.map → Cron-DF1o3U_T.cjs.map} +1 -1
  31. package/dist/{CronBuilder-DVuhB_kA.mjs → CronBuilder-DNFHMTSl.mjs} +2 -2
  32. package/dist/{CronBuilder-DVuhB_kA.mjs.map → CronBuilder-DNFHMTSl.mjs.map} +1 -1
  33. package/dist/{CronBuilder-BDDS21OP.cjs → CronBuilder-e8CAOwBV.cjs} +2 -2
  34. package/dist/{CronBuilder-BDDS21OP.cjs.map → CronBuilder-e8CAOwBV.cjs.map} +1 -1
  35. package/dist/{Endpoint-DYUjJdEs.d.mts → Endpoint-C7jPJzAH.d.mts} +115 -6
  36. package/dist/{Endpoint-D1nnEsBU.cjs → Endpoint-COGAflGh.cjs} +128 -4
  37. package/dist/Endpoint-COGAflGh.cjs.map +1 -0
  38. package/dist/{Endpoint-DNlmybXV.mjs → Endpoint-DLLZvqoh.mjs} +123 -5
  39. package/dist/Endpoint-DLLZvqoh.mjs.map +1 -0
  40. package/dist/{Endpoint-C7z9YJHK.d.cts → Endpoint-XUMNAXYy.d.cts} +115 -6
  41. package/dist/{EndpointBuilder-B2iScUND.d.mts → EndpointBuilder-CFtWQhcv.d.mts} +2 -2
  42. package/dist/{EndpointBuilder-BhRd626m.cjs → EndpointBuilder-FJktpPOu.cjs} +2 -2
  43. package/dist/{EndpointBuilder-BhRd626m.cjs.map → EndpointBuilder-FJktpPOu.cjs.map} +1 -1
  44. package/dist/{EndpointBuilder-CpjIMYb0.mjs → EndpointBuilder-oXO_ka1-.mjs} +2 -2
  45. package/dist/{EndpointBuilder-CpjIMYb0.mjs.map → EndpointBuilder-oXO_ka1-.mjs.map} +1 -1
  46. package/dist/{EndpointBuilder-1fw103D6.d.cts → EndpointBuilder-t6fVEKBH.d.cts} +2 -2
  47. package/dist/{EndpointFactory-D576BhaH.d.cts → EndpointFactory-DBRGrXAy.d.mts} +10 -10
  48. package/dist/{EndpointFactory-DZQpM-9K.d.mts → EndpointFactory-DInjHvFR.d.cts} +10 -10
  49. package/dist/{EndpointFactory-ChmVHWim.cjs → EndpointFactory-Kk1tpifs.cjs} +4 -3
  50. package/dist/EndpointFactory-Kk1tpifs.cjs.map +1 -0
  51. package/dist/{EndpointFactory-DLpEbLzL.mjs → EndpointFactory-eG8bDhOh.mjs} +4 -3
  52. package/dist/EndpointFactory-eG8bDhOh.mjs.map +1 -0
  53. package/dist/{FunctionExecutionWrapper-UzfHDM2R.cjs → FunctionExecutionWrapper-CElXEjPe.cjs} +1 -1
  54. package/dist/{FunctionExecutionWrapper-UzfHDM2R.cjs.map → FunctionExecutionWrapper-CElXEjPe.cjs.map} +1 -1
  55. package/dist/{FunctionExecutionWrapper-CPzSbfaI.mjs → FunctionExecutionWrapper-XGrSAAPD.mjs} +1 -1
  56. package/dist/{FunctionExecutionWrapper-CPzSbfaI.mjs.map → FunctionExecutionWrapper-XGrSAAPD.mjs.map} +1 -1
  57. package/dist/{HonoEndpointAdaptor-ua6mp3gt.d.cts → HonoEndpointAdaptor-BJgpbMUG.d.cts} +4 -4
  58. package/dist/{HonoEndpointAdaptor-fs2928iO.mjs → HonoEndpointAdaptor-BlT1rWHV.mjs} +24 -9
  59. package/dist/HonoEndpointAdaptor-BlT1rWHV.mjs.map +1 -0
  60. package/dist/{HonoEndpointAdaptor-01cH100U.d.mts → HonoEndpointAdaptor-C9Xe2pRp.d.mts} +2 -2
  61. package/dist/{HonoEndpointAdaptor-6LERutxi.cjs → HonoEndpointAdaptor-Ds433Q8w.cjs} +24 -9
  62. package/dist/HonoEndpointAdaptor-Ds433Q8w.cjs.map +1 -0
  63. package/dist/{TestEndpointAdaptor-CelYsQi0.mjs → TestEndpointAdaptor-BG6fzAOx.mjs} +20 -6
  64. package/dist/TestEndpointAdaptor-BG6fzAOx.mjs.map +1 -0
  65. package/dist/{TestEndpointAdaptor-B4SvJvK-.cjs → TestEndpointAdaptor-BaQaTy_1.cjs} +20 -6
  66. package/dist/TestEndpointAdaptor-BaQaTy_1.cjs.map +1 -0
  67. package/dist/{TestEndpointAdaptor-Da0ooGt2.d.mts → TestEndpointAdaptor-Db0cm1fb.d.mts} +3 -3
  68. package/dist/{TestEndpointAdaptor-CHcgyI3V.d.cts → TestEndpointAdaptor-v7A-7hTs.d.cts} +3 -3
  69. package/dist/adaptors/aws.cjs +8 -8
  70. package/dist/adaptors/aws.d.cts +5 -5
  71. package/dist/adaptors/aws.d.mts +5 -5
  72. package/dist/adaptors/aws.mjs +8 -8
  73. package/dist/adaptors/hono.cjs +4 -4
  74. package/dist/adaptors/hono.d.cts +3 -3
  75. package/dist/adaptors/hono.d.mts +3 -3
  76. package/dist/adaptors/hono.mjs +4 -4
  77. package/dist/adaptors/testing.cjs +2 -2
  78. package/dist/adaptors/testing.d.cts +3 -3
  79. package/dist/adaptors/testing.d.mts +3 -3
  80. package/dist/adaptors/testing.mjs +2 -2
  81. package/dist/crons/Cron.cjs +1 -1
  82. package/dist/crons/Cron.d.cts +1 -1
  83. package/dist/crons/Cron.d.mts +1 -1
  84. package/dist/crons/Cron.mjs +1 -1
  85. package/dist/crons/CronBuilder.cjs +2 -2
  86. package/dist/crons/CronBuilder.d.cts +1 -1
  87. package/dist/crons/CronBuilder.d.mts +1 -1
  88. package/dist/crons/CronBuilder.mjs +2 -2
  89. package/dist/crons/index.cjs +2 -2
  90. package/dist/crons/index.d.cts +5 -5
  91. package/dist/crons/index.d.mts +5 -5
  92. package/dist/crons/index.mjs +2 -2
  93. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +2 -2
  94. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +3 -3
  95. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +3 -3
  96. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +2 -2
  97. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +4 -4
  98. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +4 -4
  99. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +4 -4
  100. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +4 -4
  101. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +4 -4
  102. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +4 -4
  103. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +4 -4
  104. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +4 -4
  105. package/dist/endpoints/Endpoint.cjs +2 -1
  106. package/dist/endpoints/Endpoint.d.cts +3 -3
  107. package/dist/endpoints/Endpoint.d.mts +3 -3
  108. package/dist/endpoints/Endpoint.mjs +2 -2
  109. package/dist/endpoints/EndpointBuilder.cjs +2 -2
  110. package/dist/endpoints/EndpointBuilder.d.cts +3 -3
  111. package/dist/endpoints/EndpointBuilder.d.mts +3 -3
  112. package/dist/endpoints/EndpointBuilder.mjs +2 -2
  113. package/dist/endpoints/EndpointFactory.cjs +3 -3
  114. package/dist/endpoints/EndpointFactory.d.cts +4 -4
  115. package/dist/endpoints/EndpointFactory.d.mts +4 -4
  116. package/dist/endpoints/EndpointFactory.mjs +3 -3
  117. package/dist/endpoints/HonoEndpointAdaptor.cjs +4 -4
  118. package/dist/endpoints/HonoEndpointAdaptor.d.cts +3 -3
  119. package/dist/endpoints/HonoEndpointAdaptor.d.mts +3 -3
  120. package/dist/endpoints/HonoEndpointAdaptor.mjs +4 -4
  121. package/dist/endpoints/TestEndpointAdaptor.cjs +2 -2
  122. package/dist/endpoints/TestEndpointAdaptor.d.cts +3 -3
  123. package/dist/endpoints/TestEndpointAdaptor.d.mts +3 -3
  124. package/dist/endpoints/TestEndpointAdaptor.mjs +2 -2
  125. package/dist/endpoints/helpers.cjs +2 -2
  126. package/dist/endpoints/helpers.d.cts +2 -2
  127. package/dist/endpoints/helpers.d.mts +2 -2
  128. package/dist/endpoints/helpers.mjs +2 -2
  129. package/dist/endpoints/index.cjs +3 -3
  130. package/dist/endpoints/index.cjs.map +1 -1
  131. package/dist/endpoints/index.d.cts +7 -7
  132. package/dist/endpoints/index.d.mts +7 -7
  133. package/dist/endpoints/index.mjs +3 -3
  134. package/dist/endpoints/index.mjs.map +1 -1
  135. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  136. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  137. package/dist/endpoints/parseQueryParams.cjs +1 -1
  138. package/dist/endpoints/parseQueryParams.mjs +1 -1
  139. package/dist/functions/AWSLambdaFunction.cjs +2 -2
  140. package/dist/functions/AWSLambdaFunction.mjs +2 -2
  141. package/dist/functions/FunctionExecutionWrapper.cjs +1 -1
  142. package/dist/functions/FunctionExecutionWrapper.mjs +1 -1
  143. package/dist/functions/index.d.cts +1 -1
  144. package/dist/functions/index.d.mts +1 -1
  145. package/dist/{helpers-CP7A0U_s.mjs → helpers-CM0U-4Vk.mjs} +2 -2
  146. package/dist/{helpers-CP7A0U_s.mjs.map → helpers-CM0U-4Vk.mjs.map} +1 -1
  147. package/dist/{helpers-CjvCSIF5.cjs → helpers-go4jiRvV.cjs} +2 -2
  148. package/dist/{helpers-CjvCSIF5.cjs.map → helpers-go4jiRvV.cjs.map} +1 -1
  149. package/dist/index-BjB0W_Wq.d.mts +9 -0
  150. package/dist/index-D9vqHZie.d.cts +9 -0
  151. package/dist/{parseHonoQuery-BiPp8bEJ.cjs → parseHonoQuery-DopC24vB.cjs} +1 -1
  152. package/dist/{parseHonoQuery-BiPp8bEJ.cjs.map → parseHonoQuery-DopC24vB.cjs.map} +1 -1
  153. package/dist/{parseHonoQuery-yWRoKFFl.mjs → parseHonoQuery-znDKBhdE.mjs} +1 -1
  154. package/dist/{parseHonoQuery-yWRoKFFl.mjs.map → parseHonoQuery-znDKBhdE.mjs.map} +1 -1
  155. package/dist/{parseQueryParams-DSk9xl09.mjs → parseQueryParams-BJaRh3OB.mjs} +1 -1
  156. package/dist/{parseQueryParams-DSk9xl09.mjs.map → parseQueryParams-BJaRh3OB.mjs.map} +1 -1
  157. package/dist/{parseQueryParams-C2EjouGt.cjs → parseQueryParams-BzPop4I1.cjs} +1 -1
  158. package/dist/{parseQueryParams-C2EjouGt.cjs.map → parseQueryParams-BzPop4I1.cjs.map} +1 -1
  159. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  160. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  161. package/dist/subscribers/index.d.cts +2 -2
  162. package/dist/subscribers/index.d.mts +2 -2
  163. package/package.json +3 -3
  164. package/src/endpoints/EndpointFactory.ts +88 -18
  165. package/src/endpoints/index.ts +1 -1
  166. package/dist/AmazonApiGatewayEndpointAdaptor-D_Q_NTMT.cjs.map +0 -1
  167. package/dist/AmazonApiGatewayEndpointAdaptor-QzIAnWzS.mjs.map +0 -1
  168. package/dist/Endpoint-D1nnEsBU.cjs.map +0 -1
  169. package/dist/Endpoint-DNlmybXV.mjs.map +0 -1
  170. package/dist/EndpointFactory-ChmVHWim.cjs.map +0 -1
  171. package/dist/EndpointFactory-DLpEbLzL.mjs.map +0 -1
  172. package/dist/HonoEndpointAdaptor-6LERutxi.cjs.map +0 -1
  173. package/dist/HonoEndpointAdaptor-fs2928iO.mjs.map +0 -1
  174. package/dist/TestEndpointAdaptor-B4SvJvK-.cjs.map +0 -1
  175. package/dist/TestEndpointAdaptor-CelYsQi0.mjs.map +0 -1
  176. package/dist/index-BXTN4mwI.d.mts +0 -9
  177. package/dist/index-zOH9f4sh.d.cts +0 -9
@@ -1,11 +1,11 @@
1
1
  import { HttpMethod } from "./types-Bp9ysFXd.cjs";
2
- import { Endpoint, EndpointSchemas } from "./Endpoint-C7z9YJHK.cjs";
2
+ import { Endpoint, EndpointSchemas } from "./Endpoint-XUMNAXYy.cjs";
3
3
  import { EventPublisher } from "@geekmidas/events";
4
4
  import { Logger } from "@geekmidas/logger";
5
5
  import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
6
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
7
7
  import { EnvironmentParser } from "@geekmidas/envkit";
8
- import * as hono_types7 from "hono/types";
8
+ import * as hono_types3 from "hono/types";
9
9
  import { Context, Hono } from "hono";
10
10
 
11
11
  //#region src/endpoints/HonoEndpointAdaptor.d.ts
@@ -31,11 +31,11 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
31
31
  static validate<T extends StandardSchemaV1>(c: Context<any, string, {}>, data: unknown, schema?: T): Promise<unknown>;
32
32
  addRoute(serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono): void;
33
33
  static applyEventMiddleware(app: Hono, serviceDiscovery: ServiceDiscovery<any, any>): void;
34
- static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<hono_types7.BlankEnv, hono_types7.BlankSchema, "/"> | undefined, logger: TLogger, cwd?: string, options?: HonoEndpointOptions): Promise<Hono>;
34
+ static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<hono_types3.BlankEnv, hono_types3.BlankSchema, "/"> | undefined, logger: TLogger, cwd?: string, options?: HonoEndpointOptions): Promise<Hono>;
35
35
  static addRoutes<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono, options?: HonoEndpointOptions): void;
36
36
  static addRoute<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>(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher>, serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>, app: Hono): void;
37
37
  static addDocsRoute<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], app: Hono, docsPath: string, openApiOptions?: HonoEndpointOptions['openApiOptions']): void;
38
38
  }
39
39
  //#endregion
40
40
  export { HonoEndpoint, HonoEndpointOptions };
41
- //# sourceMappingURL=HonoEndpointAdaptor-ua6mp3gt.d.cts.map
41
+ //# sourceMappingURL=HonoEndpointAdaptor-BJgpbMUG.d.cts.map
@@ -1,11 +1,12 @@
1
1
  import { publishConstructEvents } from "./publisher-Bw4770Hi.mjs";
2
- import { Endpoint } from "./Endpoint-DNlmybXV.mjs";
3
- import { getEndpointsFromRoutes } from "./helpers-CP7A0U_s.mjs";
4
- import { parseHonoQuery } from "./parseHonoQuery-yWRoKFFl.mjs";
2
+ import { Endpoint, ResponseBuilder } from "./Endpoint-DLLZvqoh.mjs";
3
+ import { getEndpointsFromRoutes } from "./helpers-CM0U-4Vk.mjs";
4
+ import { parseHonoQuery } from "./parseHonoQuery-znDKBhdE.mjs";
5
5
  import { wrapError } from "@geekmidas/errors";
6
6
  import { ServiceDiscovery } from "@geekmidas/services";
7
7
  import { checkRateLimit, getRateLimitHeaders } from "@geekmidas/rate-limit";
8
8
  import { Hono } from "hono";
9
+ import { setCookie } from "hono/cookie";
9
10
  import { validator } from "hono/validator";
10
11
 
11
12
  //#region src/endpoints/HonoEndpointAdaptor.ts
@@ -74,14 +75,17 @@ var HonoEndpoint = class HonoEndpoint {
74
75
  try {
75
76
  const headerValues = c.req.header();
76
77
  const header = Endpoint.createHeaders(headerValues);
78
+ const cookie = Endpoint.createCookies(headerValues.cookie);
77
79
  const services = await serviceDiscovery.register(endpoint.services);
78
80
  const session = await endpoint.getSession({
79
81
  services,
80
82
  logger,
81
- header
83
+ header,
84
+ cookie
82
85
  });
83
86
  const isAuthorized = await endpoint.authorize({
84
87
  header,
88
+ cookie,
85
89
  services,
86
90
  logger,
87
91
  session
@@ -102,6 +106,7 @@ var HonoEndpoint = class HonoEndpoint {
102
106
  const rateLimitHeaders = getRateLimitHeaders(rateLimitInfo, endpoint.rateLimit);
103
107
  for (const [key, value] of Object.entries(rateLimitHeaders)) if (value) c.header(key, value);
104
108
  }
109
+ const responseBuilder = new ResponseBuilder();
105
110
  const response = await endpoint.handler({
106
111
  services,
107
112
  logger,
@@ -109,11 +114,21 @@ var HonoEndpoint = class HonoEndpoint {
109
114
  query: c.req.valid("query"),
110
115
  params: c.req.valid("param"),
111
116
  session,
112
- header: Endpoint.createHeaders(headerValues)
113
- });
117
+ header: Endpoint.createHeaders(headerValues),
118
+ cookie: Endpoint.createCookies(headerValues.cookie)
119
+ }, responseBuilder);
114
120
  try {
115
- const status = endpoint.status;
116
- const output = endpoint.outputSchema ? await endpoint.parseOutput(response) : {};
121
+ let data = response;
122
+ let metadata = responseBuilder.getMetadata();
123
+ let status = endpoint.status;
124
+ if (Endpoint.hasMetadata(response)) {
125
+ data = response.data;
126
+ metadata = response.metadata;
127
+ }
128
+ if (metadata.status) status = metadata.status;
129
+ if (metadata.headers) for (const [key, value] of Object.entries(metadata.headers)) c.header(key, value);
130
+ if (metadata.cookies) for (const [name, { value, options }] of metadata.cookies) setCookie(c, name, value, options);
131
+ const output = endpoint.outputSchema ? await endpoint.parseOutput(data) : {};
117
132
  c.set("__response", output);
118
133
  c.set("__endpoint", endpoint);
119
134
  c.set("__logger", logger);
@@ -145,4 +160,4 @@ var HonoEndpoint = class HonoEndpoint {
145
160
 
146
161
  //#endregion
147
162
  export { HonoEndpoint };
148
- //# sourceMappingURL=HonoEndpointAdaptor-fs2928iO.mjs.map
163
+ //# sourceMappingURL=HonoEndpointAdaptor-BlT1rWHV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HonoEndpointAdaptor-BlT1rWHV.mjs","names":["endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >","c: Context<any, string, {}>","data: unknown","schema?: T","serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>","app: Hono","serviceDiscovery: ServiceDiscovery<any, any>","routes: string[]","envParser: EnvironmentParser<{}>","logger: TLogger","options?: HonoEndpointOptions","endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[]","validationError: any","e: any","docsPath: string","openApiOptions?: HonoEndpointOptions['openApiOptions']"],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":["import type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { checkRateLimit, getRateLimitHeaders } from '@geekmidas/rate-limit';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type Context, Hono } from 'hono';\nimport { setCookie } from 'hono/cookie';\nimport { validator } from 'hono/validator';\nimport type { HttpMethod, LowerHttpMethod } from '../types';\nimport {\n Endpoint,\n type EndpointContext,\n type EndpointSchemas,\n ResponseBuilder,\n} from './Endpoint';\nimport { getEndpointsFromRoutes } from './helpers';\nimport { parseHonoQuery } from './parseHonoQuery';\n\nimport { wrapError } from '@geekmidas/errors';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { ContentfulStatusCode } from 'hono/utils/http-status';\nimport { publishConstructEvents } from '../publisher';\n\nexport interface HonoEndpointOptions {\n /**\n * Path where OpenAPI documentation will be served.\n * Set to false to disable docs route.\n * @default '/docs'\n */\n docsPath?: string | false;\n /**\n * OpenAPI schema options\n */\n openApiOptions?: {\n title?: string;\n version?: string;\n description?: string;\n };\n}\n\nexport class HonoEndpoint<\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> {\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >,\n ) {}\n\n static async validate<T extends StandardSchemaV1>(\n c: Context<any, string, {}>,\n data: unknown,\n schema?: T,\n ) {\n if (!schema) {\n return undefined;\n }\n\n const parsed = await Endpoint.validate(schema, data);\n\n if (parsed.issues) {\n return c.json(parsed.issues, 422);\n }\n\n return parsed.value;\n }\n addRoute(\n serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,\n app: Hono,\n ): void {\n HonoEndpoint.addRoute(this.endpoint, serviceDiscovery, app);\n }\n\n static applyEventMiddleware(\n app: Hono,\n serviceDiscovery: ServiceDiscovery<any, any>,\n ) {\n app.use(async (c, next) => {\n await next();\n // @ts-ignore\n const endpoint = c.get('__endpoint') as Endpoint<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >;\n // @ts-ignore\n const response = c.get('__response') as InferStandardSchema<TOutSchema>;\n // @ts-ignore\n const logger = c.get('__logger') as Logger;\n\n if (Endpoint.isSuccessStatus(c.res.status) && endpoint) {\n await publishConstructEvents<any, any>(\n endpoint,\n response,\n serviceDiscovery,\n logger,\n );\n }\n });\n }\n\n static async fromRoutes<TLogger extends Logger, TServices extends Service[]>(\n routes: string[],\n envParser: EnvironmentParser<{}>,\n app = new Hono(),\n logger: TLogger,\n cwd = process.cwd(),\n options?: HonoEndpointOptions,\n ): Promise<Hono> {\n const endpoints = await getEndpointsFromRoutes<TServices>(routes, cwd);\n const serviceDiscovery = ServiceDiscovery.getInstance<\n ServiceRecord<TServices>,\n TLogger\n >(logger, envParser);\n\n HonoEndpoint.addRoutes(endpoints, serviceDiscovery, app, options);\n\n return app;\n }\n\n static addRoutes<\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n >(\n endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,\n app: Hono,\n options?: HonoEndpointOptions,\n ): void {\n // Add docs route if not disabled\n const docsPath =\n options?.docsPath !== false ? options?.docsPath || '/docs' : null;\n if (docsPath) {\n HonoEndpoint.addDocsRoute(\n endpoints,\n app,\n docsPath,\n options?.openApiOptions,\n );\n }\n\n // Sort endpoints to ensure static routes come before dynamic ones\n const sortedEndpoints = endpoints.sort((a, b) => {\n const aSegments = a.route.split('/');\n const bSegments = b.route.split('/');\n\n // Compare each segment\n for (let i = 0; i < Math.max(aSegments.length, bSegments.length); i++) {\n const aSegment = aSegments[i] || '';\n const bSegment = bSegments[i] || '';\n\n // If one is dynamic and the other is not, static comes first\n const aIsDynamic = aSegment.startsWith(':');\n const bIsDynamic = bSegment.startsWith(':');\n\n if (!aIsDynamic && bIsDynamic) return -1;\n if (aIsDynamic && !bIsDynamic) return 1;\n\n // If both are the same type, compare alphabetically\n if (aSegment !== bSegment) {\n return aSegment.localeCompare(bSegment);\n }\n }\n\n return 0;\n });\n HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);\n for (const endpoint of sortedEndpoints) {\n HonoEndpoint.addRoute(endpoint, serviceDiscovery, app);\n }\n }\n\n static addRoute<\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 >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >,\n serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,\n app: Hono,\n ): void {\n const { route } = endpoint;\n const method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;\n\n app[method](\n route,\n validator('json', (value, c) =>\n HonoEndpoint.validate(c, value, endpoint.input?.body),\n ),\n validator('query', (_, c) => {\n const parsedQuery = parseHonoQuery(c);\n return HonoEndpoint.validate(c, parsedQuery, endpoint.input?.query);\n }),\n validator('param', (params, c) =>\n HonoEndpoint.validate(c, params, endpoint.input?.params),\n ),\n async (c) => {\n const logger = endpoint.logger.child({\n endpoint: endpoint.fullPath,\n route: endpoint.route,\n host: c.header('host'),\n method: endpoint.method,\n path: c.req.path,\n }) as TLogger;\n\n try {\n const headerValues = c.req.header();\n\n const header = Endpoint.createHeaders(headerValues);\n const cookie = Endpoint.createCookies(headerValues.cookie);\n\n const services = await serviceDiscovery.register(endpoint.services);\n\n const session = await endpoint.getSession({\n services,\n logger,\n header,\n cookie,\n });\n\n const isAuthorized = await endpoint.authorize({\n header,\n cookie,\n services,\n logger,\n session,\n });\n\n if (!isAuthorized) {\n logger.warn('Unauthorized access attempt');\n return c.json({ error: 'Unauthorized' }, 401);\n }\n\n // Check rate limit if configured\n if (endpoint.rateLimit) {\n const rateLimitInfo = await checkRateLimit(endpoint.rateLimit, {\n header,\n services,\n logger,\n session,\n path: c.req.path,\n method: endpoint.method,\n });\n\n // Set rate limit headers\n const rateLimitHeaders = getRateLimitHeaders(\n rateLimitInfo,\n endpoint.rateLimit,\n );\n for (const [key, value] of Object.entries(rateLimitHeaders)) {\n if (value) {\n c.header(key, value);\n }\n }\n }\n\n const responseBuilder = new ResponseBuilder();\n const response = await endpoint.handler(\n {\n services,\n logger,\n body: c.req.valid('json'),\n query: c.req.valid('query'),\n params: c.req.valid('param'),\n session,\n header: Endpoint.createHeaders(headerValues),\n cookie: Endpoint.createCookies(headerValues.cookie),\n } as unknown as EndpointContext<\n TInput,\n TServices,\n TLogger,\n TSession\n >,\n responseBuilder,\n );\n\n // Publish events if configured\n\n // Validate output if schema is defined\n\n try {\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n let status = endpoint.status as ContentfulStatusCode;\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n // Apply response metadata\n if (metadata.status) {\n status = metadata.status as ContentfulStatusCode;\n }\n\n if (metadata.headers) {\n for (const [key, value] of Object.entries(metadata.headers)) {\n c.header(key, value);\n }\n }\n\n if (metadata.cookies) {\n for (const [name, { value, options }] of metadata.cookies) {\n setCookie(c, name, value, options);\n }\n }\n\n const output = endpoint.outputSchema\n ? await endpoint.parseOutput(data)\n : ({} as any);\n // @ts-ignore\n c.set('__response', output);\n // @ts-ignore\n c.set('__endpoint', endpoint);\n // @ts-ignore\n c.set('__logger', logger);\n\n return c.json(output, status);\n } catch (validationError: any) {\n logger.error(validationError, 'Output validation failed');\n const error = wrapError(\n validationError,\n 422,\n 'Response validation failed',\n );\n return c.json(error, error.statusCode as ContentfulStatusCode);\n }\n } catch (e: any) {\n logger.error(e, 'Error processing endpoint request');\n const error = wrapError(e, 500, 'Internal Server Error');\n return c.json(error, error.statusCode as ContentfulStatusCode);\n }\n },\n );\n }\n\n static addDocsRoute<\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n >(\n endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n app: Hono,\n docsPath: string,\n openApiOptions?: HonoEndpointOptions['openApiOptions'],\n ): void {\n app.get(docsPath, async (c) => {\n try {\n const openApiSchema = await Endpoint.buildOpenApiSchema(\n endpoints,\n openApiOptions,\n );\n\n return c.json(openApiSchema);\n } catch (error) {\n console.error('Error generating OpenAPI schema:', error);\n return c.json(\n { error: 'Failed to generate OpenAPI documentation' },\n 500,\n );\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HttpMethod } from "./types-CVq20-fE.mjs";
2
- import { Endpoint, EndpointSchemas } from "./Endpoint-DYUjJdEs.mjs";
2
+ import { Endpoint, EndpointSchemas } from "./Endpoint-C7jPJzAH.mjs";
3
3
  import { EnvironmentParser } from "@geekmidas/envkit";
4
4
  import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
5
5
  import { Context, Hono } from "hono";
@@ -38,4 +38,4 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
38
38
  }
39
39
  //#endregion
40
40
  export { HonoEndpoint, HonoEndpointOptions };
41
- //# sourceMappingURL=HonoEndpointAdaptor-01cH100U.d.mts.map
41
+ //# sourceMappingURL=HonoEndpointAdaptor-C9Xe2pRp.d.mts.map
@@ -1,12 +1,13 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
2
  const require_publisher = require('./publisher-lFQleddL.cjs');
3
- const require_Endpoint = require('./Endpoint-D1nnEsBU.cjs');
4
- const require_helpers = require('./helpers-CjvCSIF5.cjs');
5
- const require_parseHonoQuery = require('./parseHonoQuery-BiPp8bEJ.cjs');
3
+ const require_Endpoint = require('./Endpoint-COGAflGh.cjs');
4
+ const require_helpers = require('./helpers-go4jiRvV.cjs');
5
+ const require_parseHonoQuery = require('./parseHonoQuery-DopC24vB.cjs');
6
6
  const __geekmidas_errors = require_chunk.__toESM(require("@geekmidas/errors"));
7
7
  const __geekmidas_services = require_chunk.__toESM(require("@geekmidas/services"));
8
8
  const __geekmidas_rate_limit = require_chunk.__toESM(require("@geekmidas/rate-limit"));
9
9
  const hono = require_chunk.__toESM(require("hono"));
10
+ const hono_cookie = require_chunk.__toESM(require("hono/cookie"));
10
11
  const hono_validator = require_chunk.__toESM(require("hono/validator"));
11
12
 
12
13
  //#region src/endpoints/HonoEndpointAdaptor.ts
@@ -75,14 +76,17 @@ var HonoEndpoint = class HonoEndpoint {
75
76
  try {
76
77
  const headerValues = c.req.header();
77
78
  const header = require_Endpoint.Endpoint.createHeaders(headerValues);
79
+ const cookie = require_Endpoint.Endpoint.createCookies(headerValues.cookie);
78
80
  const services = await serviceDiscovery.register(endpoint.services);
79
81
  const session = await endpoint.getSession({
80
82
  services,
81
83
  logger,
82
- header
84
+ header,
85
+ cookie
83
86
  });
84
87
  const isAuthorized = await endpoint.authorize({
85
88
  header,
89
+ cookie,
86
90
  services,
87
91
  logger,
88
92
  session
@@ -103,6 +107,7 @@ var HonoEndpoint = class HonoEndpoint {
103
107
  const rateLimitHeaders = (0, __geekmidas_rate_limit.getRateLimitHeaders)(rateLimitInfo, endpoint.rateLimit);
104
108
  for (const [key, value] of Object.entries(rateLimitHeaders)) if (value) c.header(key, value);
105
109
  }
110
+ const responseBuilder = new require_Endpoint.ResponseBuilder();
106
111
  const response = await endpoint.handler({
107
112
  services,
108
113
  logger,
@@ -110,11 +115,21 @@ var HonoEndpoint = class HonoEndpoint {
110
115
  query: c.req.valid("query"),
111
116
  params: c.req.valid("param"),
112
117
  session,
113
- header: require_Endpoint.Endpoint.createHeaders(headerValues)
114
- });
118
+ header: require_Endpoint.Endpoint.createHeaders(headerValues),
119
+ cookie: require_Endpoint.Endpoint.createCookies(headerValues.cookie)
120
+ }, responseBuilder);
115
121
  try {
116
- const status = endpoint.status;
117
- const output = endpoint.outputSchema ? await endpoint.parseOutput(response) : {};
122
+ let data = response;
123
+ let metadata = responseBuilder.getMetadata();
124
+ let status = endpoint.status;
125
+ if (require_Endpoint.Endpoint.hasMetadata(response)) {
126
+ data = response.data;
127
+ metadata = response.metadata;
128
+ }
129
+ if (metadata.status) status = metadata.status;
130
+ if (metadata.headers) for (const [key, value] of Object.entries(metadata.headers)) c.header(key, value);
131
+ if (metadata.cookies) for (const [name, { value, options }] of metadata.cookies) (0, hono_cookie.setCookie)(c, name, value, options);
132
+ const output = endpoint.outputSchema ? await endpoint.parseOutput(data) : {};
118
133
  c.set("__response", output);
119
134
  c.set("__endpoint", endpoint);
120
135
  c.set("__logger", logger);
@@ -151,4 +166,4 @@ Object.defineProperty(exports, 'HonoEndpoint', {
151
166
  return HonoEndpoint;
152
167
  }
153
168
  });
154
- //# sourceMappingURL=HonoEndpointAdaptor-6LERutxi.cjs.map
169
+ //# sourceMappingURL=HonoEndpointAdaptor-Ds433Q8w.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HonoEndpointAdaptor-Ds433Q8w.cjs","names":["endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >","c: Context<any, string, {}>","data: unknown","schema?: T","serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>","app: Hono","serviceDiscovery: ServiceDiscovery<any, any>","routes: string[]","envParser: EnvironmentParser<{}>","Hono","logger: TLogger","options?: HonoEndpointOptions","endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[]","ResponseBuilder","validationError: any","e: any","docsPath: string","openApiOptions?: HonoEndpointOptions['openApiOptions']"],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":["import type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { checkRateLimit, getRateLimitHeaders } from '@geekmidas/rate-limit';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type Context, Hono } from 'hono';\nimport { setCookie } from 'hono/cookie';\nimport { validator } from 'hono/validator';\nimport type { HttpMethod, LowerHttpMethod } from '../types';\nimport {\n Endpoint,\n type EndpointContext,\n type EndpointSchemas,\n ResponseBuilder,\n} from './Endpoint';\nimport { getEndpointsFromRoutes } from './helpers';\nimport { parseHonoQuery } from './parseHonoQuery';\n\nimport { wrapError } from '@geekmidas/errors';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { ContentfulStatusCode } from 'hono/utils/http-status';\nimport { publishConstructEvents } from '../publisher';\n\nexport interface HonoEndpointOptions {\n /**\n * Path where OpenAPI documentation will be served.\n * Set to false to disable docs route.\n * @default '/docs'\n */\n docsPath?: string | false;\n /**\n * OpenAPI schema options\n */\n openApiOptions?: {\n title?: string;\n version?: string;\n description?: string;\n };\n}\n\nexport class HonoEndpoint<\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> {\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >,\n ) {}\n\n static async validate<T extends StandardSchemaV1>(\n c: Context<any, string, {}>,\n data: unknown,\n schema?: T,\n ) {\n if (!schema) {\n return undefined;\n }\n\n const parsed = await Endpoint.validate(schema, data);\n\n if (parsed.issues) {\n return c.json(parsed.issues, 422);\n }\n\n return parsed.value;\n }\n addRoute(\n serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,\n app: Hono,\n ): void {\n HonoEndpoint.addRoute(this.endpoint, serviceDiscovery, app);\n }\n\n static applyEventMiddleware(\n app: Hono,\n serviceDiscovery: ServiceDiscovery<any, any>,\n ) {\n app.use(async (c, next) => {\n await next();\n // @ts-ignore\n const endpoint = c.get('__endpoint') as Endpoint<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >;\n // @ts-ignore\n const response = c.get('__response') as InferStandardSchema<TOutSchema>;\n // @ts-ignore\n const logger = c.get('__logger') as Logger;\n\n if (Endpoint.isSuccessStatus(c.res.status) && endpoint) {\n await publishConstructEvents<any, any>(\n endpoint,\n response,\n serviceDiscovery,\n logger,\n );\n }\n });\n }\n\n static async fromRoutes<TLogger extends Logger, TServices extends Service[]>(\n routes: string[],\n envParser: EnvironmentParser<{}>,\n app = new Hono(),\n logger: TLogger,\n cwd = process.cwd(),\n options?: HonoEndpointOptions,\n ): Promise<Hono> {\n const endpoints = await getEndpointsFromRoutes<TServices>(routes, cwd);\n const serviceDiscovery = ServiceDiscovery.getInstance<\n ServiceRecord<TServices>,\n TLogger\n >(logger, envParser);\n\n HonoEndpoint.addRoutes(endpoints, serviceDiscovery, app, options);\n\n return app;\n }\n\n static addRoutes<\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n >(\n endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,\n app: Hono,\n options?: HonoEndpointOptions,\n ): void {\n // Add docs route if not disabled\n const docsPath =\n options?.docsPath !== false ? options?.docsPath || '/docs' : null;\n if (docsPath) {\n HonoEndpoint.addDocsRoute(\n endpoints,\n app,\n docsPath,\n options?.openApiOptions,\n );\n }\n\n // Sort endpoints to ensure static routes come before dynamic ones\n const sortedEndpoints = endpoints.sort((a, b) => {\n const aSegments = a.route.split('/');\n const bSegments = b.route.split('/');\n\n // Compare each segment\n for (let i = 0; i < Math.max(aSegments.length, bSegments.length); i++) {\n const aSegment = aSegments[i] || '';\n const bSegment = bSegments[i] || '';\n\n // If one is dynamic and the other is not, static comes first\n const aIsDynamic = aSegment.startsWith(':');\n const bIsDynamic = bSegment.startsWith(':');\n\n if (!aIsDynamic && bIsDynamic) return -1;\n if (aIsDynamic && !bIsDynamic) return 1;\n\n // If both are the same type, compare alphabetically\n if (aSegment !== bSegment) {\n return aSegment.localeCompare(bSegment);\n }\n }\n\n return 0;\n });\n HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);\n for (const endpoint of sortedEndpoints) {\n HonoEndpoint.addRoute(endpoint, serviceDiscovery, app);\n }\n }\n\n static addRoute<\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 >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher\n >,\n serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>, TLogger>,\n app: Hono,\n ): void {\n const { route } = endpoint;\n const method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;\n\n app[method](\n route,\n validator('json', (value, c) =>\n HonoEndpoint.validate(c, value, endpoint.input?.body),\n ),\n validator('query', (_, c) => {\n const parsedQuery = parseHonoQuery(c);\n return HonoEndpoint.validate(c, parsedQuery, endpoint.input?.query);\n }),\n validator('param', (params, c) =>\n HonoEndpoint.validate(c, params, endpoint.input?.params),\n ),\n async (c) => {\n const logger = endpoint.logger.child({\n endpoint: endpoint.fullPath,\n route: endpoint.route,\n host: c.header('host'),\n method: endpoint.method,\n path: c.req.path,\n }) as TLogger;\n\n try {\n const headerValues = c.req.header();\n\n const header = Endpoint.createHeaders(headerValues);\n const cookie = Endpoint.createCookies(headerValues.cookie);\n\n const services = await serviceDiscovery.register(endpoint.services);\n\n const session = await endpoint.getSession({\n services,\n logger,\n header,\n cookie,\n });\n\n const isAuthorized = await endpoint.authorize({\n header,\n cookie,\n services,\n logger,\n session,\n });\n\n if (!isAuthorized) {\n logger.warn('Unauthorized access attempt');\n return c.json({ error: 'Unauthorized' }, 401);\n }\n\n // Check rate limit if configured\n if (endpoint.rateLimit) {\n const rateLimitInfo = await checkRateLimit(endpoint.rateLimit, {\n header,\n services,\n logger,\n session,\n path: c.req.path,\n method: endpoint.method,\n });\n\n // Set rate limit headers\n const rateLimitHeaders = getRateLimitHeaders(\n rateLimitInfo,\n endpoint.rateLimit,\n );\n for (const [key, value] of Object.entries(rateLimitHeaders)) {\n if (value) {\n c.header(key, value);\n }\n }\n }\n\n const responseBuilder = new ResponseBuilder();\n const response = await endpoint.handler(\n {\n services,\n logger,\n body: c.req.valid('json'),\n query: c.req.valid('query'),\n params: c.req.valid('param'),\n session,\n header: Endpoint.createHeaders(headerValues),\n cookie: Endpoint.createCookies(headerValues.cookie),\n } as unknown as EndpointContext<\n TInput,\n TServices,\n TLogger,\n TSession\n >,\n responseBuilder,\n );\n\n // Publish events if configured\n\n // Validate output if schema is defined\n\n try {\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n let status = endpoint.status as ContentfulStatusCode;\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n // Apply response metadata\n if (metadata.status) {\n status = metadata.status as ContentfulStatusCode;\n }\n\n if (metadata.headers) {\n for (const [key, value] of Object.entries(metadata.headers)) {\n c.header(key, value);\n }\n }\n\n if (metadata.cookies) {\n for (const [name, { value, options }] of metadata.cookies) {\n setCookie(c, name, value, options);\n }\n }\n\n const output = endpoint.outputSchema\n ? await endpoint.parseOutput(data)\n : ({} as any);\n // @ts-ignore\n c.set('__response', output);\n // @ts-ignore\n c.set('__endpoint', endpoint);\n // @ts-ignore\n c.set('__logger', logger);\n\n return c.json(output, status);\n } catch (validationError: any) {\n logger.error(validationError, 'Output validation failed');\n const error = wrapError(\n validationError,\n 422,\n 'Response validation failed',\n );\n return c.json(error, error.statusCode as ContentfulStatusCode);\n }\n } catch (e: any) {\n logger.error(e, 'Error processing endpoint request');\n const error = wrapError(e, 500, 'Internal Server Error');\n return c.json(error, error.statusCode as ContentfulStatusCode);\n }\n },\n );\n }\n\n static addDocsRoute<\n TServices extends Service[] = [],\n TLogger extends Logger = Logger,\n >(\n endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n app: Hono,\n docsPath: string,\n openApiOptions?: HonoEndpointOptions['openApiOptions'],\n ): void {\n app.get(docsPath, async (c) => {\n try {\n const openApiSchema = await Endpoint.buildOpenApiSchema(\n endpoints,\n openApiOptions,\n );\n\n return c.json(openApiSchema);\n } catch (error) {\n console.error('Error generating OpenAPI schema:', error);\n return c.json(\n { error: 'Failed to generate OpenAPI documentation' },\n 500,\n );\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { publishConstructEvents } from "./publisher-Bw4770Hi.mjs";
2
- import { Endpoint } from "./Endpoint-DNlmybXV.mjs";
2
+ import { Endpoint, ResponseBuilder } from "./Endpoint-DLLZvqoh.mjs";
3
3
  import { EnvironmentParser } from "@geekmidas/envkit";
4
4
  import { ServiceDiscovery } from "@geekmidas/services";
5
5
 
@@ -17,6 +17,7 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
17
17
  const query = await this.endpoint.parseInput(ctx.query, "query");
18
18
  const params = await this.endpoint.parseInput(ctx.params, "params");
19
19
  const header = Endpoint.createHeaders(ctx.headers);
20
+ const cookie = Endpoint.createCookies(ctx.headers.cookie);
20
21
  const logger = this.endpoint.logger.child({
21
22
  route: this.endpoint.route,
22
23
  host: ctx.headers.host,
@@ -25,8 +26,10 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
25
26
  const session = await this.endpoint.getSession({
26
27
  logger,
27
28
  services: ctx.services,
28
- header
29
+ header,
30
+ cookie
29
31
  });
32
+ const responseBuilder = new ResponseBuilder();
30
33
  const response = await this.endpoint.handler({
31
34
  body,
32
35
  query,
@@ -34,15 +37,26 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
34
37
  session,
35
38
  services: ctx.services,
36
39
  logger,
37
- header
38
- });
39
- const output = await this.endpoint.parseOutput(response);
40
+ header,
41
+ cookie
42
+ }, responseBuilder);
43
+ let data = response;
44
+ let metadata = responseBuilder.getMetadata();
45
+ if (Endpoint.hasMetadata(response)) {
46
+ data = response.data;
47
+ metadata = response.metadata;
48
+ }
49
+ const output = await this.endpoint.parseOutput(data);
40
50
  ctx.publisher && await this.serviceDiscovery.register([ctx.publisher]);
41
51
  await publishConstructEvents(this.endpoint, output, this.serviceDiscovery);
52
+ if (metadata.headers && Object.keys(metadata.headers).length > 0 || metadata.cookies && metadata.cookies.size > 0 || metadata.status) return {
53
+ data: output,
54
+ metadata
55
+ };
42
56
  return output;
43
57
  }
44
58
  };
45
59
 
46
60
  //#endregion
47
61
  export { TestEndpointAdaptor };
48
- //# sourceMappingURL=TestEndpointAdaptor-CelYsQi0.mjs.map
62
+ //# sourceMappingURL=TestEndpointAdaptor-BG6fzAOx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestEndpointAdaptor-BG6fzAOx.mjs","names":["endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName\n >","serviceDiscovery: ServiceDiscovery<\n any,\n any\n >","ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName\n >"],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":["import { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n InferComposableStandardSchema,\n InferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod } from '../types';\nimport {\n Endpoint,\n type EndpointSchemas,\n ResponseBuilder,\n type ResponseWithMetadata,\n} from './Endpoint';\n\nexport class TestEndpointAdaptor<\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 TEventPublisherServiceName extends string = string,\n> {\n static getDefaultServiceDiscover<\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 TEventPublisherServiceName extends string = string,\n >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName\n >,\n ) {\n return ServiceDiscovery.getInstance(\n endpoint.logger,\n new EnvironmentParser({}),\n );\n }\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName\n >,\n private serviceDiscovery: ServiceDiscovery<\n any,\n any\n > = TestEndpointAdaptor.getDefaultServiceDiscover(endpoint),\n ) {}\n\n async request(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName\n >,\n ): Promise<\n | InferStandardSchema<TOutSchema>\n | ResponseWithMetadata<InferStandardSchema<TOutSchema>>\n > {\n const body = await this.endpoint.parseInput((ctx as any).body, 'body');\n const query = await this.endpoint.parseInput((ctx as any).query, 'query');\n const params = await this.endpoint.parseInput(\n (ctx as any).params,\n 'params',\n );\n\n const header = Endpoint.createHeaders(ctx.headers);\n const cookie = Endpoint.createCookies(ctx.headers.cookie);\n const logger = this.endpoint.logger.child({\n route: this.endpoint.route,\n host: ctx.headers.host,\n method: this.endpoint.method,\n }) as TLogger;\n const session = await this.endpoint.getSession({\n logger,\n services: ctx.services,\n header,\n cookie,\n });\n\n const responseBuilder = new ResponseBuilder();\n const response = await this.endpoint.handler(\n {\n body,\n query,\n params,\n session,\n services: ctx.services,\n logger,\n header,\n cookie,\n } as any,\n responseBuilder,\n );\n\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n const output = await this.endpoint.parseOutput(data);\n ctx.publisher && (await this.serviceDiscovery.register([ctx.publisher]));\n\n await publishConstructEvents(this.endpoint, output, this.serviceDiscovery);\n\n // Return with metadata if any was set\n if (\n (metadata.headers && Object.keys(metadata.headers).length > 0) ||\n (metadata.cookies && metadata.cookies.size > 0) ||\n metadata.status\n ) {\n return { data: output, metadata };\n }\n\n return output;\n }\n}\n\nexport type TestRequestAdaptor<\n TInput extends EndpointSchemas = {},\n TServices extends Service[] = [],\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n> = {\n services: ServiceRecord<TServices>;\n headers: Record<string, string>;\n publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n} & InferComposableStandardSchema<TInput>;\n"],"mappings":";;;;;;AAsBA,IAAa,sBAAb,MAAa,oBAUX;CACA,OAAO,0BAWLA,UAWA;AACA,SAAO,iBAAiB,YACtB,SAAS,QACT,IAAI,kBAAkB,CAAE,GACzB;CACF;CACD,YACmBA,UAWTC,mBAGJ,oBAAoB,0BAA0B,SAAS,EAC3D;EAfiB;EAWT;CAIN;CAEJ,MAAM,QACJC,KASA;EACA,MAAM,OAAO,MAAM,KAAK,SAAS,WAAY,IAAY,MAAM,OAAO;EACtE,MAAM,QAAQ,MAAM,KAAK,SAAS,WAAY,IAAY,OAAO,QAAQ;EACzE,MAAM,SAAS,MAAM,KAAK,SAAS,WAChC,IAAY,QACb,SACD;EAED,MAAM,SAAS,SAAS,cAAc,IAAI,QAAQ;EAClD,MAAM,SAAS,SAAS,cAAc,IAAI,QAAQ,OAAO;EACzD,MAAM,SAAS,KAAK,SAAS,OAAO,MAAM;GACxC,OAAO,KAAK,SAAS;GACrB,MAAM,IAAI,QAAQ;GAClB,QAAQ,KAAK,SAAS;EACvB,EAAC;EACF,MAAM,UAAU,MAAM,KAAK,SAAS,WAAW;GAC7C;GACA,UAAU,IAAI;GACd;GACA;EACD,EAAC;EAEF,MAAM,kBAAkB,IAAI;EAC5B,MAAM,WAAW,MAAM,KAAK,SAAS,QACnC;GACE;GACA;GACA;GACA;GACA,UAAU,IAAI;GACd;GACA;GACA;EACD,GACD,gBACD;EAGD,IAAI,OAAO;EACX,IAAI,WAAW,gBAAgB,aAAa;AAE5C,MAAI,SAAS,YAAY,SAAS,EAAE;AAClC,UAAO,SAAS;AAChB,cAAW,SAAS;EACrB;EAED,MAAM,SAAS,MAAM,KAAK,SAAS,YAAY,KAAK;AACpD,MAAI,aAAc,MAAM,KAAK,iBAAiB,SAAS,CAAC,IAAI,SAAU,EAAC;AAEvE,QAAM,uBAAuB,KAAK,UAAU,QAAQ,KAAK,iBAAiB;AAG1E,MACG,SAAS,WAAW,OAAO,KAAK,SAAS,QAAQ,CAAC,SAAS,KAC3D,SAAS,WAAW,SAAS,QAAQ,OAAO,KAC7C,SAAS,OAET,QAAO;GAAE,MAAM;GAAQ;EAAU;AAGnC,SAAO;CACR;AACF"}
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
2
  const require_publisher = require('./publisher-lFQleddL.cjs');
3
- const require_Endpoint = require('./Endpoint-D1nnEsBU.cjs');
3
+ const require_Endpoint = require('./Endpoint-COGAflGh.cjs');
4
4
  const __geekmidas_envkit = require_chunk.__toESM(require("@geekmidas/envkit"));
5
5
  const __geekmidas_services = require_chunk.__toESM(require("@geekmidas/services"));
6
6
 
@@ -18,6 +18,7 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
18
18
  const query = await this.endpoint.parseInput(ctx.query, "query");
19
19
  const params = await this.endpoint.parseInput(ctx.params, "params");
20
20
  const header = require_Endpoint.Endpoint.createHeaders(ctx.headers);
21
+ const cookie = require_Endpoint.Endpoint.createCookies(ctx.headers.cookie);
21
22
  const logger = this.endpoint.logger.child({
22
23
  route: this.endpoint.route,
23
24
  host: ctx.headers.host,
@@ -26,8 +27,10 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
26
27
  const session = await this.endpoint.getSession({
27
28
  logger,
28
29
  services: ctx.services,
29
- header
30
+ header,
31
+ cookie
30
32
  });
33
+ const responseBuilder = new require_Endpoint.ResponseBuilder();
31
34
  const response = await this.endpoint.handler({
32
35
  body,
33
36
  query,
@@ -35,11 +38,22 @@ var TestEndpointAdaptor = class TestEndpointAdaptor {
35
38
  session,
36
39
  services: ctx.services,
37
40
  logger,
38
- header
39
- });
40
- const output = await this.endpoint.parseOutput(response);
41
+ header,
42
+ cookie
43
+ }, responseBuilder);
44
+ let data = response;
45
+ let metadata = responseBuilder.getMetadata();
46
+ if (require_Endpoint.Endpoint.hasMetadata(response)) {
47
+ data = response.data;
48
+ metadata = response.metadata;
49
+ }
50
+ const output = await this.endpoint.parseOutput(data);
41
51
  ctx.publisher && await this.serviceDiscovery.register([ctx.publisher]);
42
52
  await require_publisher.publishConstructEvents(this.endpoint, output, this.serviceDiscovery);
53
+ if (metadata.headers && Object.keys(metadata.headers).length > 0 || metadata.cookies && metadata.cookies.size > 0 || metadata.status) return {
54
+ data: output,
55
+ metadata
56
+ };
43
57
  return output;
44
58
  }
45
59
  };
@@ -51,4 +65,4 @@ Object.defineProperty(exports, 'TestEndpointAdaptor', {
51
65
  return TestEndpointAdaptor;
52
66
  }
53
67
  });
54
- //# sourceMappingURL=TestEndpointAdaptor-B4SvJvK-.cjs.map
68
+ //# sourceMappingURL=TestEndpointAdaptor-BaQaTy_1.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestEndpointAdaptor-BaQaTy_1.cjs","names":["endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName\n >","EnvironmentParser","serviceDiscovery: ServiceDiscovery<\n any,\n any\n >","ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName\n >","ResponseBuilder"],"sources":["../src/endpoints/TestEndpointAdaptor.ts"],"sourcesContent":["import { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n InferComposableStandardSchema,\n InferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n type Service,\n ServiceDiscovery,\n type ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod } from '../types';\nimport {\n Endpoint,\n type EndpointSchemas,\n ResponseBuilder,\n type ResponseWithMetadata,\n} from './Endpoint';\n\nexport class TestEndpointAdaptor<\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 TEventPublisherServiceName extends string = string,\n> {\n static getDefaultServiceDiscover<\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 TEventPublisherServiceName extends string = string,\n >(\n endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName\n >,\n ) {\n return ServiceDiscovery.getInstance(\n endpoint.logger,\n new EnvironmentParser({}),\n );\n }\n constructor(\n private readonly endpoint: Endpoint<\n TRoute,\n TMethod,\n TInput,\n TOutSchema,\n TServices,\n TLogger,\n TSession,\n TEventPublisher,\n TEventPublisherServiceName\n >,\n private serviceDiscovery: ServiceDiscovery<\n any,\n any\n > = TestEndpointAdaptor.getDefaultServiceDiscover(endpoint),\n ) {}\n\n async request(\n ctx: TestRequestAdaptor<\n TInput,\n TServices,\n TEventPublisher,\n TEventPublisherServiceName\n >,\n ): Promise<\n | InferStandardSchema<TOutSchema>\n | ResponseWithMetadata<InferStandardSchema<TOutSchema>>\n > {\n const body = await this.endpoint.parseInput((ctx as any).body, 'body');\n const query = await this.endpoint.parseInput((ctx as any).query, 'query');\n const params = await this.endpoint.parseInput(\n (ctx as any).params,\n 'params',\n );\n\n const header = Endpoint.createHeaders(ctx.headers);\n const cookie = Endpoint.createCookies(ctx.headers.cookie);\n const logger = this.endpoint.logger.child({\n route: this.endpoint.route,\n host: ctx.headers.host,\n method: this.endpoint.method,\n }) as TLogger;\n const session = await this.endpoint.getSession({\n logger,\n services: ctx.services,\n header,\n cookie,\n });\n\n const responseBuilder = new ResponseBuilder();\n const response = await this.endpoint.handler(\n {\n body,\n query,\n params,\n session,\n services: ctx.services,\n logger,\n header,\n cookie,\n } as any,\n responseBuilder,\n );\n\n // Check if response has metadata\n let data = response;\n let metadata = responseBuilder.getMetadata();\n\n if (Endpoint.hasMetadata(response)) {\n data = response.data;\n metadata = response.metadata;\n }\n\n const output = await this.endpoint.parseOutput(data);\n ctx.publisher && (await this.serviceDiscovery.register([ctx.publisher]));\n\n await publishConstructEvents(this.endpoint, output, this.serviceDiscovery);\n\n // Return with metadata if any was set\n if (\n (metadata.headers && Object.keys(metadata.headers).length > 0) ||\n (metadata.cookies && metadata.cookies.size > 0) ||\n metadata.status\n ) {\n return { data: output, metadata };\n }\n\n return output;\n }\n}\n\nexport type TestRequestAdaptor<\n TInput extends EndpointSchemas = {},\n TServices extends Service[] = [],\n TEventPublisher extends EventPublisher<any> | undefined = undefined,\n TEventPublisherServiceName extends string = string,\n> = {\n services: ServiceRecord<TServices>;\n headers: Record<string, string>;\n publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n} & InferComposableStandardSchema<TInput>;\n"],"mappings":";;;;;;;AAsBA,IAAa,sBAAb,MAAa,oBAUX;CACA,OAAO,0BAWLA,UAWA;AACA,SAAO,sCAAiB,YACtB,SAAS,QACT,IAAIC,qCAAkB,CAAE,GACzB;CACF;CACD,YACmBD,UAWTE,mBAGJ,oBAAoB,0BAA0B,SAAS,EAC3D;EAfiB;EAWT;CAIN;CAEJ,MAAM,QACJC,KASA;EACA,MAAM,OAAO,MAAM,KAAK,SAAS,WAAY,IAAY,MAAM,OAAO;EACtE,MAAM,QAAQ,MAAM,KAAK,SAAS,WAAY,IAAY,OAAO,QAAQ;EACzE,MAAM,SAAS,MAAM,KAAK,SAAS,WAChC,IAAY,QACb,SACD;EAED,MAAM,SAAS,0BAAS,cAAc,IAAI,QAAQ;EAClD,MAAM,SAAS,0BAAS,cAAc,IAAI,QAAQ,OAAO;EACzD,MAAM,SAAS,KAAK,SAAS,OAAO,MAAM;GACxC,OAAO,KAAK,SAAS;GACrB,MAAM,IAAI,QAAQ;GAClB,QAAQ,KAAK,SAAS;EACvB,EAAC;EACF,MAAM,UAAU,MAAM,KAAK,SAAS,WAAW;GAC7C;GACA,UAAU,IAAI;GACd;GACA;EACD,EAAC;EAEF,MAAM,kBAAkB,IAAIC;EAC5B,MAAM,WAAW,MAAM,KAAK,SAAS,QACnC;GACE;GACA;GACA;GACA;GACA,UAAU,IAAI;GACd;GACA;GACA;EACD,GACD,gBACD;EAGD,IAAI,OAAO;EACX,IAAI,WAAW,gBAAgB,aAAa;AAE5C,MAAI,0BAAS,YAAY,SAAS,EAAE;AAClC,UAAO,SAAS;AAChB,cAAW,SAAS;EACrB;EAED,MAAM,SAAS,MAAM,KAAK,SAAS,YAAY,KAAK;AACpD,MAAI,aAAc,MAAM,KAAK,iBAAiB,SAAS,CAAC,IAAI,SAAU,EAAC;AAEvE,QAAM,yCAAuB,KAAK,UAAU,QAAQ,KAAK,iBAAiB;AAG1E,MACG,SAAS,WAAW,OAAO,KAAK,SAAS,QAAQ,CAAC,SAAS,KAC3D,SAAS,WAAW,SAAS,QAAQ,OAAO,KAC7C,SAAS,OAET,QAAO;GAAE,MAAM;GAAQ;EAAU;AAGnC,SAAO;CACR;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { HttpMethod } from "./types-CVq20-fE.mjs";
2
- import { Endpoint, EndpointSchemas } from "./Endpoint-DYUjJdEs.mjs";
2
+ import { Endpoint, EndpointSchemas, ResponseWithMetadata } from "./Endpoint-C7jPJzAH.mjs";
3
3
  import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
4
4
  import { EventPublisher } from "@geekmidas/events";
5
5
  import { Logger } from "@geekmidas/logger";
@@ -12,7 +12,7 @@ declare class TestEndpointAdaptor<TRoute extends string, TMethod extends HttpMet
12
12
  private serviceDiscovery;
13
13
  static getDefaultServiceDiscover<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, TEventPublisherServiceName extends string = string>(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName>): ServiceDiscovery<any, Logger>;
14
14
  constructor(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName>, serviceDiscovery?: ServiceDiscovery<any, any>);
15
- request(ctx: TestRequestAdaptor<TInput, TServices, TEventPublisher, TEventPublisherServiceName>): Promise<InferStandardSchema<TOutSchema>>;
15
+ request(ctx: TestRequestAdaptor<TInput, TServices, TEventPublisher, TEventPublisherServiceName>): Promise<InferStandardSchema<TOutSchema> | ResponseWithMetadata<InferStandardSchema<TOutSchema>>>;
16
16
  }
17
17
  type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string> = {
18
18
  services: ServiceRecord<TServices>;
@@ -21,4 +21,4 @@ type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends S
21
21
  } & InferComposableStandardSchema<TInput>;
22
22
  //#endregion
23
23
  export { TestEndpointAdaptor, TestRequestAdaptor };
24
- //# sourceMappingURL=TestEndpointAdaptor-Da0ooGt2.d.mts.map
24
+ //# sourceMappingURL=TestEndpointAdaptor-Db0cm1fb.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { HttpMethod } from "./types-Bp9ysFXd.cjs";
2
- import { Endpoint, EndpointSchemas } from "./Endpoint-C7z9YJHK.cjs";
2
+ import { Endpoint, EndpointSchemas, ResponseWithMetadata } from "./Endpoint-XUMNAXYy.cjs";
3
3
  import { EventPublisher } from "@geekmidas/events";
4
4
  import { Logger } from "@geekmidas/logger";
5
5
  import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
@@ -12,7 +12,7 @@ declare class TestEndpointAdaptor<TRoute extends string, TMethod extends HttpMet
12
12
  private serviceDiscovery;
13
13
  static getDefaultServiceDiscover<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, TEventPublisherServiceName extends string = string>(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName>): ServiceDiscovery<any, Logger>;
14
14
  constructor(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName>, serviceDiscovery?: ServiceDiscovery<any, any>);
15
- request(ctx: TestRequestAdaptor<TInput, TServices, TEventPublisher, TEventPublisherServiceName>): Promise<InferStandardSchema<TOutSchema>>;
15
+ request(ctx: TestRequestAdaptor<TInput, TServices, TEventPublisher, TEventPublisherServiceName>): Promise<InferStandardSchema<TOutSchema> | ResponseWithMetadata<InferStandardSchema<TOutSchema>>>;
16
16
  }
17
17
  type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends Service[] = [], TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string> = {
18
18
  services: ServiceRecord<TServices>;
@@ -21,4 +21,4 @@ type TestRequestAdaptor<TInput extends EndpointSchemas = {}, TServices extends S
21
21
  } & InferComposableStandardSchema<TInput>;
22
22
  //#endregion
23
23
  export { TestEndpointAdaptor, TestRequestAdaptor };
24
- //# sourceMappingURL=TestEndpointAdaptor-CHcgyI3V.d.cts.map
24
+ //# sourceMappingURL=TestEndpointAdaptor-v7A-7hTs.d.cts.map
@@ -4,14 +4,14 @@ require('../Function-CbO2NZx-.cjs');
4
4
  require('../BaseFunctionBuilder-DtO4Nwxm.cjs');
5
5
  require('../FunctionBuilder-DuOeWCAl.cjs');
6
6
  require('../functions-DVDb5wEA.cjs');
7
- require('../Endpoint-D1nnEsBU.cjs');
8
- require('../AmazonApiGatewayEndpointAdaptor-D_Q_NTMT.cjs');
9
- require('../parseQueryParams-C2EjouGt.cjs');
10
- const require_AmazonApiGatewayV1EndpointAdaptor = require('../AmazonApiGatewayV1EndpointAdaptor-Bh4tckwd.cjs');
11
- const require_AmazonApiGatewayV2EndpointAdaptor = require('../AmazonApiGatewayV2EndpointAdaptor-L4Ywv3Pk.cjs');
12
- require('../FunctionExecutionWrapper-UzfHDM2R.cjs');
13
- const require_AWSLambdaFunction = require('../AWSLambdaFunction-DW9qrBNR.cjs');
14
- const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs');
7
+ require('../Endpoint-COGAflGh.cjs');
8
+ require('../AmazonApiGatewayEndpointAdaptor-B8mozTcG.cjs');
9
+ require('../parseQueryParams-BzPop4I1.cjs');
10
+ const require_AmazonApiGatewayV1EndpointAdaptor = require('../AmazonApiGatewayV1EndpointAdaptor-D4eZ-fx5.cjs');
11
+ const require_AmazonApiGatewayV2EndpointAdaptor = require('../AmazonApiGatewayV2EndpointAdaptor-J6tACl-N.cjs');
12
+ require('../FunctionExecutionWrapper-CElXEjPe.cjs');
13
+ const require_AWSLambdaFunction = require('../AWSLambdaFunction-qA5LqPsv.cjs');
14
+ const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs');
15
15
 
16
16
  exports.AWSLambdaFunction = require_AWSLambdaFunction.AWSLambdaFunction;
17
17
  exports.AWSLambdaSubscriber = require_AWSLambdaSubscriberAdaptor.AWSLambdaSubscriber;
@@ -3,11 +3,11 @@ import "../types-Bp9ysFXd.cjs";
3
3
  import "../Function-BP58p9Mp.cjs";
4
4
  import "../BaseFunctionBuilder-5QCHkchp.cjs";
5
5
  import "../FunctionBuilder-BS1KgxA_.cjs";
6
- import "../index-zOH9f4sh.cjs";
7
- import "../Endpoint-C7z9YJHK.cjs";
8
- import "../AmazonApiGatewayEndpointAdaptor-DtzgQ9Vb.cjs";
9
- import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-Gw-j61qM.cjs";
10
- import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-LUlpwmUW.cjs";
6
+ import "../index-D9vqHZie.cjs";
7
+ import "../Endpoint-XUMNAXYy.cjs";
8
+ import "../AmazonApiGatewayEndpointAdaptor-BFhJ2Rpz.cjs";
9
+ import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-Bd-o8ese.cjs";
10
+ import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-DX-Uci5w.cjs";
11
11
  import "../FunctionExecutionWrapper-Bx-Dl-2a.cjs";
12
12
  import { AWSLambdaFunction } from "../AWSLambdaFunction-CwagvPG3.cjs";
13
13
  import "../Subscriber-BoFm12i_.cjs";
@@ -3,11 +3,11 @@ import "../types-CVq20-fE.mjs";
3
3
  import "../Function-C98H68DW.mjs";
4
4
  import "../BaseFunctionBuilder-Dda7AiID.mjs";
5
5
  import "../FunctionBuilder-DBwR7jg7.mjs";
6
- import "../index-BXTN4mwI.mjs";
7
- import "../Endpoint-DYUjJdEs.mjs";
8
- import "../AmazonApiGatewayEndpointAdaptor-DNZLntHj.mjs";
9
- import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-DbJa4cpU.mjs";
10
- import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-BlKn-KJ6.mjs";
6
+ import "../index-BjB0W_Wq.mjs";
7
+ import "../Endpoint-C7jPJzAH.mjs";
8
+ import "../AmazonApiGatewayEndpointAdaptor-BrB3RfbI.mjs";
9
+ import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-BtNXt0-4.mjs";
10
+ import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-DAJdtgek.mjs";
11
11
  import "../FunctionExecutionWrapper-B0V7V8YS.mjs";
12
12
  import { AWSLambdaFunction } from "../AWSLambdaFunction-CANc3Qo2.mjs";
13
13
  import "../Subscriber-BxH6n8zQ.mjs";
@@ -4,13 +4,13 @@ import "../Function-C5mW-38v.mjs";
4
4
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
5
5
  import "../FunctionBuilder-CosgPmMl.mjs";
6
6
  import "../functions-mM-jcphA.mjs";
7
- import "../Endpoint-DNlmybXV.mjs";
8
- import "../AmazonApiGatewayEndpointAdaptor-QzIAnWzS.mjs";
9
- import "../parseQueryParams-DSk9xl09.mjs";
10
- import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-BF5bGWV1.mjs";
11
- import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-BOaOkLXF.mjs";
12
- import "../FunctionExecutionWrapper-CPzSbfaI.mjs";
13
- import { AWSLambdaFunction } from "../AWSLambdaFunction-nic3vzt3.mjs";
14
- import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs";
7
+ import "../Endpoint-DLLZvqoh.mjs";
8
+ import "../AmazonApiGatewayEndpointAdaptor-Bmz6Cy1e.mjs";
9
+ import "../parseQueryParams-BJaRh3OB.mjs";
10
+ import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-24g3dLn5.mjs";
11
+ import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-Cc40RThv.mjs";
12
+ import "../FunctionExecutionWrapper-XGrSAAPD.mjs";
13
+ import { AWSLambdaFunction } from "../AWSLambdaFunction-DWIZYsCy.mjs";
14
+ import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs";
15
15
 
16
16
  export { AWSLambdaFunction, AWSLambdaSubscriber, AmazonApiGatewayV1Endpoint, AmazonApiGatewayV2Endpoint };
@@ -4,9 +4,9 @@ require('../Function-CbO2NZx-.cjs');
4
4
  require('../BaseFunctionBuilder-DtO4Nwxm.cjs');
5
5
  require('../FunctionBuilder-DuOeWCAl.cjs');
6
6
  require('../functions-DVDb5wEA.cjs');
7
- require('../Endpoint-D1nnEsBU.cjs');
8
- require('../helpers-CjvCSIF5.cjs');
9
- require('../parseHonoQuery-BiPp8bEJ.cjs');
10
- const require_HonoEndpointAdaptor = require('../HonoEndpointAdaptor-6LERutxi.cjs');
7
+ require('../Endpoint-COGAflGh.cjs');
8
+ require('../helpers-go4jiRvV.cjs');
9
+ require('../parseHonoQuery-DopC24vB.cjs');
10
+ const require_HonoEndpointAdaptor = require('../HonoEndpointAdaptor-Ds433Q8w.cjs');
11
11
 
12
12
  exports.HonoEndpoint = require_HonoEndpointAdaptor.HonoEndpoint;
@@ -3,7 +3,7 @@ import "../types-Bp9ysFXd.cjs";
3
3
  import "../Function-BP58p9Mp.cjs";
4
4
  import "../BaseFunctionBuilder-5QCHkchp.cjs";
5
5
  import "../FunctionBuilder-BS1KgxA_.cjs";
6
- import "../index-zOH9f4sh.cjs";
7
- import "../Endpoint-C7z9YJHK.cjs";
8
- import { HonoEndpoint } from "../HonoEndpointAdaptor-ua6mp3gt.cjs";
6
+ import "../index-D9vqHZie.cjs";
7
+ import "../Endpoint-XUMNAXYy.cjs";
8
+ import { HonoEndpoint } from "../HonoEndpointAdaptor-BJgpbMUG.cjs";
9
9
  export { HonoEndpoint };
@@ -3,7 +3,7 @@ import "../types-CVq20-fE.mjs";
3
3
  import "../Function-C98H68DW.mjs";
4
4
  import "../BaseFunctionBuilder-Dda7AiID.mjs";
5
5
  import "../FunctionBuilder-DBwR7jg7.mjs";
6
- import "../index-BXTN4mwI.mjs";
7
- import "../Endpoint-DYUjJdEs.mjs";
8
- import { HonoEndpoint } from "../HonoEndpointAdaptor-01cH100U.mjs";
6
+ import "../index-BjB0W_Wq.mjs";
7
+ import "../Endpoint-C7jPJzAH.mjs";
8
+ import { HonoEndpoint } from "../HonoEndpointAdaptor-C9Xe2pRp.mjs";
9
9
  export { HonoEndpoint };
@@ -4,9 +4,9 @@ import "../Function-C5mW-38v.mjs";
4
4
  import "../BaseFunctionBuilder-BPE9JBbT.mjs";
5
5
  import "../FunctionBuilder-CosgPmMl.mjs";
6
6
  import "../functions-mM-jcphA.mjs";
7
- import "../Endpoint-DNlmybXV.mjs";
8
- import "../helpers-CP7A0U_s.mjs";
9
- import "../parseHonoQuery-yWRoKFFl.mjs";
10
- import { HonoEndpoint } from "../HonoEndpointAdaptor-fs2928iO.mjs";
7
+ import "../Endpoint-DLLZvqoh.mjs";
8
+ import "../helpers-CM0U-4Vk.mjs";
9
+ import "../parseHonoQuery-znDKBhdE.mjs";
10
+ import { HonoEndpoint } from "../HonoEndpointAdaptor-BlT1rWHV.mjs";
11
11
 
12
12
  export { HonoEndpoint };