@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.
- package/dist/{AWSLambdaFunction-nic3vzt3.mjs → AWSLambdaFunction-DWIZYsCy.mjs} +2 -2
- package/dist/{AWSLambdaFunction-nic3vzt3.mjs.map → AWSLambdaFunction-DWIZYsCy.mjs.map} +1 -1
- package/dist/{AWSLambdaFunction-DW9qrBNR.cjs → AWSLambdaFunction-qA5LqPsv.cjs} +2 -2
- package/dist/{AWSLambdaFunction-DW9qrBNR.cjs.map → AWSLambdaFunction-qA5LqPsv.cjs.map} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs → AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-ZuQAhW9_.cjs.map → AWSLambdaSubscriberAdaptor-CmPZ10JF.cjs.map} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs → AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-BhqrpTVc.mjs.map → AWSLambdaSubscriberAdaptor-G8y3YkWj.mjs.map} +1 -1
- package/dist/{AmazonApiGatewayEndpointAdaptor-D_Q_NTMT.cjs → AmazonApiGatewayEndpointAdaptor-B8mozTcG.cjs} +33 -10
- package/dist/AmazonApiGatewayEndpointAdaptor-B8mozTcG.cjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-DtzgQ9Vb.d.cts → AmazonApiGatewayEndpointAdaptor-BFhJ2Rpz.d.cts} +5 -2
- package/dist/{AmazonApiGatewayEndpointAdaptor-QzIAnWzS.mjs → AmazonApiGatewayEndpointAdaptor-Bmz6Cy1e.mjs} +33 -10
- package/dist/AmazonApiGatewayEndpointAdaptor-Bmz6Cy1e.mjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-DNZLntHj.d.mts → AmazonApiGatewayEndpointAdaptor-BrB3RfbI.d.mts} +5 -2
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-BF5bGWV1.mjs → AmazonApiGatewayV1EndpointAdaptor-24g3dLn5.mjs} +3 -3
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-BF5bGWV1.mjs.map → AmazonApiGatewayV1EndpointAdaptor-24g3dLn5.mjs.map} +1 -1
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-Gw-j61qM.d.cts → AmazonApiGatewayV1EndpointAdaptor-Bd-o8ese.d.cts} +3 -3
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-DbJa4cpU.d.mts → AmazonApiGatewayV1EndpointAdaptor-BtNXt0-4.d.mts} +3 -3
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-Bh4tckwd.cjs → AmazonApiGatewayV1EndpointAdaptor-D4eZ-fx5.cjs} +3 -3
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-Bh4tckwd.cjs.map → AmazonApiGatewayV1EndpointAdaptor-D4eZ-fx5.cjs.map} +1 -1
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-BOaOkLXF.mjs → AmazonApiGatewayV2EndpointAdaptor-Cc40RThv.mjs} +3 -3
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-BOaOkLXF.mjs.map → AmazonApiGatewayV2EndpointAdaptor-Cc40RThv.mjs.map} +1 -1
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-BlKn-KJ6.d.mts → AmazonApiGatewayV2EndpointAdaptor-DAJdtgek.d.mts} +3 -3
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-LUlpwmUW.d.cts → AmazonApiGatewayV2EndpointAdaptor-DX-Uci5w.d.cts} +3 -3
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-L4Ywv3Pk.cjs → AmazonApiGatewayV2EndpointAdaptor-J6tACl-N.cjs} +3 -3
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-L4Ywv3Pk.cjs.map → AmazonApiGatewayV2EndpointAdaptor-J6tACl-N.cjs.map} +1 -1
- package/dist/{Cron-BgJo6EW6.mjs → Cron-Br2TtpGY.mjs} +1 -1
- package/dist/{Cron-BgJo6EW6.mjs.map → Cron-Br2TtpGY.mjs.map} +1 -1
- package/dist/{Cron-JYYGj5ik.cjs → Cron-DF1o3U_T.cjs} +1 -1
- package/dist/{Cron-JYYGj5ik.cjs.map → Cron-DF1o3U_T.cjs.map} +1 -1
- package/dist/{CronBuilder-DVuhB_kA.mjs → CronBuilder-DNFHMTSl.mjs} +2 -2
- package/dist/{CronBuilder-DVuhB_kA.mjs.map → CronBuilder-DNFHMTSl.mjs.map} +1 -1
- package/dist/{CronBuilder-BDDS21OP.cjs → CronBuilder-e8CAOwBV.cjs} +2 -2
- package/dist/{CronBuilder-BDDS21OP.cjs.map → CronBuilder-e8CAOwBV.cjs.map} +1 -1
- package/dist/{Endpoint-DYUjJdEs.d.mts → Endpoint-C7jPJzAH.d.mts} +115 -6
- package/dist/{Endpoint-D1nnEsBU.cjs → Endpoint-COGAflGh.cjs} +128 -4
- package/dist/Endpoint-COGAflGh.cjs.map +1 -0
- package/dist/{Endpoint-DNlmybXV.mjs → Endpoint-DLLZvqoh.mjs} +123 -5
- package/dist/Endpoint-DLLZvqoh.mjs.map +1 -0
- package/dist/{Endpoint-C7z9YJHK.d.cts → Endpoint-XUMNAXYy.d.cts} +115 -6
- package/dist/{EndpointBuilder-B2iScUND.d.mts → EndpointBuilder-CFtWQhcv.d.mts} +2 -2
- package/dist/{EndpointBuilder-BhRd626m.cjs → EndpointBuilder-FJktpPOu.cjs} +2 -2
- package/dist/{EndpointBuilder-BhRd626m.cjs.map → EndpointBuilder-FJktpPOu.cjs.map} +1 -1
- package/dist/{EndpointBuilder-CpjIMYb0.mjs → EndpointBuilder-oXO_ka1-.mjs} +2 -2
- package/dist/{EndpointBuilder-CpjIMYb0.mjs.map → EndpointBuilder-oXO_ka1-.mjs.map} +1 -1
- package/dist/{EndpointBuilder-1fw103D6.d.cts → EndpointBuilder-t6fVEKBH.d.cts} +2 -2
- package/dist/{EndpointFactory-D576BhaH.d.cts → EndpointFactory-DBRGrXAy.d.mts} +10 -10
- package/dist/{EndpointFactory-DZQpM-9K.d.mts → EndpointFactory-DInjHvFR.d.cts} +10 -10
- package/dist/{EndpointFactory-ChmVHWim.cjs → EndpointFactory-Kk1tpifs.cjs} +4 -3
- package/dist/EndpointFactory-Kk1tpifs.cjs.map +1 -0
- package/dist/{EndpointFactory-DLpEbLzL.mjs → EndpointFactory-eG8bDhOh.mjs} +4 -3
- package/dist/EndpointFactory-eG8bDhOh.mjs.map +1 -0
- package/dist/{FunctionExecutionWrapper-UzfHDM2R.cjs → FunctionExecutionWrapper-CElXEjPe.cjs} +1 -1
- package/dist/{FunctionExecutionWrapper-UzfHDM2R.cjs.map → FunctionExecutionWrapper-CElXEjPe.cjs.map} +1 -1
- package/dist/{FunctionExecutionWrapper-CPzSbfaI.mjs → FunctionExecutionWrapper-XGrSAAPD.mjs} +1 -1
- package/dist/{FunctionExecutionWrapper-CPzSbfaI.mjs.map → FunctionExecutionWrapper-XGrSAAPD.mjs.map} +1 -1
- package/dist/{HonoEndpointAdaptor-ua6mp3gt.d.cts → HonoEndpointAdaptor-BJgpbMUG.d.cts} +4 -4
- package/dist/{HonoEndpointAdaptor-fs2928iO.mjs → HonoEndpointAdaptor-BlT1rWHV.mjs} +24 -9
- package/dist/HonoEndpointAdaptor-BlT1rWHV.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-01cH100U.d.mts → HonoEndpointAdaptor-C9Xe2pRp.d.mts} +2 -2
- package/dist/{HonoEndpointAdaptor-6LERutxi.cjs → HonoEndpointAdaptor-Ds433Q8w.cjs} +24 -9
- package/dist/HonoEndpointAdaptor-Ds433Q8w.cjs.map +1 -0
- package/dist/{TestEndpointAdaptor-CelYsQi0.mjs → TestEndpointAdaptor-BG6fzAOx.mjs} +20 -6
- package/dist/TestEndpointAdaptor-BG6fzAOx.mjs.map +1 -0
- package/dist/{TestEndpointAdaptor-B4SvJvK-.cjs → TestEndpointAdaptor-BaQaTy_1.cjs} +20 -6
- package/dist/TestEndpointAdaptor-BaQaTy_1.cjs.map +1 -0
- package/dist/{TestEndpointAdaptor-Da0ooGt2.d.mts → TestEndpointAdaptor-Db0cm1fb.d.mts} +3 -3
- package/dist/{TestEndpointAdaptor-CHcgyI3V.d.cts → TestEndpointAdaptor-v7A-7hTs.d.cts} +3 -3
- package/dist/adaptors/aws.cjs +8 -8
- package/dist/adaptors/aws.d.cts +5 -5
- package/dist/adaptors/aws.d.mts +5 -5
- package/dist/adaptors/aws.mjs +8 -8
- package/dist/adaptors/hono.cjs +4 -4
- package/dist/adaptors/hono.d.cts +3 -3
- package/dist/adaptors/hono.d.mts +3 -3
- package/dist/adaptors/hono.mjs +4 -4
- package/dist/adaptors/testing.cjs +2 -2
- package/dist/adaptors/testing.d.cts +3 -3
- package/dist/adaptors/testing.d.mts +3 -3
- package/dist/adaptors/testing.mjs +2 -2
- package/dist/crons/Cron.cjs +1 -1
- package/dist/crons/Cron.d.cts +1 -1
- package/dist/crons/Cron.d.mts +1 -1
- package/dist/crons/Cron.mjs +1 -1
- package/dist/crons/CronBuilder.cjs +2 -2
- package/dist/crons/CronBuilder.d.cts +1 -1
- package/dist/crons/CronBuilder.d.mts +1 -1
- package/dist/crons/CronBuilder.mjs +2 -2
- package/dist/crons/index.cjs +2 -2
- package/dist/crons/index.d.cts +5 -5
- package/dist/crons/index.d.mts +5 -5
- package/dist/crons/index.mjs +2 -2
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +2 -2
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +3 -3
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +3 -3
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +2 -2
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +4 -4
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +4 -4
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +4 -4
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +4 -4
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +4 -4
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +4 -4
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +4 -4
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +4 -4
- package/dist/endpoints/Endpoint.cjs +2 -1
- package/dist/endpoints/Endpoint.d.cts +3 -3
- package/dist/endpoints/Endpoint.d.mts +3 -3
- package/dist/endpoints/Endpoint.mjs +2 -2
- package/dist/endpoints/EndpointBuilder.cjs +2 -2
- package/dist/endpoints/EndpointBuilder.d.cts +3 -3
- package/dist/endpoints/EndpointBuilder.d.mts +3 -3
- package/dist/endpoints/EndpointBuilder.mjs +2 -2
- package/dist/endpoints/EndpointFactory.cjs +3 -3
- package/dist/endpoints/EndpointFactory.d.cts +4 -4
- package/dist/endpoints/EndpointFactory.d.mts +4 -4
- package/dist/endpoints/EndpointFactory.mjs +3 -3
- package/dist/endpoints/HonoEndpointAdaptor.cjs +4 -4
- package/dist/endpoints/HonoEndpointAdaptor.d.cts +3 -3
- package/dist/endpoints/HonoEndpointAdaptor.d.mts +3 -3
- package/dist/endpoints/HonoEndpointAdaptor.mjs +4 -4
- package/dist/endpoints/TestEndpointAdaptor.cjs +2 -2
- package/dist/endpoints/TestEndpointAdaptor.d.cts +3 -3
- package/dist/endpoints/TestEndpointAdaptor.d.mts +3 -3
- package/dist/endpoints/TestEndpointAdaptor.mjs +2 -2
- package/dist/endpoints/helpers.cjs +2 -2
- package/dist/endpoints/helpers.d.cts +2 -2
- package/dist/endpoints/helpers.d.mts +2 -2
- package/dist/endpoints/helpers.mjs +2 -2
- package/dist/endpoints/index.cjs +3 -3
- package/dist/endpoints/index.cjs.map +1 -1
- package/dist/endpoints/index.d.cts +7 -7
- package/dist/endpoints/index.d.mts +7 -7
- package/dist/endpoints/index.mjs +3 -3
- package/dist/endpoints/index.mjs.map +1 -1
- package/dist/endpoints/parseHonoQuery.cjs +1 -1
- package/dist/endpoints/parseHonoQuery.mjs +1 -1
- package/dist/endpoints/parseQueryParams.cjs +1 -1
- package/dist/endpoints/parseQueryParams.mjs +1 -1
- package/dist/functions/AWSLambdaFunction.cjs +2 -2
- package/dist/functions/AWSLambdaFunction.mjs +2 -2
- package/dist/functions/FunctionExecutionWrapper.cjs +1 -1
- package/dist/functions/FunctionExecutionWrapper.mjs +1 -1
- package/dist/functions/index.d.cts +1 -1
- package/dist/functions/index.d.mts +1 -1
- package/dist/{helpers-CP7A0U_s.mjs → helpers-CM0U-4Vk.mjs} +2 -2
- package/dist/{helpers-CP7A0U_s.mjs.map → helpers-CM0U-4Vk.mjs.map} +1 -1
- package/dist/{helpers-CjvCSIF5.cjs → helpers-go4jiRvV.cjs} +2 -2
- package/dist/{helpers-CjvCSIF5.cjs.map → helpers-go4jiRvV.cjs.map} +1 -1
- package/dist/index-BjB0W_Wq.d.mts +9 -0
- package/dist/index-D9vqHZie.d.cts +9 -0
- package/dist/{parseHonoQuery-BiPp8bEJ.cjs → parseHonoQuery-DopC24vB.cjs} +1 -1
- package/dist/{parseHonoQuery-BiPp8bEJ.cjs.map → parseHonoQuery-DopC24vB.cjs.map} +1 -1
- package/dist/{parseHonoQuery-yWRoKFFl.mjs → parseHonoQuery-znDKBhdE.mjs} +1 -1
- package/dist/{parseHonoQuery-yWRoKFFl.mjs.map → parseHonoQuery-znDKBhdE.mjs.map} +1 -1
- package/dist/{parseQueryParams-DSk9xl09.mjs → parseQueryParams-BJaRh3OB.mjs} +1 -1
- package/dist/{parseQueryParams-DSk9xl09.mjs.map → parseQueryParams-BJaRh3OB.mjs.map} +1 -1
- package/dist/{parseQueryParams-C2EjouGt.cjs → parseQueryParams-BzPop4I1.cjs} +1 -1
- package/dist/{parseQueryParams-C2EjouGt.cjs.map → parseQueryParams-BzPop4I1.cjs.map} +1 -1
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
- package/dist/subscribers/index.d.cts +2 -2
- package/dist/subscribers/index.d.mts +2 -2
- package/package.json +3 -3
- package/src/endpoints/EndpointFactory.ts +88 -18
- package/src/endpoints/index.ts +1 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-D_Q_NTMT.cjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-QzIAnWzS.mjs.map +0 -1
- package/dist/Endpoint-D1nnEsBU.cjs.map +0 -1
- package/dist/Endpoint-DNlmybXV.mjs.map +0 -1
- package/dist/EndpointFactory-ChmVHWim.cjs.map +0 -1
- package/dist/EndpointFactory-DLpEbLzL.mjs.map +0 -1
- package/dist/HonoEndpointAdaptor-6LERutxi.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-fs2928iO.mjs.map +0 -1
- package/dist/TestEndpointAdaptor-B4SvJvK-.cjs.map +0 -1
- package/dist/TestEndpointAdaptor-CelYsQi0.mjs.map +0 -1
- package/dist/index-BXTN4mwI.d.mts +0 -9
- 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-
|
|
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
|
|
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<
|
|
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-
|
|
41
|
+
//# sourceMappingURL=HonoEndpointAdaptor-BJgpbMUG.d.cts.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { publishConstructEvents } from "./publisher-Bw4770Hi.mjs";
|
|
2
|
-
import { Endpoint } from "./Endpoint-
|
|
3
|
-
import { getEndpointsFromRoutes } from "./helpers-
|
|
4
|
-
import { parseHonoQuery } from "./parseHonoQuery-
|
|
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
|
-
|
|
116
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
-
const require_helpers = require('./helpers-
|
|
5
|
-
const require_parseHonoQuery = require('./parseHonoQuery-
|
|
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
|
-
|
|
117
|
-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
24
|
+
//# sourceMappingURL=TestEndpointAdaptor-v7A-7hTs.d.cts.map
|
package/dist/adaptors/aws.cjs
CHANGED
|
@@ -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-
|
|
8
|
-
require('../AmazonApiGatewayEndpointAdaptor-
|
|
9
|
-
require('../parseQueryParams-
|
|
10
|
-
const require_AmazonApiGatewayV1EndpointAdaptor = require('../AmazonApiGatewayV1EndpointAdaptor-
|
|
11
|
-
const require_AmazonApiGatewayV2EndpointAdaptor = require('../AmazonApiGatewayV2EndpointAdaptor-
|
|
12
|
-
require('../FunctionExecutionWrapper-
|
|
13
|
-
const require_AWSLambdaFunction = require('../AWSLambdaFunction-
|
|
14
|
-
const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-
|
|
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;
|
package/dist/adaptors/aws.d.cts
CHANGED
|
@@ -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-
|
|
7
|
-
import "../Endpoint-
|
|
8
|
-
import "../AmazonApiGatewayEndpointAdaptor-
|
|
9
|
-
import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-
|
|
10
|
-
import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-
|
|
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";
|
package/dist/adaptors/aws.d.mts
CHANGED
|
@@ -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-
|
|
7
|
-
import "../Endpoint-
|
|
8
|
-
import "../AmazonApiGatewayEndpointAdaptor-
|
|
9
|
-
import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-
|
|
10
|
-
import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-
|
|
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";
|
package/dist/adaptors/aws.mjs
CHANGED
|
@@ -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-
|
|
8
|
-
import "../AmazonApiGatewayEndpointAdaptor-
|
|
9
|
-
import "../parseQueryParams-
|
|
10
|
-
import { AmazonApiGatewayV1Endpoint } from "../AmazonApiGatewayV1EndpointAdaptor-
|
|
11
|
-
import { AmazonApiGatewayV2Endpoint } from "../AmazonApiGatewayV2EndpointAdaptor-
|
|
12
|
-
import "../FunctionExecutionWrapper-
|
|
13
|
-
import { AWSLambdaFunction } from "../AWSLambdaFunction-
|
|
14
|
-
import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-
|
|
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 };
|
package/dist/adaptors/hono.cjs
CHANGED
|
@@ -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-
|
|
8
|
-
require('../helpers-
|
|
9
|
-
require('../parseHonoQuery-
|
|
10
|
-
const require_HonoEndpointAdaptor = require('../HonoEndpointAdaptor-
|
|
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;
|
package/dist/adaptors/hono.d.cts
CHANGED
|
@@ -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-
|
|
7
|
-
import "../Endpoint-
|
|
8
|
-
import { HonoEndpoint } from "../HonoEndpointAdaptor-
|
|
6
|
+
import "../index-D9vqHZie.cjs";
|
|
7
|
+
import "../Endpoint-XUMNAXYy.cjs";
|
|
8
|
+
import { HonoEndpoint } from "../HonoEndpointAdaptor-BJgpbMUG.cjs";
|
|
9
9
|
export { HonoEndpoint };
|
package/dist/adaptors/hono.d.mts
CHANGED
|
@@ -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-
|
|
7
|
-
import "../Endpoint-
|
|
8
|
-
import { HonoEndpoint } from "../HonoEndpointAdaptor-
|
|
6
|
+
import "../index-BjB0W_Wq.mjs";
|
|
7
|
+
import "../Endpoint-C7jPJzAH.mjs";
|
|
8
|
+
import { HonoEndpoint } from "../HonoEndpointAdaptor-C9Xe2pRp.mjs";
|
|
9
9
|
export { HonoEndpoint };
|
package/dist/adaptors/hono.mjs
CHANGED
|
@@ -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-
|
|
8
|
-
import "../helpers-
|
|
9
|
-
import "../parseHonoQuery-
|
|
10
|
-
import { HonoEndpoint } from "../HonoEndpointAdaptor-
|
|
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 };
|