@webiny/api-websockets 6.0.0-alpha.0 → 6.0.0-alpha.1

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.
Files changed (50) hide show
  1. package/context/WebsocketsContext.d.ts +4 -4
  2. package/context/WebsocketsContext.js.map +1 -1
  3. package/context/abstractions/IWebsocketsContext.d.ts +4 -4
  4. package/context/abstractions/IWebsocketsContext.js.map +1 -1
  5. package/context/index.d.ts +1 -1
  6. package/context/index.js.map +1 -1
  7. package/graphql/checkPermissions.d.ts +1 -1
  8. package/graphql/checkPermissions.js.map +1 -1
  9. package/graphql/createResolvers.d.ts +2 -2
  10. package/graphql/createResolvers.js.map +1 -1
  11. package/handler/handler.d.ts +1 -1
  12. package/handler/handler.js.map +1 -1
  13. package/handler/headers.d.ts +1 -1
  14. package/handler/headers.js.map +1 -1
  15. package/handler/register.js.map +1 -1
  16. package/index.d.ts +1 -1
  17. package/index.js.map +1 -1
  18. package/package.json +18 -18
  19. package/plugins/WebsocketsActionPlugin.d.ts +2 -2
  20. package/plugins/WebsocketsActionPlugin.js.map +1 -1
  21. package/plugins/WebsocketsRoutePlugin.d.ts +6 -6
  22. package/plugins/WebsocketsRoutePlugin.js.map +1 -1
  23. package/plugins/abstrations/IWebsocketsActionPlugin.d.ts +2 -2
  24. package/plugins/abstrations/IWebsocketsActionPlugin.js.map +1 -1
  25. package/registry/WebsocketsConnectionRegistry.d.ts +2 -2
  26. package/registry/WebsocketsConnectionRegistry.js.map +1 -1
  27. package/registry/abstractions/IWebsocketsConnectionRegistry.d.ts +1 -1
  28. package/registry/abstractions/IWebsocketsConnectionRegistry.js.map +1 -1
  29. package/registry/entity.d.ts +1 -1
  30. package/registry/entity.js.map +1 -1
  31. package/response/WebsocketsResponse.d.ts +1 -1
  32. package/response/WebsocketsResponse.js.map +1 -1
  33. package/response/abstractions/IWebsocketsResponse.d.ts +1 -1
  34. package/response/abstractions/IWebsocketsResponse.js.map +1 -1
  35. package/runner/WebsocketsRunner.d.ts +6 -6
  36. package/runner/WebsocketsRunner.js.map +1 -1
  37. package/runner/abstractions/IWebsocketsRunner.d.ts +2 -2
  38. package/runner/abstractions/IWebsocketsRunner.js.map +1 -1
  39. package/transport/WebsocketsTransport.d.ts +2 -2
  40. package/transport/WebsocketsTransport.js.map +1 -1
  41. package/transport/abstractions/IWebsocketsTransport.d.ts +2 -2
  42. package/transport/abstractions/IWebsocketsTransport.js.map +1 -1
  43. package/types.d.ts +4 -4
  44. package/types.js.map +1 -1
  45. package/utils/middleware.d.ts +1 -1
  46. package/utils/middleware.js.map +1 -1
  47. package/validator/WebsocketsEventValidator.d.ts +2 -2
  48. package/validator/WebsocketsEventValidator.js.map +1 -1
  49. package/validator/abstractions/IWebsocketsEventValidator.d.ts +1 -1
  50. package/validator/abstractions/IWebsocketsEventValidator.js.map +1 -1
