@pikku/lambda 0.6.5 → 0.6.7
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 +15 -0
- package/dist/http/general-http-handler.js +4 -4
- package/dist/http/general-http-handler.js.map +1 -1
- package/dist/pikku-api-gateway-lambda-request.d.ts +1 -3
- package/dist/pikku-api-gateway-lambda-request.js +1 -7
- package/dist/pikku-api-gateway-lambda-request.js.map +1 -1
- package/dist/websocket/lambda-channel-handler.js +3 -9
- package/dist/websocket/lambda-channel-handler.js.map +1 -1
- package/dist/websocket/utils.d.ts +1 -1
- package/package.json +2 -2
- package/src/http/general-http-handler.ts +4 -4
- package/src/pikku-api-gateway-lambda-request.ts +4 -10
- package/src/websocket/lambda-channel-handler.ts +3 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
## 0.6.1
|
|
2
2
|
|
|
3
|
+
## 0.6.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a234e33: fix: regressions in channels due to user session changes
|
|
8
|
+
|
|
9
|
+
## 0.6.6
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- ee5c874: feat: moving towards using middleware for http and channels
|
|
14
|
+
- Updated dependencies [c1d8381]
|
|
15
|
+
- Updated dependencies [ee5c874]
|
|
16
|
+
- @pikku/core@0.6.14
|
|
17
|
+
|
|
3
18
|
## 0.6.5
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { runHTTPRoute } from '@pikku/core/http';
|
|
2
2
|
export const generalHTTPHandler = async (singletonServices, createSessionServices, request, response) => {
|
|
3
|
-
if (request.
|
|
3
|
+
if (request.method === 'options') {
|
|
4
4
|
response.setHeader('Access-Control-Allow-Headers', 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent');
|
|
5
5
|
response.setHeader('Access-Control-Allow-Methods', 'OPTIONS,DELETE,GET,HEAD,PATCH,POST,PUT');
|
|
6
6
|
response.setStatus(200);
|
|
7
7
|
response.setJson({});
|
|
8
8
|
return response.getLambdaResponse();
|
|
9
9
|
}
|
|
10
|
-
if (request.
|
|
10
|
+
if (request.path.includes('health-check')) {
|
|
11
11
|
response.setStatus(200);
|
|
12
12
|
return response.getLambdaResponse();
|
|
13
13
|
}
|
|
@@ -17,8 +17,8 @@ export const generalHTTPHandler = async (singletonServices, createSessionService
|
|
|
17
17
|
response,
|
|
18
18
|
singletonServices,
|
|
19
19
|
createSessionServices: createSessionServices,
|
|
20
|
-
route: request.
|
|
21
|
-
method: request.
|
|
20
|
+
route: request.path,
|
|
21
|
+
method: request.method,
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general-http-handler.js","sourceRoot":"","sources":["../../src/http/general-http-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAK/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAKrC,iBAAoC,EACpC,qBAIC,EACD,OAAqC,EACrC,QAAuC,EACP,EAAE;IAClC,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"general-http-handler.js","sourceRoot":"","sources":["../../src/http/general-http-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAK/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAKrC,iBAAoC,EACpC,qBAIC,EACD,OAAqC,EACrC,QAAuC,EACP,EAAE;IAClC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,SAAS,CAChB,8BAA8B,EAC9B,uFAAuF,CACxF,CAAA;QACD,QAAQ,CAAC,SAAS,CAChB,8BAA8B,EAC9B,wCAAwC,CACzC,CAAA;QACD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACpB,OAAO,QAAQ,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACvB,OAAO,QAAQ,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,CAAC;YACjB,OAAO;YACP,QAAQ;YACR,iBAAiB;YACjB,qBAAqB,EAAE,qBAA4B;YACnD,KAAK,EAAE,OAAO,CAAC,IAAI;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,QAAQ,CAAC,iBAAiB,EAAE,CAAA;AACrC,CAAC,CAAA"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import type { APIGatewayProxyEvent } from 'aws-lambda';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PikkuQuery } from '@pikku/core/http';
|
|
3
3
|
import { PikkuHTTPAbstractRequest } from '@pikku/core/http/pikku-http-abstract-request';
|
|
4
4
|
export declare class PikkuAPIGatewayLambdaRequest extends PikkuHTTPAbstractRequest {
|
|
5
5
|
protected event: APIGatewayProxyEvent;
|
|
6
6
|
constructor(event: APIGatewayProxyEvent);
|
|
7
|
-
getPath(): string;
|
|
8
|
-
getMethod(): HTTPMethod;
|
|
9
7
|
getBody(): Promise<string | null>;
|
|
10
8
|
getHeader(headerName: string): string | undefined;
|
|
11
9
|
getQuery(): PikkuQuery;
|
|
@@ -2,15 +2,9 @@ import { PikkuHTTPAbstractRequest } from '@pikku/core/http/pikku-http-abstract-r
|
|
|
2
2
|
export class PikkuAPIGatewayLambdaRequest extends PikkuHTTPAbstractRequest {
|
|
3
3
|
event;
|
|
4
4
|
constructor(event) {
|
|
5
|
-
super();
|
|
5
|
+
super(event.path || '/', event.httpMethod?.toLowerCase() || 'get');
|
|
6
6
|
this.event = event;
|
|
7
7
|
}
|
|
8
|
-
getPath() {
|
|
9
|
-
return this.event.path || '/';
|
|
10
|
-
}
|
|
11
|
-
getMethod() {
|
|
12
|
-
return this.event.httpMethod.toLowerCase();
|
|
13
|
-
}
|
|
14
8
|
async getBody() {
|
|
15
9
|
return this.event.body;
|
|
16
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pikku-api-gateway-lambda-request.js","sourceRoot":"","sources":["../src/pikku-api-gateway-lambda-request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AAEvF,MAAM,OAAO,4BAA6B,SAAQ,wBAAwB;IAClD;IAAtB,YAAsB,KAA2B;QAC/C,KAAK,
|
|
1
|
+
{"version":3,"file":"pikku-api-gateway-lambda-request.js","sourceRoot":"","sources":["../src/pikku-api-gateway-lambda-request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AAEvF,MAAM,OAAO,4BAA6B,SAAQ,wBAAwB;IAClD;IAAtB,YAAsB,KAA2B;QAC/C,KAAK,CACH,KAAK,CAAC,IAAI,IAAI,GAAG,EAChB,KAAK,CAAC,UAAU,EAAE,WAAW,EAAiB,IAAI,KAAK,CACzD,CAAA;QAJmB,UAAK,GAAL,KAAK,CAAsB;IAKjD,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAEM,SAAS,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAEM,QAAQ;QAEb,OAAQ,IAAI,CAAC,KAAK,CAAC,qBAAoC,IAAI,EAAE,CAAA;IAC/D,CAAC;CACF"}
|
|
@@ -2,18 +2,12 @@ import { PikkuAbstractChannelHandler, } from '@pikku/core/channel';
|
|
|
2
2
|
import { sendMessage } from './utils.js';
|
|
3
3
|
class LambdaChannelHandler extends PikkuAbstractChannelHandler {
|
|
4
4
|
logger;
|
|
5
|
-
channelStore;
|
|
6
5
|
callbackAPI;
|
|
7
|
-
constructor(logger,
|
|
8
|
-
super(channelId, channelName,
|
|
6
|
+
constructor(logger, callbackAPI, channelId, channelName, openingData) {
|
|
7
|
+
super(channelId, channelName, openingData);
|
|
9
8
|
this.logger = logger;
|
|
10
|
-
this.channelStore = channelStore;
|
|
11
9
|
this.callbackAPI = callbackAPI;
|
|
12
10
|
}
|
|
13
|
-
async setUserSession(userSession) {
|
|
14
|
-
this.userSession = userSession;
|
|
15
|
-
await this.channelStore.setUserSession(this.channelId, userSession);
|
|
16
|
-
}
|
|
17
11
|
async send(message, isBinary) {
|
|
18
12
|
if (isBinary) {
|
|
19
13
|
throw new Error('Binary data is not supported on serverless lambdas');
|
|
@@ -23,7 +17,7 @@ class LambdaChannelHandler extends PikkuAbstractChannelHandler {
|
|
|
23
17
|
}
|
|
24
18
|
}
|
|
25
19
|
export const createLambdaChannelHandlerFactory = (logger, channelStore, callbackAPI) => {
|
|
26
|
-
const factory = (channelId, channelName, openingData
|
|
20
|
+
const factory = (channelId, channelName, openingData) => new LambdaChannelHandler(logger, callbackAPI, channelId, channelName, openingData);
|
|
27
21
|
return factory;
|
|
28
22
|
};
|
|
29
23
|
//# sourceMappingURL=lambda-channel-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda-channel-handler.js","sourceRoot":"","sources":["../../src/websocket/lambda-channel-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,GAE5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,oBAIJ,SAAQ,
|
|
1
|
+
{"version":3,"file":"lambda-channel-handler.js","sourceRoot":"","sources":["../../src/websocket/lambda-channel-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,GAE5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,oBAIJ,SAAQ,2BAA6C;IAE3C;IACA;IAFV,YACU,MAAc,EACd,WAA0C,EAClD,SAAiB,EACjB,WAAmB,EACnB,WAAwB;QAExB,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QANlC,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAA+B;IAMpD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAY,EAAE,QAAkB;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACxE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,MAAc,EACd,YAA0B,EAC1B,WAA0C,EAC1C,EAAE;IACF,MAAM,OAAO,GAA+B,CAC1C,SAAS,EACT,WAAW,EACX,WAAW,EACX,EAAE,CACF,IAAI,oBAAoB,CACtB,MAAM,EACN,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,CACZ,CAAA;IACH,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -9,5 +9,5 @@ export declare const getServerlessDependencies: (logger: Logger, channelStore: C
|
|
|
9
9
|
channelId: string;
|
|
10
10
|
callbackAPI: ApiGatewayManagementApiClient;
|
|
11
11
|
channelHandlerFactory: import("@pikku/core/channel").PikkuChannelHandlerFactory;
|
|
12
|
-
channelStore: ChannelStore<unknown, unknown, import("@pikku/core/dist/index.js").CoreUserSession, import("@pikku/core/channel").Channel<unknown, unknown
|
|
12
|
+
channelStore: ChannelStore<unknown, unknown, import("@pikku/core/dist/index.js").CoreUserSession, import("@pikku/core/channel").Channel<unknown, unknown>>;
|
|
13
13
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pikku/lambda",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.7",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "yasser.fadl@gmail.com",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@aws-sdk/client-apigatewaymanagementapi": "^3.713.0",
|
|
26
|
-
"@pikku/core": "^0.6.
|
|
26
|
+
"@pikku/core": "^0.6.14",
|
|
27
27
|
"@types/aws-lambda": "^8.10.146"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
@@ -23,7 +23,7 @@ export const generalHTTPHandler = async <
|
|
|
23
23
|
request: PikkuAPIGatewayLambdaRequest,
|
|
24
24
|
response: PikkuAPIGatewayLambdaResponse
|
|
25
25
|
): Promise<APIGatewayProxyResult> => {
|
|
26
|
-
if (request.
|
|
26
|
+
if (request.method === 'options') {
|
|
27
27
|
response.setHeader(
|
|
28
28
|
'Access-Control-Allow-Headers',
|
|
29
29
|
'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent'
|
|
@@ -37,7 +37,7 @@ export const generalHTTPHandler = async <
|
|
|
37
37
|
return response.getLambdaResponse()
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
if (request.
|
|
40
|
+
if (request.path.includes('health-check')) {
|
|
41
41
|
response.setStatus(200)
|
|
42
42
|
return response.getLambdaResponse()
|
|
43
43
|
}
|
|
@@ -48,8 +48,8 @@ export const generalHTTPHandler = async <
|
|
|
48
48
|
response,
|
|
49
49
|
singletonServices,
|
|
50
50
|
createSessionServices: createSessionServices as any,
|
|
51
|
-
route: request.
|
|
52
|
-
method: request.
|
|
51
|
+
route: request.path,
|
|
52
|
+
method: request.method,
|
|
53
53
|
})
|
|
54
54
|
} catch {
|
|
55
55
|
// Error should have already been handled by runHTTPRoute
|
|
@@ -4,16 +4,10 @@ import { PikkuHTTPAbstractRequest } from '@pikku/core/http/pikku-http-abstract-r
|
|
|
4
4
|
|
|
5
5
|
export class PikkuAPIGatewayLambdaRequest extends PikkuHTTPAbstractRequest {
|
|
6
6
|
constructor(protected event: APIGatewayProxyEvent) {
|
|
7
|
-
super(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
// TODO: The path can be undefined, types are invalid
|
|
12
|
-
return this.event.path || '/'
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public getMethod() {
|
|
16
|
-
return this.event.httpMethod.toLowerCase() as HTTPMethod
|
|
7
|
+
super(
|
|
8
|
+
event.path || '/',
|
|
9
|
+
(event.httpMethod?.toLowerCase() as HTTPMethod) || 'get'
|
|
10
|
+
)
|
|
17
11
|
}
|
|
18
12
|
|
|
19
13
|
public async getBody() {
|
|
@@ -12,22 +12,15 @@ class LambdaChannelHandler<
|
|
|
12
12
|
UserSession extends CoreUserSession = CoreUserSession,
|
|
13
13
|
OpeningData = unknown,
|
|
14
14
|
Out = unknown,
|
|
15
|
-
> extends PikkuAbstractChannelHandler<
|
|
15
|
+
> extends PikkuAbstractChannelHandler<OpeningData, Out> {
|
|
16
16
|
constructor(
|
|
17
17
|
private logger: Logger,
|
|
18
|
-
userSession: UserSession | undefined,
|
|
19
|
-
private channelStore: ChannelStore,
|
|
20
18
|
private callbackAPI: ApiGatewayManagementApiClient,
|
|
21
19
|
channelId: string,
|
|
22
20
|
channelName: string,
|
|
23
21
|
openingData: OpeningData
|
|
24
22
|
) {
|
|
25
|
-
super(channelId, channelName,
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public async setUserSession(userSession: UserSession): Promise<void> {
|
|
29
|
-
this.userSession = userSession
|
|
30
|
-
await this.channelStore.setUserSession(this.channelId, userSession)
|
|
23
|
+
super(channelId, channelName, openingData)
|
|
31
24
|
}
|
|
32
25
|
|
|
33
26
|
public async send(message: Out, isBinary?: boolean) {
|
|
@@ -47,13 +40,10 @@ export const createLambdaChannelHandlerFactory = (
|
|
|
47
40
|
const factory: PikkuChannelHandlerFactory = (
|
|
48
41
|
channelId,
|
|
49
42
|
channelName,
|
|
50
|
-
openingData
|
|
51
|
-
userSession
|
|
43
|
+
openingData
|
|
52
44
|
) =>
|
|
53
45
|
new LambdaChannelHandler(
|
|
54
46
|
logger,
|
|
55
|
-
userSession,
|
|
56
|
-
channelStore,
|
|
57
47
|
callbackAPI,
|
|
58
48
|
channelId,
|
|
59
49
|
channelName,
|