@webiny/api-websockets 6.3.0-beta.4 → 6.4.0-beta.0
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/context/WebsocketsContext.js +57 -72
- package/context/WebsocketsContext.js.map +1 -1
- package/context/abstractions/IWebsocketsContext.js +0 -3
- package/context/index.js +12 -15
- package/context/index.js.map +1 -1
- package/exports/api.d.ts +1 -0
- package/exports/api.js +5 -0
- package/exports/api.js.map +1 -0
- package/features/WebsocketService/abstractions.js +2 -1
- package/features/WebsocketService/abstractions.js.map +1 -1
- package/features/WebsocketService/errors.js +28 -30
- package/features/WebsocketService/errors.js.map +1 -1
- package/features/WebsocketService/index.js +0 -2
- package/graphql/checkPermissions.js +5 -11
- package/graphql/checkPermissions.js.map +1 -1
- package/graphql/createResolvers.js +55 -76
- package/graphql/createResolvers.js.map +1 -1
- package/graphql/createTypeDefs.js +2 -3
- package/graphql/createTypeDefs.js.map +1 -1
- package/graphql/index.js +8 -7
- package/graphql/index.js.map +1 -1
- package/graphql/utils.js +8 -7
- package/graphql/utils.js.map +1 -1
- package/handler/handler.js +58 -66
- package/handler/handler.js.map +1 -1
- package/handler/headers.js +21 -28
- package/handler/headers.js.map +1 -1
- package/handler/register.js +9 -19
- package/handler/register.js.map +1 -1
- package/handler/types.js +11 -10
- package/handler/types.js.map +1 -1
- package/index.js +5 -3
- package/index.js.map +1 -1
- package/package.json +20 -20
- package/plugins/WebsocketsActionPlugin.js +14 -13
- package/plugins/WebsocketsActionPlugin.js.map +1 -1
- package/plugins/WebsocketsRoutePlugin.js +14 -13
- package/plugins/WebsocketsRoutePlugin.js.map +1 -1
- package/plugins/abstrations/IWebsocketsActionPlugin.js +0 -3
- package/plugins/index.js +0 -2
- package/registry/WebsocketsConnectionRegistry.js +107 -146
- package/registry/WebsocketsConnectionRegistry.js.map +1 -1
- package/registry/abstractions/IWebsocketsConnectionRegistry.js +0 -3
- package/registry/entity.js +44 -43
- package/registry/entity.js.map +1 -1
- package/registry/index.js +0 -2
- package/response/WebsocketsResponse.js +20 -19
- package/response/WebsocketsResponse.js.map +1 -1
- package/response/abstractions/IWebsocketsResponse.js +0 -3
- package/response/index.js +0 -2
- package/runner/WebsocketsRunner.js +137 -164
- package/runner/WebsocketsRunner.js.map +1 -1
- package/runner/abstractions/IWebsocketsRunner.js +0 -3
- package/runner/index.js +0 -2
- package/runner/routes/connect.js +30 -40
- package/runner/routes/connect.js.map +1 -1
- package/runner/routes/default.js +16 -22
- package/runner/routes/default.js.map +1 -1
- package/runner/routes/disconnect.js +10 -13
- package/runner/routes/disconnect.js.map +1 -1
- package/runner/routes/index.js +6 -3
- package/runner/routes/index.js.map +1 -1
- package/transport/WebsocketsTransport.js +36 -39
- package/transport/WebsocketsTransport.js.map +1 -1
- package/transport/abstractions/IWebsocketsTransport.js +0 -3
- package/transport/index.js +0 -2
- package/types.js +0 -3
- package/utils/middleware.js +9 -14
- package/utils/middleware.js.map +1 -1
- package/validator/WebsocketsEventValidator.js +55 -63
- package/validator/WebsocketsEventValidator.js.map +1 -1
- package/validator/abstractions/IWebsocketsEventValidator.js +0 -3
- package/validator/index.js +0 -2
- package/context/abstractions/IWebsocketsContext.js.map +0 -1
- package/features/WebsocketService/index.js.map +0 -1
- package/plugins/abstrations/IWebsocketsActionPlugin.js.map +0 -1
- package/plugins/index.js.map +0 -1
- package/registry/abstractions/IWebsocketsConnectionRegistry.js.map +0 -1
- package/registry/index.js.map +0 -1
- package/response/abstractions/IWebsocketsResponse.js.map +0 -1
- package/response/index.js.map +0 -1
- package/runner/abstractions/IWebsocketsRunner.js.map +0 -1
- package/runner/index.js.map +0 -1
- package/transport/abstractions/IWebsocketsTransport.js.map +0 -1
- package/transport/index.js.map +0 -1
- package/types.js.map +0 -1
- package/validator/abstractions/IWebsocketsEventValidator.js.map +0 -1
- package/validator/index.js.map +0 -1
package/graphql/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
2
|
import { createTypeDefs } from "./createTypeDefs.js";
|
|
3
3
|
import { createResolvers } from "./createResolvers.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
const createWebsocketsGraphQL = ()=>{
|
|
5
|
+
const plugin = new GraphQLSchemaPlugin({
|
|
6
|
+
typeDefs: createTypeDefs(),
|
|
7
|
+
resolvers: createResolvers()
|
|
8
|
+
});
|
|
9
|
+
plugin.name = "websockets.graphql";
|
|
10
|
+
return plugin;
|
|
11
11
|
};
|
|
12
|
+
export { createWebsocketsGraphQL };
|
|
12
13
|
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/graphql/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"graphql/index.js","sources":["../../src/graphql/index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { createTypeDefs } from \"./createTypeDefs.js\";\nimport { createResolvers } from \"./createResolvers.js\";\n\nexport const createWebsocketsGraphQL = () => {\n const plugin = new GraphQLSchemaPlugin({\n typeDefs: createTypeDefs(),\n resolvers: createResolvers()\n });\n\n plugin.name = \"websockets.graphql\";\n\n return plugin;\n};\n"],"names":["createWebsocketsGraphQL","plugin","GraphQLSchemaPlugin","createTypeDefs","createResolvers"],"mappings":";;;AAIO,MAAMA,0BAA0B;IACnC,MAAMC,SAAS,IAAIC,oBAAoB;QACnC,UAAUC;QACV,WAAWC;IACf;IAEAH,OAAO,IAAI,GAAG;IAEd,OAAOA;AACX"}
|
package/graphql/utils.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ErrorResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
const emptyResolver = ()=>({});
|
|
3
|
+
const resolve = async (fn)=>{
|
|
4
|
+
try {
|
|
5
|
+
return new Response(await fn());
|
|
6
|
+
} catch (ex) {
|
|
7
|
+
return new ErrorResponse(ex);
|
|
8
|
+
}
|
|
9
9
|
};
|
|
10
|
+
export { emptyResolver, resolve };
|
|
10
11
|
|
|
11
12
|
//# sourceMappingURL=utils.js.map
|
package/graphql/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"graphql/utils.js","sources":["../../src/graphql/utils.ts"],"sourcesContent":["import { ErrorResponse, Response } from \"@webiny/handler-graphql\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response<T>(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n"],"names":["emptyResolver","resolve","fn","Response","ex","ErrorResponse"],"mappings":";AAEO,MAAMA,gBAAgB,IAAO,EAAC;AAM9B,MAAMC,UAAU,OAAgBC;IACnC,IAAI;QACA,OAAO,IAAIC,SAAY,MAAMD;IACjC,EAAE,OAAOE,IAAI;QACT,OAAO,IAAIC,cAAcD;IAC7B;AACJ"}
|
package/handler/handler.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createHandler
|
|
1
|
+
import { createHandler } from "@webiny/handler";
|
|
2
2
|
import { registerDefaultPlugins } from "@webiny/handler-aws/plugins/index.js";
|
|
3
3
|
import { execute } from "@webiny/handler-aws/execute.js";
|
|
4
4
|
import { PluginsContainer } from "@webiny/plugins";
|
|
@@ -8,74 +8,66 @@ import { WebsocketsResponse } from "../response/index.js";
|
|
|
8
8
|
import { WebsocketsRunner } from "../runner/index.js";
|
|
9
9
|
import { getEventValues } from "./headers.js";
|
|
10
10
|
const url = "/webiny-websockets";
|
|
11
|
-
const createPluginsContainer = plugins
|
|
12
|
-
|
|
13
|
-
return plugins;
|
|
14
|
-
}
|
|
15
|
-
return new PluginsContainer(plugins || []);
|
|
11
|
+
const createPluginsContainer = (plugins)=>{
|
|
12
|
+
if (plugins instanceof PluginsContainer) return plugins;
|
|
13
|
+
return new PluginsContainer(plugins || []);
|
|
16
14
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
15
|
+
const handler_createHandler = (params)=>{
|
|
16
|
+
const plugins = createPluginsContainer(params.plugins);
|
|
17
|
+
plugins.register(...createWebsocketsRoutePlugins());
|
|
18
|
+
return async (event)=>{
|
|
19
|
+
const app = createHandler({
|
|
20
|
+
...params,
|
|
21
|
+
plugins,
|
|
22
|
+
options: {
|
|
23
|
+
logger: true === params.debug,
|
|
24
|
+
...params.options || {}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
registerDefaultPlugins(app.webiny);
|
|
28
|
+
await app.register(async (wsApp)=>{
|
|
29
|
+
wsApp.setErrorHandler(async (error, _, reply)=>{
|
|
30
|
+
app.__webiny_raw_result = {
|
|
31
|
+
error: {
|
|
32
|
+
message: error.message,
|
|
33
|
+
code: error.code,
|
|
34
|
+
data: error.data
|
|
35
|
+
},
|
|
36
|
+
statusCode: 200
|
|
37
|
+
};
|
|
38
|
+
return reply.send({});
|
|
39
|
+
});
|
|
40
|
+
wsApp.post(url, async (_, reply)=>{
|
|
41
|
+
const { validator, response } = params;
|
|
42
|
+
const context = app.webiny;
|
|
43
|
+
const handler = new WebsocketsRunner(context, context.websockets.registry, validator || new WebsocketsEventValidator(), response || new WebsocketsResponse());
|
|
44
|
+
const result = await handler.run(event);
|
|
45
|
+
app.__webiny_raw_result = {
|
|
46
|
+
statusCode: result.statusCode,
|
|
47
|
+
headers: {
|
|
48
|
+
"sec-websocket-protocol": "webiny-ws-v1"
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return reply.send();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
const { tenant, endpoint, token } = getEventValues(event);
|
|
55
|
+
const headers = {
|
|
56
|
+
Authorization: `Bearer ${token}`,
|
|
57
|
+
["x-tenant"]: tenant,
|
|
58
|
+
["x-webiny-cms-endpoint"]: endpoint,
|
|
59
|
+
...event.headers
|
|
39
60
|
};
|
|
40
|
-
return
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const handler = new WebsocketsRunner(context, context.websockets.registry, validator || new WebsocketsEventValidator(), response || new WebsocketsResponse());
|
|
49
|
-
const result = await handler.run(event);
|
|
50
|
-
app.__webiny_raw_result = {
|
|
51
|
-
statusCode: result.statusCode,
|
|
52
|
-
headers: {
|
|
53
|
-
"sec-websocket-protocol": "webiny-ws-v1"
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
return reply.send();
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
const {
|
|
60
|
-
tenant,
|
|
61
|
-
endpoint,
|
|
62
|
-
token
|
|
63
|
-
} = getEventValues(event);
|
|
64
|
-
const headers = {
|
|
65
|
-
Authorization: `Bearer ${token}`,
|
|
66
|
-
["x-tenant"]: tenant,
|
|
67
|
-
["x-webiny-cms-endpoint"]: endpoint,
|
|
68
|
-
...event.headers
|
|
61
|
+
return execute({
|
|
62
|
+
app,
|
|
63
|
+
url: url,
|
|
64
|
+
payload: {
|
|
65
|
+
...event,
|
|
66
|
+
headers
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
69
|
};
|
|
70
|
-
return execute({
|
|
71
|
-
app,
|
|
72
|
-
url,
|
|
73
|
-
payload: {
|
|
74
|
-
...event,
|
|
75
|
-
headers
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
};
|
|
79
70
|
};
|
|
71
|
+
export { handler_createHandler as createHandler };
|
|
80
72
|
|
|
81
73
|
//# sourceMappingURL=handler.js.map
|
package/handler/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"handler/handler.js","sources":["../../src/handler/handler.ts"],"sourcesContent":["import type WebinyError from \"@webiny/error\";\nimport { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createWebsocketsRoutePlugins } from \"~/runner/routes/index.js\";\nimport { WebsocketsEventValidator } from \"~/validator/index.js\";\nimport { WebsocketsResponse } from \"~/response/index.js\";\nimport type { Context } from \"~/types.js\";\nimport { WebsocketsRunner } from \"~/runner/index.js\";\nimport type { PluginCollection } from \"@webiny/plugins/types.js\";\nimport type { HandlerCallable, HandlerParams } from \"./types.js\";\nimport { getEventValues } from \"./headers.js\";\n\nconst url = \"/webiny-websockets\";\n\nconst createPluginsContainer = (\n plugins?: PluginsContainer | PluginCollection\n): PluginsContainer => {\n if (plugins instanceof PluginsContainer) {\n return plugins;\n }\n return new PluginsContainer(plugins || []);\n};\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n const plugins = createPluginsContainer(params.plugins);\n plugins.register(...createWebsocketsRoutePlugins());\n\n return async event => {\n const app = createBaseHandler({\n ...params,\n plugins,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n await app.register(async wsApp => {\n wsApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n statusCode: 200\n };\n return reply.send({});\n });\n\n wsApp.post(url, async (_, reply) => {\n const { validator, response } = params;\n const context = app.webiny as Context;\n const handler = new WebsocketsRunner(\n context,\n context.websockets.registry,\n validator || new WebsocketsEventValidator(),\n response || new WebsocketsResponse()\n );\n\n const result = await handler.run(event);\n\n app.__webiny_raw_result = {\n statusCode: result.statusCode,\n headers: {\n \"sec-websocket-protocol\": \"webiny-ws-v1\"\n }\n };\n\n return reply.send();\n });\n });\n\n const { tenant, endpoint, token } = getEventValues(event);\n\n const headers = {\n Authorization: `Bearer ${token}`,\n [\"x-tenant\"]: tenant,\n [\"x-webiny-cms-endpoint\"]: endpoint,\n ...event.headers\n };\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers\n }\n });\n };\n};\n"],"names":["url","createPluginsContainer","plugins","PluginsContainer","createHandler","params","createWebsocketsRoutePlugins","event","app","createBaseHandler","registerDefaultPlugins","wsApp","error","_","reply","validator","response","context","handler","WebsocketsRunner","WebsocketsEventValidator","WebsocketsResponse","result","tenant","endpoint","token","getEventValues","headers","execute"],"mappings":";;;;;;;;;AAcA,MAAMA,MAAM;AAEZ,MAAMC,yBAAyB,CAC3BC;IAEA,IAAIA,mBAAmBC,kBACnB,OAAOD;IAEX,OAAO,IAAIC,iBAAiBD,WAAW,EAAE;AAC7C;AAEO,MAAME,wBAAgB,CAACC;IAC1B,MAAMH,UAAUD,uBAAuBI,OAAO,OAAO;IACrDH,QAAQ,QAAQ,IAAII;IAEpB,OAAO,OAAMC;QACT,MAAMC,MAAMC,cAAkB;YAC1B,GAAGJ,MAAM;YACTH;YACA,SAAS;gBACL,QAAQG,AAAiB,SAAjBA,OAAO,KAAK;gBACpB,GAAIA,OAAO,OAAO,IAAI,CAAC,CAAC;YAC5B;QACJ;QAEAK,uBAAuBF,IAAI,MAAM;QAEjC,MAAMA,IAAI,QAAQ,CAAC,OAAMG;YACrBA,MAAM,eAAe,CAAc,OAAOC,OAAOC,GAAGC;gBAChDN,IAAI,mBAAmB,GAAG;oBACtB,OAAO;wBACH,SAASI,MAAM,OAAO;wBACtB,MAAMA,MAAM,IAAI;wBAChB,MAAMA,MAAM,IAAI;oBACpB;oBACA,YAAY;gBAChB;gBACA,OAAOE,MAAM,IAAI,CAAC,CAAC;YACvB;YAEAH,MAAM,IAAI,CAACX,KAAK,OAAOa,GAAGC;gBACtB,MAAM,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGX;gBAChC,MAAMY,UAAUT,IAAI,MAAM;gBAC1B,MAAMU,UAAU,IAAIC,iBAChBF,SACAA,QAAQ,UAAU,CAAC,QAAQ,EAC3BF,aAAa,IAAIK,4BACjBJ,YAAY,IAAIK;gBAGpB,MAAMC,SAAS,MAAMJ,QAAQ,GAAG,CAACX;gBAEjCC,IAAI,mBAAmB,GAAG;oBACtB,YAAYc,OAAO,UAAU;oBAC7B,SAAS;wBACL,0BAA0B;oBAC9B;gBACJ;gBAEA,OAAOR,MAAM,IAAI;YACrB;QACJ;QAEA,MAAM,EAAES,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGC,eAAenB;QAEnD,MAAMoB,UAAU;YACZ,eAAe,CAAC,OAAO,EAAEF,OAAO;YAChC,CAAC,WAAW,EAAEF;YACd,CAAC,wBAAwB,EAAEC;YAC3B,GAAGjB,MAAM,OAAO;QACpB;QAEA,OAAOqB,QAAQ;YACXpB;YACAR,KAAAA;YACA,SAAS;gBACL,GAAGO,KAAK;gBACRoB;YACJ;QACJ;IACJ;AACJ"}
|
package/handler/headers.js
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
|
-
const getEventBody = event
|
|
2
|
-
|
|
3
|
-
return
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} else if (typeof event.body === "string") {
|
|
7
|
-
try {
|
|
8
|
-
return JSON.parse(event.body);
|
|
1
|
+
const getEventBody = (event)=>{
|
|
2
|
+
if (!event.body) return {};
|
|
3
|
+
if ("object" == typeof event.body) return event.body;
|
|
4
|
+
if ("string" == typeof event.body) try {
|
|
5
|
+
return JSON.parse(event.body);
|
|
9
6
|
} catch (ex) {
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
console.log(ex.message);
|
|
8
|
+
return {};
|
|
12
9
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return {};
|
|
16
|
-
};
|
|
17
|
-
const getToken = (body, event) => {
|
|
18
|
-
return body?.token || event.queryStringParameters?.token || null;
|
|
19
|
-
};
|
|
20
|
-
const getTenant = (body, event) => {
|
|
21
|
-
return body?.tenant || event.queryStringParameters?.tenant || "root";
|
|
10
|
+
console.log("Unexpected event.body type:", typeof event.body);
|
|
11
|
+
return {};
|
|
22
12
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
tenant,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
13
|
+
const getToken = (body, event)=>body?.token || event.queryStringParameters?.token || null;
|
|
14
|
+
const getTenant = (body, event)=>body?.tenant || event.queryStringParameters?.tenant || "root";
|
|
15
|
+
const getEventValues = (event)=>{
|
|
16
|
+
const body = getEventBody(event);
|
|
17
|
+
const token = getToken(body, event);
|
|
18
|
+
const tenant = getTenant(body, event);
|
|
19
|
+
return {
|
|
20
|
+
tenant,
|
|
21
|
+
token,
|
|
22
|
+
endpoint: "manage"
|
|
23
|
+
};
|
|
32
24
|
};
|
|
25
|
+
export { getEventValues };
|
|
33
26
|
|
|
34
27
|
//# sourceMappingURL=headers.js.map
|
package/handler/headers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"handler/headers.js","sources":["../../src/handler/headers.ts"],"sourcesContent":["import type { IWebsocketsEventData, IWebsocketsIncomingEvent } from \"~/handler/types.js\";\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\nexport const getEventValues = (event: IWebsocketsIncomingEvent) => {\n const body = getEventBody(event);\n\n const token = getToken(body, event);\n const tenant = getTenant(body, event);\n return {\n tenant,\n token,\n endpoint: \"manage\"\n };\n};\n"],"names":["getEventBody","event","JSON","ex","console","getToken","body","getTenant","getEventValues","token","tenant"],"mappings":"AAEA,MAAMA,eAAe,CAACC;IAClB,IAAI,CAACA,MAAM,IAAI,EACX,OAAO,CAAC;IACL,IAAI,AAAsB,YAAtB,OAAOA,MAAM,IAAI,EACxB,OAAOA,MAAM,IAAI;IACd,IAAI,AAAsB,YAAtB,OAAOA,MAAM,IAAI,EACxB,IAAI;QACA,OAAOC,KAAK,KAAK,CAACD,MAAM,IAAI;IAChC,EAAE,OAAOE,IAAI;QACTC,QAAQ,GAAG,CAACD,GAAG,OAAO;QACtB,OAAO,CAAC;IACZ;IAEJC,QAAQ,GAAG,CAAC,+BAA+B,OAAOH,MAAM,IAAI;IAC5D,OAAO,CAAC;AACZ;AAEA,MAAMI,WAAW,CAACC,MAA4BL,QACnCK,MAAM,SAASL,MAAM,qBAAqB,EAAE,SAAS;AAGhE,MAAMM,YAAY,CAACD,MAA4BL,QACpCK,MAAM,UAAUL,MAAM,qBAAqB,EAAE,UAAU;AAG3D,MAAMO,iBAAiB,CAACP;IAC3B,MAAMK,OAAON,aAAaC;IAE1B,MAAMQ,QAAQJ,SAASC,MAAML;IAC7B,MAAMS,SAASH,UAAUD,MAAML;IAC/B,OAAO;QACHS;QACAD;QACA,UAAU;IACd;AACJ"}
|
package/handler/register.js
CHANGED
|
@@ -1,25 +1,15 @@
|
|
|
1
1
|
import { registry } from "@webiny/handler-aws/registry.js";
|
|
2
2
|
import { createSourceHandler } from "@webiny/handler-aws";
|
|
3
3
|
const handler = createSourceHandler({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
handle: async ({
|
|
14
|
-
params,
|
|
15
|
-
event,
|
|
16
|
-
context
|
|
17
|
-
}) => {
|
|
18
|
-
const {
|
|
19
|
-
createHandler
|
|
20
|
-
} = await import(/* webpackChunkName: "SocketsHandler" */"./handler.js");
|
|
21
|
-
return createHandler(params)(event, context);
|
|
22
|
-
}
|
|
4
|
+
name: "handler-webiny-websockets",
|
|
5
|
+
canUse: (event)=>{
|
|
6
|
+
const { routeKey, connectionId, eventType } = event.requestContext || {};
|
|
7
|
+
return !!routeKey && !!connectionId && !!eventType;
|
|
8
|
+
},
|
|
9
|
+
handle: async ({ params, event, context })=>{
|
|
10
|
+
const { createHandler } = await import("./handler.js");
|
|
11
|
+
return createHandler(params)(event, context);
|
|
12
|
+
}
|
|
23
13
|
});
|
|
24
14
|
registry.register(handler);
|
|
25
15
|
|
package/handler/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"handler/register.js","sources":["../../src/handler/register.ts"],"sourcesContent":["import { registry } from \"@webiny/handler-aws/registry.js\";\nimport { createSourceHandler } from \"@webiny/handler-aws\";\nimport type { HandlerParams, IWebsocketsIncomingEvent } from \"./types.js\";\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.js\"\n );\n return createHandler(params)(event, context);\n }\n});\n\nregistry.register(handler);\n"],"names":["handler","createSourceHandler","event","routeKey","connectionId","eventType","params","context","createHandler","registry"],"mappings":";;AAIA,MAAMA,UAAUC,oBAA6D;IACzE,MAAM;IACN,QAAQC,CAAAA;QACJ,MAAM,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,SAAS,EAAE,GAAGH,MAAM,cAAc,IAAI,CAAC;QACvE,OAAO,CAAC,CAACC,YAAY,CAAC,CAACC,gBAAgB,CAAC,CAACC;IAC7C;IACA,QAAQ,OAAO,EAAEC,MAAM,EAAEJ,KAAK,EAAEK,OAAO,EAAE;QACrC,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAM,MAAM,CAAN;QAIhC,OAAOA,cAAcF,QAAQJ,OAAOK;IACxC;AACJ;AAEAE,SAAS,QAAQ,CAACT"}
|
package/handler/types.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
var types_WebsocketsEventRoute = /*#__PURE__*/ function(WebsocketsEventRoute) {
|
|
2
|
+
WebsocketsEventRoute["connect"] = "$connect";
|
|
3
|
+
WebsocketsEventRoute["disconnect"] = "$disconnect";
|
|
4
|
+
WebsocketsEventRoute["default"] = "$default";
|
|
5
|
+
return WebsocketsEventRoute;
|
|
6
6
|
}({});
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
var types_WebsocketsEventRequestContextEventType = /*#__PURE__*/ function(WebsocketsEventRequestContextEventType) {
|
|
8
|
+
WebsocketsEventRequestContextEventType["message"] = "MESSAGE";
|
|
9
|
+
WebsocketsEventRequestContextEventType["connect"] = "CONNECT";
|
|
10
|
+
WebsocketsEventRequestContextEventType["disconnect"] = "DISCONNECT";
|
|
11
|
+
return WebsocketsEventRequestContextEventType;
|
|
12
12
|
}({});
|
|
13
|
+
export { types_WebsocketsEventRequestContextEventType as WebsocketsEventRequestContextEventType, types_WebsocketsEventRoute as WebsocketsEventRoute };
|
|
13
14
|
|
|
14
15
|
//# sourceMappingURL=types.js.map
|
package/handler/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"handler/types.js","sources":["../../src/handler/types.ts"],"sourcesContent":["import type { HandlerFactoryParams } from \"@webiny/handler-aws/types.js\";\nimport type { IWebsocketsEventValidator } from \"~/validator/index.js\";\nimport type { IWebsocketsResponse } from \"~/response/index.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { 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 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-endpoint\"]?: string;\n}\n\nexport interface IWebsocketsEventQueryStringParameters {\n tenant?: 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"],"names":["WebsocketsEventRoute","WebsocketsEventRequestContextEventType"],"mappings":"AAmBO,IAAKA,6BAAoBA,WAAAA,GAAAA,SAApBA,oBAAoB;;;;WAApBA;;AAcL,IAAKC,+CAAsCA,WAAAA,GAAAA,SAAtCA,sCAAsC;;;;WAAtCA"}
|
package/index.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import "./handler/register.js";
|
|
2
2
|
import { createWebsocketsContext } from "./context/index.js";
|
|
3
3
|
import { createWebsocketsGraphQL } from "./graphql/index.js";
|
|
4
|
-
export const createWebsockets = () => {
|
|
5
|
-
return [createWebsocketsContext(), createWebsocketsGraphQL()];
|
|
6
|
-
};
|
|
7
4
|
export * from "./validator/index.js";
|
|
8
5
|
export * from "./transport/index.js";
|
|
9
6
|
export * from "./runner/index.js";
|
|
10
7
|
export * from "./registry/index.js";
|
|
11
8
|
export * from "./context/index.js";
|
|
12
9
|
export * from "./plugins/index.js";
|
|
10
|
+
const createWebsockets = ()=>[
|
|
11
|
+
createWebsocketsContext(),
|
|
12
|
+
createWebsocketsGraphQL()
|
|
13
|
+
];
|
|
14
|
+
export { createWebsockets };
|
|
13
15
|
|
|
14
16
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import \"./handler/register.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { createWebsocketsContext } from \"~/context/index.js\";\nimport { createWebsocketsGraphQL } from \"~/graphql/index.js\";\n\nexport const createWebsockets = (): Plugin[] => {\n return [createWebsocketsContext(), createWebsocketsGraphQL()];\n};\n\nexport * from \"./validator/index.js\";\nexport * from \"./transport/index.js\";\nexport * from \"./runner/index.js\";\nexport * from \"./registry/index.js\";\nexport * from \"./context/index.js\";\n\nexport * from \"./plugins/index.js\";\nexport type * from \"./types.js\";\n"],"names":["createWebsockets","createWebsocketsContext","createWebsocketsGraphQL"],"mappings":";;;;;;;;;AAKO,MAAMA,mBAAmB,IACrB;QAACC;QAA2BC;KAA0B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-websockets",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,33 +16,33 @@
|
|
|
16
16
|
},
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@webiny/api": "6.
|
|
20
|
-
"@webiny/api-core": "6.
|
|
21
|
-
"@webiny/aws-sdk": "6.
|
|
22
|
-
"@webiny/db-dynamodb": "6.
|
|
23
|
-
"@webiny/error": "6.
|
|
24
|
-
"@webiny/feature": "6.
|
|
25
|
-
"@webiny/handler": "6.
|
|
26
|
-
"@webiny/handler-aws": "6.
|
|
27
|
-
"@webiny/plugins": "6.
|
|
28
|
-
"@webiny/utils": "6.
|
|
19
|
+
"@webiny/api": "6.4.0-beta.0",
|
|
20
|
+
"@webiny/api-core": "6.4.0-beta.0",
|
|
21
|
+
"@webiny/aws-sdk": "6.4.0-beta.0",
|
|
22
|
+
"@webiny/db-dynamodb": "6.4.0-beta.0",
|
|
23
|
+
"@webiny/error": "6.4.0-beta.0",
|
|
24
|
+
"@webiny/feature": "6.4.0-beta.0",
|
|
25
|
+
"@webiny/handler": "6.4.0-beta.0",
|
|
26
|
+
"@webiny/handler-aws": "6.4.0-beta.0",
|
|
27
|
+
"@webiny/plugins": "6.4.0-beta.0",
|
|
28
|
+
"@webiny/utils": "6.4.0-beta.0",
|
|
29
29
|
"type-fest": "5.6.0",
|
|
30
|
-
"zod": "4.3
|
|
30
|
+
"zod": "4.4.3"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@webiny/api-headless-cms": "6.
|
|
34
|
-
"@webiny/build-tools": "6.
|
|
35
|
-
"@webiny/handler-db": "6.
|
|
36
|
-
"@webiny/handler-graphql": "6.
|
|
37
|
-
"@webiny/project-utils": "6.
|
|
38
|
-
"graphql": "16.
|
|
33
|
+
"@webiny/api-headless-cms": "6.4.0-beta.0",
|
|
34
|
+
"@webiny/build-tools": "6.4.0-beta.0",
|
|
35
|
+
"@webiny/handler-db": "6.4.0-beta.0",
|
|
36
|
+
"@webiny/handler-graphql": "6.4.0-beta.0",
|
|
37
|
+
"@webiny/project-utils": "6.4.0-beta.0",
|
|
38
|
+
"graphql": "16.14.0",
|
|
39
39
|
"rimraf": "6.1.3",
|
|
40
40
|
"typescript": "6.0.3",
|
|
41
|
-
"vitest": "4.1.
|
|
41
|
+
"vitest": "4.1.6"
|
|
42
42
|
},
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public",
|
|
45
45
|
"directory": "dist"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce"
|
|
48
48
|
}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Plugin } from "@webiny/plugins";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
class WebsocketsActionPlugin extends Plugin {
|
|
3
|
+
static{
|
|
4
|
+
this.type = "websockets.route.action";
|
|
5
|
+
}
|
|
6
|
+
constructor(action, cb){
|
|
7
|
+
super();
|
|
8
|
+
this.action = action;
|
|
9
|
+
this.cb = cb;
|
|
10
|
+
}
|
|
11
|
+
run(params) {
|
|
12
|
+
return this.cb(params);
|
|
13
|
+
}
|
|
12
14
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
15
|
+
const createWebsocketsAction = (action, cb)=>new WebsocketsActionPlugin(action, cb);
|
|
16
|
+
export { WebsocketsActionPlugin, createWebsocketsAction };
|
|
16
17
|
|
|
17
18
|
//# sourceMappingURL=WebsocketsActionPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"plugins/WebsocketsActionPlugin.js","sources":["../../src/plugins/WebsocketsActionPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type {\n IWebsocketsActionPluginCallable,\n IWebsocketsActionPluginCallableParams,\n WebsocketsActionPluginCallableResponse\n} from \"./abstrations/IWebsocketsActionPlugin.js\";\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"],"names":["WebsocketsActionPlugin","Plugin","action","cb","params","createWebsocketsAction"],"mappings":";AAQO,MAAMA,+BAAwEC;;aACjD,IAAI,GAAW;;IAK/C,YAAmBC,MAAc,EAAEC,EAAsC,CAAE;QACvE,KAAK;QACL,IAAI,CAAC,MAAM,GAAGD;QACd,IAAI,CAAC,EAAE,GAAGC;IACd;IAEO,IACHC,MAA6C,EACK;QAClD,OAAO,IAAI,CAAC,EAAE,CAACA;IACnB;AACJ;AAEO,MAAMC,yBAAyB,CAClCH,QACAC,KAEO,IAAIH,uBAA0BE,QAAQC"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Plugin } from "@webiny/plugins";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
class WebsocketsRoutePlugin extends Plugin {
|
|
3
|
+
static{
|
|
4
|
+
this.type = "websockets.route";
|
|
5
|
+
}
|
|
6
|
+
constructor(route, cb){
|
|
7
|
+
super();
|
|
8
|
+
this.route = route;
|
|
9
|
+
this.cb = cb;
|
|
10
|
+
}
|
|
11
|
+
async run(params) {
|
|
12
|
+
return this.cb(params);
|
|
13
|
+
}
|
|
12
14
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
15
|
+
const createWebsocketsRoutePlugin = (route, cb)=>new WebsocketsRoutePlugin(route, cb);
|
|
16
|
+
export { WebsocketsRoutePlugin, createWebsocketsRoutePlugin };
|
|
16
17
|
|
|
17
18
|
//# sourceMappingURL=WebsocketsRoutePlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"plugins/WebsocketsRoutePlugin.js","sources":["../../src/plugins/WebsocketsRoutePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type {\n IWebsocketsEvent,\n IWebsocketsEventData,\n WebsocketsEventRoute\n} from \"~/handler/types.js\";\nimport type { Context } from \"~/types.js\";\nimport type { IWebsocketsRunnerResponse } from \"~/runner/index.js\";\nimport type { IWebsocketsConnectionRegistry } from \"~/registry/index.js\";\nimport type { IWebsocketsResponse } from \"~/response/abstractions/IWebsocketsResponse.js\";\nimport type { IWebsocketsIdentity } from \"~/context/index.js\";\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 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"],"names":["WebsocketsRoutePlugin","Plugin","route","cb","params","createWebsocketsRoutePlugin"],"mappings":";AAkCO,MAAMA,8BAIHC;;aAC0B,IAAI,GAAW;;IAK/C,YACIC,KAAoC,EACpCC,EAA2C,CAC7C;QACE,KAAK;QACL,IAAI,CAAC,KAAK,GAAGD;QACb,IAAI,CAAC,EAAE,GAAGC;IACd;IAEA,MAAa,IAAIC,MAAqD,EAAc;QAChF,OAAO,IAAI,CAAC,EAAE,CAACA;IACnB;AACJ;AAEO,MAAMC,8BAA8B,CAKvCH,OACAC,KAEO,IAAIH,sBAA+BE,OAAOC"}
|
package/plugins/index.js
CHANGED