@geekmidas/constructs 3.0.1 → 3.0.2
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/CHANGELOG.md +6 -0
- package/dist/{AWSLambdaFunction-BVpc9xFN.cjs → AWSLambdaFunction-CPEAl5nZ.cjs} +2 -2
- package/dist/{AWSLambdaFunction-BVpc9xFN.cjs.map → AWSLambdaFunction-CPEAl5nZ.cjs.map} +1 -1
- package/dist/{AWSLambdaFunction-OPazEPhQ.mjs → AWSLambdaFunction-DJiCAPAf.mjs} +2 -2
- package/dist/{AWSLambdaFunction-OPazEPhQ.mjs.map → AWSLambdaFunction-DJiCAPAf.mjs.map} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-YxZ_z3XG.mjs → AWSLambdaSubscriberAdaptor-RKwKYLl1.mjs} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-YxZ_z3XG.mjs.map → AWSLambdaSubscriberAdaptor-RKwKYLl1.mjs.map} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-BL7Yl1XE.cjs → AWSLambdaSubscriberAdaptor-eZ3qoKvK.cjs} +1 -1
- package/dist/{AWSLambdaSubscriberAdaptor-BL7Yl1XE.cjs.map → AWSLambdaSubscriberAdaptor-eZ3qoKvK.cjs.map} +1 -1
- package/dist/{AmazonApiGatewayEndpointAdaptor-CQSZArI6.d.mts → AmazonApiGatewayEndpointAdaptor-B30TqZRX.d.mts} +2 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-B30TqZRX.d.mts.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-Bxvs-F0F.d.cts → AmazonApiGatewayEndpointAdaptor-D4lAuXA-.d.cts} +2 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-D4lAuXA-.d.cts.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-BPxHm8Tg.mjs → AmazonApiGatewayEndpointAdaptor-ciUHVvPX.mjs} +6 -2
- package/dist/AmazonApiGatewayEndpointAdaptor-ciUHVvPX.mjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-1XyivLJs.cjs → AmazonApiGatewayEndpointAdaptor-jDYqkgFE.cjs} +6 -2
- package/dist/AmazonApiGatewayEndpointAdaptor-jDYqkgFE.cjs.map +1 -0
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-D9zY3nHe.d.cts → AmazonApiGatewayV1EndpointAdaptor-B5xFYauV.d.cts} +2 -2
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-D9zY3nHe.d.cts.map → AmazonApiGatewayV1EndpointAdaptor-B5xFYauV.d.cts.map} +1 -1
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-xTrFYt48.d.mts → AmazonApiGatewayV1EndpointAdaptor-CG1UJoAK.d.mts} +2 -2
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-xTrFYt48.d.mts.map → AmazonApiGatewayV1EndpointAdaptor-CG1UJoAK.d.mts.map} +1 -1
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-CQ0dtx1M.mjs → AmazonApiGatewayV1EndpointAdaptor-COLHHAsd.mjs} +2 -2
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-CQ0dtx1M.mjs.map → AmazonApiGatewayV1EndpointAdaptor-COLHHAsd.mjs.map} +1 -1
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-Cm2wieNy.cjs → AmazonApiGatewayV1EndpointAdaptor-CW0BCUkm.cjs} +2 -2
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-Cm2wieNy.cjs.map → AmazonApiGatewayV1EndpointAdaptor-CW0BCUkm.cjs.map} +1 -1
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-CjPCxIb1.cjs → AmazonApiGatewayV2EndpointAdaptor-C7ZrwcTX.cjs} +6 -2
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-CjPCxIb1.cjs.map → AmazonApiGatewayV2EndpointAdaptor-C7ZrwcTX.cjs.map} +1 -1
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-DrbEaZ2_.mjs → AmazonApiGatewayV2EndpointAdaptor-Cl9ERGyi.mjs} +6 -2
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-DrbEaZ2_.mjs.map → AmazonApiGatewayV2EndpointAdaptor-Cl9ERGyi.mjs.map} +1 -1
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-CHi3Qe1s.d.cts → AmazonApiGatewayV2EndpointAdaptor-OkwjABOz.d.cts} +4 -3
- package/dist/AmazonApiGatewayV2EndpointAdaptor-OkwjABOz.d.cts.map +1 -0
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-BBayh2_k.d.mts → AmazonApiGatewayV2EndpointAdaptor-ofjuxcPV.d.mts} +4 -3
- package/dist/AmazonApiGatewayV2EndpointAdaptor-ofjuxcPV.d.mts.map +1 -0
- package/dist/{FunctionExecutionWrapper-Ba0Z-iwe.mjs → FunctionExecutionWrapper-B0ZAssiy.mjs} +1 -1
- package/dist/{FunctionExecutionWrapper-Ba0Z-iwe.mjs.map → FunctionExecutionWrapper-B0ZAssiy.mjs.map} +1 -1
- package/dist/{FunctionExecutionWrapper-7B-CufYj.cjs → FunctionExecutionWrapper-KKHP6fDY.cjs} +1 -1
- package/dist/{FunctionExecutionWrapper-7B-CufYj.cjs.map → FunctionExecutionWrapper-KKHP6fDY.cjs.map} +1 -1
- package/dist/{HonoEndpointAdaptor-B4NMwHkr.cjs → HonoEndpointAdaptor-CavBd6P2.cjs} +4 -4
- package/dist/{HonoEndpointAdaptor-B4NMwHkr.cjs.map → HonoEndpointAdaptor-CavBd6P2.cjs.map} +1 -1
- package/dist/{HonoEndpointAdaptor-CNlb-KGz.mjs → HonoEndpointAdaptor-y9fCIxaz.mjs} +4 -4
- package/dist/{HonoEndpointAdaptor-CNlb-KGz.mjs.map → HonoEndpointAdaptor-y9fCIxaz.mjs.map} +1 -1
- package/dist/{TestEndpointAdaptor-DJdmYxMn.mjs → TestEndpointAdaptor-CDOhCmIk.mjs} +2 -2
- package/dist/{TestEndpointAdaptor-DJdmYxMn.mjs.map → TestEndpointAdaptor-CDOhCmIk.mjs.map} +1 -1
- package/dist/{TestEndpointAdaptor-Bsqn6T0k.cjs → TestEndpointAdaptor-DjQSuxRq.cjs} +2 -2
- package/dist/{TestEndpointAdaptor-Bsqn6T0k.cjs.map → TestEndpointAdaptor-DjQSuxRq.cjs.map} +1 -1
- package/dist/adaptors/aws.cjs +7 -6
- package/dist/adaptors/aws.d.cts +4 -4
- package/dist/adaptors/aws.d.mts +3 -3
- package/dist/adaptors/aws.mjs +7 -6
- package/dist/adaptors/hono.cjs +3 -3
- package/dist/adaptors/hono.d.cts +1 -1
- package/dist/adaptors/hono.mjs +3 -3
- package/dist/adaptors/testing.cjs +2 -2
- package/dist/adaptors/testing.d.cts +1 -1
- package/dist/adaptors/testing.mjs +2 -2
- package/dist/crons/Cron.d.cts +1 -1
- package/dist/crons/CronBuilder.d.cts +1 -1
- package/dist/crons/index.d.cts +5 -5
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +1 -1
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +2 -2
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +1 -1
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +1 -1
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +2 -2
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +3 -3
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +2 -2
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +2 -2
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +3 -2
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +3 -3
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +2 -2
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +3 -2
- package/dist/endpoints/Endpoint.d.cts +1 -1
- package/dist/endpoints/EndpointBuilder.d.cts +1 -1
- package/dist/endpoints/EndpointFactory.d.cts +1 -1
- package/dist/endpoints/HonoEndpointAdaptor.cjs +3 -3
- package/dist/endpoints/HonoEndpointAdaptor.d.cts +1 -1
- package/dist/endpoints/HonoEndpointAdaptor.mjs +3 -3
- package/dist/endpoints/TestEndpointAdaptor.cjs +2 -2
- package/dist/endpoints/TestEndpointAdaptor.d.cts +1 -1
- package/dist/endpoints/TestEndpointAdaptor.mjs +2 -2
- package/dist/endpoints/audit.d.cts +1 -1
- package/dist/endpoints/helpers.cjs +1 -1
- package/dist/endpoints/helpers.d.cts +1 -1
- package/dist/endpoints/helpers.mjs +1 -1
- package/dist/endpoints/index.cjs +1 -1
- package/dist/endpoints/index.d.cts +3 -3
- package/dist/endpoints/index.d.mts +2 -2
- package/dist/endpoints/index.mjs +1 -1
- package/dist/endpoints/lazyAccessors.cjs +1 -1
- package/dist/endpoints/lazyAccessors.d.cts +1 -1
- package/dist/endpoints/lazyAccessors.mjs +1 -1
- package/dist/endpoints/processAudits.d.cts +1 -1
- package/dist/endpoints/rls.d.cts +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/{helpers-Ciyi6Aap.cjs → helpers-BYyX0qTA.cjs} +1 -1
- package/dist/{helpers-Ciyi6Aap.cjs.map → helpers-BYyX0qTA.cjs.map} +1 -1
- package/dist/{helpers-C5j_GRBz.mjs → helpers-BtwC2IW8.mjs} +1 -1
- package/dist/{helpers-C5j_GRBz.mjs.map → helpers-BtwC2IW8.mjs.map} +1 -1
- package/dist/index-BRoc67OX.d.cts +12 -0
- package/dist/{index-BfeupgMl.d.cts.map → index-BRoc67OX.d.cts.map} +1 -1
- package/dist/{lazyAccessors-B8Hhras9.cjs → lazyAccessors-BVEtB9lU.cjs} +1 -1
- package/dist/{lazyAccessors-B8Hhras9.cjs.map → lazyAccessors-BVEtB9lU.cjs.map} +1 -1
- package/dist/{lazyAccessors-B-Jgkg2o.mjs → lazyAccessors-DM6HcXQk.mjs} +1 -1
- package/dist/{lazyAccessors-B-Jgkg2o.mjs.map → lazyAccessors-DM6HcXQk.mjs.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.cts.map +1 -1
- package/dist/subscribers/index.d.mts +2 -2
- package/dist/subscribers/index.d.mts.map +1 -1
- package/package.json +8 -8
- package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +6 -1
- package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +9 -1
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +83 -11
- package/dist/AmazonApiGatewayEndpointAdaptor-1XyivLJs.cjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-BPxHm8Tg.mjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-Bxvs-F0F.d.cts.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-CQSZArI6.d.mts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-BBayh2_k.d.mts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-CHi3Qe1s.d.cts.map +0 -1
- package/dist/index-BfeupgMl.d.cts +0 -12
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "../Construct-CX7HyFfT.cjs";
|
|
2
2
|
import { Subscriber } from "../Subscriber-1rDE7HuM.cjs";
|
|
3
3
|
import { SubscriberBuilder } from "../SubscriberBuilder-B9uva8fZ.cjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _geekmidas_logger5 from "@geekmidas/logger";
|
|
5
5
|
|
|
6
6
|
//#region src/subscribers/index.d.ts
|
|
7
|
-
declare const s: SubscriberBuilder<[],
|
|
7
|
+
declare const s: SubscriberBuilder<[], _geekmidas_logger5.Logger, undefined, undefined, string, []>;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAKa,GAAC,sBAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAKa,GAAC,sBAA0B,kBAAA,CAA1B,MAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "../Construct-C2SyofdS.mjs";
|
|
2
2
|
import { Subscriber } from "../Subscriber-BgB3RRxb.mjs";
|
|
3
3
|
import { SubscriberBuilder } from "../SubscriberBuilder-DaQkh2Nt.mjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _geekmidas_logger8 from "@geekmidas/logger";
|
|
5
5
|
|
|
6
6
|
//#region src/subscribers/index.d.ts
|
|
7
|
-
declare const s: SubscriberBuilder<[],
|
|
7
|
+
declare const s: SubscriberBuilder<[], _geekmidas_logger8.Logger, undefined, undefined, string, []>;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAKa,GAAC,sBAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/subscribers/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAKa,GAAC,sBAA0B,kBAAA,CAA1B,MAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/constructs",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -78,27 +78,27 @@
|
|
|
78
78
|
"kysely": "~0.28.8",
|
|
79
79
|
"pg": "~8.16.3",
|
|
80
80
|
"zod": "~4.1.13",
|
|
81
|
+
"@geekmidas/envkit": "^1.0.3",
|
|
81
82
|
"@geekmidas/audit": "^2.0.0",
|
|
82
|
-
"@geekmidas/cache": "^1.1.0",
|
|
83
83
|
"@geekmidas/db": "^1.0.0",
|
|
84
|
+
"@geekmidas/cache": "^1.1.0",
|
|
84
85
|
"@geekmidas/errors": "^1.0.0",
|
|
85
|
-
"@geekmidas/envkit": "^1.0.3",
|
|
86
86
|
"@geekmidas/events": "^1.1.0",
|
|
87
|
-
"@geekmidas/schema": "^1.0.0",
|
|
88
|
-
"@geekmidas/services": "^1.0.1",
|
|
89
87
|
"@geekmidas/logger": "^1.0.0",
|
|
88
|
+
"@geekmidas/schema": "^1.0.0",
|
|
89
|
+
"@geekmidas/rate-limit": "^2.0.0",
|
|
90
90
|
"@geekmidas/testkit": "^1.0.2",
|
|
91
|
-
"@geekmidas/
|
|
91
|
+
"@geekmidas/services": "^1.0.1"
|
|
92
92
|
},
|
|
93
93
|
"peerDependencies": {
|
|
94
94
|
"@middy/core": ">=6.3.1",
|
|
95
95
|
"@types/aws-lambda": ">=8.10.92",
|
|
96
96
|
"hono": ">=4.8.2",
|
|
97
97
|
"@geekmidas/audit": "^2.0.0",
|
|
98
|
+
"@geekmidas/cache": "^1.1.0",
|
|
98
99
|
"@geekmidas/db": "^1.0.0",
|
|
99
|
-
"@geekmidas/envkit": "^1.0.3",
|
|
100
100
|
"@geekmidas/errors": "^1.0.0",
|
|
101
|
-
"@geekmidas/
|
|
101
|
+
"@geekmidas/envkit": "^1.0.3",
|
|
102
102
|
"@geekmidas/events": "^1.1.0",
|
|
103
103
|
"@geekmidas/logger": "^1.0.0",
|
|
104
104
|
"@geekmidas/rate-limit": "^2.0.0",
|
|
@@ -145,6 +145,11 @@ export abstract class AmazonApiGatewayEndpoint<
|
|
|
145
145
|
}
|
|
146
146
|
abstract getInput(e: TEvent): GetInputResponse;
|
|
147
147
|
|
|
148
|
+
protected getCookies(e: TEvent): CookieFn {
|
|
149
|
+
const headers = e.headers as Record<string, string>;
|
|
150
|
+
return Endpoint.createCookies(headers?.cookie);
|
|
151
|
+
}
|
|
152
|
+
|
|
148
153
|
private input(): Middleware<TEvent, TInput, TServices, TLogger> {
|
|
149
154
|
return {
|
|
150
155
|
before: async (req) => {
|
|
@@ -152,7 +157,7 @@ export abstract class AmazonApiGatewayEndpoint<
|
|
|
152
157
|
const { body, query, params } = this.getInput(req.event);
|
|
153
158
|
const headers = req.event.headers as Record<string, string>;
|
|
154
159
|
const header = Endpoint.createHeaders(headers);
|
|
155
|
-
const cookie =
|
|
160
|
+
const cookie = this.getCookies(req.event);
|
|
156
161
|
|
|
157
162
|
set(req.event, 'body', await this.endpoint.parseInput(body, 'body'));
|
|
158
163
|
|
|
@@ -12,7 +12,8 @@ import {
|
|
|
12
12
|
type GetInputResponse,
|
|
13
13
|
type LoggerContext,
|
|
14
14
|
} from './AmazonApiGatewayEndpointAdaptor';
|
|
15
|
-
import type { Endpoint, EndpointSchemas } from './Endpoint';
|
|
15
|
+
import type { CookieFn, Endpoint, EndpointSchemas } from './Endpoint';
|
|
16
|
+
import { createApiGatewayCookies } from './lazyAccessors';
|
|
16
17
|
import { parseQueryParams } from './parseQueryParams';
|
|
17
18
|
|
|
18
19
|
export class AmazonApiGatewayV2Endpoint<
|
|
@@ -36,6 +37,13 @@ export class AmazonApiGatewayV2Endpoint<
|
|
|
36
37
|
TSession,
|
|
37
38
|
TEventPublisher
|
|
38
39
|
> {
|
|
40
|
+
override getCookies(e: APIGatewayProxyEventV2): CookieFn {
|
|
41
|
+
return createApiGatewayCookies(
|
|
42
|
+
e.cookies,
|
|
43
|
+
(e.headers as Record<string, string>)?.cookie,
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
39
47
|
override getInput(e: APIGatewayProxyEventV2): GetInputResponse {
|
|
40
48
|
// API Gateway V2 handles arrays as comma-separated values
|
|
41
49
|
const queryParams = e.queryStringParameters || {};
|
|
@@ -130,7 +130,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
130
130
|
headers: { 'content-type': 'application/json' },
|
|
131
131
|
body: JSON.stringify({ name: 'John', age: 30 }),
|
|
132
132
|
});
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
const response = await adapter.handler(event, mockContext);
|
|
135
135
|
|
|
136
136
|
expect(response).toEqual({
|
|
@@ -170,7 +170,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
170
170
|
limit: '20',
|
|
171
171
|
},
|
|
172
172
|
});
|
|
173
|
-
|
|
173
|
+
|
|
174
174
|
const response = await adapter.handler(event, mockContext);
|
|
175
175
|
|
|
176
176
|
expect(response).toEqual({
|
|
@@ -216,7 +216,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
216
216
|
'filter.active': 'true',
|
|
217
217
|
},
|
|
218
218
|
});
|
|
219
|
-
|
|
219
|
+
|
|
220
220
|
const response = await adapter.handler(event, mockContext);
|
|
221
221
|
|
|
222
222
|
expect(response).toEqual({
|
|
@@ -250,7 +250,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
250
250
|
queryStringParameters: { include: 'profile' },
|
|
251
251
|
pathParameters: { id: '123' },
|
|
252
252
|
});
|
|
253
|
-
|
|
253
|
+
|
|
254
254
|
const response = await adapter.handler(event, mockContext);
|
|
255
255
|
|
|
256
256
|
expect(response).toEqual({
|
|
@@ -274,7 +274,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
274
274
|
|
|
275
275
|
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
276
276
|
const event = createMockV2Event();
|
|
277
|
-
|
|
277
|
+
|
|
278
278
|
const response = await adapter.handler(event, mockContext);
|
|
279
279
|
|
|
280
280
|
expect(response.multiValueHeaders?.['Set-Cookie']).toEqual([
|
|
@@ -296,7 +296,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
296
296
|
|
|
297
297
|
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
298
298
|
const event = createMockV2Event();
|
|
299
|
-
|
|
299
|
+
|
|
300
300
|
const response = await adapter.handler(event, mockContext);
|
|
301
301
|
|
|
302
302
|
expect(response.headers).toEqual({
|
|
@@ -316,7 +316,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
316
316
|
|
|
317
317
|
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
318
318
|
const event = createMockV2Event({ routeKey: 'POST /test' });
|
|
319
|
-
|
|
319
|
+
|
|
320
320
|
const response = await adapter.handler(event, mockContext);
|
|
321
321
|
|
|
322
322
|
expect(response.statusCode).toBe(201);
|
|
@@ -337,7 +337,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
337
337
|
|
|
338
338
|
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
339
339
|
const event = createMockV2Event({ routeKey: 'POST /test' });
|
|
340
|
-
|
|
340
|
+
|
|
341
341
|
const response = await adapter.handler(event, mockContext);
|
|
342
342
|
|
|
343
343
|
expect(response.statusCode).toBe(201);
|
|
@@ -362,7 +362,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
362
362
|
|
|
363
363
|
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
364
364
|
const event = createMockV2Event();
|
|
365
|
-
|
|
365
|
+
|
|
366
366
|
const response = await adapter.handler(event, mockContext);
|
|
367
367
|
|
|
368
368
|
expect(response.multiValueHeaders?.['Set-Cookie']).toEqual([
|
|
@@ -384,7 +384,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
384
384
|
|
|
385
385
|
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
386
386
|
const event = createMockV2Event();
|
|
387
|
-
|
|
387
|
+
|
|
388
388
|
const response = await adapter.handler(event, mockContext);
|
|
389
389
|
|
|
390
390
|
expect(response.statusCode).toBe(201);
|
|
@@ -403,7 +403,7 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
403
403
|
|
|
404
404
|
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
405
405
|
const event = createMockV2Event();
|
|
406
|
-
|
|
406
|
+
|
|
407
407
|
const response = await adapter.handler(event, mockContext);
|
|
408
408
|
|
|
409
409
|
expect(response).toEqual({
|
|
@@ -414,5 +414,77 @@ describe('AmazonApiGatewayV2Endpoint', () => {
|
|
|
414
414
|
expect(response.multiValueHeaders).toBeUndefined();
|
|
415
415
|
});
|
|
416
416
|
});
|
|
417
|
+
|
|
418
|
+
describe('request cookies', () => {
|
|
419
|
+
it('should load cookies from V2 cookies array', async () => {
|
|
420
|
+
const endpoint = e
|
|
421
|
+
.get('/test')
|
|
422
|
+
.output(z.object({ session: z.string(), theme: z.string() }))
|
|
423
|
+
.handle(async ({ cookie }) => ({
|
|
424
|
+
session: cookie('session') ?? '',
|
|
425
|
+
theme: cookie('theme') ?? '',
|
|
426
|
+
}));
|
|
427
|
+
|
|
428
|
+
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
429
|
+
const event = createMockV2Event({
|
|
430
|
+
cookies: ['session=abc123', 'theme=dark'],
|
|
431
|
+
});
|
|
432
|
+
|
|
433
|
+
const response = await adapter.handler(event, mockContext);
|
|
434
|
+
|
|
435
|
+
expect(JSON.parse(response.body!)).toEqual({
|
|
436
|
+
session: 'abc123',
|
|
437
|
+
theme: 'dark',
|
|
438
|
+
});
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
it('should fall back to headers.cookie when cookies array is absent', async () => {
|
|
442
|
+
const endpoint = e
|
|
443
|
+
.get('/test')
|
|
444
|
+
.output(z.object({ session: z.string() }))
|
|
445
|
+
.handle(async ({ cookie }) => ({
|
|
446
|
+
session: cookie('session') ?? '',
|
|
447
|
+
}));
|
|
448
|
+
|
|
449
|
+
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
450
|
+
const event = createMockV2Event({
|
|
451
|
+
cookies: undefined,
|
|
452
|
+
headers: {
|
|
453
|
+
'content-type': 'application/json',
|
|
454
|
+
cookie: 'session=from-header',
|
|
455
|
+
},
|
|
456
|
+
});
|
|
457
|
+
|
|
458
|
+
const response = await adapter.handler(event, mockContext);
|
|
459
|
+
|
|
460
|
+
expect(JSON.parse(response.body!)).toEqual({
|
|
461
|
+
session: 'from-header',
|
|
462
|
+
});
|
|
463
|
+
});
|
|
464
|
+
|
|
465
|
+
it('should prefer V2 cookies array over headers.cookie', async () => {
|
|
466
|
+
const endpoint = e
|
|
467
|
+
.get('/test')
|
|
468
|
+
.output(z.object({ session: z.string() }))
|
|
469
|
+
.handle(async ({ cookie }) => ({
|
|
470
|
+
session: cookie('session') ?? '',
|
|
471
|
+
}));
|
|
472
|
+
|
|
473
|
+
const adapter = new AmazonApiGatewayV2Endpoint(envParser, endpoint);
|
|
474
|
+
const event = createMockV2Event({
|
|
475
|
+
cookies: ['session=from-array'],
|
|
476
|
+
headers: {
|
|
477
|
+
'content-type': 'application/json',
|
|
478
|
+
cookie: 'session=from-header',
|
|
479
|
+
},
|
|
480
|
+
});
|
|
481
|
+
|
|
482
|
+
const response = await adapter.handler(event, mockContext);
|
|
483
|
+
|
|
484
|
+
expect(JSON.parse(response.body!)).toEqual({
|
|
485
|
+
session: 'from-array',
|
|
486
|
+
});
|
|
487
|
+
});
|
|
488
|
+
});
|
|
417
489
|
});
|
|
418
490
|
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonApiGatewayEndpointAdaptor-1XyivLJs.cjs","names":["envParser: EnvironmentParser<{}>","endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction\n\t\t>","options: AmazonApiGatewayEndpointOptions","UnprocessableEntityError","UnauthorizedError","event: Event<TEvent, TInput, TServices, TLogger, TSession>","db: any","ResponseBuilder","metadata","output","trx: any","result","lambdaResponse: AmazonApiGatewayEndpointHandlerResponse","setCookieHeaders: string[]","ctx: any","event: TEvent","context: Context"],"sources":["../src/endpoints/AmazonApiGatewayEndpointAdaptor.ts"],"sourcesContent":["import type { AuditableAction, AuditStorage } from '@geekmidas/audit';\nimport { withRlsContext } from '@geekmidas/db/rls';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { Logger } from '@geekmidas/logger';\nimport middy, { type MiddlewareObj } from '@middy/core';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type {\n\tAPIGatewayProxyEvent,\n\tAPIGatewayProxyEventV2,\n\tContext,\n} from 'aws-lambda';\nimport set from 'lodash.set';\nimport type { Telemetry } from '../telemetry';\nimport type { HttpMethod } from '../types';\nimport { Endpoint, type EndpointSchemas, ResponseBuilder } from './Endpoint';\n\n/**\n * Telescope integration for request recording.\n * Uses Middy middleware pattern for compatibility with existing telescope package.\n */\nexport interface TelescopeIntegration {\n\tmiddleware: MiddlewareObj<any, any, Error, Context>;\n}\n\nimport {\n\tUnauthorizedError,\n\tUnprocessableEntityError,\n\twrapError,\n} from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type {\n\tInferComposableStandardSchema,\n\tInferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n\trunWithRequestContext,\n\ttype Service,\n\tServiceDiscovery,\n\ttype ServiceRecord,\n} from '@geekmidas/services';\nimport { publishConstructEvents } from '../publisher';\nimport type { MappedAudit } from './audit';\nimport type { CookieFn, HeaderFn } from './Endpoint';\nimport {\n\tcreateAuditContext,\n\texecuteWithAuditTransaction,\n} from './processAudits';\n\n// Helper function to publish events\n\n/**\n * Options for Amazon API Gateway endpoint adaptors\n */\nexport interface AmazonApiGatewayEndpointOptions {\n\t/**\n\t * Telescope integration for request recording and monitoring.\n\t *\n\t * @example\n\t * ```typescript\n\t * import { telescopeMiddleware } from '@geekmidas/telescope/lambda';\n\t *\n\t * const adaptor = new AmazonApiGatewayV2Endpoint(envParser, endpoint, {\n\t * telescope: { middleware: telescopeMiddleware(telescope) },\n\t * });\n\t * ```\n\t */\n\ttelescope?: TelescopeIntegration;\n\n\t/**\n\t * Telemetry integration for distributed tracing.\n\t * Works with any OpenTelemetry-compatible backend.\n\t *\n\t * @example\n\t * ```typescript\n\t * import { OTelTelemetry } from '@geekmidas/telescope/instrumentation';\n\t *\n\t * const adaptor = new AmazonApiGatewayV2Endpoint(envParser, endpoint, {\n\t * telemetry: new OTelTelemetry(),\n\t * });\n\t * ```\n\t */\n\ttelemetry?: Telemetry;\n}\n\nexport abstract class AmazonApiGatewayEndpoint<\n\tTHandler extends\n\t\t| AmazonApiGatewayV1EndpointHandler\n\t\t| AmazonApiGatewayV2EndpointHandler,\n\tTEvent extends HandlerEvent<THandler>,\n\tTRoute extends string,\n\tTMethod extends HttpMethod,\n\tTInput extends EndpointSchemas = {},\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> {\n\tprotected options: AmazonApiGatewayEndpointOptions;\n\n\tconstructor(\n\t\tprotected envParser: EnvironmentParser<{}>,\n\t\tprotected readonly endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction\n\t\t>,\n\t\toptions: AmazonApiGatewayEndpointOptions = {},\n\t) {\n\t\tthis.options = options;\n\t}\n\n\tprivate error(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tonError: (req) => {\n\t\t\t\t(req.event.logger || this.endpoint.logger).error(\n\t\t\t\t\treq.error || {},\n\t\t\t\t\t'Error processing request',\n\t\t\t\t);\n\t\t\t\tconst wrappedError = wrapError(req.error);\n\n\t\t\t\t// Set the response with the proper status code from the HttpError\n\t\t\t\treq.response = {\n\t\t\t\t\tstatusCode: wrappedError.statusCode,\n\t\t\t\t\tbody: wrappedError.body,\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}\n\tabstract getInput(e: TEvent): GetInputResponse;\n\n\tprivate input(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst { body, query, params } = this.getInput(req.event);\n\t\t\t\t\tconst headers = req.event.headers as Record<string, string>;\n\t\t\t\t\tconst header = Endpoint.createHeaders(headers);\n\t\t\t\t\tconst cookie = Endpoint.createCookies(headers.cookie);\n\n\t\t\t\t\tset(req.event, 'body', await this.endpoint.parseInput(body, 'body'));\n\n\t\t\t\t\tset(\n\t\t\t\t\t\treq.event,\n\t\t\t\t\t\t'query',\n\t\t\t\t\t\tawait this.endpoint.parseInput(query, 'query'),\n\t\t\t\t\t);\n\t\t\t\t\tset(\n\t\t\t\t\t\treq.event,\n\t\t\t\t\t\t'params',\n\t\t\t\t\t\tawait this.endpoint.parseInput(params, 'params'),\n\t\t\t\t\t);\n\t\t\t\t\tset(req.event, 'header', header);\n\t\t\t\t\tset(req.event, 'cookie', cookie);\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// Convert validation errors to 422 Unprocessable Entity\n\t\t\t\t\tif (error && typeof error === 'object' && Array.isArray(error)) {\n\t\t\t\t\t\tthrow new UnprocessableEntityError('Validation failed', error);\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tabstract getLoggerContext(data: TEvent, context: Context): LoggerContext;\n\n\tprivate logger(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: (req) => {\n\t\t\t\treq.event.logger = this.endpoint.logger.child({\n\t\t\t\t\troute: this.endpoint.route,\n\t\t\t\t\thost: req.event.headers?.host,\n\t\t\t\t\tmethod: this.endpoint.method,\n\t\t\t\t\t...this.getLoggerContext(req.event, req.context),\n\t\t\t\t}) as TLogger;\n\t\t\t},\n\t\t};\n\t}\n\tprivate services(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tconst _logger = req.event.logger as TLogger;\n\t\t\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\t\t\tServiceRecord<TServices>\n\t\t\t\t>(this.envParser);\n\n\t\t\t\tconst services = await serviceDiscovery.register(\n\t\t\t\t\tthis.endpoint.services,\n\t\t\t\t);\n\n\t\t\t\treq.event.services = services;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate authorize(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tconst logger = req.event.logger as TLogger;\n\t\t\t\tconst services = req.event.services;\n\t\t\t\tconst header = req.event.header;\n\t\t\t\tconst cookie = req.event.cookie;\n\t\t\t\tconst session = req.event.session as TSession;\n\n\t\t\t\tconst isAuthorized = await this.endpoint.authorize({\n\t\t\t\t\theader,\n\t\t\t\t\tcookie,\n\t\t\t\t\tservices,\n\t\t\t\t\tlogger,\n\t\t\t\t\tsession,\n\t\t\t\t});\n\n\t\t\t\tif (!isAuthorized) {\n\t\t\t\t\tlogger.warn('Unauthorized access attempt');\n\t\t\t\t\tthrow new UnauthorizedError(\n\t\t\t\t\t\t'Unauthorized access to the endpoint',\n\t\t\t\t\t\t'You do not have permission to access this resource.',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate database(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tif (!this.endpoint.databaseService) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst _logger = req.event.logger as TLogger;\n\t\t\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\t\t\tServiceRecord<TServices>\n\t\t\t\t>(this.envParser);\n\n\t\t\t\tconst db = await serviceDiscovery\n\t\t\t\t\t.register([this.endpoint.databaseService])\n\t\t\t\t\t.then(\n\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\ts[this.endpoint.databaseService?.serviceName as keyof typeof s],\n\t\t\t\t\t);\n\n\t\t\t\t(req.event as any).db = db;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate session(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tconst logger = req.event.logger as TLogger;\n\t\t\t\tconst services = req.event.services;\n\t\t\t\tconst db = (req.event as any).db;\n\t\t\t\treq.event.session = (await this.endpoint.getSession({\n\t\t\t\t\tlogger,\n\t\t\t\t\tservices,\n\t\t\t\t\theader: req.event.header,\n\t\t\t\t\tcookie: req.event.cookie,\n\t\t\t\t\t...(db !== undefined && { db }),\n\t\t\t\t} as any)) as TSession;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate events(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tafter: async (req) => {\n\t\t\t\tconst event = req.event;\n\t\t\t\tconst response = (event as any)\n\t\t\t\t\t.__response as InferStandardSchema<TOutSchema>;\n\t\t\t\tconst statusCode = req.response?.statusCode ?? this.endpoint.status;\n\n\t\t\t\t// Only publish events on successful responses (2xx status codes)\n\t\t\t\t// Note: Audits are processed inside the handler's transaction\n\t\t\t\tif (Endpoint.isSuccessStatus(statusCode)) {\n\t\t\t\t\tconst logger = event.logger as TLogger;\n\t\t\t\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\t\t\t\tServiceRecord<TServices>\n\t\t\t\t\t>(this.envParser);\n\n\t\t\t\t\t// Publish events\n\t\t\t\t\tawait publishConstructEvents(\n\t\t\t\t\t\tthis.endpoint,\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async _handler(\n\t\tevent: Event<TEvent, TInput, TServices, TLogger, TSession>,\n\t) {\n\t\tconst input = this.endpoint.refineInput(event);\n\t\tconst logger = event.logger as TLogger;\n\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\tServiceRecord<TServices>\n\t\t>(this.envParser);\n\n\t\t// Create audit context if audit storage is configured\n\t\tconst auditContext = await createAuditContext(\n\t\t\tthis.endpoint,\n\t\t\tserviceDiscovery,\n\t\t\tlogger,\n\t\t\t{\n\t\t\t\tsession: event.session,\n\t\t\t\theader: event.header,\n\t\t\t\tcookie: event.cookie,\n\t\t\t\tservices: event.services as Record<string, unknown>,\n\t\t\t},\n\t\t);\n\n\t\t// Warn if declarative audits are configured but no audit storage\n\t\tconst audits = this.endpoint.audits as MappedAudit<\n\t\t\tTAuditAction,\n\t\t\tTOutSchema\n\t\t>[];\n\t\tif (!auditContext && audits?.length) {\n\t\t\tlogger.warn('No auditor storage service available');\n\t\t}\n\n\t\t// Get pre-resolved database from middleware\n\t\tconst rawDb = (event as any).db;\n\n\t\t// Extract RLS context if configured and not bypassed\n\t\tconst rlsActive =\n\t\t\tthis.endpoint.rlsConfig &&\n\t\t\t!this.endpoint.rlsBypass &&\n\t\t\trawDb !== undefined;\n\t\tconst rlsContext = rlsActive\n\t\t\t? await this.endpoint.rlsConfig?.extractor({\n\t\t\t\t\tservices: event.services as ServiceRecord<TServices>,\n\t\t\t\t\tsession: event.session,\n\t\t\t\t\theader: event.header,\n\t\t\t\t\tcookie: event.cookie,\n\t\t\t\t\tlogger,\n\t\t\t\t})\n\t\t\t: undefined;\n\n\t\t// Execute handler with automatic audit transaction support\n\t\tconst result = await executeWithAuditTransaction(\n\t\t\tauditContext,\n\t\t\tasync (auditor) => {\n\t\t\t\t// Use audit transaction as db only if the storage uses the same database service\n\t\t\t\tconst sameDatabase =\n\t\t\t\t\tauditContext?.storage?.databaseServiceName &&\n\t\t\t\t\tauditContext.storage.databaseServiceName ===\n\t\t\t\t\t\tthis.endpoint.databaseService?.serviceName;\n\t\t\t\tconst baseDb = sameDatabase\n\t\t\t\t\t? (auditor?.getTransaction?.() ?? rawDb)\n\t\t\t\t\t: rawDb;\n\n\t\t\t\t// Helper to execute handler with given db\n\t\t\t\tconst executeHandler = async (db: any) => {\n\t\t\t\t\tconst responseBuilder = new ResponseBuilder();\n\t\t\t\t\tconst response = await this.endpoint.handler(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theader: event.header,\n\t\t\t\t\t\t\tcookie: event.cookie,\n\t\t\t\t\t\t\tlogger: event.logger,\n\t\t\t\t\t\t\tservices: event.services,\n\t\t\t\t\t\t\tsession: event.session,\n\t\t\t\t\t\t\tauditor,\n\t\t\t\t\t\t\tdb,\n\t\t\t\t\t\t\t...input,\n\t\t\t\t\t\t} as any,\n\t\t\t\t\t\tresponseBuilder,\n\t\t\t\t\t);\n\n\t\t\t\t\t// Check if response has metadata\n\t\t\t\t\tlet data = response;\n\t\t\t\t\tlet metadata = responseBuilder.getMetadata();\n\n\t\t\t\t\tif (Endpoint.hasMetadata(response)) {\n\t\t\t\t\t\tdata = response.data;\n\t\t\t\t\t\tmetadata = response.metadata;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst output = this.endpoint.outputSchema\n\t\t\t\t\t\t? await this.endpoint.parseOutput(data)\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\treturn { output, metadata, responseBuilder };\n\t\t\t\t};\n\n\t\t\t\t// If RLS is active, wrap handler with RLS context\n\t\t\t\tif (rlsActive && rlsContext && baseDb) {\n\t\t\t\t\treturn withRlsContext(\n\t\t\t\t\t\tbaseDb,\n\t\t\t\t\t\trlsContext,\n\t\t\t\t\t\tasync (trx: any) => executeHandler(trx),\n\t\t\t\t\t\t{ prefix: this.endpoint.rlsConfig?.prefix },\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn executeHandler(baseDb);\n\t\t\t},\n\t\t\t// Process declarative audits after handler (inside transaction)\n\t\t\tasync (result, auditor) => {\n\t\t\t\tif (!audits?.length) return;\n\n\t\t\t\tfor (const audit of audits) {\n\t\t\t\t\tif (audit.when && !audit.when(result.output as any)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst payload = audit.payload(result.output as any);\n\t\t\t\t\tconst entityId = audit.entityId?.(result.output as any);\n\t\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\t\ttable: audit.table,\n\t\t\t\t\t\tentityId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\t// Pass rawDb so storage can reuse existing transactions\n\t\t\t{ db: rawDb },\n\t\t);\n\n\t\tconst { output, metadata } = result;\n\t\tconst body = output !== undefined ? JSON.stringify(output) : undefined;\n\n\t\t// Store response for middleware access\n\t\t(event as any).__response = output;\n\n\t\t// Build response with metadata\n\t\tconst lambdaResponse: AmazonApiGatewayEndpointHandlerResponse = {\n\t\t\tstatusCode: metadata.status ?? this.endpoint.status,\n\t\t\tbody,\n\t\t};\n\n\t\t// Add custom headers\n\t\tif (metadata.headers && Object.keys(metadata.headers).length > 0) {\n\t\t\tlambdaResponse.headers = { ...metadata.headers };\n\t\t}\n\n\t\t// Format cookies as Set-Cookie headers\n\t\tif (metadata.cookies && metadata.cookies.size > 0) {\n\t\t\tconst setCookieHeaders: string[] = [];\n\t\t\tfor (const [name, { value, options }] of metadata.cookies) {\n\t\t\t\tsetCookieHeaders.push(\n\t\t\t\t\tEndpoint.formatCookieHeader(name, value, options),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (setCookieHeaders.length > 0) {\n\t\t\t\tlambdaResponse.multiValueHeaders = {\n\t\t\t\t\t...lambdaResponse.multiValueHeaders,\n\t\t\t\t\t'Set-Cookie': setCookieHeaders,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn lambdaResponse;\n\t}\n\n\t/**\n\t * Convert Telemetry interface to Middy middleware\n\t */\n\tprivate telemetry(): Middleware<TEvent, TInput, TServices, TLogger> | null {\n\t\tif (!this.options.telemetry) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst telemetry = this.options.telemetry;\n\t\tlet ctx: any;\n\n\t\treturn {\n\t\t\tbefore: (request) => {\n\t\t\t\tctx = telemetry.onRequestStart({\n\t\t\t\t\tevent: request.event,\n\t\t\t\t\tcontext: request.context,\n\t\t\t\t});\n\t\t\t},\n\t\t\tafter: (request) => {\n\t\t\t\tif (ctx) {\n\t\t\t\t\ttelemetry.onRequestEnd(ctx, {\n\t\t\t\t\t\tstatusCode: request.response?.statusCode ?? 200,\n\t\t\t\t\t\tbody: request.response?.body,\n\t\t\t\t\t\theaders: request.response?.headers,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tonError: (request) => {\n\t\t\t\tif (ctx && request.error) {\n\t\t\t\t\ttelemetry.onRequestError(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\trequest.error instanceof Error\n\t\t\t\t\t\t\t? request.error\n\t\t\t\t\t\t\t: new Error(String(request.error)),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tget handler() {\n\t\tconst handler = this._handler.bind(this);\n\t\tlet chain = middy(handler)\n\t\t\t.use(this.logger())\n\t\t\t.use(this.error())\n\t\t\t.use(this.services())\n\t\t\t.use(this.input())\n\t\t\t.use(this.database())\n\t\t\t.use(this.session())\n\t\t\t.use(this.authorize())\n\t\t\t.use(this.events());\n\n\t\t// Add telemetry middleware if configured (runs early for span creation)\n\t\tconst telemetryMiddleware = this.telemetry();\n\t\tif (telemetryMiddleware) {\n\t\t\tchain = chain.use(telemetryMiddleware);\n\t\t}\n\n\t\t// Add Telescope middleware if configured (runs first/last in chain)\n\t\tif (this.options.telescope?.middleware) {\n\t\t\tchain = chain.use(this.options.telescope.middleware);\n\t\t}\n\n\t\t// Wrap entire Middy chain in request context for service access\n\t\tconst wrappedHandler = async (event: TEvent, context: Context) => {\n\t\t\tconst startTime = Date.now();\n\t\t\tconst requestId = context.awsRequestId;\n\t\t\tconst logger = this.endpoint.logger.child({ requestId }) as TLogger;\n\n\t\t\t// Cast event to any since Middy middlewares enrich the event with\n\t\t\t// services, logger, session, etc. during the middleware chain execution\n\t\t\treturn runWithRequestContext({ logger, requestId, startTime }, () =>\n\t\t\t\tchain(event as unknown as Parameters<typeof chain>[0], context),\n\t\t\t);\n\t\t};\n\n\t\treturn wrappedHandler as unknown as THandler;\n\t}\n}\n\nexport type Event<\n\tTEvent extends APIGatewayProxyEvent | APIGatewayProxyEventV2,\n\tTInput extends EndpointSchemas = {},\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n> = {\n\tservices: ServiceRecord<TServices>;\n\tlogger: TLogger;\n\theader: HeaderFn;\n\tcookie: CookieFn;\n\tsession: TSession;\n} & TEvent &\n\tInferComposableStandardSchema<TInput>;\n\ntype Middleware<\n\tTEvent extends APIGatewayProxyEvent | APIGatewayProxyEventV2,\n\tTInput extends EndpointSchemas = {},\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n> = MiddlewareObj<Event<TEvent, TInput, TServices, TLogger, TSession>>;\n\nexport type AmazonApiGatewayEndpointHandlerResponse = {\n\tstatusCode: number;\n\tbody: string | undefined;\n\theaders?: Record<string, string>;\n\tmultiValueHeaders?: Record<string, string[]>;\n};\n\nexport type LoggerContext = {\n\tfn: {\n\t\tname: string;\n\t\tversion: string;\n\t};\n\treq: {\n\t\tid: string | undefined;\n\t\tawsRequestId: string;\n\t\tpath: string;\n\t\tip: string | undefined;\n\t\tuserAgent: string | undefined;\n\t};\n};\n\nexport type GetInputResponse = {\n\tbody: any;\n\tquery: any;\n\tparams: any;\n};\n\nexport type AmazonApiGatewayV1EndpointHandler = (\n\tevent: APIGatewayProxyEvent,\n\tcontext: Context,\n) => Promise<AmazonApiGatewayEndpointHandlerResponse>;\n\nexport type AmazonApiGatewayV2EndpointHandler = (\n\tevent: APIGatewayProxyEventV2,\n\tcontext: Context,\n) => Promise<AmazonApiGatewayEndpointHandlerResponse>;\n\nexport type HandlerEvent<T extends Function> = T extends (\n\tevent: infer E,\n\tcontext: Context,\n) => any\n\t? E\n\t: never;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonApiGatewayEndpointAdaptor-BPxHm8Tg.mjs","names":["envParser: EnvironmentParser<{}>","endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction\n\t\t>","options: AmazonApiGatewayEndpointOptions","event: Event<TEvent, TInput, TServices, TLogger, TSession>","db: any","metadata","output","trx: any","result","lambdaResponse: AmazonApiGatewayEndpointHandlerResponse","setCookieHeaders: string[]","ctx: any","event: TEvent","context: Context"],"sources":["../src/endpoints/AmazonApiGatewayEndpointAdaptor.ts"],"sourcesContent":["import type { AuditableAction, AuditStorage } from '@geekmidas/audit';\nimport { withRlsContext } from '@geekmidas/db/rls';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { Logger } from '@geekmidas/logger';\nimport middy, { type MiddlewareObj } from '@middy/core';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type {\n\tAPIGatewayProxyEvent,\n\tAPIGatewayProxyEventV2,\n\tContext,\n} from 'aws-lambda';\nimport set from 'lodash.set';\nimport type { Telemetry } from '../telemetry';\nimport type { HttpMethod } from '../types';\nimport { Endpoint, type EndpointSchemas, ResponseBuilder } from './Endpoint';\n\n/**\n * Telescope integration for request recording.\n * Uses Middy middleware pattern for compatibility with existing telescope package.\n */\nexport interface TelescopeIntegration {\n\tmiddleware: MiddlewareObj<any, any, Error, Context>;\n}\n\nimport {\n\tUnauthorizedError,\n\tUnprocessableEntityError,\n\twrapError,\n} from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type {\n\tInferComposableStandardSchema,\n\tInferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n\trunWithRequestContext,\n\ttype Service,\n\tServiceDiscovery,\n\ttype ServiceRecord,\n} from '@geekmidas/services';\nimport { publishConstructEvents } from '../publisher';\nimport type { MappedAudit } from './audit';\nimport type { CookieFn, HeaderFn } from './Endpoint';\nimport {\n\tcreateAuditContext,\n\texecuteWithAuditTransaction,\n} from './processAudits';\n\n// Helper function to publish events\n\n/**\n * Options for Amazon API Gateway endpoint adaptors\n */\nexport interface AmazonApiGatewayEndpointOptions {\n\t/**\n\t * Telescope integration for request recording and monitoring.\n\t *\n\t * @example\n\t * ```typescript\n\t * import { telescopeMiddleware } from '@geekmidas/telescope/lambda';\n\t *\n\t * const adaptor = new AmazonApiGatewayV2Endpoint(envParser, endpoint, {\n\t * telescope: { middleware: telescopeMiddleware(telescope) },\n\t * });\n\t * ```\n\t */\n\ttelescope?: TelescopeIntegration;\n\n\t/**\n\t * Telemetry integration for distributed tracing.\n\t * Works with any OpenTelemetry-compatible backend.\n\t *\n\t * @example\n\t * ```typescript\n\t * import { OTelTelemetry } from '@geekmidas/telescope/instrumentation';\n\t *\n\t * const adaptor = new AmazonApiGatewayV2Endpoint(envParser, endpoint, {\n\t * telemetry: new OTelTelemetry(),\n\t * });\n\t * ```\n\t */\n\ttelemetry?: Telemetry;\n}\n\nexport abstract class AmazonApiGatewayEndpoint<\n\tTHandler extends\n\t\t| AmazonApiGatewayV1EndpointHandler\n\t\t| AmazonApiGatewayV2EndpointHandler,\n\tTEvent extends HandlerEvent<THandler>,\n\tTRoute extends string,\n\tTMethod extends HttpMethod,\n\tTInput extends EndpointSchemas = {},\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> {\n\tprotected options: AmazonApiGatewayEndpointOptions;\n\n\tconstructor(\n\t\tprotected envParser: EnvironmentParser<{}>,\n\t\tprotected readonly endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction\n\t\t>,\n\t\toptions: AmazonApiGatewayEndpointOptions = {},\n\t) {\n\t\tthis.options = options;\n\t}\n\n\tprivate error(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tonError: (req) => {\n\t\t\t\t(req.event.logger || this.endpoint.logger).error(\n\t\t\t\t\treq.error || {},\n\t\t\t\t\t'Error processing request',\n\t\t\t\t);\n\t\t\t\tconst wrappedError = wrapError(req.error);\n\n\t\t\t\t// Set the response with the proper status code from the HttpError\n\t\t\t\treq.response = {\n\t\t\t\t\tstatusCode: wrappedError.statusCode,\n\t\t\t\t\tbody: wrappedError.body,\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}\n\tabstract getInput(e: TEvent): GetInputResponse;\n\n\tprivate input(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst { body, query, params } = this.getInput(req.event);\n\t\t\t\t\tconst headers = req.event.headers as Record<string, string>;\n\t\t\t\t\tconst header = Endpoint.createHeaders(headers);\n\t\t\t\t\tconst cookie = Endpoint.createCookies(headers.cookie);\n\n\t\t\t\t\tset(req.event, 'body', await this.endpoint.parseInput(body, 'body'));\n\n\t\t\t\t\tset(\n\t\t\t\t\t\treq.event,\n\t\t\t\t\t\t'query',\n\t\t\t\t\t\tawait this.endpoint.parseInput(query, 'query'),\n\t\t\t\t\t);\n\t\t\t\t\tset(\n\t\t\t\t\t\treq.event,\n\t\t\t\t\t\t'params',\n\t\t\t\t\t\tawait this.endpoint.parseInput(params, 'params'),\n\t\t\t\t\t);\n\t\t\t\t\tset(req.event, 'header', header);\n\t\t\t\t\tset(req.event, 'cookie', cookie);\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// Convert validation errors to 422 Unprocessable Entity\n\t\t\t\t\tif (error && typeof error === 'object' && Array.isArray(error)) {\n\t\t\t\t\t\tthrow new UnprocessableEntityError('Validation failed', error);\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tabstract getLoggerContext(data: TEvent, context: Context): LoggerContext;\n\n\tprivate logger(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: (req) => {\n\t\t\t\treq.event.logger = this.endpoint.logger.child({\n\t\t\t\t\troute: this.endpoint.route,\n\t\t\t\t\thost: req.event.headers?.host,\n\t\t\t\t\tmethod: this.endpoint.method,\n\t\t\t\t\t...this.getLoggerContext(req.event, req.context),\n\t\t\t\t}) as TLogger;\n\t\t\t},\n\t\t};\n\t}\n\tprivate services(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tconst _logger = req.event.logger as TLogger;\n\t\t\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\t\t\tServiceRecord<TServices>\n\t\t\t\t>(this.envParser);\n\n\t\t\t\tconst services = await serviceDiscovery.register(\n\t\t\t\t\tthis.endpoint.services,\n\t\t\t\t);\n\n\t\t\t\treq.event.services = services;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate authorize(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tconst logger = req.event.logger as TLogger;\n\t\t\t\tconst services = req.event.services;\n\t\t\t\tconst header = req.event.header;\n\t\t\t\tconst cookie = req.event.cookie;\n\t\t\t\tconst session = req.event.session as TSession;\n\n\t\t\t\tconst isAuthorized = await this.endpoint.authorize({\n\t\t\t\t\theader,\n\t\t\t\t\tcookie,\n\t\t\t\t\tservices,\n\t\t\t\t\tlogger,\n\t\t\t\t\tsession,\n\t\t\t\t});\n\n\t\t\t\tif (!isAuthorized) {\n\t\t\t\t\tlogger.warn('Unauthorized access attempt');\n\t\t\t\t\tthrow new UnauthorizedError(\n\t\t\t\t\t\t'Unauthorized access to the endpoint',\n\t\t\t\t\t\t'You do not have permission to access this resource.',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate database(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tif (!this.endpoint.databaseService) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst _logger = req.event.logger as TLogger;\n\t\t\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\t\t\tServiceRecord<TServices>\n\t\t\t\t>(this.envParser);\n\n\t\t\t\tconst db = await serviceDiscovery\n\t\t\t\t\t.register([this.endpoint.databaseService])\n\t\t\t\t\t.then(\n\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\ts[this.endpoint.databaseService?.serviceName as keyof typeof s],\n\t\t\t\t\t);\n\n\t\t\t\t(req.event as any).db = db;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate session(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\tconst logger = req.event.logger as TLogger;\n\t\t\t\tconst services = req.event.services;\n\t\t\t\tconst db = (req.event as any).db;\n\t\t\t\treq.event.session = (await this.endpoint.getSession({\n\t\t\t\t\tlogger,\n\t\t\t\t\tservices,\n\t\t\t\t\theader: req.event.header,\n\t\t\t\t\tcookie: req.event.cookie,\n\t\t\t\t\t...(db !== undefined && { db }),\n\t\t\t\t} as any)) as TSession;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate events(): Middleware<TEvent, TInput, TServices, TLogger> {\n\t\treturn {\n\t\t\tafter: async (req) => {\n\t\t\t\tconst event = req.event;\n\t\t\t\tconst response = (event as any)\n\t\t\t\t\t.__response as InferStandardSchema<TOutSchema>;\n\t\t\t\tconst statusCode = req.response?.statusCode ?? this.endpoint.status;\n\n\t\t\t\t// Only publish events on successful responses (2xx status codes)\n\t\t\t\t// Note: Audits are processed inside the handler's transaction\n\t\t\t\tif (Endpoint.isSuccessStatus(statusCode)) {\n\t\t\t\t\tconst logger = event.logger as TLogger;\n\t\t\t\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\t\t\t\tServiceRecord<TServices>\n\t\t\t\t\t>(this.envParser);\n\n\t\t\t\t\t// Publish events\n\t\t\t\t\tawait publishConstructEvents(\n\t\t\t\t\t\tthis.endpoint,\n\t\t\t\t\t\tresponse,\n\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async _handler(\n\t\tevent: Event<TEvent, TInput, TServices, TLogger, TSession>,\n\t) {\n\t\tconst input = this.endpoint.refineInput(event);\n\t\tconst logger = event.logger as TLogger;\n\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\tServiceRecord<TServices>\n\t\t>(this.envParser);\n\n\t\t// Create audit context if audit storage is configured\n\t\tconst auditContext = await createAuditContext(\n\t\t\tthis.endpoint,\n\t\t\tserviceDiscovery,\n\t\t\tlogger,\n\t\t\t{\n\t\t\t\tsession: event.session,\n\t\t\t\theader: event.header,\n\t\t\t\tcookie: event.cookie,\n\t\t\t\tservices: event.services as Record<string, unknown>,\n\t\t\t},\n\t\t);\n\n\t\t// Warn if declarative audits are configured but no audit storage\n\t\tconst audits = this.endpoint.audits as MappedAudit<\n\t\t\tTAuditAction,\n\t\t\tTOutSchema\n\t\t>[];\n\t\tif (!auditContext && audits?.length) {\n\t\t\tlogger.warn('No auditor storage service available');\n\t\t}\n\n\t\t// Get pre-resolved database from middleware\n\t\tconst rawDb = (event as any).db;\n\n\t\t// Extract RLS context if configured and not bypassed\n\t\tconst rlsActive =\n\t\t\tthis.endpoint.rlsConfig &&\n\t\t\t!this.endpoint.rlsBypass &&\n\t\t\trawDb !== undefined;\n\t\tconst rlsContext = rlsActive\n\t\t\t? await this.endpoint.rlsConfig?.extractor({\n\t\t\t\t\tservices: event.services as ServiceRecord<TServices>,\n\t\t\t\t\tsession: event.session,\n\t\t\t\t\theader: event.header,\n\t\t\t\t\tcookie: event.cookie,\n\t\t\t\t\tlogger,\n\t\t\t\t})\n\t\t\t: undefined;\n\n\t\t// Execute handler with automatic audit transaction support\n\t\tconst result = await executeWithAuditTransaction(\n\t\t\tauditContext,\n\t\t\tasync (auditor) => {\n\t\t\t\t// Use audit transaction as db only if the storage uses the same database service\n\t\t\t\tconst sameDatabase =\n\t\t\t\t\tauditContext?.storage?.databaseServiceName &&\n\t\t\t\t\tauditContext.storage.databaseServiceName ===\n\t\t\t\t\t\tthis.endpoint.databaseService?.serviceName;\n\t\t\t\tconst baseDb = sameDatabase\n\t\t\t\t\t? (auditor?.getTransaction?.() ?? rawDb)\n\t\t\t\t\t: rawDb;\n\n\t\t\t\t// Helper to execute handler with given db\n\t\t\t\tconst executeHandler = async (db: any) => {\n\t\t\t\t\tconst responseBuilder = new ResponseBuilder();\n\t\t\t\t\tconst response = await this.endpoint.handler(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theader: event.header,\n\t\t\t\t\t\t\tcookie: event.cookie,\n\t\t\t\t\t\t\tlogger: event.logger,\n\t\t\t\t\t\t\tservices: event.services,\n\t\t\t\t\t\t\tsession: event.session,\n\t\t\t\t\t\t\tauditor,\n\t\t\t\t\t\t\tdb,\n\t\t\t\t\t\t\t...input,\n\t\t\t\t\t\t} as any,\n\t\t\t\t\t\tresponseBuilder,\n\t\t\t\t\t);\n\n\t\t\t\t\t// Check if response has metadata\n\t\t\t\t\tlet data = response;\n\t\t\t\t\tlet metadata = responseBuilder.getMetadata();\n\n\t\t\t\t\tif (Endpoint.hasMetadata(response)) {\n\t\t\t\t\t\tdata = response.data;\n\t\t\t\t\t\tmetadata = response.metadata;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst output = this.endpoint.outputSchema\n\t\t\t\t\t\t? await this.endpoint.parseOutput(data)\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\treturn { output, metadata, responseBuilder };\n\t\t\t\t};\n\n\t\t\t\t// If RLS is active, wrap handler with RLS context\n\t\t\t\tif (rlsActive && rlsContext && baseDb) {\n\t\t\t\t\treturn withRlsContext(\n\t\t\t\t\t\tbaseDb,\n\t\t\t\t\t\trlsContext,\n\t\t\t\t\t\tasync (trx: any) => executeHandler(trx),\n\t\t\t\t\t\t{ prefix: this.endpoint.rlsConfig?.prefix },\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn executeHandler(baseDb);\n\t\t\t},\n\t\t\t// Process declarative audits after handler (inside transaction)\n\t\t\tasync (result, auditor) => {\n\t\t\t\tif (!audits?.length) return;\n\n\t\t\t\tfor (const audit of audits) {\n\t\t\t\t\tif (audit.when && !audit.when(result.output as any)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst payload = audit.payload(result.output as any);\n\t\t\t\t\tconst entityId = audit.entityId?.(result.output as any);\n\t\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\t\ttable: audit.table,\n\t\t\t\t\t\tentityId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\t// Pass rawDb so storage can reuse existing transactions\n\t\t\t{ db: rawDb },\n\t\t);\n\n\t\tconst { output, metadata } = result;\n\t\tconst body = output !== undefined ? JSON.stringify(output) : undefined;\n\n\t\t// Store response for middleware access\n\t\t(event as any).__response = output;\n\n\t\t// Build response with metadata\n\t\tconst lambdaResponse: AmazonApiGatewayEndpointHandlerResponse = {\n\t\t\tstatusCode: metadata.status ?? this.endpoint.status,\n\t\t\tbody,\n\t\t};\n\n\t\t// Add custom headers\n\t\tif (metadata.headers && Object.keys(metadata.headers).length > 0) {\n\t\t\tlambdaResponse.headers = { ...metadata.headers };\n\t\t}\n\n\t\t// Format cookies as Set-Cookie headers\n\t\tif (metadata.cookies && metadata.cookies.size > 0) {\n\t\t\tconst setCookieHeaders: string[] = [];\n\t\t\tfor (const [name, { value, options }] of metadata.cookies) {\n\t\t\t\tsetCookieHeaders.push(\n\t\t\t\t\tEndpoint.formatCookieHeader(name, value, options),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (setCookieHeaders.length > 0) {\n\t\t\t\tlambdaResponse.multiValueHeaders = {\n\t\t\t\t\t...lambdaResponse.multiValueHeaders,\n\t\t\t\t\t'Set-Cookie': setCookieHeaders,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn lambdaResponse;\n\t}\n\n\t/**\n\t * Convert Telemetry interface to Middy middleware\n\t */\n\tprivate telemetry(): Middleware<TEvent, TInput, TServices, TLogger> | null {\n\t\tif (!this.options.telemetry) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst telemetry = this.options.telemetry;\n\t\tlet ctx: any;\n\n\t\treturn {\n\t\t\tbefore: (request) => {\n\t\t\t\tctx = telemetry.onRequestStart({\n\t\t\t\t\tevent: request.event,\n\t\t\t\t\tcontext: request.context,\n\t\t\t\t});\n\t\t\t},\n\t\t\tafter: (request) => {\n\t\t\t\tif (ctx) {\n\t\t\t\t\ttelemetry.onRequestEnd(ctx, {\n\t\t\t\t\t\tstatusCode: request.response?.statusCode ?? 200,\n\t\t\t\t\t\tbody: request.response?.body,\n\t\t\t\t\t\theaders: request.response?.headers,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tonError: (request) => {\n\t\t\t\tif (ctx && request.error) {\n\t\t\t\t\ttelemetry.onRequestError(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\trequest.error instanceof Error\n\t\t\t\t\t\t\t? request.error\n\t\t\t\t\t\t\t: new Error(String(request.error)),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tget handler() {\n\t\tconst handler = this._handler.bind(this);\n\t\tlet chain = middy(handler)\n\t\t\t.use(this.logger())\n\t\t\t.use(this.error())\n\t\t\t.use(this.services())\n\t\t\t.use(this.input())\n\t\t\t.use(this.database())\n\t\t\t.use(this.session())\n\t\t\t.use(this.authorize())\n\t\t\t.use(this.events());\n\n\t\t// Add telemetry middleware if configured (runs early for span creation)\n\t\tconst telemetryMiddleware = this.telemetry();\n\t\tif (telemetryMiddleware) {\n\t\t\tchain = chain.use(telemetryMiddleware);\n\t\t}\n\n\t\t// Add Telescope middleware if configured (runs first/last in chain)\n\t\tif (this.options.telescope?.middleware) {\n\t\t\tchain = chain.use(this.options.telescope.middleware);\n\t\t}\n\n\t\t// Wrap entire Middy chain in request context for service access\n\t\tconst wrappedHandler = async (event: TEvent, context: Context) => {\n\t\t\tconst startTime = Date.now();\n\t\t\tconst requestId = context.awsRequestId;\n\t\t\tconst logger = this.endpoint.logger.child({ requestId }) as TLogger;\n\n\t\t\t// Cast event to any since Middy middlewares enrich the event with\n\t\t\t// services, logger, session, etc. during the middleware chain execution\n\t\t\treturn runWithRequestContext({ logger, requestId, startTime }, () =>\n\t\t\t\tchain(event as unknown as Parameters<typeof chain>[0], context),\n\t\t\t);\n\t\t};\n\n\t\treturn wrappedHandler as unknown as THandler;\n\t}\n}\n\nexport type Event<\n\tTEvent extends APIGatewayProxyEvent | APIGatewayProxyEventV2,\n\tTInput extends EndpointSchemas = {},\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n> = {\n\tservices: ServiceRecord<TServices>;\n\tlogger: TLogger;\n\theader: HeaderFn;\n\tcookie: CookieFn;\n\tsession: TSession;\n} & TEvent &\n\tInferComposableStandardSchema<TInput>;\n\ntype Middleware<\n\tTEvent extends APIGatewayProxyEvent | APIGatewayProxyEventV2,\n\tTInput extends EndpointSchemas = {},\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n> = MiddlewareObj<Event<TEvent, TInput, TServices, TLogger, TSession>>;\n\nexport type AmazonApiGatewayEndpointHandlerResponse = {\n\tstatusCode: number;\n\tbody: string | undefined;\n\theaders?: Record<string, string>;\n\tmultiValueHeaders?: Record<string, string[]>;\n};\n\nexport type LoggerContext = {\n\tfn: {\n\t\tname: string;\n\t\tversion: string;\n\t};\n\treq: {\n\t\tid: string | undefined;\n\t\tawsRequestId: string;\n\t\tpath: string;\n\t\tip: string | undefined;\n\t\tuserAgent: string | undefined;\n\t};\n};\n\nexport type GetInputResponse = {\n\tbody: any;\n\tquery: any;\n\tparams: any;\n};\n\nexport type AmazonApiGatewayV1EndpointHandler = (\n\tevent: APIGatewayProxyEvent,\n\tcontext: Context,\n) => Promise<AmazonApiGatewayEndpointHandlerResponse>;\n\nexport type AmazonApiGatewayV2EndpointHandler = (\n\tevent: APIGatewayProxyEventV2,\n\tcontext: Context,\n) => Promise<AmazonApiGatewayEndpointHandlerResponse>;\n\nexport type HandlerEvent<T extends Function> = T extends (\n\tevent: infer E,\n\tcontext: Context,\n) => any\n\t? E\n\t: never;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonApiGatewayEndpointAdaptor-Bxvs-F0F.d.cts","names":[],"sources":["../src/endpoints/AmazonApiGatewayEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonApiGatewayEndpointAdaptor-CQSZArI6.d.mts","names":[],"sources":["../src/endpoints/AmazonApiGatewayEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonApiGatewayV2EndpointAdaptor-BBayh2_k.d.mts","names":[],"sources":["../src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;cAiBa,kEAEI,2BACD,yCACI,4DACD,gCACF,SAAS,oDAED,qDACf,yBACT,mCACA,wBACA,QACA,SACA,QACA,YACA,WACA,SACA,UACA;uBA4C+B;EA/DnB,mBAAA,QAAA,EAgE2B,QAhED,CAiEpC,MAjEoC,EAkEpC,OAlEoC,EAmEpC,MAnEoC,EAoEpC,UApEoC,EAqEpC,SArEoC,EAsEpC,OAtEoC,EAuEpC,QAvEoC,EAwEpC,eAxEoC,CAAA;EAAA,QAAA,CAAA,CAAA,EAqBjB,sBArBiB,CAAA,EAqBQ,gBArBR;EAAA,gBAEtB,CAAA,KAAA,EA2CR,sBA3CQ,EAAA,OAAA,EA4CN,OA5CM,CAAA,EA6Cb,aA7Ca;EAAU,WACX,CAAA,SAAA,EA4DgB,iBA5DhB,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,EA6DwB,QA7DxB,CA8Db,MA9Da,EA+Db,OA/Da,EAgEb,MAhEa,EAiEb,UAjEa,EAkEb,SAlEa,EAmEb,OAnEa,EAoEb,QApEa,EAqEb,eArEa,CAAA,EAAA,OAAA,CAAA,EAuEL,+BAvEK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonApiGatewayV2EndpointAdaptor-CHi3Qe1s.d.cts","names":[],"sources":["../src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;cAiBa,kEAEI,2BACD,yCACI,4DACD,gCACF,SAAS,oDAED,qDACf,yBACT,mCACA,wBACA,QACA,SACA,QACA,YACA,WACA,SACA,UACA;uBA4C+B;EA/DnB,mBAAA,QAAA,EAgE2B,QAhED,CAiEpC,MAjEoC,EAkEpC,OAlEoC,EAmEpC,MAnEoC,EAoEpC,UApEoC,EAqEpC,SArEoC,EAsEpC,OAtEoC,EAuEpC,QAvEoC,EAwEpC,eAxEoC,CAAA;EAAA,QAAA,CAAA,CAAA,EAqBjB,sBArBiB,CAAA,EAqBQ,gBArBR;EAAA,gBAEtB,CAAA,KAAA,EA2CR,sBA3CQ,EAAA,OAAA,EA4CN,OA5CM,CAAA,EA6Cb,aA7Ca;EAAU,WACX,CAAA,SAAA,EA4DgB,iBA5DhB,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,EA6DwB,QA7DxB,CA8Db,MA9Da,EA+Db,OA/Da,EAgEb,MAhEa,EAiEb,UAjEa,EAkEb,SAlEa,EAmEb,OAnEa,EAoEb,QApEa,EAqEb,eArEa,CAAA,EAAA,OAAA,CAAA,EAuEL,+BAvEK"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { FunctionBuilder } from "./FunctionBuilder-D_7f5MfS.cjs";
|
|
2
|
-
import * as _geekmidas_audit5 from "@geekmidas/audit";
|
|
3
|
-
import * as _geekmidas_logger4 from "@geekmidas/logger";
|
|
4
|
-
import * as _geekmidas_schema3 from "@geekmidas/schema";
|
|
5
|
-
|
|
6
|
-
//#region src/functions/index.d.ts
|
|
7
|
-
declare const f: FunctionBuilder<_geekmidas_schema3.ComposableStandardSchema, undefined, [], _geekmidas_logger4.Logger, undefined, string, undefined, string, undefined, string, _geekmidas_audit5.AuditableAction<string, unknown>>;
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
9
|
-
|
|
10
|
-
//#endregion
|
|
11
|
-
export { f };
|
|
12
|
-
//# sourceMappingURL=index-BfeupgMl.d.cts.map
|