@webiny/api-websockets 5.40.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +10 -0
- package/context/WebsocketsContext.d.ts +13 -0
- package/context/WebsocketsContext.js +70 -0
- package/context/WebsocketsContext.js.map +1 -0
- package/context/abstractions/IWebsocketsContext.d.ts +22 -0
- package/context/abstractions/IWebsocketsContext.js +7 -0
- package/context/abstractions/IWebsocketsContext.js.map +1 -0
- package/context/index.d.ts +5 -0
- package/context/index.js +53 -0
- package/context/index.js.map +1 -0
- package/graphql/checkPermissions.d.ts +7 -0
- package/graphql/checkPermissions.js +21 -0
- package/graphql/checkPermissions.js.map +1 -0
- package/graphql/createResolvers.d.ts +13 -0
- package/graphql/createResolvers.js +71 -0
- package/graphql/createResolvers.js.map +1 -0
- package/graphql/createTypeDefs.d.ts +1 -0
- package/graphql/createTypeDefs.js +78 -0
- package/graphql/createTypeDefs.js.map +1 -0
- package/graphql/index.d.ts +2 -0
- package/graphql/index.js +20 -0
- package/graphql/index.js.map +1 -0
- package/graphql/utils.d.ts +7 -0
- package/graphql/utils.js +19 -0
- package/graphql/utils.js.map +1 -0
- package/handler/handler.d.ts +2 -0
- package/handler/handler.js +84 -0
- package/handler/handler.js.map +1 -0
- package/handler/headers.d.ts +7 -0
- package/handler/headers.js +46 -0
- package/handler/headers.js.map +1 -0
- package/handler/register.d.ts +1 -0
- package/handler/register.js +28 -0
- package/handler/register.js.map +1 -0
- package/handler/types.d.ts +73 -0
- package/handler/types.js +20 -0
- package/handler/types.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.js +101 -0
- package/index.js.map +1 -0
- package/package.json +57 -0
- package/plugins/WebsocketsActionPlugin.d.ts +11 -0
- package/plugins/WebsocketsActionPlugin.js +25 -0
- package/plugins/WebsocketsActionPlugin.js.map +1 -0
- package/plugins/WebsocketsRoutePlugin.d.ts +28 -0
- package/plugins/WebsocketsRoutePlugin.js +25 -0
- package/plugins/WebsocketsRoutePlugin.js.map +1 -0
- package/plugins/abstrations/IWebsocketsActionPlugin.d.ts +35 -0
- package/plugins/abstrations/IWebsocketsActionPlugin.js +7 -0
- package/plugins/abstrations/IWebsocketsActionPlugin.js.map +1 -0
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +40 -0
- package/plugins/index.js.map +1 -0
- package/registry/WebsocketsConnectionRegistry.d.ts +23 -0
- package/registry/WebsocketsConnectionRegistry.js +182 -0
- package/registry/WebsocketsConnectionRegistry.js.map +1 -0
- package/registry/abstractions/IWebsocketsConnectionRegistry.d.ts +33 -0
- package/registry/abstractions/IWebsocketsConnectionRegistry.js +7 -0
- package/registry/abstractions/IWebsocketsConnectionRegistry.js.map +1 -0
- package/registry/entity.d.ts +108 -0
- package/registry/entity.js +62 -0
- package/registry/entity.js.map +1 -0
- package/registry/index.d.ts +2 -0
- package/registry/index.js +29 -0
- package/registry/index.js.map +1 -0
- package/response/WebsocketsResponse.d.ts +5 -0
- package/response/WebsocketsResponse.js +29 -0
- package/response/WebsocketsResponse.js.map +1 -0
- package/response/abstractions/IWebsocketsResponse.d.ts +29 -0
- package/response/abstractions/IWebsocketsResponse.js +7 -0
- package/response/abstractions/IWebsocketsResponse.js.map +1 -0
- package/response/index.d.ts +2 -0
- package/response/index.js +29 -0
- package/response/index.js.map +1 -0
- package/runner/WebsocketsRunner.d.ts +17 -0
- package/runner/WebsocketsRunner.js +191 -0
- package/runner/WebsocketsRunner.js.map +1 -0
- package/runner/abstractions/IWebsocketsRunner.d.ts +16 -0
- package/runner/abstractions/IWebsocketsRunner.js +7 -0
- package/runner/abstractions/IWebsocketsRunner.js.map +1 -0
- package/runner/index.d.ts +2 -0
- package/runner/index.js +29 -0
- package/runner/index.js.map +1 -0
- package/runner/routes/connect.d.ts +1 -0
- package/runner/routes/connect.js +57 -0
- package/runner/routes/connect.js.map +1 -0
- package/runner/routes/default.d.ts +1 -0
- package/runner/routes/default.js +40 -0
- package/runner/routes/default.js.map +1 -0
- package/runner/routes/disconnect.d.ts +1 -0
- package/runner/routes/disconnect.js +26 -0
- package/runner/routes/disconnect.js.map +1 -0
- package/runner/routes/index.d.ts +1 -0
- package/runner/routes/index.js +15 -0
- package/runner/routes/index.js.map +1 -0
- package/transport/WebsocketsTransport.d.ts +8 -0
- package/transport/WebsocketsTransport.js +54 -0
- package/transport/WebsocketsTransport.js.map +1 -0
- package/transport/abstractions/IWebsocketsTransport.d.ts +20 -0
- package/transport/abstractions/IWebsocketsTransport.js +7 -0
- package/transport/abstractions/IWebsocketsTransport.js.map +1 -0
- package/transport/index.d.ts +2 -0
- package/transport/index.js +29 -0
- package/transport/index.js.map +1 -0
- package/types.d.ts +12 -0
- package/types.js +7 -0
- package/types.js.map +1 -0
- package/utils/middleware.d.ts +5 -0
- package/utils/middleware.js +25 -0
- package/utils/middleware.js.map +1 -0
- package/validator/WebsocketsEventValidator.d.ts +5 -0
- package/validator/WebsocketsEventValidator.js +85 -0
- package/validator/WebsocketsEventValidator.js.map +1 -0
- package/validator/abstractions/IWebsocketsEventValidator.d.ts +8 -0
- package/validator/abstractions/IWebsocketsEventValidator.js +7 -0
- package/validator/abstractions/IWebsocketsEventValidator.js.map +1 -0
- package/validator/index.d.ts +2 -0
- package/validator/index.js +29 -0
- package/validator/index.js.map +1 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getEventValues = void 0;
|
|
7
|
+
const getEventBody = event => {
|
|
8
|
+
if (!event.body) {
|
|
9
|
+
return {};
|
|
10
|
+
} else if (typeof event.body === "object") {
|
|
11
|
+
return event.body;
|
|
12
|
+
} else if (typeof event.body === "string") {
|
|
13
|
+
try {
|
|
14
|
+
return JSON.parse(event.body);
|
|
15
|
+
} catch (ex) {
|
|
16
|
+
console.log(ex.message);
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
console.log("Unexpected event.body type:", typeof event.body);
|
|
21
|
+
return {};
|
|
22
|
+
};
|
|
23
|
+
const getToken = (body, event) => {
|
|
24
|
+
return body?.token || event.queryStringParameters?.token || null;
|
|
25
|
+
};
|
|
26
|
+
const getTenant = (body, event) => {
|
|
27
|
+
return body?.tenant || event.queryStringParameters?.tenant || "root";
|
|
28
|
+
};
|
|
29
|
+
const getLocale = (body, event) => {
|
|
30
|
+
return body?.locale || event.queryStringParameters?.locale || "en-US";
|
|
31
|
+
};
|
|
32
|
+
const getEventValues = event => {
|
|
33
|
+
const body = getEventBody(event);
|
|
34
|
+
const token = getToken(body, event);
|
|
35
|
+
const tenant = getTenant(body, event);
|
|
36
|
+
const locale = getLocale(body, event);
|
|
37
|
+
return {
|
|
38
|
+
tenant,
|
|
39
|
+
locale,
|
|
40
|
+
token,
|
|
41
|
+
endpoint: "manage"
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
exports.getEventValues = getEventValues;
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getEventBody","event","body","JSON","parse","ex","console","log","message","getToken","token","queryStringParameters","getTenant","tenant","getLocale","locale","getEventValues","endpoint","exports"],"sources":["headers.ts"],"sourcesContent":["import { IWebsocketsEventData, IWebsocketsIncomingEvent } from \"~/handler/types\";\n\nconst getEventBody = (event: IWebsocketsIncomingEvent): IWebsocketsEventData => {\n if (!event.body) {\n return {};\n } else if (typeof event.body === \"object\") {\n return event.body;\n } else if (typeof event.body === \"string\") {\n try {\n return JSON.parse(event.body);\n } catch (ex) {\n console.log(ex.message);\n return {};\n }\n }\n console.log(\"Unexpected event.body type:\", typeof event.body);\n return {};\n};\n\nconst getToken = (body: IWebsocketsEventData, event: IWebsocketsIncomingEvent): string | null => {\n return body?.token || event.queryStringParameters?.token || null;\n};\n\nconst getTenant = (body: IWebsocketsEventData, event: IWebsocketsIncomingEvent): string => {\n return body?.tenant || event.queryStringParameters?.tenant || \"root\";\n};\n\nconst getLocale = (body: IWebsocketsEventData, event: IWebsocketsIncomingEvent): string => {\n return body?.locale || event.queryStringParameters?.locale || \"en-US\";\n};\n\nexport const getEventValues = (event: IWebsocketsIncomingEvent) => {\n const body = getEventBody(event);\n\n const token = getToken(body, event);\n const tenant = getTenant(body, event);\n const locale = getLocale(body, event);\n return {\n tenant,\n locale,\n token,\n endpoint: \"manage\"\n };\n};\n"],"mappings":";;;;;;AAEA,MAAMA,YAAY,GAAIC,KAA+B,IAA2B;EAC5E,IAAI,CAACA,KAAK,CAACC,IAAI,EAAE;IACb,OAAO,CAAC,CAAC;EACb,CAAC,MAAM,IAAI,OAAOD,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;IACvC,OAAOD,KAAK,CAACC,IAAI;EACrB,CAAC,MAAM,IAAI,OAAOD,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;IACvC,IAAI;MACA,OAAOC,IAAI,CAACC,KAAK,CAACH,KAAK,CAACC,IAAI,CAAC;IACjC,CAAC,CAAC,OAAOG,EAAE,EAAE;MACTC,OAAO,CAACC,GAAG,CAACF,EAAE,CAACG,OAAO,CAAC;MACvB,OAAO,CAAC,CAAC;IACb;EACJ;EACAF,OAAO,CAACC,GAAG,CAAC,6BAA6B,EAAE,OAAON,KAAK,CAACC,IAAI,CAAC;EAC7D,OAAO,CAAC,CAAC;AACb,CAAC;AAED,MAAMO,QAAQ,GAAGA,CAACP,IAA0B,EAAED,KAA+B,KAAoB;EAC7F,OAAOC,IAAI,EAAEQ,KAAK,IAAIT,KAAK,CAACU,qBAAqB,EAAED,KAAK,IAAI,IAAI;AACpE,CAAC;AAED,MAAME,SAAS,GAAGA,CAACV,IAA0B,EAAED,KAA+B,KAAa;EACvF,OAAOC,IAAI,EAAEW,MAAM,IAAIZ,KAAK,CAACU,qBAAqB,EAAEE,MAAM,IAAI,MAAM;AACxE,CAAC;AAED,MAAMC,SAAS,GAAGA,CAACZ,IAA0B,EAAED,KAA+B,KAAa;EACvF,OAAOC,IAAI,EAAEa,MAAM,IAAId,KAAK,CAACU,qBAAqB,EAAEI,MAAM,IAAI,OAAO;AACzE,CAAC;AAEM,MAAMC,cAAc,GAAIf,KAA+B,IAAK;EAC/D,MAAMC,IAAI,GAAGF,YAAY,CAACC,KAAK,CAAC;EAEhC,MAAMS,KAAK,GAAGD,QAAQ,CAACP,IAAI,EAAED,KAAK,CAAC;EACnC,MAAMY,MAAM,GAAGD,SAAS,CAACV,IAAI,EAAED,KAAK,CAAC;EACrC,MAAMc,MAAM,GAAGD,SAAS,CAACZ,IAAI,EAAED,KAAK,CAAC;EACrC,OAAO;IACHY,MAAM;IACNE,MAAM;IACNL,KAAK;IACLO,QAAQ,EAAE;EACd,CAAC;AACL,CAAC;AAACC,OAAA,CAAAF,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _registry = require("@webiny/handler-aws/registry");
|
|
4
|
+
var _handlerAws = require("@webiny/handler-aws");
|
|
5
|
+
const handler = (0, _handlerAws.createSourceHandler)({
|
|
6
|
+
name: "handler-webiny-websockets",
|
|
7
|
+
canUse: event => {
|
|
8
|
+
const {
|
|
9
|
+
routeKey,
|
|
10
|
+
connectionId,
|
|
11
|
+
eventType
|
|
12
|
+
} = event.requestContext || {};
|
|
13
|
+
return !!routeKey && !!connectionId && !!eventType;
|
|
14
|
+
},
|
|
15
|
+
handle: async ({
|
|
16
|
+
params,
|
|
17
|
+
event,
|
|
18
|
+
context
|
|
19
|
+
}) => {
|
|
20
|
+
const {
|
|
21
|
+
createHandler
|
|
22
|
+
} = await import( /* webpackChunkName: "SocketsHandler" */"./handler");
|
|
23
|
+
return createHandler(params)(event, context);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
_registry.registry.register(handler);
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_registry","require","_handlerAws","handler","createSourceHandler","name","canUse","event","routeKey","connectionId","eventType","requestContext","handle","params","context","createHandler","registry","register"],"sources":["register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport { HandlerParams, IWebsocketsIncomingEvent } from \"./types\";\n\nconst handler = createSourceHandler<IWebsocketsIncomingEvent, HandlerParams>({\n name: \"handler-webiny-websockets\",\n canUse: event => {\n const { routeKey, connectionId, eventType } = event.requestContext || {};\n return !!routeKey && !!connectionId && !!eventType;\n },\n handle: async ({ params, event, context }) => {\n const { createHandler } = await import(\n /* webpackChunkName: \"SocketsHandler\" */\n \"./handler\"\n );\n return createHandler(params)(event, context);\n }\n});\n\nregistry.register(handler);\n"],"mappings":";;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,MAAME,OAAO,GAAG,IAAAC,+BAAmB,EAA0C;EACzEC,IAAI,EAAE,2BAA2B;EACjCC,MAAM,EAAEC,KAAK,IAAI;IACb,MAAM;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAU,CAAC,GAAGH,KAAK,CAACI,cAAc,IAAI,CAAC,CAAC;IACxE,OAAO,CAAC,CAACH,QAAQ,IAAI,CAAC,CAACC,YAAY,IAAI,CAAC,CAACC,SAAS;EACtD,CAAC;EACDE,MAAM,EAAE,MAAAA,CAAO;IAAEC,MAAM;IAAEN,KAAK;IAAEO;EAAQ,CAAC,KAAK;IAC1C,MAAM;MAAEC;IAAc,CAAC,GAAG,MAAM,MAAM,EAClC,mDAEJ,CAAC;IACD,OAAOA,aAAa,CAACF,MAAM,CAAC,CAACN,KAAK,EAAEO,OAAO,CAAC;EAChD;AACJ,CAAC,CAAC;AAEFE,kBAAQ,CAACC,QAAQ,CAACd,OAAO,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { HandlerFactoryParams } from "@webiny/handler-aws/types";
|
|
2
|
+
import { IWebsocketsEventValidator } from "../validator";
|
|
3
|
+
import { IWebsocketsResponse } from "../response";
|
|
4
|
+
import { APIGatewayProxyResult, Context as LambdaContext } from "aws-lambda";
|
|
5
|
+
import { GenericRecord } from "@webiny/api/types";
|
|
6
|
+
import { PartialDeep } from "type-fest";
|
|
7
|
+
export interface HandlerCallable {
|
|
8
|
+
(event: IWebsocketsIncomingEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
|
|
9
|
+
}
|
|
10
|
+
export interface HandlerParams extends HandlerFactoryParams {
|
|
11
|
+
validator?: IWebsocketsEventValidator;
|
|
12
|
+
response?: IWebsocketsResponse;
|
|
13
|
+
}
|
|
14
|
+
export declare enum WebsocketsEventRoute {
|
|
15
|
+
"connect" = "$connect",
|
|
16
|
+
"disconnect" = "$disconnect",
|
|
17
|
+
"default" = "$default"
|
|
18
|
+
}
|
|
19
|
+
export interface IWebsocketsEventData {
|
|
20
|
+
token?: string;
|
|
21
|
+
tenant?: string;
|
|
22
|
+
locale?: string;
|
|
23
|
+
messageId?: string;
|
|
24
|
+
action?: string;
|
|
25
|
+
data?: GenericRecord;
|
|
26
|
+
}
|
|
27
|
+
export declare enum WebsocketsEventRequestContextEventType {
|
|
28
|
+
"message" = "MESSAGE",
|
|
29
|
+
"connect" = "CONNECT",
|
|
30
|
+
"disconnect" = "DISCONNECT"
|
|
31
|
+
}
|
|
32
|
+
export interface IWebsocketsEventRequestContext {
|
|
33
|
+
connectionId: string;
|
|
34
|
+
connectedAt: number;
|
|
35
|
+
domainName: string;
|
|
36
|
+
eventType: WebsocketsEventRequestContextEventType;
|
|
37
|
+
routeKey: WebsocketsEventRoute | string;
|
|
38
|
+
stage: string;
|
|
39
|
+
}
|
|
40
|
+
export interface IWebsocketsEventHeaders {
|
|
41
|
+
"Accept-Encoding"?: string;
|
|
42
|
+
"Accept-Language"?: string;
|
|
43
|
+
"Cache-Control"?: string;
|
|
44
|
+
Host?: string;
|
|
45
|
+
Origin?: string;
|
|
46
|
+
Pragma?: string;
|
|
47
|
+
"Sec-WebSocket-Extensions"?: string;
|
|
48
|
+
"Sec-WebSocket-Key"?: string;
|
|
49
|
+
"Sec-WebSocket-Version"?: string;
|
|
50
|
+
"Sec-WebSocket-Protocol"?: string;
|
|
51
|
+
"User-Agent"?: string;
|
|
52
|
+
"X-Amzn-Trace-Id"?: string;
|
|
53
|
+
"X-Forwarded-For"?: string;
|
|
54
|
+
"X-Forwarded-Port"?: `${number}`;
|
|
55
|
+
"X-Forwarded-Proto"?: "https" | "http";
|
|
56
|
+
["x-tenant"]?: string;
|
|
57
|
+
["x-webiny-cms-locale"]?: string;
|
|
58
|
+
["x-webiny-cms-endpoint"]?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface IWebsocketsEventQueryStringParameters {
|
|
61
|
+
tenant?: string;
|
|
62
|
+
locale?: string;
|
|
63
|
+
token?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface IWebsocketsEvent<T extends IWebsocketsEventData = IWebsocketsEventData> {
|
|
66
|
+
headers?: IWebsocketsEventHeaders;
|
|
67
|
+
queryStringParameters?: IWebsocketsEventQueryStringParameters;
|
|
68
|
+
requestContext: IWebsocketsEventRequestContext;
|
|
69
|
+
body?: T;
|
|
70
|
+
}
|
|
71
|
+
export interface IWebsocketsIncomingEvent extends PartialDeep<Omit<IWebsocketsEvent, "body">> {
|
|
72
|
+
body?: string | GenericRecord;
|
|
73
|
+
}
|
package/handler/types.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WebsocketsEventRoute = exports.WebsocketsEventRequestContextEventType = void 0;
|
|
7
|
+
let WebsocketsEventRoute = exports.WebsocketsEventRoute = /*#__PURE__*/function (WebsocketsEventRoute) {
|
|
8
|
+
WebsocketsEventRoute["connect"] = "$connect";
|
|
9
|
+
WebsocketsEventRoute["disconnect"] = "$disconnect";
|
|
10
|
+
WebsocketsEventRoute["default"] = "$default";
|
|
11
|
+
return WebsocketsEventRoute;
|
|
12
|
+
}({});
|
|
13
|
+
let WebsocketsEventRequestContextEventType = exports.WebsocketsEventRequestContextEventType = /*#__PURE__*/function (WebsocketsEventRequestContextEventType) {
|
|
14
|
+
WebsocketsEventRequestContextEventType["message"] = "MESSAGE";
|
|
15
|
+
WebsocketsEventRequestContextEventType["connect"] = "CONNECT";
|
|
16
|
+
WebsocketsEventRequestContextEventType["disconnect"] = "DISCONNECT";
|
|
17
|
+
return WebsocketsEventRequestContextEventType;
|
|
18
|
+
}({});
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WebsocketsEventRoute","exports","WebsocketsEventRequestContextEventType"],"sources":["types.ts"],"sourcesContent":["import { HandlerFactoryParams } from \"@webiny/handler-aws/types\";\nimport { IWebsocketsEventValidator } from \"~/validator\";\nimport { IWebsocketsResponse } from \"~/response\";\nimport { APIGatewayProxyResult, Context as LambdaContext } from \"aws-lambda\";\nimport { GenericRecord } from \"@webiny/api/types\";\nimport { PartialDeep } from \"type-fest\";\n\nexport interface HandlerCallable {\n (event: IWebsocketsIncomingEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nexport interface HandlerParams extends HandlerFactoryParams {\n validator?: IWebsocketsEventValidator;\n response?: IWebsocketsResponse;\n}\n\nexport enum WebsocketsEventRoute {\n \"connect\" = \"$connect\",\n \"disconnect\" = \"$disconnect\",\n \"default\" = \"$default\"\n}\n\nexport interface IWebsocketsEventData {\n token?: string;\n tenant?: string;\n locale?: string;\n messageId?: string;\n action?: string;\n data?: GenericRecord;\n}\n\nexport enum WebsocketsEventRequestContextEventType {\n \"message\" = \"MESSAGE\",\n \"connect\" = \"CONNECT\",\n \"disconnect\" = \"DISCONNECT\"\n}\n\nexport interface IWebsocketsEventRequestContext {\n connectionId: string;\n connectedAt: number;\n domainName: string;\n eventType: WebsocketsEventRequestContextEventType;\n routeKey: WebsocketsEventRoute | string;\n stage: string;\n}\n\nexport interface IWebsocketsEventHeaders {\n \"Accept-Encoding\"?: string;\n \"Accept-Language\"?: string;\n \"Cache-Control\"?: string;\n Host?: string;\n Origin?: string;\n Pragma?: string;\n \"Sec-WebSocket-Extensions\"?: string;\n \"Sec-WebSocket-Key\"?: string;\n \"Sec-WebSocket-Version\"?: string;\n \"Sec-WebSocket-Protocol\"?: string;\n \"User-Agent\"?: string;\n \"X-Amzn-Trace-Id\"?: string;\n \"X-Forwarded-For\"?: string;\n \"X-Forwarded-Port\"?: `${number}`;\n \"X-Forwarded-Proto\"?: \"https\" | \"http\";\n [\"x-tenant\"]?: string;\n [\"x-webiny-cms-locale\"]?: string;\n [\"x-webiny-cms-endpoint\"]?: string;\n}\n\nexport interface IWebsocketsEventQueryStringParameters {\n tenant?: string;\n locale?: string;\n token?: string;\n}\n\nexport interface IWebsocketsEvent<T extends IWebsocketsEventData = IWebsocketsEventData> {\n headers?: IWebsocketsEventHeaders;\n queryStringParameters?: IWebsocketsEventQueryStringParameters;\n requestContext: IWebsocketsEventRequestContext;\n body?: T;\n}\n\nexport interface IWebsocketsIncomingEvent extends PartialDeep<Omit<IWebsocketsEvent, \"body\">> {\n body?: string | GenericRecord;\n}\n"],"mappings":";;;;;;IAgBYA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAepBE,sCAAsC,GAAAD,OAAA,CAAAC,sCAAA,0BAAtCA,sCAAsC;EAAtCA,sCAAsC;EAAtCA,sCAAsC;EAAtCA,sCAAsC;EAAA,OAAtCA,sCAAsC;AAAA","ignoreList":[]}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "./handler/register";
|
|
2
|
+
import { Plugin } from "@webiny/plugins/types";
|
|
3
|
+
export declare const createWebsockets: () => Plugin[];
|
|
4
|
+
export * from "./validator";
|
|
5
|
+
export * from "./transport";
|
|
6
|
+
export * from "./runner";
|
|
7
|
+
export * from "./registry";
|
|
8
|
+
export * from "./context";
|
|
9
|
+
export * from "./plugins";
|
|
10
|
+
export * from "./types";
|
package/index.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
createWebsockets: true
|
|
8
|
+
};
|
|
9
|
+
exports.createWebsockets = void 0;
|
|
10
|
+
require("./handler/register");
|
|
11
|
+
var _context = require("./context");
|
|
12
|
+
Object.keys(_context).forEach(function (key) {
|
|
13
|
+
if (key === "default" || key === "__esModule") return;
|
|
14
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
15
|
+
if (key in exports && exports[key] === _context[key]) return;
|
|
16
|
+
Object.defineProperty(exports, key, {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return _context[key];
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
var _graphql = require("./graphql");
|
|
24
|
+
var _validator = require("./validator");
|
|
25
|
+
Object.keys(_validator).forEach(function (key) {
|
|
26
|
+
if (key === "default" || key === "__esModule") return;
|
|
27
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
28
|
+
if (key in exports && exports[key] === _validator[key]) return;
|
|
29
|
+
Object.defineProperty(exports, key, {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () {
|
|
32
|
+
return _validator[key];
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
var _transport = require("./transport");
|
|
37
|
+
Object.keys(_transport).forEach(function (key) {
|
|
38
|
+
if (key === "default" || key === "__esModule") return;
|
|
39
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
40
|
+
if (key in exports && exports[key] === _transport[key]) return;
|
|
41
|
+
Object.defineProperty(exports, key, {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () {
|
|
44
|
+
return _transport[key];
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
var _runner = require("./runner");
|
|
49
|
+
Object.keys(_runner).forEach(function (key) {
|
|
50
|
+
if (key === "default" || key === "__esModule") return;
|
|
51
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
52
|
+
if (key in exports && exports[key] === _runner[key]) return;
|
|
53
|
+
Object.defineProperty(exports, key, {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get: function () {
|
|
56
|
+
return _runner[key];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
var _registry = require("./registry");
|
|
61
|
+
Object.keys(_registry).forEach(function (key) {
|
|
62
|
+
if (key === "default" || key === "__esModule") return;
|
|
63
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
64
|
+
if (key in exports && exports[key] === _registry[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _registry[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
var _plugins = require("./plugins");
|
|
73
|
+
Object.keys(_plugins).forEach(function (key) {
|
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
|
75
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
76
|
+
if (key in exports && exports[key] === _plugins[key]) return;
|
|
77
|
+
Object.defineProperty(exports, key, {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get: function () {
|
|
80
|
+
return _plugins[key];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
var _types = require("./types");
|
|
85
|
+
Object.keys(_types).forEach(function (key) {
|
|
86
|
+
if (key === "default" || key === "__esModule") return;
|
|
87
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
88
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
89
|
+
Object.defineProperty(exports, key, {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get: function () {
|
|
92
|
+
return _types[key];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
const createWebsockets = () => {
|
|
97
|
+
return [(0, _context.createWebsocketsContext)(), (0, _graphql.createWebsocketsGraphQL)()];
|
|
98
|
+
};
|
|
99
|
+
exports.createWebsockets = createWebsockets;
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["require","_context","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_graphql","_validator","_transport","_runner","_registry","_plugins","_types","createWebsockets","createWebsocketsContext","createWebsocketsGraphQL"],"sources":["index.ts"],"sourcesContent":["import \"./handler/register\";\nimport { Plugin } from \"@webiny/plugins/types\";\nimport { createWebsocketsContext } from \"~/context\";\nimport { createWebsocketsGraphQL } from \"~/graphql\";\n\nexport const createWebsockets = (): Plugin[] => {\n return [createWebsocketsContext(), createWebsocketsGraphQL()];\n};\n\nexport * from \"./validator\";\nexport * from \"./transport\";\nexport * from \"./runner\";\nexport * from \"./registry\";\nexport * from \"./context\";\n\nexport * from \"./plugins\";\nexport * from \"./types\";\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webiny/api-websockets",
|
|
3
|
+
"version": "5.40.0-beta.3",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/webiny/webiny-js.git"
|
|
8
|
+
},
|
|
9
|
+
"description": "Websockets API",
|
|
10
|
+
"contributors": [
|
|
11
|
+
"Bruno Zorić <bruno@webiny.com>"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@babel/runtime": "7.24.1",
|
|
16
|
+
"@webiny/api": "5.40.0-beta.3",
|
|
17
|
+
"@webiny/api-i18n": "5.40.0-beta.3",
|
|
18
|
+
"@webiny/api-security": "5.40.0-beta.3",
|
|
19
|
+
"@webiny/api-tenancy": "5.40.0-beta.3",
|
|
20
|
+
"@webiny/aws-sdk": "5.40.0-beta.3",
|
|
21
|
+
"@webiny/db-dynamodb": "5.40.0-beta.3",
|
|
22
|
+
"@webiny/error": "5.40.0-beta.3",
|
|
23
|
+
"@webiny/handler": "5.40.0-beta.3",
|
|
24
|
+
"@webiny/handler-aws": "5.40.0-beta.3",
|
|
25
|
+
"@webiny/plugins": "5.40.0-beta.3",
|
|
26
|
+
"@webiny/utils": "5.40.0-beta.3",
|
|
27
|
+
"type-fest": "2.19.0",
|
|
28
|
+
"zod": "3.22.4"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@babel/cli": "7.24.1",
|
|
32
|
+
"@babel/core": "7.24.3",
|
|
33
|
+
"@babel/preset-env": "7.24.3",
|
|
34
|
+
"@babel/preset-typescript": "7.24.1",
|
|
35
|
+
"@types/aws-lambda": "8.10.136",
|
|
36
|
+
"@webiny/api-headless-cms": "5.40.0-beta.3",
|
|
37
|
+
"@webiny/api-wcp": "5.40.0-beta.3",
|
|
38
|
+
"@webiny/cli": "5.40.0-beta.3",
|
|
39
|
+
"@webiny/handler-db": "5.40.0-beta.3",
|
|
40
|
+
"@webiny/handler-graphql": "5.40.0-beta.3",
|
|
41
|
+
"@webiny/project-utils": "5.40.0-beta.3",
|
|
42
|
+
"aws-lambda": "1.0.7",
|
|
43
|
+
"graphql": "15.8.0",
|
|
44
|
+
"rimraf": "5.0.5",
|
|
45
|
+
"ttypescript": "1.5.15",
|
|
46
|
+
"typescript": "4.7.4"
|
|
47
|
+
},
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"access": "public",
|
|
50
|
+
"directory": "dist"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"build": "yarn webiny run build",
|
|
54
|
+
"watch": "yarn webiny run watch"
|
|
55
|
+
},
|
|
56
|
+
"gitHead": "638d8b84063906cd1aa979ed6e0487ad26fbcf2f"
|
|
57
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
import { GenericRecord } from "@webiny/api/types";
|
|
3
|
+
import { IWebsocketsActionPluginCallable, IWebsocketsActionPluginCallableParams, WebsocketsActionPluginCallableResponse } from "./abstrations/IWebsocketsActionPlugin";
|
|
4
|
+
export declare class WebsocketsActionPlugin<T extends GenericRecord = GenericRecord> extends Plugin {
|
|
5
|
+
static readonly type: string;
|
|
6
|
+
readonly action: string;
|
|
7
|
+
private readonly cb;
|
|
8
|
+
constructor(action: string, cb: IWebsocketsActionPluginCallable<T>);
|
|
9
|
+
run(params: IWebsocketsActionPluginCallableParams): Promise<WebsocketsActionPluginCallableResponse<T>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const createWebsocketsAction: <T extends GenericRecord<import("@webiny/api/types").GenericRecordKey, any> = GenericRecord<import("@webiny/api/types").GenericRecordKey, any>>(action: string, cb: IWebsocketsActionPluginCallable<T>) => WebsocketsActionPlugin<T>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createWebsocketsAction = exports.WebsocketsActionPlugin = void 0;
|
|
7
|
+
var _plugins = require("@webiny/plugins");
|
|
8
|
+
class WebsocketsActionPlugin extends _plugins.Plugin {
|
|
9
|
+
static type = "websockets.route.action";
|
|
10
|
+
constructor(action, cb) {
|
|
11
|
+
super();
|
|
12
|
+
this.action = action;
|
|
13
|
+
this.cb = cb;
|
|
14
|
+
}
|
|
15
|
+
run(params) {
|
|
16
|
+
return this.cb(params);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.WebsocketsActionPlugin = WebsocketsActionPlugin;
|
|
20
|
+
const createWebsocketsAction = (action, cb) => {
|
|
21
|
+
return new WebsocketsActionPlugin(action, cb);
|
|
22
|
+
};
|
|
23
|
+
exports.createWebsocketsAction = createWebsocketsAction;
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=WebsocketsActionPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_plugins","require","WebsocketsActionPlugin","Plugin","type","constructor","action","cb","run","params","exports","createWebsocketsAction"],"sources":["WebsocketsActionPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { GenericRecord } from \"@webiny/api/types\";\nimport {\n IWebsocketsActionPluginCallable,\n IWebsocketsActionPluginCallableParams,\n WebsocketsActionPluginCallableResponse\n} from \"./abstrations/IWebsocketsActionPlugin\";\n\nexport class WebsocketsActionPlugin<T extends GenericRecord = GenericRecord> extends Plugin {\n public static override readonly type: string = \"websockets.route.action\";\n\n public readonly action: string;\n private readonly cb: IWebsocketsActionPluginCallable<T>;\n\n public constructor(action: string, cb: IWebsocketsActionPluginCallable<T>) {\n super();\n this.action = action;\n this.cb = cb;\n }\n\n public run(\n params: IWebsocketsActionPluginCallableParams\n ): Promise<WebsocketsActionPluginCallableResponse<T>> {\n return this.cb(params);\n }\n}\n\nexport const createWebsocketsAction = <T extends GenericRecord = GenericRecord>(\n action: string,\n cb: IWebsocketsActionPluginCallable<T>\n) => {\n return new WebsocketsActionPlugin<T>(action, cb);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAQO,MAAMC,sBAAsB,SAAkDC,eAAM,CAAC;EACxF,OAAgCC,IAAI,GAAW,yBAAyB;EAKjEC,WAAWA,CAACC,MAAc,EAAEC,EAAsC,EAAE;IACvE,KAAK,CAAC,CAAC;IACP,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,EAAE,GAAGA,EAAE;EAChB;EAEOC,GAAGA,CACNC,MAA6C,EACK;IAClD,OAAO,IAAI,CAACF,EAAE,CAACE,MAAM,CAAC;EAC1B;AACJ;AAACC,OAAA,CAAAR,sBAAA,GAAAA,sBAAA;AAEM,MAAMS,sBAAsB,GAAGA,CAClCL,MAAc,EACdC,EAAsC,KACrC;EACD,OAAO,IAAIL,sBAAsB,CAAII,MAAM,EAAEC,EAAE,CAAC;AACpD,CAAC;AAACG,OAAA,CAAAC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
import { IWebsocketsEvent, IWebsocketsEventData, WebsocketsEventRoute } from "../handler/types";
|
|
3
|
+
import { Context } from "../types";
|
|
4
|
+
import { IWebsocketsRunnerResponse } from "../runner";
|
|
5
|
+
import { IWebsocketsConnectionRegistry } from "../registry";
|
|
6
|
+
import { IWebsocketsResponse } from "../response/abstractions/IWebsocketsResponse";
|
|
7
|
+
import { IWebsocketsIdentity } from "../context";
|
|
8
|
+
export interface IWebsocketsRoutePluginCallableParams<C extends Context = Context, R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse, T extends IWebsocketsEventData = IWebsocketsEventData> {
|
|
9
|
+
event: IWebsocketsEvent<T>;
|
|
10
|
+
registry: IWebsocketsConnectionRegistry;
|
|
11
|
+
context: C;
|
|
12
|
+
response: IWebsocketsResponse;
|
|
13
|
+
getTenant: () => string | null;
|
|
14
|
+
getLocale: () => string | null;
|
|
15
|
+
getIdentity: () => IWebsocketsIdentity | null;
|
|
16
|
+
next: () => Promise<R>;
|
|
17
|
+
}
|
|
18
|
+
export interface IWebsocketsRoutePluginCallable<C extends Context = Context, R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse, T extends IWebsocketsEventData = IWebsocketsEventData> {
|
|
19
|
+
(params: IWebsocketsRoutePluginCallableParams<C, R, T>): Promise<R>;
|
|
20
|
+
}
|
|
21
|
+
export declare class WebsocketsRoutePlugin<C extends Context = Context, R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse, T extends IWebsocketsEventData = IWebsocketsEventData> extends Plugin {
|
|
22
|
+
static readonly type: string;
|
|
23
|
+
readonly route: WebsocketsEventRoute | string;
|
|
24
|
+
private readonly cb;
|
|
25
|
+
constructor(route: WebsocketsEventRoute | string, cb: IWebsocketsRoutePluginCallable<C, R, T>);
|
|
26
|
+
run(params: IWebsocketsRoutePluginCallableParams<C, R, T>): Promise<R>;
|
|
27
|
+
}
|
|
28
|
+
export declare const createWebsocketsRoutePlugin: <C extends Context = Context, R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse, T extends IWebsocketsEventData = IWebsocketsEventData>(route: WebsocketsEventRoute | string, cb: IWebsocketsRoutePluginCallable<C, R, T>) => WebsocketsRoutePlugin<C, R, T>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createWebsocketsRoutePlugin = exports.WebsocketsRoutePlugin = void 0;
|
|
7
|
+
var _plugins = require("@webiny/plugins");
|
|
8
|
+
class WebsocketsRoutePlugin extends _plugins.Plugin {
|
|
9
|
+
static type = "websockets.route";
|
|
10
|
+
constructor(route, cb) {
|
|
11
|
+
super();
|
|
12
|
+
this.route = route;
|
|
13
|
+
this.cb = cb;
|
|
14
|
+
}
|
|
15
|
+
async run(params) {
|
|
16
|
+
return this.cb(params);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.WebsocketsRoutePlugin = WebsocketsRoutePlugin;
|
|
20
|
+
const createWebsocketsRoutePlugin = (route, cb) => {
|
|
21
|
+
return new WebsocketsRoutePlugin(route, cb);
|
|
22
|
+
};
|
|
23
|
+
exports.createWebsocketsRoutePlugin = createWebsocketsRoutePlugin;
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=WebsocketsRoutePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_plugins","require","WebsocketsRoutePlugin","Plugin","type","constructor","route","cb","run","params","exports","createWebsocketsRoutePlugin"],"sources":["WebsocketsRoutePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { IWebsocketsEvent, IWebsocketsEventData, WebsocketsEventRoute } from \"~/handler/types\";\nimport { Context } from \"~/types\";\nimport { IWebsocketsRunnerResponse } from \"~/runner\";\nimport { IWebsocketsConnectionRegistry } from \"~/registry\";\nimport { IWebsocketsResponse } from \"~/response/abstractions/IWebsocketsResponse\";\nimport { IWebsocketsIdentity } from \"~/context\";\n\nexport interface IWebsocketsRoutePluginCallableParams<\n C extends Context = Context,\n R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse,\n T extends IWebsocketsEventData = IWebsocketsEventData\n> {\n event: IWebsocketsEvent<T>;\n registry: IWebsocketsConnectionRegistry;\n context: C;\n response: IWebsocketsResponse;\n getTenant: () => string | null;\n getLocale: () => string | null;\n getIdentity: () => IWebsocketsIdentity | null;\n next: () => Promise<R>;\n}\n\nexport interface IWebsocketsRoutePluginCallable<\n C extends Context = Context,\n R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse,\n T extends IWebsocketsEventData = IWebsocketsEventData\n> {\n (params: IWebsocketsRoutePluginCallableParams<C, R, T>): Promise<R>;\n}\n\nexport class WebsocketsRoutePlugin<\n C extends Context = Context,\n R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse,\n T extends IWebsocketsEventData = IWebsocketsEventData\n> extends Plugin {\n public static override readonly type: string = \"websockets.route\";\n\n public readonly route: WebsocketsEventRoute | string;\n private readonly cb: IWebsocketsRoutePluginCallable<C, R, T>;\n\n public constructor(\n route: WebsocketsEventRoute | string,\n cb: IWebsocketsRoutePluginCallable<C, R, T>\n ) {\n super();\n this.route = route;\n this.cb = cb;\n }\n\n public async run(params: IWebsocketsRoutePluginCallableParams<C, R, T>): Promise<R> {\n return this.cb(params);\n }\n}\n\nexport const createWebsocketsRoutePlugin = <\n C extends Context = Context,\n R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse,\n T extends IWebsocketsEventData = IWebsocketsEventData\n>(\n route: WebsocketsEventRoute | string,\n cb: IWebsocketsRoutePluginCallable<C, R, T>\n) => {\n return new WebsocketsRoutePlugin<C, R, T>(route, cb);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AA+BO,MAAMC,qBAAqB,SAIxBC,eAAM,CAAC;EACb,OAAgCC,IAAI,GAAW,kBAAkB;EAK1DC,WAAWA,CACdC,KAAoC,EACpCC,EAA2C,EAC7C;IACE,KAAK,CAAC,CAAC;IACP,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,EAAE,GAAGA,EAAE;EAChB;EAEA,MAAaC,GAAGA,CAACC,MAAqD,EAAc;IAChF,OAAO,IAAI,CAACF,EAAE,CAACE,MAAM,CAAC;EAC1B;AACJ;AAACC,OAAA,CAAAR,qBAAA,GAAAA,qBAAA;AAEM,MAAMS,2BAA2B,GAAGA,CAKvCL,KAAoC,EACpCC,EAA2C,KAC1C;EACD,OAAO,IAAIL,qBAAqB,CAAUI,KAAK,EAAEC,EAAE,CAAC;AACxD,CAAC;AAACG,OAAA,CAAAC,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { GenericRecord } from "@webiny/api/types";
|
|
2
|
+
import { Context } from "../../types";
|
|
3
|
+
export interface IWebsocketsActionPluginCallableParamsSend {
|
|
4
|
+
toConnection<T extends GenericRecord = GenericRecord>(connectionId: string, data: T): Promise<void>;
|
|
5
|
+
toTenant<T extends GenericRecord = GenericRecord>(tenant: string, data: T): Promise<void>;
|
|
6
|
+
toTenantAndLocale<T extends GenericRecord = GenericRecord>(tenant: string, locale: string, data: T): Promise<void>;
|
|
7
|
+
toIdentity<T extends GenericRecord = GenericRecord>(identity: string, data: T): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export interface IWebsocketsActionPluginCallableParamsRespondError<T extends GenericRecord = GenericRecord> {
|
|
10
|
+
message: string;
|
|
11
|
+
code: string;
|
|
12
|
+
data: T;
|
|
13
|
+
}
|
|
14
|
+
export interface IWebsocketsActionPluginCallableParamsRespondOkResponse<T extends GenericRecord = GenericRecord> {
|
|
15
|
+
data: T;
|
|
16
|
+
error?: never;
|
|
17
|
+
}
|
|
18
|
+
export interface IWebsocketsActionPluginCallableParamsRespondErrorResponse<T extends GenericRecord = GenericRecord> {
|
|
19
|
+
error: IWebsocketsActionPluginCallableParamsRespondError<T>;
|
|
20
|
+
data?: never;
|
|
21
|
+
}
|
|
22
|
+
export interface IWebsocketsActionPluginCallableParamsRespond {
|
|
23
|
+
ok<T extends GenericRecord = GenericRecord>(data: T): Promise<IWebsocketsActionPluginCallableParamsRespondOkResponse<T>>;
|
|
24
|
+
error<T extends GenericRecord = GenericRecord>(error: IWebsocketsActionPluginCallableParamsRespondError<T>): Promise<IWebsocketsActionPluginCallableParamsRespondErrorResponse<T>>;
|
|
25
|
+
}
|
|
26
|
+
export interface IWebsocketsActionPluginCallableParams<C extends Context = Context> {
|
|
27
|
+
context: C;
|
|
28
|
+
next(): Promise<void>;
|
|
29
|
+
send: IWebsocketsActionPluginCallableParamsSend;
|
|
30
|
+
respond: IWebsocketsActionPluginCallableParamsRespond;
|
|
31
|
+
}
|
|
32
|
+
export declare type WebsocketsActionPluginCallableResponse<T extends GenericRecord = GenericRecord> = IWebsocketsActionPluginCallableParamsRespondOkResponse<T> | IWebsocketsActionPluginCallableParamsRespondErrorResponse<T>;
|
|
33
|
+
export interface IWebsocketsActionPluginCallable<T extends GenericRecord = GenericRecord> {
|
|
34
|
+
(params: IWebsocketsActionPluginCallableParams): Promise<WebsocketsActionPluginCallableResponse<T>>;
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["IWebsocketsActionPlugin.ts"],"sourcesContent":["import { GenericRecord } from \"@webiny/api/types\";\nimport { Context } from \"~/types\";\n\nexport interface IWebsocketsActionPluginCallableParamsSend {\n toConnection<T extends GenericRecord = GenericRecord>(\n connectionId: string,\n data: T\n ): Promise<void>;\n toTenant<T extends GenericRecord = GenericRecord>(tenant: string, data: T): Promise<void>;\n toTenantAndLocale<T extends GenericRecord = GenericRecord>(\n tenant: string,\n locale: string,\n data: T\n ): Promise<void>;\n toIdentity<T extends GenericRecord = GenericRecord>(identity: string, data: T): Promise<void>;\n}\n\nexport interface IWebsocketsActionPluginCallableParamsRespondError<\n T extends GenericRecord = GenericRecord\n> {\n message: string;\n code: string;\n data: T;\n}\n\nexport interface IWebsocketsActionPluginCallableParamsRespondOkResponse<\n T extends GenericRecord = GenericRecord\n> {\n data: T;\n error?: never;\n}\n\nexport interface IWebsocketsActionPluginCallableParamsRespondErrorResponse<\n T extends GenericRecord = GenericRecord\n> {\n error: IWebsocketsActionPluginCallableParamsRespondError<T>;\n data?: never;\n}\n\nexport interface IWebsocketsActionPluginCallableParamsRespond {\n ok<T extends GenericRecord = GenericRecord>(\n data: T\n ): Promise<IWebsocketsActionPluginCallableParamsRespondOkResponse<T>>;\n error<T extends GenericRecord = GenericRecord>(\n error: IWebsocketsActionPluginCallableParamsRespondError<T>\n ): Promise<IWebsocketsActionPluginCallableParamsRespondErrorResponse<T>>;\n}\n\nexport interface IWebsocketsActionPluginCallableParams<C extends Context = Context> {\n context: C;\n next(): Promise<void>;\n send: IWebsocketsActionPluginCallableParamsSend;\n respond: IWebsocketsActionPluginCallableParamsRespond;\n}\n\nexport type WebsocketsActionPluginCallableResponse<T extends GenericRecord = GenericRecord> =\n | IWebsocketsActionPluginCallableParamsRespondOkResponse<T>\n | IWebsocketsActionPluginCallableParamsRespondErrorResponse<T>;\n\nexport interface IWebsocketsActionPluginCallable<T extends GenericRecord = GenericRecord> {\n (params: IWebsocketsActionPluginCallableParams): Promise<\n WebsocketsActionPluginCallableResponse<T>\n >;\n}\n"],"mappings":"","ignoreList":[]}
|
package/plugins/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _WebsocketsRoutePlugin = require("./WebsocketsRoutePlugin");
|
|
7
|
+
Object.keys(_WebsocketsRoutePlugin).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _WebsocketsRoutePlugin[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _WebsocketsRoutePlugin[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _WebsocketsActionPlugin = require("./WebsocketsActionPlugin");
|
|
18
|
+
Object.keys(_WebsocketsActionPlugin).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _WebsocketsActionPlugin[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _WebsocketsActionPlugin[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _IWebsocketsActionPlugin = require("./abstrations/IWebsocketsActionPlugin");
|
|
29
|
+
Object.keys(_IWebsocketsActionPlugin).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _IWebsocketsActionPlugin[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _IWebsocketsActionPlugin[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_WebsocketsRoutePlugin","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_WebsocketsActionPlugin","_IWebsocketsActionPlugin"],"sources":["index.ts"],"sourcesContent":["export * from \"./WebsocketsRoutePlugin\";\nexport * from \"./WebsocketsActionPlugin\";\nexport * from \"./abstrations/IWebsocketsActionPlugin\";\n"],"mappings":";;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,sBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,sBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,sBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,uBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,uBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,uBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,uBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,wBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,wBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,wBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,wBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData, IWebsocketsConnectionRegistryRegisterParams, IWebsocketsConnectionRegistryUnregisterParams } from "./abstractions/IWebsocketsConnectionRegistry";
|
|
2
|
+
import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
3
|
+
export declare class WebsocketsConnectionRegistry implements IWebsocketsConnectionRegistry {
|
|
4
|
+
private readonly entity;
|
|
5
|
+
constructor(documentClient: DynamoDBDocument);
|
|
6
|
+
register(params: IWebsocketsConnectionRegistryRegisterParams): Promise<IWebsocketsConnectionRegistryData>;
|
|
7
|
+
unregister(params: IWebsocketsConnectionRegistryUnregisterParams): Promise<void>;
|
|
8
|
+
private getViaConnection;
|
|
9
|
+
/**
|
|
10
|
+
* Uses Primary keys
|
|
11
|
+
*/
|
|
12
|
+
listViaConnections(connections: string[]): Promise<IWebsocketsConnectionRegistryData[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Uses GSI1 keys
|
|
15
|
+
*/
|
|
16
|
+
listViaIdentity(identity: string): Promise<IWebsocketsConnectionRegistryData[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Uses GSI2 keys
|
|
19
|
+
*/
|
|
20
|
+
listViaTenant(tenant: string, locale?: string): Promise<IWebsocketsConnectionRegistryData[]>;
|
|
21
|
+
listAll(): Promise<IWebsocketsConnectionRegistryData[]>;
|
|
22
|
+
private store;
|
|
23
|
+
}
|