@@ -1,7 +1,7 @@
1
- import { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from "../registry";
2
- import { IWebsocketsContextObject, IWebsocketsContextDisconnectConnectionsParams, IWebsocketsContextListConnectionsParams, IWebsocketsIdentity } from "./abstractions/IWebsocketsContext";
3
- import { IWebsocketsTransport, IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from "../transport";
4
- import { GenericRecord } from "@webiny/api/types";
1
+ import type { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from "../registry";
2
+ import type { IWebsocketsContextObject, IWebsocketsContextDisconnectConnectionsParams, IWebsocketsContextListConnectionsParams, IWebsocketsIdentity } from "./abstractions/IWebsocketsContext";
3
+ import type { IWebsocketsTransport, IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from "../transport";
4
+ import type { GenericRecord } from "@webiny/api/types";
5
5
  export declare class WebsocketsContext implements IWebsocketsContextObject {
6
6
  readonly registry: IWebsocketsConnectionRegistry;
7
7
  private readonly transport;
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","WebsocketsContext","constructor","registry","transport","send","identity","data","connections","listConnections","where","identityId","id","sendToConnections","params","listViaIdentity","listViaConnections","tenant","listViaTenant","locale","listAll","disconnect","notify","connection","unregister","action","ex","WebinyError","error","exports"],"sources":["WebsocketsContext.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from \"~/registry\";\nimport {\n IWebsocketsContextObject,\n IWebsocketsContextDisconnectConnectionsParams,\n IWebsocketsContextListConnectionsParams,\n IWebsocketsIdentity\n} from \"./abstractions/IWebsocketsContext\";\nimport {\n IWebsocketsTransport,\n IWebsocketsTransportSendConnection,\n IWebsocketsTransportSendData\n} from \"~/transport\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nexport class WebsocketsContext implements IWebsocketsContextObject {\n public readonly registry: IWebsocketsConnectionRegistry;\n private readonly transport: IWebsocketsTransport;\n\n constructor(registry: IWebsocketsConnectionRegistry, transport: IWebsocketsTransport) {\n this.registry = registry;\n this.transport = transport;\n }\n\n public async send<T extends GenericRecord = GenericRecord>(\n identity: Pick<IWebsocketsIdentity, \"id\">,\n data: IWebsocketsTransportSendData<T>\n ): Promise<void> {\n const connections = await this.listConnections({\n where: {\n identityId: identity.id\n }\n });\n return this.transport.send<T>(connections, data);\n }\n\n public async sendToConnections<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void> {\n return this.transport.send<T>(connections, data);\n }\n\n public async listConnections(\n params?: IWebsocketsContextListConnectionsParams\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n const where = params?.where || {};\n if (where.identityId) {\n return await this.registry.listViaIdentity(where.identityId);\n } else if (where.connections) {\n return await this.registry.listViaConnections(where.connections);\n } else if (where.tenant) {\n return await this.registry.listViaTenant(where.tenant, where.locale);\n }\n return await this.registry.listAll();\n }\n\n public async disconnect(\n params?: IWebsocketsContextDisconnectConnectionsParams,\n notify = true\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n const connections = await this.listConnections(params);\n\n for (const connection of connections) {\n try {\n await this.registry.unregister(connection);\n } catch {\n // do nothing\n }\n }\n if (notify) {\n try {\n await this.transport.send(connections, {\n action: \"forcedDisconnect\"\n });\n } catch (ex) {\n throw new WebinyError(\n \"Failed to notify the clients about the forced disconnect.\",\n \"FORCED_DISCONNECT_NOTIFICATION_ERROR\",\n {\n connections,\n error: ex\n }\n );\n }\n }\n try {\n await this.transport.disconnect(connections);\n } catch (ex) {\n throw new WebinyError(\n \"Failed to forcefully disconnect the Websocket clients.\",\n \"FORCED_DISCONNECT_ERROR\",\n {\n connections,\n error: ex\n }\n );\n }\n\n return connections;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAeO,MAAMC,iBAAiB,CAAqC;EAI/DC,WAAWA,CAACC,QAAuC,EAAEC,SAA+B,EAAE;IAClF,IAAI,CAACD,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAaC,IAAIA,CACbC,QAAyC,EACzCC,IAAqC,EACxB;IACb,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACC,eAAe,CAAC;MAC3CC,KAAK,EAAE;QACHC,UAAU,EAAEL,QAAQ,CAACM;MACzB;IACJ,CAAC,CAAC;IACF,OAAO,IAAI,CAACR,SAAS,CAACC,IAAI,CAAIG,WAAW,EAAED,IAAI,CAAC;EACpD;EAEA,MAAaM,iBAAiBA,CAC1BL,WAAiD,EACjDD,IAAqC,EACxB;IACb,OAAO,IAAI,CAACH,SAAS,CAACC,IAAI,CAAIG,WAAW,EAAED,IAAI,CAAC;EACpD;EAEA,MAAaE,eAAeA,CACxBK,MAAgD,EACJ;IAC5C,MAAMJ,KAAK,GAAGI,MAAM,EAAEJ,KAAK,IAAI,CAAC,CAAC;IACjC,IAAIA,KAAK,CAACC,UAAU,EAAE;MAClB,OAAO,MAAM,IAAI,CAACR,QAAQ,CAACY,eAAe,CAACL,KAAK,CAACC,UAAU,CAAC;IAChE,CAAC,MAAM,IAAID,KAAK,CAACF,WAAW,EAAE;MAC1B,OAAO,MAAM,IAAI,CAACL,QAAQ,CAACa,kBAAkB,CAACN,KAAK,CAACF,WAAW,CAAC;IACpE,CAAC,MAAM,IAAIE,KAAK,CAACO,MAAM,EAAE;MACrB,OAAO,MAAM,IAAI,CAACd,QAAQ,CAACe,aAAa,CAACR,KAAK,CAACO,MAAM,EAAEP,KAAK,CAACS,MAAM,CAAC;IACxE;IACA,OAAO,MAAM,IAAI,CAAChB,QAAQ,CAACiB,OAAO,CAAC,CAAC;EACxC;EAEA,MAAaC,UAAUA,CACnBP,MAAsD,EACtDQ,MAAM,GAAG,IAAI,EAC+B;IAC5C,MAAMd,WAAW,GAAG,MAAM,IAAI,CAACC,eAAe,CAACK,MAAM,CAAC;IAEtD,KAAK,MAAMS,UAAU,IAAIf,WAAW,EAAE;MAClC,IAAI;QACA,MAAM,IAAI,CAACL,QAAQ,CAACqB,UAAU,CAACD,UAAU,CAAC;MAC9C,CAAC,CAAC,MAAM;QACJ;MAAA;IAER;IACA,IAAID,MAAM,EAAE;MACR,IAAI;QACA,MAAM,IAAI,CAAClB,SAAS,CAACC,IAAI,CAACG,WAAW,EAAE;UACnCiB,MAAM,EAAE;QACZ,CAAC,CAAC;MACN,CAAC,CAAC,OAAOC,EAAE,EAAE;QACT,MAAM,IAAIC,cAAW,CACjB,2DAA2D,EAC3D,sCAAsC,EACtC;UACInB,WAAW;UACXoB,KAAK,EAAEF;QACX,CACJ,CAAC;MACL;IACJ;IACA,IAAI;MACA,MAAM,IAAI,CAACtB,SAAS,CAACiB,UAAU,CAACb,WAAW,CAAC;IAChD,CAAC,CAAC,OAAOkB,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjB,wDAAwD,EACxD,yBAAyB,EACzB;QACInB,WAAW;QACXoB,KAAK,EAAEF;MACX,CACJ,CAAC;IACL;IAEA,OAAOlB,WAAW;EACtB;AACJ;AAACqB,OAAA,CAAA5B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","WebsocketsContext","constructor","registry","transport","send","identity","data","connections","listConnections","where","identityId","id","sendToConnections","params","listViaIdentity","listViaConnections","tenant","listViaTenant","locale","listAll","disconnect","notify","connection","unregister","action","ex","WebinyError","error","exports"],"sources":["WebsocketsContext.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from \"~/registry\";\nimport type {\n IWebsocketsContextObject,\n IWebsocketsContextDisconnectConnectionsParams,\n IWebsocketsContextListConnectionsParams,\n IWebsocketsIdentity\n} from \"./abstractions/IWebsocketsContext\";\nimport type {\n IWebsocketsTransport,\n IWebsocketsTransportSendConnection,\n IWebsocketsTransportSendData\n} from \"~/transport\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nexport class WebsocketsContext implements IWebsocketsContextObject {\n public readonly registry: IWebsocketsConnectionRegistry;\n private readonly transport: IWebsocketsTransport;\n\n constructor(registry: IWebsocketsConnectionRegistry, transport: IWebsocketsTransport) {\n this.registry = registry;\n this.transport = transport;\n }\n\n public async send<T extends GenericRecord = GenericRecord>(\n identity: Pick<IWebsocketsIdentity, \"id\">,\n data: IWebsocketsTransportSendData<T>\n ): Promise<void> {\n const connections = await this.listConnections({\n where: {\n identityId: identity.id\n }\n });\n return this.transport.send<T>(connections, data);\n }\n\n public async sendToConnections<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void> {\n return this.transport.send<T>(connections, data);\n }\n\n public async listConnections(\n params?: IWebsocketsContextListConnectionsParams\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n const where = params?.where || {};\n if (where.identityId) {\n return await this.registry.listViaIdentity(where.identityId);\n } else if (where.connections) {\n return await this.registry.listViaConnections(where.connections);\n } else if (where.tenant) {\n return await this.registry.listViaTenant(where.tenant, where.locale);\n }\n return await this.registry.listAll();\n }\n\n public async disconnect(\n params?: IWebsocketsContextDisconnectConnectionsParams,\n notify = true\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n const connections = await this.listConnections(params);\n\n for (const connection of connections) {\n try {\n await this.registry.unregister(connection);\n } catch {\n // do nothing\n }\n }\n if (notify) {\n try {\n await this.transport.send(connections, {\n action: \"forcedDisconnect\"\n });\n } catch (ex) {\n throw new WebinyError(\n \"Failed to notify the clients about the forced disconnect.\",\n \"FORCED_DISCONNECT_NOTIFICATION_ERROR\",\n {\n connections,\n error: ex\n }\n );\n }\n }\n try {\n await this.transport.disconnect(connections);\n } catch (ex) {\n throw new WebinyError(\n \"Failed to forcefully disconnect the Websocket clients.\",\n \"FORCED_DISCONNECT_ERROR\",\n {\n connections,\n error: ex\n }\n );\n }\n\n return connections;\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAeO,MAAMC,iBAAiB,CAAqC;EAI/DC,WAAWA,CAACC,QAAuC,EAAEC,SAA+B,EAAE;IAClF,IAAI,CAACD,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAaC,IAAIA,CACbC,QAAyC,EACzCC,IAAqC,EACxB;IACb,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACC,eAAe,CAAC;MAC3CC,KAAK,EAAE;QACHC,UAAU,EAAEL,QAAQ,CAACM;MACzB;IACJ,CAAC,CAAC;IACF,OAAO,IAAI,CAACR,SAAS,CAACC,IAAI,CAAIG,WAAW,EAAED,IAAI,CAAC;EACpD;EAEA,MAAaM,iBAAiBA,CAC1BL,WAAiD,EACjDD,IAAqC,EACxB;IACb,OAAO,IAAI,CAACH,SAAS,CAACC,IAAI,CAAIG,WAAW,EAAED,IAAI,CAAC;EACpD;EAEA,MAAaE,eAAeA,CACxBK,MAAgD,EACJ;IAC5C,MAAMJ,KAAK,GAAGI,MAAM,EAAEJ,KAAK,IAAI,CAAC,CAAC;IACjC,IAAIA,KAAK,CAACC,UAAU,EAAE;MAClB,OAAO,MAAM,IAAI,CAACR,QAAQ,CAACY,eAAe,CAACL,KAAK,CAACC,UAAU,CAAC;IAChE,CAAC,MAAM,IAAID,KAAK,CAACF,WAAW,EAAE;MAC1B,OAAO,MAAM,IAAI,CAACL,QAAQ,CAACa,kBAAkB,CAACN,KAAK,CAACF,WAAW,CAAC;IACpE,CAAC,MAAM,IAAIE,KAAK,CAACO,MAAM,EAAE;MACrB,OAAO,MAAM,IAAI,CAACd,QAAQ,CAACe,aAAa,CAACR,KAAK,CAACO,MAAM,EAAEP,KAAK,CAACS,MAAM,CAAC;IACxE;IACA,OAAO,MAAM,IAAI,CAAChB,QAAQ,CAACiB,OAAO,CAAC,CAAC;EACxC;EAEA,MAAaC,UAAUA,CACnBP,MAAsD,EACtDQ,MAAM,GAAG,IAAI,EAC+B;IAC5C,MAAMd,WAAW,GAAG,MAAM,IAAI,CAACC,eAAe,CAACK,MAAM,CAAC;IAEtD,KAAK,MAAMS,UAAU,IAAIf,WAAW,EAAE;MAClC,IAAI;QACA,MAAM,IAAI,CAACL,QAAQ,CAACqB,UAAU,CAACD,UAAU,CAAC;MAC9C,CAAC,CAAC,MAAM;QACJ;MAAA;IAER;IACA,IAAID,MAAM,EAAE;MACR,IAAI;QACA,MAAM,IAAI,CAAClB,SAAS,CAACC,IAAI,CAACG,WAAW,EAAE;UACnCiB,MAAM,EAAE;QACZ,CAAC,CAAC;MACN,CAAC,CAAC,OAAOC,EAAE,EAAE;QACT,MAAM,IAAIC,cAAW,CACjB,2DAA2D,EAC3D,sCAAsC,EACtC;UACInB,WAAW;UACXoB,KAAK,EAAEF;QACX,CACJ,CAAC;MACL;IACJ;IACA,IAAI;MACA,MAAM,IAAI,CAACtB,SAAS,CAACiB,UAAU,CAACb,WAAW,CAAC;IAChD,CAAC,CAAC,OAAOkB,EAAE,EAAE;MACT,MAAM,IAAIC,cAAW,CACjB,wDAAwD,EACxD,yBAAyB,EACzB;QACInB,WAAW;QACXoB,KAAK,EAAEF;MACX,CACJ,CAAC;IACL;IAEA,OAAOlB,WAAW;EACtB;AACJ;AAACqB,OAAA,CAAA5B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from "../../registry";
2
- import { IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from "../../transport";
3
- import { SecurityIdentity } from "@webiny/api-security/types";
4
- import { GenericRecord } from "@webiny/api/types";
1
+ import type { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from "../../registry";
2
+ import type { IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from "../../transport";
3
+ import type { SecurityIdentity } from "@webiny/api-security/types";
4
+ import type { GenericRecord } from "@webiny/api/types";
5
5
  export type IWebsocketsIdentity = Pick<SecurityIdentity, "id" | "displayName" | "type">;
6
6
  export interface IWebsocketsContextListConnectionsParamsWhere {
7
7
  identityId?: string;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IWebsocketsContext.ts"],"sourcesContent":["import { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from \"~/registry\";\nimport { IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from \"~/transport\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nexport type IWebsocketsIdentity = Pick<SecurityIdentity, \"id\" | \"displayName\" | \"type\">;\n\nexport interface IWebsocketsContextListConnectionsParamsWhere {\n identityId?: string;\n tenant?: string;\n locale?: string;\n connections?: string[];\n}\n\nexport interface IWebsocketsContextListConnectionsParams {\n where?: IWebsocketsContextListConnectionsParamsWhere;\n}\n\nexport type IWebsocketsContextDisconnectConnectionsParams = IWebsocketsContextListConnectionsParams;\n\nexport interface IWebsocketsContextObject {\n readonly registry: IWebsocketsConnectionRegistry;\n\n send<T extends GenericRecord = GenericRecord>(\n identity: Pick<IWebsocketsIdentity, \"id\">,\n data: IWebsocketsTransportSendData<T>\n ): Promise<void>;\n sendToConnections<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void>;\n listConnections(\n params?: IWebsocketsContextListConnectionsParams\n ): Promise<IWebsocketsConnectionRegistryData[]>;\n disconnect(\n params?: IWebsocketsContextDisconnectConnectionsParams,\n notify?: boolean\n ): Promise<IWebsocketsConnectionRegistryData[]>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IWebsocketsContext.ts"],"sourcesContent":["import type { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData } from \"~/registry\";\nimport type { IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from \"~/transport\";\nimport type { SecurityIdentity } from \"@webiny/api-security/types\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nexport type IWebsocketsIdentity = Pick<SecurityIdentity, \"id\" | \"displayName\" | \"type\">;\n\nexport interface IWebsocketsContextListConnectionsParamsWhere {\n identityId?: string;\n tenant?: string;\n locale?: string;\n connections?: string[];\n}\n\nexport interface IWebsocketsContextListConnectionsParams {\n where?: IWebsocketsContextListConnectionsParamsWhere;\n}\n\nexport type IWebsocketsContextDisconnectConnectionsParams = IWebsocketsContextListConnectionsParams;\n\nexport interface IWebsocketsContextObject {\n readonly registry: IWebsocketsConnectionRegistry;\n\n send<T extends GenericRecord = GenericRecord>(\n identity: Pick<IWebsocketsIdentity, \"id\">,\n data: IWebsocketsTransportSendData<T>\n ): Promise<void>;\n sendToConnections<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void>;\n listConnections(\n params?: IWebsocketsContextListConnectionsParams\n ): Promise<IWebsocketsConnectionRegistryData[]>;\n disconnect(\n params?: IWebsocketsContextDisconnectConnectionsParams,\n notify?: boolean\n ): Promise<IWebsocketsConnectionRegistryData[]>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { ContextPlugin } from "@webiny/handler";
2
- import { Context } from "../types";
2
+ import type { Context } from "../types";
3
3
  export * from "./WebsocketsContext";
4
4
  export * from "./abstractions/IWebsocketsContext";
5
5
  export declare const createWebsocketsContext: () => ContextPlugin<Context>;
@@ -1 +1 @@
1
- {"version":3,"names":["_handler","require","_WebsocketsContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_registry","_transport","_IWebsocketsContext","createWebsocketsContext","plugin","ContextPlugin","context","documentClient","db","driver","registry","WebsocketsConnectionRegistry","transport","WebsocketsTransport","websockets","WebsocketsContext","name"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/handler\";\nimport { Context } from \"~/types\";\nimport { WebsocketsContext } from \"./WebsocketsContext\";\nimport { WebsocketsConnectionRegistry } from \"~/registry\";\nimport { WebsocketsTransport } from \"~/transport\";\n\nexport * from \"./WebsocketsContext\";\nexport * from \"./abstractions/IWebsocketsContext\";\n\nexport const createWebsocketsContext = () => {\n const plugin = new ContextPlugin<Context>(async context => {\n /**\n * TODO Find a better way to send the documentClient to the registry.\n */\n // @ts-expect-error\n const documentClient = context.db.driver.documentClient;\n const registry = new WebsocketsConnectionRegistry(documentClient);\n const transport = new WebsocketsTransport();\n context.websockets = new WebsocketsContext(registry, transport);\n });\n\n plugin.name = \"websockets.context\";\n\n return plugin;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AAIAE,MAAA,CAAAC,IAAA,CAAAF,kBAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,kBAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,kBAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAHA,IAAAS,SAAA,GAAAd,OAAA;AACA,IAAAe,UAAA,GAAAf,OAAA;AAGA,IAAAgB,mBAAA,GAAAhB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAa,mBAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,mBAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,mBAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AAEO,MAAMY,uBAAuB,GAAGA,CAAA,KAAM;EACzC,MAAMC,MAAM,GAAG,IAAIC,sBAAa,CAAU,MAAMC,OAAO,IAAI;IACvD;AACR;AACA;IACQ;IACA,MAAMC,cAAc,GAAGD,OAAO,CAACE,EAAE,CAACC,MAAM,CAACF,cAAc;IACvD,MAAMG,QAAQ,GAAG,IAAIC,sCAA4B,CAACJ,cAAc,CAAC;IACjE,MAAMK,SAAS,GAAG,IAAIC,8BAAmB,CAAC,CAAC;IAC3CP,OAAO,CAACQ,UAAU,GAAG,IAAIC,oCAAiB,CAACL,QAAQ,EAAEE,SAAS,CAAC;EACnE,CAAC,CAAC;EAEFR,MAAM,CAACY,IAAI,GAAG,oBAAoB;EAElC,OAAOZ,MAAM;AACjB,CAAC;AAACR,OAAA,CAAAO,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_handler","require","_WebsocketsContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_registry","_transport","_IWebsocketsContext","createWebsocketsContext","plugin","ContextPlugin","context","documentClient","db","driver","registry","WebsocketsConnectionRegistry","transport","WebsocketsTransport","websockets","WebsocketsContext","name"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/handler\";\nimport type { Context } from \"~/types\";\nimport { WebsocketsContext } from \"./WebsocketsContext\";\nimport { WebsocketsConnectionRegistry } from \"~/registry\";\nimport { WebsocketsTransport } from \"~/transport\";\n\nexport * from \"./WebsocketsContext\";\nexport * from \"./abstractions/IWebsocketsContext\";\n\nexport const createWebsocketsContext = () => {\n const plugin = new ContextPlugin<Context>(async context => {\n /**\n * TODO Find a better way to send the documentClient to the registry.\n */\n // @ts-expect-error\n const documentClient = context.db.driver.documentClient;\n const registry = new WebsocketsConnectionRegistry(documentClient);\n const transport = new WebsocketsTransport();\n context.websockets = new WebsocketsContext(registry, transport);\n });\n\n plugin.name = \"websockets.context\";\n\n return plugin;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AAIAE,MAAA,CAAAC,IAAA,CAAAF,kBAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,kBAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,kBAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAHA,IAAAS,SAAA,GAAAd,OAAA;AACA,IAAAe,UAAA,GAAAf,OAAA;AAGA,IAAAgB,mBAAA,GAAAhB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAa,mBAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,mBAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,mBAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AAEO,MAAMY,uBAAuB,GAAGA,CAAA,KAAM;EACzC,MAAMC,MAAM,GAAG,IAAIC,sBAAa,CAAU,MAAMC,OAAO,IAAI;IACvD;AACR;AACA;IACQ;IACA,MAAMC,cAAc,GAAGD,OAAO,CAACE,EAAE,CAACC,MAAM,CAACF,cAAc;IACvD,MAAMG,QAAQ,GAAG,IAAIC,sCAA4B,CAACJ,cAAc,CAAC;IACjE,MAAMK,SAAS,GAAG,IAAIC,8BAAmB,CAAC,CAAC;IAC3CP,OAAO,CAACQ,UAAU,GAAG,IAAIC,oCAAiB,CAACL,QAAQ,EAAEE,SAAS,CAAC;EACnE,CAAC,CAAC;EAEFR,MAAM,CAACY,IAAI,GAAG,oBAAoB;EAElC,OAAOZ,MAAM;AACjB,CAAC;AAACR,OAAA,CAAAO,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Context } from "../types";
1
+ import type { Context } from "../types";
2
2
  /**
3
3
  * Simple permission check. Only full access can access the websockets API via GraphQL - ({name: "*"})
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"names":["_apiSecurity","require","checkPermissions","context","permissions","security","getPermissions","length","NotAuthorizedError","exports"],"sources":["checkPermissions.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { Context, WebsocketsPermission } from \"~/types\";\n\n/**\n * Simple permission check. Only full access can access the websockets API via GraphQL - ({name: \"*\"})\n *\n * @throws\n */\nexport const checkPermissions = async (context: Context): Promise<void> => {\n const permissions = await context.security.getPermissions<WebsocketsPermission>(\"websockets\");\n\n if (permissions.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG,MAAOC,OAAgB,IAAoB;EACvE,MAAMC,WAAW,GAAG,MAAMD,OAAO,CAACE,QAAQ,CAACC,cAAc,CAAuB,YAAY,CAAC;EAE7F,IAAIF,WAAW,CAACG,MAAM,KAAK,CAAC,EAAE;IAC1B,MAAM,IAAIC,+BAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAACC,OAAA,CAAAP,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_apiSecurity","require","checkPermissions","context","permissions","security","getPermissions","length","NotAuthorizedError","exports"],"sources":["checkPermissions.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport type { Context, WebsocketsPermission } from \"~/types\";\n\n/**\n * Simple permission check. Only full access can access the websockets API via GraphQL - ({name: \"*\"})\n *\n * @throws\n */\nexport const checkPermissions = async (context: Context): Promise<void> => {\n const permissions = await context.security.getPermissions<WebsocketsPermission>(\"websockets\");\n\n if (permissions.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG,MAAOC,OAAgB,IAAoB;EACvE,MAAMC,WAAW,GAAG,MAAMD,OAAO,CAACE,QAAQ,CAACC,cAAc,CAAuB,YAAY,CAAC;EAE7F,IAAIF,WAAW,CAACG,MAAM,KAAK,CAAC,EAAE;IAC1B,MAAM,IAAIC,+BAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAACC,OAAA,CAAAP,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { Resolvers } from "@webiny/handler-graphql/types";
2
- import { Context } from "../types";
1
+ import type { Resolvers } from "@webiny/handler-graphql/types";
2
+ import type { Context } from "../types";
3
3
  export interface IWebsocketsMutationDisconnectConnectionsArgs {
4
4
  connections: string[];
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_checkPermissions","createResolvers","Query","websockets","emptyResolver","Mutation","WebsocketsQuery","listConnections","_","args","context","resolve","checkPermissions","WebsocketsMutation","disconnect","where","connections","disconnectIdentity","identityId","disconnectTenant","tenant","locale","disconnectAll","__","exports"],"sources":["createResolvers.ts"],"sourcesContent":["import { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { Context } from \"~/types\";\nimport { emptyResolver, resolve } from \"./utils\";\nimport { IWebsocketsContextListConnectionsParams } from \"~/context\";\nimport { IWebsocketsConnectionRegistryData } from \"~/registry\";\nimport { checkPermissions } from \"~/graphql/checkPermissions\";\n\nexport interface IWebsocketsMutationDisconnectConnectionsArgs {\n connections: string[];\n}\n\nexport interface IWebsocketsMutationDisconnectIdentityArgs {\n identityId: string;\n}\n\nexport interface IWebsocketsMutationDisconnectTenantArgs {\n tenant: string;\n locale?: string;\n}\n\nexport const createResolvers = (): Resolvers<Context> => {\n return {\n Query: {\n websockets: emptyResolver\n },\n Mutation: {\n websockets: emptyResolver\n },\n WebsocketsQuery: {\n listConnections: async (_, args: IWebsocketsContextListConnectionsParams, context) => {\n return resolve(async () => {\n await checkPermissions(context);\n return await context.websockets.listConnections(args);\n });\n }\n },\n WebsocketsMutation: {\n disconnect: async (_, args: IWebsocketsMutationDisconnectConnectionsArgs, context) => {\n return resolve(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect({\n where: {\n connections: args.connections\n }\n });\n });\n },\n disconnectIdentity: async (\n _,\n args: IWebsocketsMutationDisconnectIdentityArgs,\n context\n ) => {\n return resolve<IWebsocketsConnectionRegistryData[]>(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect({\n where: {\n identityId: args.identityId\n }\n });\n });\n },\n disconnectTenant: async (_, args: IWebsocketsMutationDisconnectTenantArgs, context) => {\n return resolve<IWebsocketsConnectionRegistryData[]>(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect({\n where: {\n tenant: args.tenant,\n locale: args.locale\n }\n });\n });\n },\n disconnectAll: async (_, __, context) => {\n return resolve<IWebsocketsConnectionRegistryData[]>(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect();\n });\n }\n }\n };\n};\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,iBAAA,GAAAD,OAAA;AAeO,MAAME,eAAe,GAAGA,CAAA,KAA0B;EACrD,OAAO;IACHC,KAAK,EAAE;MACHC,UAAU,EAAEC;IAChB,CAAC;IACDC,QAAQ,EAAE;MACNF,UAAU,EAAEC;IAChB,CAAC;IACDE,eAAe,EAAE;MACbC,eAAe,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAA6C,EAAEC,OAAO,KAAK;QAClF,OAAO,IAAAC,cAAO,EAAC,YAAY;UACvB,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACI,eAAe,CAACE,IAAI,CAAC;QACzD,CAAC,CAAC;MACN;IACJ,CAAC;IACDI,kBAAkB,EAAE;MAChBC,UAAU,EAAE,MAAAA,CAAON,CAAC,EAAEC,IAAkD,EAAEC,OAAO,KAAK;QAClF,OAAO,IAAAC,cAAO,EAAC,YAAY;UACvB,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC;YACvCC,KAAK,EAAE;cACHC,WAAW,EAAEP,IAAI,CAACO;YACtB;UACJ,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC;MACDC,kBAAkB,EAAE,MAAAA,CAChBT,CAAC,EACDC,IAA+C,EAC/CC,OAAO,KACN;QACD,OAAO,IAAAC,cAAO,EAAsC,YAAY;UAC5D,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC;YACvCC,KAAK,EAAE;cACHG,UAAU,EAAET,IAAI,CAACS;YACrB;UACJ,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC;MACDC,gBAAgB,EAAE,MAAAA,CAAOX,CAAC,EAAEC,IAA6C,EAAEC,OAAO,KAAK;QACnF,OAAO,IAAAC,cAAO,EAAsC,YAAY;UAC5D,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC;YACvCC,KAAK,EAAE;cACHK,MAAM,EAAEX,IAAI,CAACW,MAAM;cACnBC,MAAM,EAAEZ,IAAI,CAACY;YACjB;UACJ,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC;MACDC,aAAa,EAAE,MAAAA,CAAOd,CAAC,EAAEe,EAAE,EAAEb,OAAO,KAAK;QACrC,OAAO,IAAAC,cAAO,EAAsC,YAAY;UAC5D,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC;MACN;IACJ;EACJ,CAAC;AACL,CAAC;AAACU,OAAA,CAAAvB,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","_checkPermissions","createResolvers","Query","websockets","emptyResolver","Mutation","WebsocketsQuery","listConnections","_","args","context","resolve","checkPermissions","WebsocketsMutation","disconnect","where","connections","disconnectIdentity","identityId","disconnectTenant","tenant","locale","disconnectAll","__","exports"],"sources":["createResolvers.ts"],"sourcesContent":["import type { Resolvers } from \"@webiny/handler-graphql/types\";\nimport type { Context } from \"~/types\";\nimport { emptyResolver, resolve } from \"./utils\";\nimport type { IWebsocketsContextListConnectionsParams } from \"~/context\";\nimport type { IWebsocketsConnectionRegistryData } from \"~/registry\";\nimport { checkPermissions } from \"~/graphql/checkPermissions\";\n\nexport interface IWebsocketsMutationDisconnectConnectionsArgs {\n connections: string[];\n}\n\nexport interface IWebsocketsMutationDisconnectIdentityArgs {\n identityId: string;\n}\n\nexport interface IWebsocketsMutationDisconnectTenantArgs {\n tenant: string;\n locale?: string;\n}\n\nexport const createResolvers = (): Resolvers<Context> => {\n return {\n Query: {\n websockets: emptyResolver\n },\n Mutation: {\n websockets: emptyResolver\n },\n WebsocketsQuery: {\n listConnections: async (_, args: IWebsocketsContextListConnectionsParams, context) => {\n return resolve(async () => {\n await checkPermissions(context);\n return await context.websockets.listConnections(args);\n });\n }\n },\n WebsocketsMutation: {\n disconnect: async (_, args: IWebsocketsMutationDisconnectConnectionsArgs, context) => {\n return resolve(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect({\n where: {\n connections: args.connections\n }\n });\n });\n },\n disconnectIdentity: async (\n _,\n args: IWebsocketsMutationDisconnectIdentityArgs,\n context\n ) => {\n return resolve<IWebsocketsConnectionRegistryData[]>(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect({\n where: {\n identityId: args.identityId\n }\n });\n });\n },\n disconnectTenant: async (_, args: IWebsocketsMutationDisconnectTenantArgs, context) => {\n return resolve<IWebsocketsConnectionRegistryData[]>(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect({\n where: {\n tenant: args.tenant,\n locale: args.locale\n }\n });\n });\n },\n disconnectAll: async (_, __, context) => {\n return resolve<IWebsocketsConnectionRegistryData[]>(async () => {\n await checkPermissions(context);\n return await context.websockets.disconnect();\n });\n }\n }\n };\n};\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,iBAAA,GAAAD,OAAA;AAeO,MAAME,eAAe,GAAGA,CAAA,KAA0B;EACrD,OAAO;IACHC,KAAK,EAAE;MACHC,UAAU,EAAEC;IAChB,CAAC;IACDC,QAAQ,EAAE;MACNF,UAAU,EAAEC;IAChB,CAAC;IACDE,eAAe,EAAE;MACbC,eAAe,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAA6C,EAAEC,OAAO,KAAK;QAClF,OAAO,IAAAC,cAAO,EAAC,YAAY;UACvB,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACI,eAAe,CAACE,IAAI,CAAC;QACzD,CAAC,CAAC;MACN;IACJ,CAAC;IACDI,kBAAkB,EAAE;MAChBC,UAAU,EAAE,MAAAA,CAAON,CAAC,EAAEC,IAAkD,EAAEC,OAAO,KAAK;QAClF,OAAO,IAAAC,cAAO,EAAC,YAAY;UACvB,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC;YACvCC,KAAK,EAAE;cACHC,WAAW,EAAEP,IAAI,CAACO;YACtB;UACJ,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC;MACDC,kBAAkB,EAAE,MAAAA,CAChBT,CAAC,EACDC,IAA+C,EAC/CC,OAAO,KACN;QACD,OAAO,IAAAC,cAAO,EAAsC,YAAY;UAC5D,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC;YACvCC,KAAK,EAAE;cACHG,UAAU,EAAET,IAAI,CAACS;YACrB;UACJ,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC;MACDC,gBAAgB,EAAE,MAAAA,CAAOX,CAAC,EAAEC,IAA6C,EAAEC,OAAO,KAAK;QACnF,OAAO,IAAAC,cAAO,EAAsC,YAAY;UAC5D,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC;YACvCC,KAAK,EAAE;cACHK,MAAM,EAAEX,IAAI,CAACW,MAAM;cACnBC,MAAM,EAAEZ,IAAI,CAACY;YACjB;UACJ,CAAC,CAAC;QACN,CAAC,CAAC;MACN,CAAC;MACDC,aAAa,EAAE,MAAAA,CAAOd,CAAC,EAAEe,EAAE,EAAEb,OAAO,KAAK;QACrC,OAAO,IAAAC,cAAO,EAAsC,YAAY;UAC5D,MAAM,IAAAC,kCAAgB,EAACF,OAAO,CAAC;UAC/B,OAAO,MAAMA,OAAO,CAACP,UAAU,CAACW,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC;MACN;IACJ;EACJ,CAAC;AACL,CAAC;AAACU,OAAA,CAAAvB,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import { HandlerCallable, HandlerParams } from "./types";
1
+ import type { HandlerCallable, HandlerParams } from "./types";
2
2
  export declare const createHandler: (params: HandlerParams) => HandlerCallable;
@@ -1 +1 @@
1
- {"version":3,"names":["_handler","require","_plugins","_execute","_plugins2","_routes","_validator","_response","_runner","_headers","url","createPluginsContainer","plugins","PluginsContainer","createHandler","params","register","createWebsocketsRoutePlugins","event","app","createBaseHandler","options","logger","debug","registerDefaultPlugins","webiny","setErrorHandler","error","_","reply","__webiny_raw_result","message","code","data","statusCode","send","post","validator","response","context","handler","WebsocketsRunner","websockets","registry","WebsocketsEventValidator","WebsocketsResponse","result","run","status","headers","tenant","locale","endpoint","token","getEventValues","Authorization","execute","payload","exports"],"sources":["handler.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins\";\nimport { execute } from \"@webiny/handler-aws/execute\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createWebsocketsRoutePlugins } from \"~/runner/routes\";\nimport { WebsocketsEventValidator } from \"~/validator\";\nimport { WebsocketsResponse } from \"~/response\";\nimport { Context } from \"~/types\";\nimport { WebsocketsRunner } from \"~/runner\";\nimport { PluginCollection } from \"@webiny/plugins/types\";\nimport { HandlerCallable, HandlerParams } from \"./types\";\nimport { getEventValues } from \"./headers\";\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 app.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 app.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 return reply\n .status(result.statusCode)\n .headers({\n \"Sec-WebSocket-Protocol\": \"webiny-ws-v1\"\n })\n .send(result);\n });\n\n const { tenant, locale, endpoint, token } = getEventValues(event);\n\n const headers = {\n Authorization: `Bearer ${token}`,\n [\"x-tenant\"]: tenant,\n [\"x-webiny-cms-locale\"]: locale,\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_handler","require","_plugins","_execute","_plugins2","_routes","_validator","_response","_runner","_headers","url","createPluginsContainer","plugins","PluginsContainer","createHandler","params","register","createWebsocketsRoutePlugins","event","app","createBaseHandler","options","logger","debug","registerDefaultPlugins","webiny","setErrorHandler","error","_","reply","__webiny_raw_result","message","code","data","statusCode","send","post","validator","response","context","handler","WebsocketsRunner","websockets","registry","WebsocketsEventValidator","WebsocketsResponse","result","run","status","headers","tenant","locale","endpoint","token","getEventValues","Authorization","execute","payload","exports"],"sources":["handler.ts"],"sourcesContent":["import type WebinyError from \"@webiny/error\";\nimport { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins\";\nimport { execute } from \"@webiny/handler-aws/execute\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createWebsocketsRoutePlugins } from \"~/runner/routes\";\nimport { WebsocketsEventValidator } from \"~/validator\";\nimport { WebsocketsResponse } from \"~/response\";\nimport type { Context } from \"~/types\";\nimport { WebsocketsRunner } from \"~/runner\";\nimport type { PluginCollection } from \"@webiny/plugins/types\";\nimport type { HandlerCallable, HandlerParams } from \"./types\";\nimport { getEventValues } from \"./headers\";\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 app.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 app.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 return reply\n .status(result.statusCode)\n .headers({\n \"Sec-WebSocket-Protocol\": \"webiny-ws-v1\"\n })\n .send(result);\n });\n\n const { tenant, locale, endpoint, token } = getEventValues(event);\n\n const headers = {\n Authorization: `Bearer ${token}`,\n [\"x-tenant\"]: tenant,\n [\"x-webiny-cms-locale\"]: locale,\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"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAEA,IAAAO,OAAA,GAAAP,OAAA;AAGA,IAAAQ,QAAA,GAAAR,OAAA;AAEA,MAAMS,GAAG,GAAG,oBAAoB;AAEhC,MAAMC,sBAAsB,GACxBC,OAA6C,IAC1B;EACnB,IAAIA,OAAO,YAAYC,0BAAgB,EAAE;IACrC,OAAOD,OAAO;EAClB;EACA,OAAO,IAAIC,0BAAgB,CAACD,OAAO,IAAI,EAAE,CAAC;AAC9C,CAAC;AAEM,MAAME,aAAa,GAAIC,MAAqB,IAAsB;EACrE,MAAMH,OAAO,GAAGD,sBAAsB,CAACI,MAAM,CAACH,OAAO,CAAC;EACtDA,OAAO,CAACI,QAAQ,CAAC,GAAG,IAAAC,oCAA4B,EAAC,CAAC,CAAC;EAEnD,OAAO,MAAMC,KAAK,IAAI;IAClB,MAAMC,GAAG,GAAG,IAAAC,sBAAiB,EAAC;MAC1B,GAAGL,MAAM;MACTH,OAAO;MACPS,OAAO,EAAE;QACLC,MAAM,EAAEP,MAAM,CAACQ,KAAK,KAAK,IAAI;QAC7B,IAAIR,MAAM,CAACM,OAAO,IAAI,CAAC,CAAC;MAC5B;IACJ,CAAC,CAAC;IAEF,IAAAG,+BAAsB,EAACL,GAAG,CAACM,MAAM,CAAC;IAElCN,GAAG,CAACO,eAAe,CAAc,OAAOC,KAAK,EAAEC,CAAC,EAAEC,KAAK,KAAK;MACxDV,GAAG,CAACW,mBAAmB,GAAG;QACtBH,KAAK,EAAE;UACHI,OAAO,EAAEJ,KAAK,CAACI,OAAO;UACtBC,IAAI,EAAEL,KAAK,CAACK,IAAI;UAChBC,IAAI,EAAEN,KAAK,CAACM;QAChB,CAAC;QACDC,UAAU,EAAE;MAChB,CAAC;MACD,OAAOL,KAAK,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;IAEFhB,GAAG,CAACiB,IAAI,CAAC1B,GAAG,EAAE,OAAOkB,CAAC,EAAEC,KAAK,KAAK;MAC9B,MAAM;QAAEQ,SAAS;QAAEC;MAAS,CAAC,GAAGvB,MAAM;MACtC,MAAMwB,OAAO,GAAGpB,GAAG,CAACM,MAAiB;MACrC,MAAMe,OAAO,GAAG,IAAIC,wBAAgB,CAChCF,OAAO,EACPA,OAAO,CAACG,UAAU,CAACC,QAAQ,EAC3BN,SAAS,IAAI,IAAIO,mCAAwB,CAAC,CAAC,EAC3CN,QAAQ,IAAI,IAAIO,4BAAkB,CAAC,CACvC,CAAC;MAED,MAAMC,MAAM,GAAG,MAAMN,OAAO,CAACO,GAAG,CAAC7B,KAAK,CAAC;MAEvC,OAAOW,KAAK,CACPmB,MAAM,CAACF,MAAM,CAACZ,UAAU,CAAC,CACzBe,OAAO,CAAC;QACL,wBAAwB,EAAE;MAC9B,CAAC,CAAC,CACDd,IAAI,CAACW,MAAM,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM;MAAEI,MAAM;MAAEC,MAAM;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAG,IAAAC,uBAAc,EAACpC,KAAK,CAAC;IAEjE,MAAM+B,OAAO,GAAG;MACZM,aAAa,EAAE,UAAUF,KAAK,EAAE;MAChC,CAAC,UAAU,GAAGH,MAAM;MACpB,CAAC,qBAAqB,GAAGC,MAAM;MAC/B,CAAC,uBAAuB,GAAGC,QAAQ;MACnC,GAAGlC,KAAK,CAAC+B;IACb,CAAC;IAED,OAAO,IAAAO,gBAAO,EAAC;MACXrC,GAAG;MACHT,GAAG;MACH+C,OAAO,EAAE;QACL,GAAGvC,KAAK;QACR+B;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC;AAACS,OAAA,CAAA5C,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { IWebsocketsIncomingEvent } from "./types";
1
+ import type { IWebsocketsIncomingEvent } from "./types";
2
2
  export declare const getEventValues: (event: IWebsocketsIncomingEvent) => {
3
3
  tenant: string;
4
4
  locale: string;
@@ -1 +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":[]}
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 type { 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":[]}
@@ -1 +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,CAClC,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":[]}
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 type { 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,CAClC,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":[]}
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./handler/register";
2
- import { Plugin } from "@webiny/plugins/types";
2
+ import type { Plugin } from "@webiny/plugins/types";
3
3
  export declare const createWebsockets: () => Plugin[];
4
4
  export * from "./validator";
5
5
  export * from "./transport";
package/index.js.map CHANGED
@@ -1 +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":[]}
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 type { 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-websockets",
3
- "version": "6.0.0-alpha.0",
3
+ "version": "6.0.0-alpha.1",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,26 +12,26 @@
12
12
  ],
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@webiny/api": "6.0.0-alpha.0",
16
- "@webiny/api-i18n": "6.0.0-alpha.0",
17
- "@webiny/api-security": "6.0.0-alpha.0",
18
- "@webiny/api-tenancy": "6.0.0-alpha.0",
19
- "@webiny/aws-sdk": "6.0.0-alpha.0",
20
- "@webiny/db-dynamodb": "6.0.0-alpha.0",
21
- "@webiny/error": "6.0.0-alpha.0",
22
- "@webiny/handler": "6.0.0-alpha.0",
23
- "@webiny/handler-aws": "6.0.0-alpha.0",
24
- "@webiny/plugins": "6.0.0-alpha.0",
25
- "@webiny/utils": "6.0.0-alpha.0",
15
+ "@webiny/api": "6.0.0-alpha.1",
16
+ "@webiny/api-i18n": "6.0.0-alpha.1",
17
+ "@webiny/api-security": "6.0.0-alpha.1",
18
+ "@webiny/api-tenancy": "6.0.0-alpha.1",
19
+ "@webiny/aws-sdk": "6.0.0-alpha.1",
20
+ "@webiny/db-dynamodb": "6.0.0-alpha.1",
21
+ "@webiny/error": "6.0.0-alpha.1",
22
+ "@webiny/handler": "6.0.0-alpha.1",
23
+ "@webiny/handler-aws": "6.0.0-alpha.1",
24
+ "@webiny/plugins": "6.0.0-alpha.1",
25
+ "@webiny/utils": "6.0.0-alpha.1",
26
26
  "type-fest": "4.14.0",
27
27
  "zod": "3.23.8"
28
28
  },
29
29
  "devDependencies": {
30
- "@webiny/api-headless-cms": "6.0.0-alpha.0",
31
- "@webiny/api-wcp": "6.0.0-alpha.0",
32
- "@webiny/handler-db": "6.0.0-alpha.0",
33
- "@webiny/handler-graphql": "6.0.0-alpha.0",
34
- "@webiny/project-utils": "6.0.0-alpha.0",
30
+ "@webiny/api-headless-cms": "6.0.0-alpha.1",
31
+ "@webiny/api-wcp": "6.0.0-alpha.1",
32
+ "@webiny/handler-db": "6.0.0-alpha.1",
33
+ "@webiny/handler-graphql": "6.0.0-alpha.1",
34
+ "@webiny/project-utils": "6.0.0-alpha.1",
35
35
  "graphql": "15.9.0",
36
36
  "rimraf": "6.0.1",
37
37
  "typescript": "5.3.3"
@@ -44,5 +44,5 @@
44
44
  "build": "node ../cli/bin.js run build",
45
45
  "watch": "node ../cli/bin.js run watch"
46
46
  },
47
- "gitHead": "a5b28fed7a242d8f56712197a8ea83aa6d2ed101"
47
+ "gitHead": "9bd236cf5e689f209a11bec089207dcc2d41a53c"
48
48
  }
@@ -1,6 +1,6 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
- import { GenericRecord } from "@webiny/api/types";
3
- import { IWebsocketsActionPluginCallable, IWebsocketsActionPluginCallableParams, WebsocketsActionPluginCallableResponse } from "./abstrations/IWebsocketsActionPlugin";
2
+ import type { GenericRecord } from "@webiny/api/types";
3
+ import type { IWebsocketsActionPluginCallable, IWebsocketsActionPluginCallableParams, WebsocketsActionPluginCallableResponse } from "./abstrations/IWebsocketsActionPlugin";
4
4
  export declare class WebsocketsActionPlugin<T extends GenericRecord = GenericRecord> extends Plugin {
5
5
  static readonly type: string;
6
6
  readonly action: string;
@@ -1 +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":[]}
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 type { GenericRecord } from \"@webiny/api/types\";\nimport type {\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":[]}
@@ -1,10 +1,10 @@
1
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";
2
+ import type { IWebsocketsEvent, IWebsocketsEventData, WebsocketsEventRoute } from "../handler/types";
3
+ import type { Context } from "../types";
4
+ import type { IWebsocketsRunnerResponse } from "../runner";
5
+ import type { IWebsocketsConnectionRegistry } from "../registry";
6
+ import type { IWebsocketsResponse } from "../response/abstractions/IWebsocketsResponse";
7
+ import type { IWebsocketsIdentity } from "../context";
8
8
  export interface IWebsocketsRoutePluginCallableParams<C extends Context = Context, R extends IWebsocketsRunnerResponse = IWebsocketsRunnerResponse, T extends IWebsocketsEventData = IWebsocketsEventData> {
9
9
  event: IWebsocketsEvent<T>;
10
10
  registry: IWebsocketsConnectionRegistry;
@@ -1 +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":[]}
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 type { IWebsocketsEvent, IWebsocketsEventData, WebsocketsEventRoute } from \"~/handler/types\";\nimport type { Context } from \"~/types\";\nimport type { IWebsocketsRunnerResponse } from \"~/runner\";\nimport type { IWebsocketsConnectionRegistry } from \"~/registry\";\nimport type { IWebsocketsResponse } from \"~/response/abstractions/IWebsocketsResponse\";\nimport type { 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":[]}
@@ -1,5 +1,5 @@
1
- import { GenericRecord } from "@webiny/api/types";
2
- import { Context } from "../../types";
1
+ import type { GenericRecord } from "@webiny/api/types";
2
+ import type { Context } from "../../types";
3
3
  export interface IWebsocketsActionPluginCallableParamsSend {
4
4
  toConnection<T extends GenericRecord = GenericRecord>(connectionId: string, data: T): Promise<void>;
5
5
  toTenant<T extends GenericRecord = GenericRecord>(tenant: string, data: T): Promise<void>;
@@ -1 +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":[]}
1
+ {"version":3,"names":[],"sources":["IWebsocketsActionPlugin.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types\";\nimport type { 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":[]}
@@ -1,5 +1,5 @@
1
- import { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData, IWebsocketsConnectionRegistryRegisterParams, IWebsocketsConnectionRegistryUnregisterParams } from "./abstractions/IWebsocketsConnectionRegistry";
2
- import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
1
+ import type { IWebsocketsConnectionRegistry, IWebsocketsConnectionRegistryData, IWebsocketsConnectionRegistryRegisterParams, IWebsocketsConnectionRegistryUnregisterParams } from "./abstractions/IWebsocketsConnectionRegistry";
2
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
3
3
  export declare class WebsocketsConnectionRegistry implements IWebsocketsConnectionRegistry {
4
4
  private readonly entity;
5
5
  constructor(documentClient: DynamoDBDocument);
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_entity","_dbDynamodb","PK","GSI1_PK","GSI2_PK","WebsocketsConnectionRegistry","constructor","documentClient","entity","createEntity","register","params","connectionId","tenant","locale","identity","domainName","stage","connectedOn","data","store","unregister","keys","SK","original","getViaConnection","message","console","error","WebinyError","deleteItem","ex","code","item","get","listViaConnections","connections","items","map","getBatch","results","batchReadAll","table","listViaIdentity","queryAll","partitionKey","options","index","eq","listViaTenant","beginsWith","listAll","gte","GSI1_SK","id","GSI2_SK","put","err","from","exports"],"sources":["WebsocketsConnectionRegistry.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n IWebsocketsConnectionRegistry,\n IWebsocketsConnectionRegistryData,\n IWebsocketsConnectionRegistryRegisterParams,\n IWebsocketsConnectionRegistryUnregisterParams\n} from \"./abstractions/IWebsocketsConnectionRegistry\";\nimport { createEntity } from \"~/registry/entity\";\nimport { batchReadAll, deleteItem, get, put, queryAll } from \"@webiny/db-dynamodb\";\nimport { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { EntityQueryOptions } from \"@webiny/db-dynamodb/toolbox\";\n\nconst PK = `WS#CONNECTIONS`;\nconst GSI1_PK = \"WS#CONNECTIONS#IDENTITY\";\nconst GSI2_PK = \"WS#CONNECTIONS#TENANT#LOCALE\";\n\ninterface IWebsocketsConnectionRegistryDbItem {\n PK: string;\n SK: string;\n GSI1_PK: string;\n GSI1_SK: string;\n GSI2_PK: string;\n GSI2_SK: string;\n data: IWebsocketsConnectionRegistryData;\n}\n\nexport class WebsocketsConnectionRegistry implements IWebsocketsConnectionRegistry {\n private readonly entity: ReturnType<typeof createEntity>;\n\n public constructor(documentClient: DynamoDBDocument) {\n this.entity = createEntity(documentClient);\n }\n\n public async register(\n params: IWebsocketsConnectionRegistryRegisterParams\n ): Promise<IWebsocketsConnectionRegistryData> {\n const { connectionId, tenant, locale, identity, domainName, stage, connectedOn } = params;\n\n const data: IWebsocketsConnectionRegistryData = {\n connectionId,\n identity,\n tenant,\n locale,\n domainName,\n stage,\n connectedOn\n };\n await this.store(data);\n return data;\n }\n\n public async unregister(params: IWebsocketsConnectionRegistryUnregisterParams): Promise<void> {\n const { connectionId } = params;\n\n const keys = {\n PK,\n SK: connectionId\n };\n const original = await this.getViaConnection(connectionId);\n if (!original) {\n const message = `There is no connection with ID \"${connectionId}\".`;\n console.error(message);\n throw new WebinyError(message, \"CONNECTION_NOT_FOUND\", keys);\n }\n\n try {\n await deleteItem({\n entity: this.entity,\n keys\n });\n } catch (ex) {\n console.error(\n `Could not remove connection from the database: ${original.connectionId}`\n );\n throw new WebinyError(ex.message, ex.code, keys);\n }\n }\n\n private async getViaConnection(\n connectionId: string\n ): Promise<IWebsocketsConnectionRegistryData | null> {\n const item = await get<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n keys: {\n PK,\n SK: connectionId\n }\n });\n return item?.data || null;\n }\n\n /**\n * Uses Primary keys\n */\n public async listViaConnections(\n connections: string[]\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n const items = connections.map(connectionId => {\n return this.entity.getBatch({\n PK,\n SK: connectionId\n });\n });\n\n const results = await batchReadAll<IWebsocketsConnectionRegistryDbItem>({\n table: this.entity.table,\n items\n });\n\n return results.map(item => {\n return item.data;\n });\n }\n\n /**\n * Uses GSI1 keys\n */\n public async listViaIdentity(identity: string): Promise<IWebsocketsConnectionRegistryData[]> {\n const items = await queryAll<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n partitionKey: GSI1_PK,\n options: {\n index: \"GSI1\",\n eq: identity\n }\n });\n return items.map(item => {\n return item.data;\n });\n }\n\n /**\n * Uses GSI2 keys\n */\n public async listViaTenant(\n tenant: string,\n locale?: string\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n let options: Partial<EntityQueryOptions> = {\n beginsWith: `T#${tenant}#L#`\n };\n if (locale) {\n options = {\n eq: `T#${tenant}#L#${locale}`\n };\n }\n const items = await queryAll<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n partitionKey: GSI2_PK,\n options: {\n ...options,\n index: \"GSI2\"\n }\n });\n return items.map(item => {\n return item.data;\n });\n }\n\n public async listAll(): Promise<IWebsocketsConnectionRegistryData[]> {\n const items = await queryAll<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n partitionKey: PK,\n options: {\n gte: \" \"\n }\n });\n return items.map(item => {\n return item.data;\n });\n }\n\n private async store(data: IWebsocketsConnectionRegistryData) {\n const { connectionId, tenant, locale, identity } = data;\n const item: IWebsocketsConnectionRegistryDbItem = {\n // to find specific identity related to given connection\n PK,\n SK: connectionId,\n // to find all connections related to given identity\n GSI1_PK,\n GSI1_SK: identity.id,\n // to find all connections related to given tenant/locale combination\n GSI2_PK,\n GSI2_SK: `T#${tenant}#L#${locale}`,\n data\n };\n try {\n return await put({\n entity: this.entity,\n item\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not store websockets connection data.\",\n code: \"STORE_WEBSOCKETS_CONNECTION_DATA_ERROR\",\n data: item\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_entity","_dbDynamodb","PK","GSI1_PK","GSI2_PK","WebsocketsConnectionRegistry","constructor","documentClient","entity","createEntity","register","params","connectionId","tenant","locale","identity","domainName","stage","connectedOn","data","store","unregister","keys","SK","original","getViaConnection","message","console","error","WebinyError","deleteItem","ex","code","item","get","listViaConnections","connections","items","map","getBatch","results","batchReadAll","table","listViaIdentity","queryAll","partitionKey","options","index","eq","listViaTenant","beginsWith","listAll","gte","GSI1_SK","id","GSI2_SK","put","err","from","exports"],"sources":["WebsocketsConnectionRegistry.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n IWebsocketsConnectionRegistry,\n IWebsocketsConnectionRegistryData,\n IWebsocketsConnectionRegistryRegisterParams,\n IWebsocketsConnectionRegistryUnregisterParams\n} from \"./abstractions/IWebsocketsConnectionRegistry\";\nimport { createEntity } from \"~/registry/entity\";\nimport { batchReadAll, deleteItem, get, put, queryAll } from \"@webiny/db-dynamodb\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport type { EntityQueryOptions } from \"@webiny/db-dynamodb/toolbox\";\n\nconst PK = `WS#CONNECTIONS`;\nconst GSI1_PK = \"WS#CONNECTIONS#IDENTITY\";\nconst GSI2_PK = \"WS#CONNECTIONS#TENANT#LOCALE\";\n\ninterface IWebsocketsConnectionRegistryDbItem {\n PK: string;\n SK: string;\n GSI1_PK: string;\n GSI1_SK: string;\n GSI2_PK: string;\n GSI2_SK: string;\n data: IWebsocketsConnectionRegistryData;\n}\n\nexport class WebsocketsConnectionRegistry implements IWebsocketsConnectionRegistry {\n private readonly entity: ReturnType<typeof createEntity>;\n\n public constructor(documentClient: DynamoDBDocument) {\n this.entity = createEntity(documentClient);\n }\n\n public async register(\n params: IWebsocketsConnectionRegistryRegisterParams\n ): Promise<IWebsocketsConnectionRegistryData> {\n const { connectionId, tenant, locale, identity, domainName, stage, connectedOn } = params;\n\n const data: IWebsocketsConnectionRegistryData = {\n connectionId,\n identity,\n tenant,\n locale,\n domainName,\n stage,\n connectedOn\n };\n await this.store(data);\n return data;\n }\n\n public async unregister(params: IWebsocketsConnectionRegistryUnregisterParams): Promise<void> {\n const { connectionId } = params;\n\n const keys = {\n PK,\n SK: connectionId\n };\n const original = await this.getViaConnection(connectionId);\n if (!original) {\n const message = `There is no connection with ID \"${connectionId}\".`;\n console.error(message);\n throw new WebinyError(message, \"CONNECTION_NOT_FOUND\", keys);\n }\n\n try {\n await deleteItem({\n entity: this.entity,\n keys\n });\n } catch (ex) {\n console.error(\n `Could not remove connection from the database: ${original.connectionId}`\n );\n throw new WebinyError(ex.message, ex.code, keys);\n }\n }\n\n private async getViaConnection(\n connectionId: string\n ): Promise<IWebsocketsConnectionRegistryData | null> {\n const item = await get<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n keys: {\n PK,\n SK: connectionId\n }\n });\n return item?.data || null;\n }\n\n /**\n * Uses Primary keys\n */\n public async listViaConnections(\n connections: string[]\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n const items = connections.map(connectionId => {\n return this.entity.getBatch({\n PK,\n SK: connectionId\n });\n });\n\n const results = await batchReadAll<IWebsocketsConnectionRegistryDbItem>({\n table: this.entity.table,\n items\n });\n\n return results.map(item => {\n return item.data;\n });\n }\n\n /**\n * Uses GSI1 keys\n */\n public async listViaIdentity(identity: string): Promise<IWebsocketsConnectionRegistryData[]> {\n const items = await queryAll<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n partitionKey: GSI1_PK,\n options: {\n index: \"GSI1\",\n eq: identity\n }\n });\n return items.map(item => {\n return item.data;\n });\n }\n\n /**\n * Uses GSI2 keys\n */\n public async listViaTenant(\n tenant: string,\n locale?: string\n ): Promise<IWebsocketsConnectionRegistryData[]> {\n let options: Partial<EntityQueryOptions> = {\n beginsWith: `T#${tenant}#L#`\n };\n if (locale) {\n options = {\n eq: `T#${tenant}#L#${locale}`\n };\n }\n const items = await queryAll<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n partitionKey: GSI2_PK,\n options: {\n ...options,\n index: \"GSI2\"\n }\n });\n return items.map(item => {\n return item.data;\n });\n }\n\n public async listAll(): Promise<IWebsocketsConnectionRegistryData[]> {\n const items = await queryAll<IWebsocketsConnectionRegistryDbItem>({\n entity: this.entity,\n partitionKey: PK,\n options: {\n gte: \" \"\n }\n });\n return items.map(item => {\n return item.data;\n });\n }\n\n private async store(data: IWebsocketsConnectionRegistryData) {\n const { connectionId, tenant, locale, identity } = data;\n const item: IWebsocketsConnectionRegistryDbItem = {\n // to find specific identity related to given connection\n PK,\n SK: connectionId,\n // to find all connections related to given identity\n GSI1_PK,\n GSI1_SK: identity.id,\n // to find all connections related to given tenant/locale combination\n GSI2_PK,\n GSI2_SK: `T#${tenant}#L#${locale}`,\n data\n };\n try {\n return await put({\n entity: this.entity,\n item\n });\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not store websockets connection data.\",\n code: \"STORE_WEBSOCKETS_CONNECTION_DATA_ERROR\",\n data: item\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { IWebsocketsIdentity } from "../../context/abstractions/IWebsocketsContext";
1
+ import type { IWebsocketsIdentity } from "../../context/abstractions/IWebsocketsContext";
2
2
  export interface IWebsocketsConnectionRegistryData {
3
3
  connectionId: string;
4
4
  identity: IWebsocketsIdentity;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IWebsocketsConnectionRegistry.ts"],"sourcesContent":["import { IWebsocketsIdentity } from \"~/context/abstractions/IWebsocketsContext\";\n\nexport interface IWebsocketsConnectionRegistryData {\n connectionId: string;\n identity: IWebsocketsIdentity;\n tenant: string;\n locale: string;\n connectedOn: string;\n domainName: string;\n stage: string;\n}\n\nexport interface IWebsocketsConnectionRegistryRegisterParams {\n connectionId: string;\n tenant: string;\n locale: string;\n identity: IWebsocketsIdentity;\n domainName: string;\n stage: string;\n /**\n * A DateTime.toISOString() format.\n */\n connectedOn: string;\n}\n\nexport interface IWebsocketsConnectionRegistryUnregisterParams {\n connectionId: string;\n}\n\nexport interface IWebsocketsConnectionRegistry {\n register(\n event: IWebsocketsConnectionRegistryRegisterParams\n ): Promise<IWebsocketsConnectionRegistryData>;\n unregister(event: IWebsocketsConnectionRegistryUnregisterParams): Promise<void>;\n\n listViaConnections(connections: string[]): Promise<IWebsocketsConnectionRegistryData[]>;\n listViaIdentity(identity: string): Promise<IWebsocketsConnectionRegistryData[]>;\n listViaTenant(tenant: string, locale?: string): Promise<IWebsocketsConnectionRegistryData[]>;\n listAll(): Promise<IWebsocketsConnectionRegistryData[]>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IWebsocketsConnectionRegistry.ts"],"sourcesContent":["import type { IWebsocketsIdentity } from \"~/context/abstractions/IWebsocketsContext\";\n\nexport interface IWebsocketsConnectionRegistryData {\n connectionId: string;\n identity: IWebsocketsIdentity;\n tenant: string;\n locale: string;\n connectedOn: string;\n domainName: string;\n stage: string;\n}\n\nexport interface IWebsocketsConnectionRegistryRegisterParams {\n connectionId: string;\n tenant: string;\n locale: string;\n identity: IWebsocketsIdentity;\n domainName: string;\n stage: string;\n /**\n * A DateTime.toISOString() format.\n */\n connectedOn: string;\n}\n\nexport interface IWebsocketsConnectionRegistryUnregisterParams {\n connectionId: string;\n}\n\nexport interface IWebsocketsConnectionRegistry {\n register(\n event: IWebsocketsConnectionRegistryRegisterParams\n ): Promise<IWebsocketsConnectionRegistryData>;\n unregister(event: IWebsocketsConnectionRegistryUnregisterParams): Promise<void>;\n\n listViaConnections(connections: string[]): Promise<IWebsocketsConnectionRegistryData[]>;\n listViaIdentity(identity: string): Promise<IWebsocketsConnectionRegistryData[]>;\n listViaTenant(tenant: string, locale?: string): Promise<IWebsocketsConnectionRegistryData[]>;\n listAll(): Promise<IWebsocketsConnectionRegistryData[]>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
1
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
2
  import { Entity, Table } from "@webiny/db-dynamodb/toolbox";
3
3
  export declare const createEntity: (documentClient: DynamoDBDocument) => Entity<"SocketsConnectionRegistry", undefined, undefined, Table<string, "PK", "SK">, true, true, true, "created", "modified", "entity", false, {
4
4
  PK: {
@@ -1 +1 @@
1
- {"version":3,"names":["_toolbox","require","name","createEntity","documentClient","table","Table","String","process","env","DB_TABLE","partitionKey","sortKey","DocumentClient","indexes","GSI1","GSI2","autoExecute","autoParse","Entity","attributes","PK","SK","GSI1_PK","type","GSI1_SK","GSI2_PK","GSI2_SK","TYPE","default","data","exports"],"sources":["entity.ts"],"sourcesContent":["import { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\n\nconst name = \"SocketsConnectionRegistry\";\n\nexport const createEntity = (documentClient: DynamoDBDocument) => {\n const table = new Table({\n name: String(process.env.DB_TABLE),\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n },\n GSI2: {\n partitionKey: \"GSI2_PK\",\n sortKey: \"GSI2_SK\"\n }\n },\n autoExecute: true,\n autoParse: true\n });\n\n return new Entity({\n name,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n GSI2_PK: {\n type: \"string\"\n },\n GSI2_SK: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\",\n default: name\n },\n data: {\n type: \"map\"\n }\n }\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,MAAMC,IAAI,GAAG,2BAA2B;AAEjC,MAAMC,YAAY,GAAIC,cAAgC,IAAK;EAC9D,MAAMC,KAAK,GAAG,IAAIC,cAAK,CAAC;IACpBJ,IAAI,EAAEK,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,QAAQ,CAAC;IAClCC,YAAY,EAAE,IAAI;IAClBC,OAAO,EAAE,IAAI;IACbC,cAAc,EAAET,cAAc;IAC9BU,OAAO,EAAE;MACLC,IAAI,EAAE;QACFJ,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb,CAAC;MACDI,IAAI,EAAE;QACFL,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb;IACJ,CAAC;IACDK,WAAW,EAAE,IAAI;IACjBC,SAAS,EAAE;EACf,CAAC,CAAC;EAEF,OAAO,IAAIC,eAAM,CAAC;IACdjB,IAAI;IACJG,KAAK;IACLe,UAAU,EAAE;MACRC,EAAE,EAAE;QACAV,YAAY,EAAE;MAClB,CAAC;MACDW,EAAE,EAAE;QACAV,OAAO,EAAE;MACb,CAAC;MACDW,OAAO,EAAE;QACLC,IAAI,EAAE;MACV,CAAC;MACDC,OAAO,EAAE;QACLD,IAAI,EAAE;MACV,CAAC;MACDE,OAAO,EAAE;QACLF,IAAI,EAAE;MACV,CAAC;MACDG,OAAO,EAAE;QACLH,IAAI,EAAE;MACV,CAAC;MACDI,IAAI,EAAE;QACFJ,IAAI,EAAE,QAAQ;QACdK,OAAO,EAAE3B;MACb,CAAC;MACD4B,IAAI,EAAE;QACFN,IAAI,EAAE;MACV;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACO,OAAA,CAAA5B,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_toolbox","require","name","createEntity","documentClient","table","Table","String","process","env","DB_TABLE","partitionKey","sortKey","DocumentClient","indexes","GSI1","GSI2","autoExecute","autoParse","Entity","attributes","PK","SK","GSI1_PK","type","GSI1_SK","GSI2_PK","GSI2_SK","TYPE","default","data","exports"],"sources":["entity.ts"],"sourcesContent":["import type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { Entity, Table } from \"@webiny/db-dynamodb/toolbox\";\n\nconst name = \"SocketsConnectionRegistry\";\n\nexport const createEntity = (documentClient: DynamoDBDocument) => {\n const table = new Table({\n name: String(process.env.DB_TABLE),\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n },\n GSI2: {\n partitionKey: \"GSI2_PK\",\n sortKey: \"GSI2_SK\"\n }\n },\n autoExecute: true,\n autoParse: true\n });\n\n return new Entity({\n name,\n table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n GSI2_PK: {\n type: \"string\"\n },\n GSI2_SK: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\",\n default: name\n },\n data: {\n type: \"map\"\n }\n }\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,MAAMC,IAAI,GAAG,2BAA2B;AAEjC,MAAMC,YAAY,GAAIC,cAAgC,IAAK;EAC9D,MAAMC,KAAK,GAAG,IAAIC,cAAK,CAAC;IACpBJ,IAAI,EAAEK,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,QAAQ,CAAC;IAClCC,YAAY,EAAE,IAAI;IAClBC,OAAO,EAAE,IAAI;IACbC,cAAc,EAAET,cAAc;IAC9BU,OAAO,EAAE;MACLC,IAAI,EAAE;QACFJ,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb,CAAC;MACDI,IAAI,EAAE;QACFL,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb;IACJ,CAAC;IACDK,WAAW,EAAE,IAAI;IACjBC,SAAS,EAAE;EACf,CAAC,CAAC;EAEF,OAAO,IAAIC,eAAM,CAAC;IACdjB,IAAI;IACJG,KAAK;IACLe,UAAU,EAAE;MACRC,EAAE,EAAE;QACAV,YAAY,EAAE;MAClB,CAAC;MACDW,EAAE,EAAE;QACAV,OAAO,EAAE;MACb,CAAC;MACDW,OAAO,EAAE;QACLC,IAAI,EAAE;MACV,CAAC;MACDC,OAAO,EAAE;QACLD,IAAI,EAAE;MACV,CAAC;MACDE,OAAO,EAAE;QACLF,IAAI,EAAE;MACV,CAAC;MACDG,OAAO,EAAE;QACLH,IAAI,EAAE;MACV,CAAC;MACDI,IAAI,EAAE;QACFJ,IAAI,EAAE,QAAQ;QACdK,OAAO,EAAE3B;MACb,CAAC;MACD4B,IAAI,EAAE;QACFN,IAAI,EAAE;MACV;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACO,OAAA,CAAA5B,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { IWebsocketsResponse, IWebsocketsResponseErrorParams, IWebsocketsResponseErrorResult, IWebsocketsResponseOkParams, IWebsocketsResponseOkResult } from "./abstractions/IWebsocketsResponse";
1
+ import type { IWebsocketsResponse, IWebsocketsResponseErrorParams, IWebsocketsResponseErrorResult, IWebsocketsResponseOkParams, IWebsocketsResponseOkResult } from "./abstractions/IWebsocketsResponse";
2
2
  export declare class WebsocketsResponse implements IWebsocketsResponse {
3
3
  ok(params?: IWebsocketsResponseOkParams): IWebsocketsResponseOkResult;
4
4
  error(params: IWebsocketsResponseErrorParams): IWebsocketsResponseErrorResult;
@@ -1 +1 @@
1
- {"version":3,"names":["WebsocketsResponse","ok","params","statusCode","error","message","code","data","exports"],"sources":["WebsocketsResponse.ts"],"sourcesContent":["import {\n IWebsocketsResponse,\n IWebsocketsResponseErrorParams,\n IWebsocketsResponseErrorResult,\n IWebsocketsResponseOkParams,\n IWebsocketsResponseOkResult\n} from \"./abstractions/IWebsocketsResponse\";\n\nexport class WebsocketsResponse implements IWebsocketsResponse {\n public ok(params?: IWebsocketsResponseOkParams): IWebsocketsResponseOkResult {\n return {\n statusCode: 200,\n ...params\n };\n }\n\n public error(params: IWebsocketsResponseErrorParams): IWebsocketsResponseErrorResult {\n return {\n ...params,\n statusCode: params.statusCode || 200,\n error: {\n ...params.error,\n message: params.error?.message || params.message,\n code: params.error?.code || \"UNKNOWN_ERROR\",\n data: params.error?.data || {}\n }\n };\n }\n}\n"],"mappings":";;;;;;AAQO,MAAMA,kBAAkB,CAAgC;EACpDC,EAAEA,CAACC,MAAoC,EAA+B;IACzE,OAAO;MACHC,UAAU,EAAE,GAAG;MACf,GAAGD;IACP,CAAC;EACL;EAEOE,KAAKA,CAACF,MAAsC,EAAkC;IACjF,OAAO;MACH,GAAGA,MAAM;MACTC,UAAU,EAAED,MAAM,CAACC,UAAU,IAAI,GAAG;MACpCC,KAAK,EAAE;QACH,GAAGF,MAAM,CAACE,KAAK;QACfC,OAAO,EAAEH,MAAM,CAACE,KAAK,EAAEC,OAAO,IAAIH,MAAM,CAACG,OAAO;QAChDC,IAAI,EAAEJ,MAAM,CAACE,KAAK,EAAEE,IAAI,IAAI,eAAe;QAC3CC,IAAI,EAAEL,MAAM,CAACE,KAAK,EAAEG,IAAI,IAAI,CAAC;MACjC;IACJ,CAAC;EACL;AACJ;AAACC,OAAA,CAAAR,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["WebsocketsResponse","ok","params","statusCode","error","message","code","data","exports"],"sources":["WebsocketsResponse.ts"],"sourcesContent":["import type {\n IWebsocketsResponse,\n IWebsocketsResponseErrorParams,\n IWebsocketsResponseErrorResult,\n IWebsocketsResponseOkParams,\n IWebsocketsResponseOkResult\n} from \"./abstractions/IWebsocketsResponse\";\n\nexport class WebsocketsResponse implements IWebsocketsResponse {\n public ok(params?: IWebsocketsResponseOkParams): IWebsocketsResponseOkResult {\n return {\n statusCode: 200,\n ...params\n };\n }\n\n public error(params: IWebsocketsResponseErrorParams): IWebsocketsResponseErrorResult {\n return {\n ...params,\n statusCode: params.statusCode || 200,\n error: {\n ...params.error,\n message: params.error?.message || params.message,\n code: params.error?.code || \"UNKNOWN_ERROR\",\n data: params.error?.data || {}\n }\n };\n }\n}\n"],"mappings":";;;;;;AAQO,MAAMA,kBAAkB,CAAgC;EACpDC,EAAEA,CAACC,MAAoC,EAA+B;IACzE,OAAO;MACHC,UAAU,EAAE,GAAG;MACf,GAAGD;IACP,CAAC;EACL;EAEOE,KAAKA,CAACF,MAAsC,EAAkC;IACjF,OAAO;MACH,GAAGA,MAAM;MACTC,UAAU,EAAED,MAAM,CAACC,UAAU,IAAI,GAAG;MACpCC,KAAK,EAAE;QACH,GAAGF,MAAM,CAACE,KAAK;QACfC,OAAO,EAAEH,MAAM,CAACE,KAAK,EAAEC,OAAO,IAAIH,MAAM,CAACG,OAAO;QAChDC,IAAI,EAAEJ,MAAM,CAACE,KAAK,EAAEE,IAAI,IAAI,eAAe;QAC3CC,IAAI,EAAEL,MAAM,CAACE,KAAK,EAAEG,IAAI,IAAI,CAAC;MACjC;IACJ,CAAC;EACL;AACJ;AAACC,OAAA,CAAAR,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { GenericRecord } from "@webiny/api/types";
1
+ import type { GenericRecord } from "@webiny/api/types";
2
2
  export interface IWebsocketsResponseOkParams {
3
3
  message?: string;
4
4
  data?: GenericRecord<string>;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IWebsocketsResponse.ts"],"sourcesContent":["import { GenericRecord } from \"@webiny/api/types\";\n\nexport interface IWebsocketsResponseOkParams {\n message?: string;\n data?: GenericRecord<string>;\n}\n\nexport interface IWebsocketsResponseOkResult {\n statusCode: number;\n data?: GenericRecord<string>;\n message?: string;\n}\n\nexport interface IWebsocketsResponseErrorParams {\n statusCode?: number;\n error?: Omit<IWebsocketsResponseErrorResultError, \"data\"> &\n Partial<Pick<IWebsocketsResponseErrorResultError, \"data\">>;\n message: string;\n}\n\nexport interface IWebsocketsResponseErrorResultError {\n message: string;\n code: string;\n data: GenericRecord<string>;\n stack?: string;\n}\n\nexport interface IWebsocketsResponseErrorResult {\n statusCode: number;\n error: IWebsocketsResponseErrorResultError;\n}\n\nexport interface IWebsocketsResponse {\n ok(params?: IWebsocketsResponseOkParams): IWebsocketsResponseOkResult;\n error(params: IWebsocketsResponseErrorParams): IWebsocketsResponseErrorResult;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IWebsocketsResponse.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types\";\n\nexport interface IWebsocketsResponseOkParams {\n message?: string;\n data?: GenericRecord<string>;\n}\n\nexport interface IWebsocketsResponseOkResult {\n statusCode: number;\n data?: GenericRecord<string>;\n message?: string;\n}\n\nexport interface IWebsocketsResponseErrorParams {\n statusCode?: number;\n error?: Omit<IWebsocketsResponseErrorResultError, \"data\"> &\n Partial<Pick<IWebsocketsResponseErrorResultError, \"data\">>;\n message: string;\n}\n\nexport interface IWebsocketsResponseErrorResultError {\n message: string;\n code: string;\n data: GenericRecord<string>;\n stack?: string;\n}\n\nexport interface IWebsocketsResponseErrorResult {\n statusCode: number;\n error: IWebsocketsResponseErrorResultError;\n}\n\nexport interface IWebsocketsResponse {\n ok(params?: IWebsocketsResponseOkParams): IWebsocketsResponseOkResult;\n error(params: IWebsocketsResponseErrorParams): IWebsocketsResponseErrorResult;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,9 +1,9 @@
1
- import { IWebsocketsEventData, IWebsocketsIncomingEvent } from "../handler/types";
2
- import { Context } from "../types";
3
- import { IWebsocketsEventValidator } from "../validator";
4
- import { IWebsocketsRunner, IWebsocketsRunnerResponse } from "./abstractions/IWebsocketsRunner";
5
- import { IWebsocketsConnectionRegistry } from "../registry";
6
- import { IWebsocketsResponse } from "../response";
1
+ import type { IWebsocketsEventData, IWebsocketsIncomingEvent } from "../handler/types";
2
+ import type { Context } from "../types";
3
+ import type { IWebsocketsEventValidator } from "../validator";
4
+ import type { IWebsocketsRunner, IWebsocketsRunnerResponse } from "./abstractions/IWebsocketsRunner";
5
+ import type { IWebsocketsConnectionRegistry } from "../registry";
6
+ import type { IWebsocketsResponse } from "../response";
7
7
  export declare class WebsocketsRunner implements IWebsocketsRunner {
8
8
  private readonly context;
9
9
  private readonly registry;
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_types","_plugins","_middleware","WebsocketsRunner","constructor","context","registry","validator","response","run","input","event","validate","ex","result","error","message","code","data","stack","connectionId","domainName","stage","eventType","requestContext","messageId","body","JSON","stringify","json","parse","respond","executeRoute","routeKey","getRoutePlugins","route","plugins","byType","WebsocketsRoutePlugin","type","filter","plugin","length","WebinyError","reverse","getTenant","tenant","tenancy","getCurrentTenant","id","getLocale","locale","i18n","getCurrentLocale","getIdentity","identity","security","action","middleware","map","params","next","statusCode","WebsocketsEventRequestContextEventType","console","connection","dataToSend","websockets","sendToConnections","exports"],"sources":["WebsocketsRunner.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n IWebsocketsEvent,\n IWebsocketsEventData,\n IWebsocketsEventRequestContext,\n IWebsocketsIncomingEvent,\n WebsocketsEventRequestContextEventType,\n WebsocketsEventRoute\n} from \"~/handler/types\";\nimport { Context } from \"~/types\";\nimport { IWebsocketsEventValidator } from \"~/validator\";\nimport { IWebsocketsRunner, IWebsocketsRunnerResponse } from \"./abstractions/IWebsocketsRunner\";\nimport { IWebsocketsRoutePluginCallableParams, WebsocketsRoutePlugin } from \"~/plugins\";\nimport { middleware } from \"~/utils/middleware\";\nimport { IWebsocketsConnectionRegistry } from \"~/registry\";\nimport {\n IWebsocketsResponse,\n IWebsocketsResponseErrorResult,\n IWebsocketsResponseOkResult\n} from \"~/response\";\nimport { IWebsocketsTransportSendConnection } from \"~/transport\";\nimport { IWebsocketsIdentity } from \"~/context\";\n\ntype MiddlewareParams<C extends Context = Context> = Pick<\n IWebsocketsRoutePluginCallableParams<C>,\n \"context\" | \"event\" | \"registry\"\n>;\n\ninterface IWebsocketsRunnerRespondParams\n extends Pick<\n IWebsocketsEventRequestContext,\n \"connectionId\" | \"domainName\" | \"stage\" | \"eventType\"\n > {\n messageId?: string;\n result: IWebsocketsResponseOkResult | IWebsocketsResponseErrorResult;\n}\n\nexport class WebsocketsRunner implements IWebsocketsRunner {\n private readonly context: Context;\n private readonly registry: IWebsocketsConnectionRegistry;\n private readonly validator: IWebsocketsEventValidator;\n private readonly response: IWebsocketsResponse;\n\n public constructor(\n context: Context,\n registry: IWebsocketsConnectionRegistry,\n validator: IWebsocketsEventValidator,\n response: IWebsocketsResponse\n ) {\n this.context = context;\n this.registry = registry;\n this.validator = validator;\n this.response = response;\n }\n\n public async run<T extends IWebsocketsEventData = IWebsocketsEventData>(\n input: IWebsocketsIncomingEvent\n ): Promise<IWebsocketsRunnerResponse> {\n let event: IWebsocketsEvent<T> | undefined;\n try {\n event = await this.validator.validate<T>(input);\n } catch (ex) {\n const result = this.response.error({\n message: \"Validation failed.\",\n error: {\n message: ex.message,\n code: ex.code,\n data: ex.data,\n stack: ex.stack\n }\n });\n\n const { connectionId, domainName, stage, eventType } = input.requestContext || {};\n let messageId: string | undefined;\n try {\n const body =\n typeof input.body === \"string\" ? input.body : JSON.stringify(input.body || {});\n const json = JSON.parse(body);\n messageId = json.messageId;\n } catch {\n // Do nothing\n }\n if (!connectionId || !stage || !domainName || !eventType) {\n return result;\n }\n\n await this.respond({\n connectionId,\n domainName,\n stage,\n eventType,\n messageId,\n result\n });\n return result;\n }\n\n let result: IWebsocketsResponseOkResult | IWebsocketsResponseErrorResult;\n try {\n result = await this.executeRoute(event);\n } catch (ex) {\n result = this.response.error({\n message: `Route \"${event.requestContext.routeKey}\" action failed.`,\n error: {\n message: ex.message,\n code: ex.code,\n data: ex.data,\n stack: ex.stack\n }\n });\n }\n try {\n await this.respond({\n ...event.requestContext,\n messageId: event.body?.messageId,\n result\n });\n return result;\n } catch (ex) {\n return this.response.error({\n message: \"Failed to respond to the request.\",\n error: {\n message: ex.message,\n code: ex.code,\n data: {\n ...ex.data,\n result\n },\n stack: ex.stack\n }\n });\n }\n }\n\n private getRoutePlugins(route: WebsocketsEventRoute | string): WebsocketsRoutePlugin[] {\n const plugins = this.context.plugins\n .byType<WebsocketsRoutePlugin>(WebsocketsRoutePlugin.type)\n .filter(plugin => {\n return plugin.route === route;\n });\n if (plugins.length === 0) {\n throw new WebinyError(\n `There are no plugins for the route: ${route}.`,\n \"NO_ROUTE_PLUGINS\",\n {\n route\n }\n );\n }\n return plugins;\n }\n\n private async executeRoute(event: IWebsocketsEvent): Promise<IWebsocketsRunnerResponse> {\n /**\n * We will always fetch plugins in reverse order, so that users can override our default ones if necessary.\n */\n const plugins = this.getRoutePlugins(event.requestContext.routeKey).reverse();\n\n const getTenant = () => {\n const tenant = this.context.tenancy.getCurrentTenant();\n return tenant?.id || null;\n };\n const getLocale = (): string | null => {\n const locale = this.context.i18n.getCurrentLocale(\"content\");\n return locale?.code || null;\n };\n\n const getIdentity = (): IWebsocketsIdentity | null => {\n const identity = this.context.security.getIdentity();\n return identity || null;\n };\n\n const action = middleware<MiddlewareParams, IWebsocketsRunnerResponse>(\n plugins.map(plugin => {\n return async (params, next) => {\n return plugin.run({\n registry: params.registry,\n event: params.event,\n context: params.context,\n getTenant,\n getLocale,\n getIdentity,\n response: this.response,\n next\n });\n };\n })\n );\n\n const result = await action({\n event,\n registry: this.registry,\n context: this.context\n });\n if (result) {\n return result;\n }\n const message = \"No response from the route action.\";\n return this.response.error({\n message,\n error: {\n message,\n code: \"NO_RESPONSE\"\n },\n statusCode: 404\n });\n }\n\n private async respond(params: IWebsocketsRunnerRespondParams): Promise<void> {\n const { connectionId, domainName, stage, eventType, result, messageId } = params;\n if (eventType !== WebsocketsEventRequestContextEventType.message) {\n return;\n } else if (!connectionId || !domainName || !stage) {\n const message = \"No connectionId, domainName or stage.\";\n const data = {\n connectionId,\n domainName,\n stage\n };\n console.error(message, JSON.stringify(data));\n throw new WebinyError(message, \"GENERAL_ERROR\", data);\n }\n const connection: IWebsocketsTransportSendConnection = {\n connectionId,\n domainName,\n stage\n };\n\n const dataToSend = {\n ...result,\n messageId\n };\n await this.context.websockets.sendToConnections([connection], dataToSend);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_types","_plugins","_middleware","WebsocketsRunner","constructor","context","registry","validator","response","run","input","event","validate","ex","result","error","message","code","data","stack","connectionId","domainName","stage","eventType","requestContext","messageId","body","JSON","stringify","json","parse","respond","executeRoute","routeKey","getRoutePlugins","route","plugins","byType","WebsocketsRoutePlugin","type","filter","plugin","length","WebinyError","reverse","getTenant","tenant","tenancy","getCurrentTenant","id","getLocale","locale","i18n","getCurrentLocale","getIdentity","identity","security","action","middleware","map","params","next","statusCode","WebsocketsEventRequestContextEventType","console","connection","dataToSend","websockets","sendToConnections","exports"],"sources":["WebsocketsRunner.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n IWebsocketsEvent,\n IWebsocketsEventData,\n IWebsocketsEventRequestContext,\n IWebsocketsIncomingEvent,\n WebsocketsEventRoute\n} from \"~/handler/types\";\nimport { WebsocketsEventRequestContextEventType } from \"~/handler/types\";\nimport type { Context } from \"~/types\";\nimport type { IWebsocketsEventValidator } from \"~/validator\";\nimport type {\n IWebsocketsRunner,\n IWebsocketsRunnerResponse\n} from \"./abstractions/IWebsocketsRunner\";\nimport type { IWebsocketsRoutePluginCallableParams } from \"~/plugins\";\nimport { WebsocketsRoutePlugin } from \"~/plugins\";\nimport { middleware } from \"~/utils/middleware\";\nimport type { IWebsocketsConnectionRegistry } from \"~/registry\";\nimport type {\n IWebsocketsResponse,\n IWebsocketsResponseErrorResult,\n IWebsocketsResponseOkResult\n} from \"~/response\";\nimport type { IWebsocketsTransportSendConnection } from \"~/transport\";\nimport type { IWebsocketsIdentity } from \"~/context\";\n\ntype MiddlewareParams<C extends Context = Context> = Pick<\n IWebsocketsRoutePluginCallableParams<C>,\n \"context\" | \"event\" | \"registry\"\n>;\n\ninterface IWebsocketsRunnerRespondParams\n extends Pick<\n IWebsocketsEventRequestContext,\n \"connectionId\" | \"domainName\" | \"stage\" | \"eventType\"\n > {\n messageId?: string;\n result: IWebsocketsResponseOkResult | IWebsocketsResponseErrorResult;\n}\n\nexport class WebsocketsRunner implements IWebsocketsRunner {\n private readonly context: Context;\n private readonly registry: IWebsocketsConnectionRegistry;\n private readonly validator: IWebsocketsEventValidator;\n private readonly response: IWebsocketsResponse;\n\n public constructor(\n context: Context,\n registry: IWebsocketsConnectionRegistry,\n validator: IWebsocketsEventValidator,\n response: IWebsocketsResponse\n ) {\n this.context = context;\n this.registry = registry;\n this.validator = validator;\n this.response = response;\n }\n\n public async run<T extends IWebsocketsEventData = IWebsocketsEventData>(\n input: IWebsocketsIncomingEvent\n ): Promise<IWebsocketsRunnerResponse> {\n let event: IWebsocketsEvent<T> | undefined;\n try {\n event = await this.validator.validate<T>(input);\n } catch (ex) {\n const result = this.response.error({\n message: \"Validation failed.\",\n error: {\n message: ex.message,\n code: ex.code,\n data: ex.data,\n stack: ex.stack\n }\n });\n\n const { connectionId, domainName, stage, eventType } = input.requestContext || {};\n let messageId: string | undefined;\n try {\n const body =\n typeof input.body === \"string\" ? input.body : JSON.stringify(input.body || {});\n const json = JSON.parse(body);\n messageId = json.messageId;\n } catch {\n // Do nothing\n }\n if (!connectionId || !stage || !domainName || !eventType) {\n return result;\n }\n\n await this.respond({\n connectionId,\n domainName,\n stage,\n eventType,\n messageId,\n result\n });\n return result;\n }\n\n let result: IWebsocketsResponseOkResult | IWebsocketsResponseErrorResult;\n try {\n result = await this.executeRoute(event);\n } catch (ex) {\n result = this.response.error({\n message: `Route \"${event.requestContext.routeKey}\" action failed.`,\n error: {\n message: ex.message,\n code: ex.code,\n data: ex.data,\n stack: ex.stack\n }\n });\n }\n try {\n await this.respond({\n ...event.requestContext,\n messageId: event.body?.messageId,\n result\n });\n return result;\n } catch (ex) {\n return this.response.error({\n message: \"Failed to respond to the request.\",\n error: {\n message: ex.message,\n code: ex.code,\n data: {\n ...ex.data,\n result\n },\n stack: ex.stack\n }\n });\n }\n }\n\n private getRoutePlugins(route: WebsocketsEventRoute | string): WebsocketsRoutePlugin[] {\n const plugins = this.context.plugins\n .byType<WebsocketsRoutePlugin>(WebsocketsRoutePlugin.type)\n .filter(plugin => {\n return plugin.route === route;\n });\n if (plugins.length === 0) {\n throw new WebinyError(\n `There are no plugins for the route: ${route}.`,\n \"NO_ROUTE_PLUGINS\",\n {\n route\n }\n );\n }\n return plugins;\n }\n\n private async executeRoute(event: IWebsocketsEvent): Promise<IWebsocketsRunnerResponse> {\n /**\n * We will always fetch plugins in reverse order, so that users can override our default ones if necessary.\n */\n const plugins = this.getRoutePlugins(event.requestContext.routeKey).reverse();\n\n const getTenant = () => {\n const tenant = this.context.tenancy.getCurrentTenant();\n return tenant?.id || null;\n };\n const getLocale = (): string | null => {\n const locale = this.context.i18n.getCurrentLocale(\"content\");\n return locale?.code || null;\n };\n\n const getIdentity = (): IWebsocketsIdentity | null => {\n const identity = this.context.security.getIdentity();\n return identity || null;\n };\n\n const action = middleware<MiddlewareParams, IWebsocketsRunnerResponse>(\n plugins.map(plugin => {\n return async (params, next) => {\n return plugin.run({\n registry: params.registry,\n event: params.event,\n context: params.context,\n getTenant,\n getLocale,\n getIdentity,\n response: this.response,\n next\n });\n };\n })\n );\n\n const result = await action({\n event,\n registry: this.registry,\n context: this.context\n });\n if (result) {\n return result;\n }\n const message = \"No response from the route action.\";\n return this.response.error({\n message,\n error: {\n message,\n code: \"NO_RESPONSE\"\n },\n statusCode: 404\n });\n }\n\n private async respond(params: IWebsocketsRunnerRespondParams): Promise<void> {\n const { connectionId, domainName, stage, eventType, result, messageId } = params;\n if (eventType !== WebsocketsEventRequestContextEventType.message) {\n return;\n } else if (!connectionId || !domainName || !stage) {\n const message = \"No connectionId, domainName or stage.\";\n const data = {\n connectionId,\n domainName,\n stage\n };\n console.error(message, JSON.stringify(data));\n throw new WebinyError(message, \"GENERAL_ERROR\", data);\n }\n const connection: IWebsocketsTransportSendConnection = {\n connectionId,\n domainName,\n stage\n };\n\n const dataToSend = {\n ...result,\n messageId\n };\n await this.context.websockets.sendToConnections([connection], dataToSend);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IWebsocketsIncomingEvent } from "../../handler/types";
2
- import { GenericRecord } from "@webiny/api/types";
1
+ import type { IWebsocketsIncomingEvent } from "../../handler/types";
2
+ import type { GenericRecord } from "@webiny/api/types";
3
3
  export interface IWebsocketsResponseError {
4
4
  message: string;
5
5
  code: string;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IWebsocketsRunner.ts"],"sourcesContent":["import { IWebsocketsIncomingEvent } from \"~/handler/types\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nexport interface IWebsocketsResponseError {\n message: string;\n code: string;\n data?: GenericRecord<string> | null;\n stack?: string;\n}\nexport interface IWebsocketsRunnerResponse {\n statusCode: number;\n message?: string;\n error?: IWebsocketsResponseError;\n}\n\nexport interface IWebsocketsRunner {\n run(params: IWebsocketsIncomingEvent): Promise<IWebsocketsRunnerResponse>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IWebsocketsRunner.ts"],"sourcesContent":["import type { IWebsocketsIncomingEvent } from \"~/handler/types\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nexport interface IWebsocketsResponseError {\n message: string;\n code: string;\n data?: GenericRecord<string> | null;\n stack?: string;\n}\nexport interface IWebsocketsRunnerResponse {\n statusCode: number;\n message?: string;\n error?: IWebsocketsResponseError;\n}\n\nexport interface IWebsocketsRunner {\n run(params: IWebsocketsIncomingEvent): Promise<IWebsocketsRunnerResponse>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IWebsocketsTransport, IWebsocketsTransportDisconnectConnection, IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from "./abstractions/IWebsocketsTransport";
2
- import { GenericRecord } from "@webiny/api/types";
1
+ import type { IWebsocketsTransport, IWebsocketsTransportDisconnectConnection, IWebsocketsTransportSendConnection, IWebsocketsTransportSendData } from "./abstractions/IWebsocketsTransport";
2
+ import type { GenericRecord } from "@webiny/api/types";
3
3
  export declare class WebsocketsTransport implements IWebsocketsTransport {
4
4
  private readonly clients;
5
5
  send<T extends GenericRecord = GenericRecord>(connections: IWebsocketsTransportSendConnection[], data: IWebsocketsTransportSendData<T>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"names":["_clientApigatewaymanagementapi","require","WebsocketsTransport","clients","Map","send","connections","data","connection","client","getClient","command","PostToConnectionCommand","ConnectionId","connectionId","Data","JSON","stringify","ex","console","error","log","disconnect","DeleteConnectionCommand","endpoint","domainName","stage","get","newClient","ApiGatewayManagementApiClient","set","exports"],"sources":["WebsocketsTransport.ts"],"sourcesContent":["import {\n ApiGatewayManagementApiClient,\n DeleteConnectionCommand,\n PostToConnectionCommand\n} from \"@webiny/aws-sdk/client-apigatewaymanagementapi\";\nimport {\n IWebsocketsTransport,\n IWebsocketsTransportDisconnectConnection,\n IWebsocketsTransportSendConnection,\n IWebsocketsTransportSendData\n} from \"./abstractions/IWebsocketsTransport\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nexport class WebsocketsTransport implements IWebsocketsTransport {\n private readonly clients = new Map<string, ApiGatewayManagementApiClient>();\n\n public async send<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void> {\n for (const connection of connections) {\n try {\n const client = this.getClient(connection);\n\n const command = new PostToConnectionCommand({\n ConnectionId: connection.connectionId,\n Data: JSON.stringify(data)\n });\n await client.send(command);\n } catch (ex) {\n console.error(\n `Failed to send message to connection \"${connection.connectionId}\". Check logs for more information.`\n );\n console.log(ex);\n }\n }\n }\n\n public async disconnect(connections: IWebsocketsTransportDisconnectConnection[]) {\n for (const connection of connections) {\n try {\n const client = this.getClient(connection);\n const command = new DeleteConnectionCommand({\n ConnectionId: connection.connectionId\n });\n await client.send(command);\n } catch (ex) {\n console.error(\n `Failed to disconnect connection \"${connection.connectionId}\". Check logs for more information.`\n );\n console.log(ex);\n }\n }\n }\n\n private getClient(\n connection: IWebsocketsTransportSendConnection\n ): ApiGatewayManagementApiClient {\n const endpoint = `https://${connection.domainName}/${connection.stage}`;\n const client = this.clients.get(endpoint);\n if (client) {\n return client;\n }\n const newClient = new ApiGatewayManagementApiClient({\n endpoint\n });\n this.clients.set(endpoint, newClient);\n return newClient;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,8BAAA,GAAAC,OAAA;AAaO,MAAMC,mBAAmB,CAAiC;EAC5CC,OAAO,GAAG,IAAIC,GAAG,CAAwC,CAAC;EAE3E,MAAaC,IAAIA,CACbC,WAAiD,EACjDC,IAAqC,EACxB;IACb,KAAK,MAAMC,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAI;QACA,MAAMG,MAAM,GAAG,IAAI,CAACC,SAAS,CAACF,UAAU,CAAC;QAEzC,MAAMG,OAAO,GAAG,IAAIC,sDAAuB,CAAC;UACxCC,YAAY,EAAEL,UAAU,CAACM,YAAY;UACrCC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACV,IAAI;QAC7B,CAAC,CAAC;QACF,MAAME,MAAM,CAACJ,IAAI,CAACM,OAAO,CAAC;MAC9B,CAAC,CAAC,OAAOO,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CACT,yCAAyCZ,UAAU,CAACM,YAAY,qCACpE,CAAC;QACDK,OAAO,CAACE,GAAG,CAACH,EAAE,CAAC;MACnB;IACJ;EACJ;EAEA,MAAaI,UAAUA,CAAChB,WAAuD,EAAE;IAC7E,KAAK,MAAME,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAI;QACA,MAAMG,MAAM,GAAG,IAAI,CAACC,SAAS,CAACF,UAAU,CAAC;QACzC,MAAMG,OAAO,GAAG,IAAIY,sDAAuB,CAAC;UACxCV,YAAY,EAAEL,UAAU,CAACM;QAC7B,CAAC,CAAC;QACF,MAAML,MAAM,CAACJ,IAAI,CAACM,OAAO,CAAC;MAC9B,CAAC,CAAC,OAAOO,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CACT,oCAAoCZ,UAAU,CAACM,YAAY,qCAC/D,CAAC;QACDK,OAAO,CAACE,GAAG,CAACH,EAAE,CAAC;MACnB;IACJ;EACJ;EAEQR,SAASA,CACbF,UAA8C,EACjB;IAC7B,MAAMgB,QAAQ,GAAG,WAAWhB,UAAU,CAACiB,UAAU,IAAIjB,UAAU,CAACkB,KAAK,EAAE;IACvE,MAAMjB,MAAM,GAAG,IAAI,CAACN,OAAO,CAACwB,GAAG,CAACH,QAAQ,CAAC;IACzC,IAAIf,MAAM,EAAE;MACR,OAAOA,MAAM;IACjB;IACA,MAAMmB,SAAS,GAAG,IAAIC,4DAA6B,CAAC;MAChDL;IACJ,CAAC,CAAC;IACF,IAAI,CAACrB,OAAO,CAAC2B,GAAG,CAACN,QAAQ,EAAEI,SAAS,CAAC;IACrC,OAAOA,SAAS;EACpB;AACJ;AAACG,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_clientApigatewaymanagementapi","require","WebsocketsTransport","clients","Map","send","connections","data","connection","client","getClient","command","PostToConnectionCommand","ConnectionId","connectionId","Data","JSON","stringify","ex","console","error","log","disconnect","DeleteConnectionCommand","endpoint","domainName","stage","get","newClient","ApiGatewayManagementApiClient","set","exports"],"sources":["WebsocketsTransport.ts"],"sourcesContent":["import {\n ApiGatewayManagementApiClient,\n DeleteConnectionCommand,\n PostToConnectionCommand\n} from \"@webiny/aws-sdk/client-apigatewaymanagementapi\";\nimport type {\n IWebsocketsTransport,\n IWebsocketsTransportDisconnectConnection,\n IWebsocketsTransportSendConnection,\n IWebsocketsTransportSendData\n} from \"./abstractions/IWebsocketsTransport\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nexport class WebsocketsTransport implements IWebsocketsTransport {\n private readonly clients = new Map<string, ApiGatewayManagementApiClient>();\n\n public async send<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void> {\n for (const connection of connections) {\n try {\n const client = this.getClient(connection);\n\n const command = new PostToConnectionCommand({\n ConnectionId: connection.connectionId,\n Data: JSON.stringify(data)\n });\n await client.send(command);\n } catch (ex) {\n console.error(\n `Failed to send message to connection \"${connection.connectionId}\". Check logs for more information.`\n );\n console.log(ex);\n }\n }\n }\n\n public async disconnect(connections: IWebsocketsTransportDisconnectConnection[]) {\n for (const connection of connections) {\n try {\n const client = this.getClient(connection);\n const command = new DeleteConnectionCommand({\n ConnectionId: connection.connectionId\n });\n await client.send(command);\n } catch (ex) {\n console.error(\n `Failed to disconnect connection \"${connection.connectionId}\". Check logs for more information.`\n );\n console.log(ex);\n }\n }\n }\n\n private getClient(\n connection: IWebsocketsTransportSendConnection\n ): ApiGatewayManagementApiClient {\n const endpoint = `https://${connection.domainName}/${connection.stage}`;\n const client = this.clients.get(endpoint);\n if (client) {\n return client;\n }\n const newClient = new ApiGatewayManagementApiClient({\n endpoint\n });\n this.clients.set(endpoint, newClient);\n return newClient;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,8BAAA,GAAAC,OAAA;AAaO,MAAMC,mBAAmB,CAAiC;EAC5CC,OAAO,GAAG,IAAIC,GAAG,CAAwC,CAAC;EAE3E,MAAaC,IAAIA,CACbC,WAAiD,EACjDC,IAAqC,EACxB;IACb,KAAK,MAAMC,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAI;QACA,MAAMG,MAAM,GAAG,IAAI,CAACC,SAAS,CAACF,UAAU,CAAC;QAEzC,MAAMG,OAAO,GAAG,IAAIC,sDAAuB,CAAC;UACxCC,YAAY,EAAEL,UAAU,CAACM,YAAY;UACrCC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACV,IAAI;QAC7B,CAAC,CAAC;QACF,MAAME,MAAM,CAACJ,IAAI,CAACM,OAAO,CAAC;MAC9B,CAAC,CAAC,OAAOO,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CACT,yCAAyCZ,UAAU,CAACM,YAAY,qCACpE,CAAC;QACDK,OAAO,CAACE,GAAG,CAACH,EAAE,CAAC;MACnB;IACJ;EACJ;EAEA,MAAaI,UAAUA,CAAChB,WAAuD,EAAE;IAC7E,KAAK,MAAME,UAAU,IAAIF,WAAW,EAAE;MAClC,IAAI;QACA,MAAMG,MAAM,GAAG,IAAI,CAACC,SAAS,CAACF,UAAU,CAAC;QACzC,MAAMG,OAAO,GAAG,IAAIY,sDAAuB,CAAC;UACxCV,YAAY,EAAEL,UAAU,CAACM;QAC7B,CAAC,CAAC;QACF,MAAML,MAAM,CAACJ,IAAI,CAACM,OAAO,CAAC;MAC9B,CAAC,CAAC,OAAOO,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CACT,oCAAoCZ,UAAU,CAACM,YAAY,qCAC/D,CAAC;QACDK,OAAO,CAACE,GAAG,CAACH,EAAE,CAAC;MACnB;IACJ;EACJ;EAEQR,SAASA,CACbF,UAA8C,EACjB;IAC7B,MAAMgB,QAAQ,GAAG,WAAWhB,UAAU,CAACiB,UAAU,IAAIjB,UAAU,CAACkB,KAAK,EAAE;IACvE,MAAMjB,MAAM,GAAG,IAAI,CAACN,OAAO,CAACwB,GAAG,CAACH,QAAQ,CAAC;IACzC,IAAIf,MAAM,EAAE;MACR,OAAOA,MAAM;IACjB;IACA,MAAMmB,SAAS,GAAG,IAAIC,4DAA6B,CAAC;MAChDL;IACJ,CAAC,CAAC;IACF,IAAI,CAACrB,OAAO,CAAC2B,GAAG,CAACN,QAAQ,EAAEI,SAAS,CAAC;IACrC,OAAOA,SAAS;EACpB;AACJ;AAACG,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { GenericRecord } from "@webiny/api/types";
2
- import { IWebsocketsConnectionRegistryData } from "../../registry";
1
+ import type { GenericRecord } from "@webiny/api/types";
2
+ import type { IWebsocketsConnectionRegistryData } from "../../registry";
3
3
  export interface IWebsocketsTransportSendDataError {
4
4
  message: string;
5
5
  code: string;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IWebsocketsTransport.ts"],"sourcesContent":["import { GenericRecord } from \"@webiny/api/types\";\nimport { IWebsocketsConnectionRegistryData } from \"~/registry\";\n\nexport interface IWebsocketsTransportSendDataError {\n message: string;\n code: string;\n data?: GenericRecord;\n stack?: string;\n}\n\nexport interface IWebsocketsTransportSendData<T extends GenericRecord> {\n messageId?: string;\n action?: string;\n data?: T;\n error?: IWebsocketsTransportSendDataError;\n}\n\nexport type IWebsocketsTransportSendConnection = Pick<\n IWebsocketsConnectionRegistryData,\n \"connectionId\" | \"domainName\" | \"stage\"\n>;\n\nexport type IWebsocketsTransportDisconnectConnection = Pick<\n IWebsocketsConnectionRegistryData,\n \"connectionId\" | \"domainName\" | \"stage\"\n>;\n\nexport interface IWebsocketsTransport {\n send<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void>;\n\n disconnect(connections: IWebsocketsTransportDisconnectConnection[]): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IWebsocketsTransport.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types\";\nimport type { IWebsocketsConnectionRegistryData } from \"~/registry\";\n\nexport interface IWebsocketsTransportSendDataError {\n message: string;\n code: string;\n data?: GenericRecord;\n stack?: string;\n}\n\nexport interface IWebsocketsTransportSendData<T extends GenericRecord> {\n messageId?: string;\n action?: string;\n data?: T;\n error?: IWebsocketsTransportSendDataError;\n}\n\nexport type IWebsocketsTransportSendConnection = Pick<\n IWebsocketsConnectionRegistryData,\n \"connectionId\" | \"domainName\" | \"stage\"\n>;\n\nexport type IWebsocketsTransportDisconnectConnection = Pick<\n IWebsocketsConnectionRegistryData,\n \"connectionId\" | \"domainName\" | \"stage\"\n>;\n\nexport interface IWebsocketsTransport {\n send<T extends GenericRecord = GenericRecord>(\n connections: IWebsocketsTransportSendConnection[],\n data: IWebsocketsTransportSendData<T>\n ): Promise<void>;\n\n disconnect(connections: IWebsocketsTransportDisconnectConnection[]): Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
package/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { DbContext } from "@webiny/handler-db/types";
2
- import { IWebsocketsContextObject } from "./context/abstractions/IWebsocketsContext";
3
- import { SecurityContext, SecurityPermission } from "@webiny/api-security/types";
4
- import { I18NContext } from "@webiny/api-i18n/types";
1
+ import type { DbContext } from "@webiny/handler-db/types";
2
+ import type { IWebsocketsContextObject } from "./context/abstractions/IWebsocketsContext";
3
+ import type { SecurityContext, SecurityPermission } from "@webiny/api-security/types";
4
+ import type { I18NContext } from "@webiny/api-i18n/types";
5
5
  export type { IWebsocketsContextObject };
6
6
  export interface Context extends DbContext, SecurityContext, I18NContext {
7
7
  websockets: IWebsocketsContextObject;
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { DbContext } from \"@webiny/handler-db/types\";\nimport { IWebsocketsContextObject } from \"./context/abstractions/IWebsocketsContext\";\nimport { SecurityContext, SecurityPermission } from \"@webiny/api-security/types\";\nimport { I18NContext } from \"@webiny/api-i18n/types\";\n\nexport type { IWebsocketsContextObject };\n\nexport interface Context extends DbContext, SecurityContext, I18NContext {\n websockets: IWebsocketsContextObject;\n}\n\nexport interface WebsocketsPermission extends SecurityPermission {\n name: \"websockets\";\n rwd?: string;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { DbContext } from \"@webiny/handler-db/types\";\nimport type { IWebsocketsContextObject } from \"./context/abstractions/IWebsocketsContext\";\nimport type { SecurityContext, SecurityPermission } from \"@webiny/api-security/types\";\nimport type { I18NContext } from \"@webiny/api-i18n/types\";\n\nexport type { IWebsocketsContextObject };\n\nexport interface Context extends DbContext, SecurityContext, I18NContext {\n websockets: IWebsocketsContextObject;\n}\n\nexport interface WebsocketsPermission extends SecurityPermission {\n name: \"websockets\";\n rwd?: string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { GenericRecord } from "@webiny/api/types";
1
+ import type { GenericRecord } from "@webiny/api/types";
2
2
  export interface MiddlewareCallable<I extends GenericRecord = GenericRecord, O extends GenericRecord = GenericRecord> {
3
3
  (input: I, next: () => Promise<O>): Promise<O>;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"names":["middleware","functions","input","chain","Array","from","exec","fn","shift","next","exports"],"sources":["middleware.ts"],"sourcesContent":["import { GenericRecord } from \"@webiny/api/types\";\n\nexport interface MiddlewareCallable<\n I extends GenericRecord = GenericRecord,\n O extends GenericRecord = GenericRecord\n> {\n (input: I, next: () => Promise<O>): Promise<O>;\n}\n\nexport const middleware = <\n I extends GenericRecord = GenericRecord,\n O extends GenericRecord = GenericRecord\n>(\n functions: MiddlewareCallable<I, O>[]\n) => {\n return async (input: I): Promise<O> => {\n const chain = Array.from(functions);\n const exec = async (): Promise<O> => {\n const fn = chain.shift();\n if (!fn) {\n return {} as O;\n }\n const next = async () => {\n return exec();\n };\n return fn(input, next);\n };\n return exec();\n };\n};\n"],"mappings":";;;;;;AASO,MAAMA,UAAU,GAInBC,SAAqC,IACpC;EACD,OAAO,MAAOC,KAAQ,IAAiB;IACnC,MAAMC,KAAK,GAAGC,KAAK,CAACC,IAAI,CAACJ,SAAS,CAAC;IACnC,MAAMK,IAAI,GAAG,MAAAA,CAAA,KAAwB;MACjC,MAAMC,EAAE,GAAGJ,KAAK,CAACK,KAAK,CAAC,CAAC;MACxB,IAAI,CAACD,EAAE,EAAE;QACL,OAAO,CAAC,CAAC;MACb;MACA,MAAME,IAAI,GAAG,MAAAA,CAAA,KAAY;QACrB,OAAOH,IAAI,CAAC,CAAC;MACjB,CAAC;MACD,OAAOC,EAAE,CAACL,KAAK,EAAEO,IAAI,CAAC;IAC1B,CAAC;IACD,OAAOH,IAAI,CAAC,CAAC;EACjB,CAAC;AACL,CAAC;AAACI,OAAA,CAAAV,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["middleware","functions","input","chain","Array","from","exec","fn","shift","next","exports"],"sources":["middleware.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types\";\n\nexport interface MiddlewareCallable<\n I extends GenericRecord = GenericRecord,\n O extends GenericRecord = GenericRecord\n> {\n (input: I, next: () => Promise<O>): Promise<O>;\n}\n\nexport const middleware = <\n I extends GenericRecord = GenericRecord,\n O extends GenericRecord = GenericRecord\n>(\n functions: MiddlewareCallable<I, O>[]\n) => {\n return async (input: I): Promise<O> => {\n const chain = Array.from(functions);\n const exec = async (): Promise<O> => {\n const fn = chain.shift();\n if (!fn) {\n return {} as O;\n }\n const next = async () => {\n return exec();\n };\n return fn(input, next);\n };\n return exec();\n };\n};\n"],"mappings":";;;;;;AASO,MAAMA,UAAU,GAInBC,SAAqC,IACpC;EACD,OAAO,MAAOC,KAAQ,IAAiB;IACnC,MAAMC,KAAK,GAAGC,KAAK,CAACC,IAAI,CAACJ,SAAS,CAAC;IACnC,MAAMK,IAAI,GAAG,MAAAA,CAAA,KAAwB;MACjC,MAAMC,EAAE,GAAGJ,KAAK,CAACK,KAAK,CAAC,CAAC;MACxB,IAAI,CAACD,EAAE,EAAE;QACL,OAAO,CAAC,CAAC;MACb;MACA,MAAME,IAAI,GAAG,MAAAA,CAAA,KAAY;QACrB,OAAOH,IAAI,CAAC,CAAC;MACjB,CAAC;MACD,OAAOC,EAAE,CAACL,KAAK,EAAEO,IAAI,CAAC;IAC1B,CAAC;IACD,OAAOH,IAAI,CAAC,CAAC;EACjB,CAAC;AACL,CAAC;AAACI,OAAA,CAAAV,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IWebsocketsEvent, IWebsocketsEventData } from "../handler/types";
2
- import { IWebsocketsEventValidator, IWebsocketsEventValidatorValidateParams } from "./abstractions/IWebsocketsEventValidator";
1
+ import type { IWebsocketsEvent, IWebsocketsEventData } from "../handler/types";
2
+ import type { IWebsocketsEventValidator, IWebsocketsEventValidatorValidateParams } from "./abstractions/IWebsocketsEventValidator";
3
3
  export declare class WebsocketsEventValidator implements IWebsocketsEventValidator {
4
4
  validate<T extends IWebsocketsEventData = IWebsocketsEventData>(input: IWebsocketsEventValidatorValidateParams): Promise<IWebsocketsEvent<T>>;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_zod","_interopRequireDefault","require","_types","_utils","validation","zod","object","headers","passthrough","optional","requestContext","connectionId","string","stage","connectedAt","number","domainName","eventType","enum","WebsocketsEventRequestContextEventType","connect","message","disconnect","routeKey","body","transform","value","context","undefined","JSON","parse","ex","console","error","log","addIssue","path","code","ZodIssueCode","custom","fatal","superRefine","output","bodyValidation","token","tenant","locale","messageId","nullish","action","data","WebsocketsEventValidator","validate","input","result","safeParseAsync","success","createZodError","bodyResult","exports"],"sources":["WebsocketsEventValidator.ts"],"sourcesContent":["import zod from \"zod\";\nimport {\n IWebsocketsEvent,\n IWebsocketsEventData,\n WebsocketsEventRequestContextEventType\n} from \"~/handler/types\";\nimport {\n IWebsocketsEventValidator,\n IWebsocketsEventValidatorValidateParams\n} from \"./abstractions/IWebsocketsEventValidator\";\nimport { createZodError } from \"@webiny/utils\";\n\nconst validation = zod\n .object({\n headers: zod.object({}).passthrough().optional(),\n requestContext: zod.object({\n connectionId: zod.string(),\n stage: zod.string(),\n connectedAt: zod.number(),\n domainName: zod.string(),\n eventType: zod.enum([\n WebsocketsEventRequestContextEventType.connect,\n WebsocketsEventRequestContextEventType.message,\n WebsocketsEventRequestContextEventType.disconnect\n ]),\n routeKey: zod.string()\n }),\n body: zod\n .string()\n .transform<IWebsocketsEventData>((value, context) => {\n if (!value) {\n return undefined;\n }\n try {\n return JSON.parse(value);\n } catch (ex) {\n /**\n * We want to log the error, for easier debugging.\n */\n console.error(`Failed body validation: ${ex.message}`);\n console.log(`Body: ${value}`);\n /**\n * And we want to add an issue to the context, so that the user knows what went wrong.\n */\n context.addIssue({\n path: [],\n message: `Invalid JSON: ${ex.message}`,\n code: zod.ZodIssueCode.custom,\n fatal: true\n });\n }\n })\n .optional()\n })\n .superRefine((output, context) => {\n if (output.requestContext.eventType !== WebsocketsEventRequestContextEventType.message) {\n return;\n } else if (output.body) {\n return;\n }\n context.addIssue({\n path: [\"body\"],\n message: \"There must be a body defined when having a message event.\",\n code: zod.ZodIssueCode.custom,\n fatal: true\n });\n });\n\nconst bodyValidation = zod\n .object({\n token: zod.string(),\n tenant: zod.string(),\n locale: zod.string(),\n messageId: zod.string().nullish(),\n action: zod.string(),\n data: zod.object({}).passthrough().nullish()\n })\n .passthrough()\n .optional();\n\nexport class WebsocketsEventValidator implements IWebsocketsEventValidator {\n public async validate<T extends IWebsocketsEventData = IWebsocketsEventData>(\n input: IWebsocketsEventValidatorValidateParams\n ): Promise<IWebsocketsEvent<T>> {\n const result = await validation.safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n const bodyResult = await bodyValidation.safeParseAsync(result.data.body);\n if (!bodyResult.success) {\n throw createZodError(bodyResult.error);\n }\n return {\n ...result.data,\n body: {\n ...((bodyResult.data || {}) as T)\n }\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_zod","_interopRequireDefault","require","_types","_utils","validation","zod","object","headers","passthrough","optional","requestContext","connectionId","string","stage","connectedAt","number","domainName","eventType","enum","WebsocketsEventRequestContextEventType","connect","message","disconnect","routeKey","body","transform","value","context","undefined","JSON","parse","ex","console","error","log","addIssue","path","code","ZodIssueCode","custom","fatal","superRefine","output","bodyValidation","token","tenant","locale","messageId","nullish","action","data","WebsocketsEventValidator","validate","input","result","safeParseAsync","success","createZodError","bodyResult","exports"],"sources":["WebsocketsEventValidator.ts"],"sourcesContent":["import zod from \"zod\";\nimport type { IWebsocketsEvent, IWebsocketsEventData } from \"~/handler/types\";\nimport { WebsocketsEventRequestContextEventType } from \"~/handler/types\";\nimport type {\n IWebsocketsEventValidator,\n IWebsocketsEventValidatorValidateParams\n} from \"./abstractions/IWebsocketsEventValidator\";\nimport { createZodError } from \"@webiny/utils\";\n\nconst validation = zod\n .object({\n headers: zod.object({}).passthrough().optional(),\n requestContext: zod.object({\n connectionId: zod.string(),\n stage: zod.string(),\n connectedAt: zod.number(),\n domainName: zod.string(),\n eventType: zod.enum([\n WebsocketsEventRequestContextEventType.connect,\n WebsocketsEventRequestContextEventType.message,\n WebsocketsEventRequestContextEventType.disconnect\n ]),\n routeKey: zod.string()\n }),\n body: zod\n .string()\n .transform<IWebsocketsEventData>((value, context) => {\n if (!value) {\n return undefined;\n }\n try {\n return JSON.parse(value);\n } catch (ex) {\n /**\n * We want to log the error, for easier debugging.\n */\n console.error(`Failed body validation: ${ex.message}`);\n console.log(`Body: ${value}`);\n /**\n * And we want to add an issue to the context, so that the user knows what went wrong.\n */\n context.addIssue({\n path: [],\n message: `Invalid JSON: ${ex.message}`,\n code: zod.ZodIssueCode.custom,\n fatal: true\n });\n }\n })\n .optional()\n })\n .superRefine((output, context) => {\n if (output.requestContext.eventType !== WebsocketsEventRequestContextEventType.message) {\n return;\n } else if (output.body) {\n return;\n }\n context.addIssue({\n path: [\"body\"],\n message: \"There must be a body defined when having a message event.\",\n code: zod.ZodIssueCode.custom,\n fatal: true\n });\n });\n\nconst bodyValidation = zod\n .object({\n token: zod.string(),\n tenant: zod.string(),\n locale: zod.string(),\n messageId: zod.string().nullish(),\n action: zod.string(),\n data: zod.object({}).passthrough().nullish()\n })\n .passthrough()\n .optional();\n\nexport class WebsocketsEventValidator implements IWebsocketsEventValidator {\n public async validate<T extends IWebsocketsEventData = IWebsocketsEventData>(\n input: IWebsocketsEventValidatorValidateParams\n ): Promise<IWebsocketsEvent<T>> {\n const result = await validation.safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n const bodyResult = await bodyValidation.safeParseAsync(result.data.body);\n if (!bodyResult.success) {\n throw createZodError(bodyResult.error);\n }\n return {\n ...result.data,\n body: {\n ...((bodyResult.data || {}) as T)\n }\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { IWebsocketsEvent, IWebsocketsEventData, IWebsocketsIncomingEvent } from "../../handler/types";
1
+ import type { IWebsocketsEvent, IWebsocketsEventData, IWebsocketsIncomingEvent } from "../../handler/types";
2
2
  export type IWebsocketsEventValidatorValidateParams = IWebsocketsIncomingEvent;
3
3
  export interface IWebsocketsEventValidator {
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IWebsocketsEventValidator.ts"],"sourcesContent":["import { IWebsocketsEvent, IWebsocketsEventData, IWebsocketsIncomingEvent } from \"~/handler/types\";\n\nexport type IWebsocketsEventValidatorValidateParams = IWebsocketsIncomingEvent;\n\nexport interface IWebsocketsEventValidator {\n /**\n * @throws {Error}\n */\n validate<T extends IWebsocketsEventData = IWebsocketsEventData>(\n params: IWebsocketsEventValidatorValidateParams\n ): Promise<IWebsocketsEvent<T>>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IWebsocketsEventValidator.ts"],"sourcesContent":["import type {\n IWebsocketsEvent,\n IWebsocketsEventData,\n IWebsocketsIncomingEvent\n} from \"~/handler/types\";\n\nexport type IWebsocketsEventValidatorValidateParams = IWebsocketsIncomingEvent;\n\nexport interface IWebsocketsEventValidator {\n /**\n * @throws {Error}\n */\n validate<T extends IWebsocketsEventData = IWebsocketsEventData>(\n params: IWebsocketsEventValidatorValidateParams\n ): Promise<IWebsocketsEvent<T>>;\n}\n"],"mappings":"","ignoreList":[]}