@webiny/app-websockets 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.eb81deee7e

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 (67) hide show
  1. package/README.md +8 -9
  2. package/WebsocketsContextProvider.d.ts +1 -1
  3. package/WebsocketsContextProvider.js +137 -154
  4. package/WebsocketsContextProvider.js.map +1 -1
  5. package/domain/WebsocketsAction.d.ts +1 -1
  6. package/domain/WebsocketsAction.js +17 -24
  7. package/domain/WebsocketsAction.js.map +1 -1
  8. package/domain/WebsocketsActions.d.ts +1 -3
  9. package/domain/WebsocketsActions.js +52 -78
  10. package/domain/WebsocketsActions.js.map +1 -1
  11. package/domain/WebsocketsConnection.d.ts +31 -4
  12. package/domain/WebsocketsConnection.js +162 -107
  13. package/domain/WebsocketsConnection.js.map +1 -1
  14. package/domain/WebsocketsManager.d.ts +1 -1
  15. package/domain/WebsocketsManager.js +33 -34
  16. package/domain/WebsocketsManager.js.map +1 -1
  17. package/domain/WebsocketsSubscriptionManager.d.ts +2 -2
  18. package/domain/WebsocketsSubscriptionManager.js +58 -65
  19. package/domain/WebsocketsSubscriptionManager.js.map +1 -1
  20. package/domain/abstractions/IWebsocketsAction.d.ts +1 -1
  21. package/domain/abstractions/IWebsocketsAction.js +0 -3
  22. package/domain/abstractions/IWebsocketsActions.d.ts +2 -2
  23. package/domain/abstractions/IWebsocketsActions.js +0 -3
  24. package/domain/abstractions/IWebsocketsConnection.d.ts +2 -2
  25. package/domain/abstractions/IWebsocketsConnection.js +7 -6
  26. package/domain/abstractions/IWebsocketsConnection.js.map +1 -1
  27. package/domain/abstractions/IWebsocketsManager.d.ts +2 -6
  28. package/domain/abstractions/IWebsocketsManager.js +0 -3
  29. package/domain/abstractions/IWebsocketsSubscriptionManager.d.ts +2 -2
  30. package/domain/abstractions/IWebsocketsSubscriptionManager.js +0 -3
  31. package/domain/abstractions/types.d.ts +1 -1
  32. package/domain/abstractions/types.js +19 -18
  33. package/domain/abstractions/types.js.map +1 -1
  34. package/domain/index.d.ts +5 -5
  35. package/domain/index.js +5 -7
  36. package/domain/types.d.ts +6 -6
  37. package/domain/types.js +2 -8
  38. package/events/WebsocketEvent.d.ts +10 -0
  39. package/events/WebsocketEvent.js +13 -0
  40. package/events/WebsocketEvent.js.map +1 -0
  41. package/events/abstractions.d.ts +13 -0
  42. package/events/abstractions.js +5 -0
  43. package/events/abstractions.js.map +1 -0
  44. package/exports/admin/websockets.d.ts +1 -0
  45. package/exports/admin/websockets.js +1 -0
  46. package/hooks/index.d.ts +1 -1
  47. package/hooks/index.js +1 -3
  48. package/hooks/useWebsockets.d.ts +1 -1
  49. package/hooks/useWebsockets.js +6 -7
  50. package/hooks/useWebsockets.js.map +1 -1
  51. package/index.d.ts +6 -3
  52. package/index.js +14 -15
  53. package/index.js.map +1 -1
  54. package/package.json +21 -19
  55. package/types.d.ts +2 -2
  56. package/types.js +1 -4
  57. package/domain/abstractions/IWebsocketsAction.js.map +0 -1
  58. package/domain/abstractions/IWebsocketsActions.js.map +0 -1
  59. package/domain/abstractions/IWebsocketsManager.js.map +0 -1
  60. package/domain/abstractions/IWebsocketsSubscriptionManager.js.map +0 -1
  61. package/domain/index.js.map +0 -1
  62. package/domain/types.js.map +0 -1
  63. package/hooks/index.js.map +0 -1
  64. package/types.js.map +0 -1
  65. package/utils/getUrl.d.ts +0 -1
  66. package/utils/getUrl.js +0 -6
  67. package/utils/getUrl.js.map +0 -1
@@ -1,73 +1,66 @@
1
- import { generateId } from "@webiny/utils/generateId";
2
- export class WebsocketsSubscriptionManager {
3
- subscriptions = {
4
- open: {},
5
- close: {},
6
- error: {},
7
- message: {}
8
- };
9
- onOpen(cb) {
10
- const value = this.createSubscription("open", cb);
11
- this.subscriptions.close[value.id] = value;
12
- return value;
13
- }
14
- onClose(cb) {
15
- const value = this.createSubscription("close", cb);
16
- this.subscriptions.close[value.id] = value;
17
- return value;
18
- }
19
- onError(cb) {
20
- const value = this.createSubscription("error", cb);
21
- this.subscriptions.error[value.id] = value;
22
- return value;
23
- }
24
- onMessage(cb) {
25
- const value = this.createSubscription("message", cb);
26
- this.subscriptions.message[value.id] = value;
27
- return value;
28
- }
29
- async triggerOnOpen(event) {
30
- for (const id in this.subscriptions.open) {
31
- await this.subscriptions.open[id].cb(event);
1
+ import { generateId } from "@webiny/utils/generateId.js";
2
+ class WebsocketsSubscriptionManager {
3
+ onOpen(cb) {
4
+ const value = this.createSubscription("open", cb);
5
+ this.subscriptions.close[value.id] = value;
6
+ return value;
32
7
  }
33
- }
34
- async triggerOnClose(event) {
35
- for (const id in this.subscriptions.close) {
36
- await this.subscriptions.close[id].cb(event);
8
+ onClose(cb) {
9
+ const value = this.createSubscription("close", cb);
10
+ this.subscriptions.close[value.id] = value;
11
+ return value;
37
12
  }
38
- }
39
- async triggerOnError(event) {
40
- for (const id in this.subscriptions.error) {
41
- await this.subscriptions.error[id].cb(event);
13
+ onError(cb) {
14
+ const value = this.createSubscription("error", cb);
15
+ this.subscriptions.error[value.id] = value;
16
+ return value;
42
17
  }
43
- }
44
- async triggerOnMessage(event) {
45
- let data = {};
46
- try {
47
- data = JSON.parse(event.data);
48
- } catch (ex) {
49
- console.error("Failed to parse the incoming message.", ex);
18
+ onMessage(cb) {
19
+ const value = this.createSubscription("message", cb);
20
+ this.subscriptions.message[value.id] = value;
21
+ return value;
50
22
  }
51
- for (const id in this.subscriptions.message) {
52
- await this.subscriptions.message[id].cb({
53
- ...event,
54
- data: data || {}
55
- });
23
+ async triggerOnOpen(event) {
24
+ for(const id in this.subscriptions.open)await this.subscriptions.open[id].cb(event);
25
+ }
26
+ async triggerOnClose(event) {
27
+ for(const id in this.subscriptions.close)await this.subscriptions.close[id].cb(event);
28
+ }
29
+ async triggerOnError(event) {
30
+ for(const id in this.subscriptions.error)await this.subscriptions.error[id].cb(event);
31
+ }
32
+ async triggerOnMessage(event) {
33
+ let data = {};
34
+ try {
35
+ data = JSON.parse(event.data);
36
+ } catch (ex) {
37
+ console.error("Failed to parse the incoming message.", ex);
38
+ }
39
+ for(const id in this.subscriptions.message)await this.subscriptions.message[id].cb({
40
+ ...event,
41
+ data: data || {}
42
+ });
43
+ }
44
+ createSubscription(type, cb) {
45
+ const id = generateId();
46
+ return {
47
+ cb,
48
+ id,
49
+ off: ()=>{
50
+ delete this.subscriptions[type][id];
51
+ }
52
+ };
53
+ }
54
+ constructor(){
55
+ this.subscriptions = {
56
+ open: {},
57
+ close: {},
58
+ error: {},
59
+ message: {}
60
+ };
56
61
  }
57
- }
58
- createSubscription(type, cb) {
59
- const id = generateId();
60
- return {
61
- cb,
62
- id,
63
- off: () => {
64
- delete this.subscriptions[type][id];
65
- }
66
- };
67
- }
68
62
  }
69
- export const createWebsocketsSubscriptionManager = () => {
70
- return new WebsocketsSubscriptionManager();
71
- };
63
+ const createWebsocketsSubscriptionManager = ()=>new WebsocketsSubscriptionManager();
64
+ export { WebsocketsSubscriptionManager, createWebsocketsSubscriptionManager };
72
65
 
73
66
  //# sourceMappingURL=WebsocketsSubscriptionManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["generateId","WebsocketsSubscriptionManager","subscriptions","open","close","error","message","onOpen","cb","value","createSubscription","id","onClose","onError","onMessage","triggerOnOpen","event","triggerOnClose","triggerOnError","triggerOnMessage","data","JSON","parse","ex","console","type","off","createWebsocketsSubscriptionManager"],"sources":["WebsocketsSubscriptionManager.ts"],"sourcesContent":["import { generateId } from \"@webiny/utils/generateId\";\nimport type {\n IGenericData,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketManagerEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsManagerOpenEvent\n} from \"./types\";\nimport type {\n IWebsocketsSubscriptionManagerSubscriptions,\n IWebsocketsSubscription,\n IWebsocketsSubscriptionCallback,\n IWebsocketsSubscriptionManager\n} from \"./abstractions/IWebsocketsSubscriptionManager\";\n\nexport class WebsocketsSubscriptionManager implements IWebsocketsSubscriptionManager {\n private subscriptions: IWebsocketsSubscriptionManagerSubscriptions = {\n open: {},\n close: {},\n error: {},\n message: {}\n };\n\n public onOpen(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerOpenEvent> {\n const value = this.createSubscription<IWebsocketsManagerOpenEvent>(\"open\", cb);\n this.subscriptions.close[value.id] = value;\n return value;\n }\n\n public onClose(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent> {\n const value = this.createSubscription<IWebsocketsManagerCloseEvent>(\"close\", cb);\n this.subscriptions.close[value.id] = value;\n return value;\n }\n\n public onError(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent> {\n const value = this.createSubscription<IWebsocketsManagerErrorEvent>(\"error\", cb);\n this.subscriptions.error[value.id] = value;\n return value;\n }\n\n public onMessage<T extends IGenericData = IGenericData>(\n cb: IWebsocketsSubscriptionCallback<T>\n ): IWebsocketsSubscription<T> {\n const value = this.createSubscription<T>(\"message\", cb);\n this.subscriptions.message[value.id] = value;\n return value;\n }\n\n public async triggerOnOpen(event: Event): Promise<void> {\n for (const id in this.subscriptions.open) {\n await this.subscriptions.open[id].cb(event);\n }\n }\n\n public async triggerOnClose(event: CloseEvent): Promise<void> {\n for (const id in this.subscriptions.close) {\n await this.subscriptions.close[id].cb(event);\n }\n }\n\n public async triggerOnError(event: Event): Promise<void> {\n for (const id in this.subscriptions.error) {\n await this.subscriptions.error[id].cb(event);\n }\n }\n\n public async triggerOnMessage(event: IWebsocketsManagerMessageEvent<string>): Promise<void> {\n let data: IGenericData = {};\n try {\n data = JSON.parse(event.data);\n } catch (ex) {\n console.error(\"Failed to parse the incoming message.\", ex);\n }\n for (const id in this.subscriptions.message) {\n await this.subscriptions.message[id].cb({\n ...event,\n data: data || {}\n });\n }\n }\n\n private createSubscription<T>(\n type: IWebsocketManagerEvent,\n cb: IWebsocketsSubscriptionCallback<T>\n ): IWebsocketsSubscription<T> {\n const id = generateId();\n return {\n cb,\n id,\n off: () => {\n delete this.subscriptions[type][id];\n }\n };\n }\n}\n\nexport const createWebsocketsSubscriptionManager = (): IWebsocketsSubscriptionManager => {\n return new WebsocketsSubscriptionManager();\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"domain/WebsocketsSubscriptionManager.js","sources":["../../src/domain/WebsocketsSubscriptionManager.ts"],"sourcesContent":["import { generateId } from \"@webiny/utils/generateId.js\";\nimport type {\n IGenericData,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketManagerEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsManagerOpenEvent\n} from \"./types.js\";\nimport type {\n IWebsocketsSubscriptionManagerSubscriptions,\n IWebsocketsSubscription,\n IWebsocketsSubscriptionCallback,\n IWebsocketsSubscriptionManager\n} from \"./abstractions/IWebsocketsSubscriptionManager.js\";\n\nexport class WebsocketsSubscriptionManager implements IWebsocketsSubscriptionManager {\n private subscriptions: IWebsocketsSubscriptionManagerSubscriptions = {\n open: {},\n close: {},\n error: {},\n message: {}\n };\n\n public onOpen(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerOpenEvent> {\n const value = this.createSubscription<IWebsocketsManagerOpenEvent>(\"open\", cb);\n this.subscriptions.close[value.id] = value;\n return value;\n }\n\n public onClose(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent> {\n const value = this.createSubscription<IWebsocketsManagerCloseEvent>(\"close\", cb);\n this.subscriptions.close[value.id] = value;\n return value;\n }\n\n public onError(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent> {\n const value = this.createSubscription<IWebsocketsManagerErrorEvent>(\"error\", cb);\n this.subscriptions.error[value.id] = value;\n return value;\n }\n\n public onMessage<T extends IGenericData = IGenericData>(\n cb: IWebsocketsSubscriptionCallback<T>\n ): IWebsocketsSubscription<T> {\n const value = this.createSubscription<T>(\"message\", cb);\n this.subscriptions.message[value.id] = value;\n return value;\n }\n\n public async triggerOnOpen(event: Event): Promise<void> {\n for (const id in this.subscriptions.open) {\n await this.subscriptions.open[id].cb(event);\n }\n }\n\n public async triggerOnClose(event: CloseEvent): Promise<void> {\n for (const id in this.subscriptions.close) {\n await this.subscriptions.close[id].cb(event);\n }\n }\n\n public async triggerOnError(event: Event): Promise<void> {\n for (const id in this.subscriptions.error) {\n await this.subscriptions.error[id].cb(event);\n }\n }\n\n public async triggerOnMessage(event: IWebsocketsManagerMessageEvent<string>): Promise<void> {\n let data: IGenericData = {};\n try {\n data = JSON.parse(event.data);\n } catch (ex) {\n console.error(\"Failed to parse the incoming message.\", ex);\n }\n for (const id in this.subscriptions.message) {\n await this.subscriptions.message[id].cb({\n ...event,\n data: data || {}\n });\n }\n }\n\n private createSubscription<T>(\n type: IWebsocketManagerEvent,\n cb: IWebsocketsSubscriptionCallback<T>\n ): IWebsocketsSubscription<T> {\n const id = generateId();\n return {\n cb,\n id,\n off: () => {\n delete this.subscriptions[type][id];\n }\n };\n }\n}\n\nexport const createWebsocketsSubscriptionManager = (): IWebsocketsSubscriptionManager => {\n return new WebsocketsSubscriptionManager();\n};\n"],"names":["WebsocketsSubscriptionManager","cb","value","event","id","data","JSON","ex","console","type","generateId","createWebsocketsSubscriptionManager"],"mappings":";AAgBO,MAAMA;IAQF,OACHC,EAAgE,EACZ;QACpD,MAAMC,QAAQ,IAAI,CAAC,kBAAkB,CAA8B,QAAQD;QAC3E,IAAI,CAAC,aAAa,CAAC,KAAK,CAACC,MAAM,EAAE,CAAC,GAAGA;QACrC,OAAOA;IACX;IAEO,QACHD,EAAiE,EACZ;QACrD,MAAMC,QAAQ,IAAI,CAAC,kBAAkB,CAA+B,SAASD;QAC7E,IAAI,CAAC,aAAa,CAAC,KAAK,CAACC,MAAM,EAAE,CAAC,GAAGA;QACrC,OAAOA;IACX;IAEO,QACHD,EAAiE,EACZ;QACrD,MAAMC,QAAQ,IAAI,CAAC,kBAAkB,CAA+B,SAASD;QAC7E,IAAI,CAAC,aAAa,CAAC,KAAK,CAACC,MAAM,EAAE,CAAC,GAAGA;QACrC,OAAOA;IACX;IAEO,UACHD,EAAsC,EACZ;QAC1B,MAAMC,QAAQ,IAAI,CAAC,kBAAkB,CAAI,WAAWD;QACpD,IAAI,CAAC,aAAa,CAAC,OAAO,CAACC,MAAM,EAAE,CAAC,GAAGA;QACvC,OAAOA;IACX;IAEA,MAAa,cAAcC,KAAY,EAAiB;QACpD,IAAK,MAAMC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CACpC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAACA,GAAG,CAAC,EAAE,CAACD;IAE7C;IAEA,MAAa,eAAeA,KAAiB,EAAiB;QAC1D,IAAK,MAAMC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CACrC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAACA,GAAG,CAAC,EAAE,CAACD;IAE9C;IAEA,MAAa,eAAeA,KAAY,EAAiB;QACrD,IAAK,MAAMC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CACrC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAACA,GAAG,CAAC,EAAE,CAACD;IAE9C;IAEA,MAAa,iBAAiBA,KAA6C,EAAiB;QACxF,IAAIE,OAAqB,CAAC;QAC1B,IAAI;YACAA,OAAOC,KAAK,KAAK,CAACH,MAAM,IAAI;QAChC,EAAE,OAAOI,IAAI;YACTC,QAAQ,KAAK,CAAC,yCAAyCD;QAC3D;QACA,IAAK,MAAMH,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CACvC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAACA,GAAG,CAAC,EAAE,CAAC;YACpC,GAAGD,KAAK;YACR,MAAME,QAAQ,CAAC;QACnB;IAER;IAEQ,mBACJI,IAA4B,EAC5BR,EAAsC,EACZ;QAC1B,MAAMG,KAAKM;QACX,OAAO;YACHT;YACAG;YACA,KAAK;gBACD,OAAO,IAAI,CAAC,aAAa,CAACK,KAAK,CAACL,GAAG;YACvC;QACJ;IACJ;;aApFQ,aAAa,GAAgD;YACjE,MAAM,CAAC;YACP,OAAO,CAAC;YACR,OAAO,CAAC;YACR,SAAS,CAAC;QACd;;AAgFJ;AAEO,MAAMO,sCAAsC,IACxC,IAAIX"}
@@ -1,4 +1,4 @@
1
- import type { IGenericData } from "./types";
1
+ import type { IGenericData } from "./types.js";
2
2
  export interface IWebsocketActionOnResponse<R extends IGenericData = IGenericData> {
3
3
  (response: R | null): R | null;
4
4
  }
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsAction.js.map
@@ -1,5 +1,5 @@
1
- import type { IWebsocketsManager } from "./IWebsocketsManager";
2
- import type { IGenericData } from "./types";
1
+ import type { IWebsocketsManager } from "./IWebsocketsManager.js";
2
+ import type { IGenericData } from "./types.js";
3
3
  export interface IWebsocketsActionsRunParams<T extends IGenericData = IGenericData> {
4
4
  action: string;
5
5
  data?: T;
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsActions.js.map
@@ -1,5 +1,5 @@
1
- import type { IWebsocketsSubscriptionManager } from "./IWebsocketsSubscriptionManager";
2
- import type { IGenericData, WebsocketsCloseCode } from "./types";
1
+ import type { IWebsocketsSubscriptionManager } from "./IWebsocketsSubscriptionManager.js";
2
+ import type { IGenericData, WebsocketsCloseCode } from "./types.js";
3
3
  export type IWebsocketsConnectProtocol = string | string[] | undefined;
4
4
  export interface IWebsocketsConnectionFactory {
5
5
  (url: string, protocol?: IWebsocketsConnectProtocol): WebSocket;
@@ -1,9 +1,10 @@
1
- export let WebsocketsReadyState = /*#__PURE__*/function (WebsocketsReadyState) {
2
- WebsocketsReadyState[WebsocketsReadyState["CONNECTING"] = 0] = "CONNECTING";
3
- WebsocketsReadyState[WebsocketsReadyState["OPEN"] = 1] = "OPEN";
4
- WebsocketsReadyState[WebsocketsReadyState["CLOSING"] = 2] = "CLOSING";
5
- WebsocketsReadyState[WebsocketsReadyState["CLOSED"] = 3] = "CLOSED";
6
- return WebsocketsReadyState;
1
+ var IWebsocketsConnection_WebsocketsReadyState = /*#__PURE__*/ function(WebsocketsReadyState) {
2
+ WebsocketsReadyState[WebsocketsReadyState["CONNECTING"] = 0] = "CONNECTING";
3
+ WebsocketsReadyState[WebsocketsReadyState["OPEN"] = 1] = "OPEN";
4
+ WebsocketsReadyState[WebsocketsReadyState["CLOSING"] = 2] = "CLOSING";
5
+ WebsocketsReadyState[WebsocketsReadyState["CLOSED"] = 3] = "CLOSED";
6
+ return WebsocketsReadyState;
7
7
  }({});
8
+ export { IWebsocketsConnection_WebsocketsReadyState as WebsocketsReadyState };
8
9
 
9
10
  //# sourceMappingURL=IWebsocketsConnection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebsocketsReadyState"],"sources":["IWebsocketsConnection.ts"],"sourcesContent":["import type { IWebsocketsSubscriptionManager } from \"./IWebsocketsSubscriptionManager\";\nimport type { IGenericData, WebsocketsCloseCode } from \"./types\";\n\nexport type IWebsocketsConnectProtocol = string | string[] | undefined;\n\nexport interface IWebsocketsConnectionFactory {\n (url: string, protocol?: IWebsocketsConnectProtocol): WebSocket;\n}\n\nexport enum WebsocketsReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3\n}\n\nexport interface IWebsocketsConnection {\n readonly subscriptionManager: IWebsocketsSubscriptionManager;\n\n isConnected(): boolean;\n isClosed(): boolean;\n\n connect(): Promise<void>;\n close(code: WebsocketsCloseCode, reason: string): Promise<boolean>;\n send<T extends IGenericData = IGenericData>(data: T): void;\n}\n"],"mappings":"AASA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"domain/abstractions/IWebsocketsConnection.js","sources":["../../../src/domain/abstractions/IWebsocketsConnection.ts"],"sourcesContent":["import type { IWebsocketsSubscriptionManager } from \"./IWebsocketsSubscriptionManager.js\";\nimport type { IGenericData, WebsocketsCloseCode } from \"./types.js\";\n\nexport type IWebsocketsConnectProtocol = string | string[] | undefined;\n\nexport interface IWebsocketsConnectionFactory {\n (url: string, protocol?: IWebsocketsConnectProtocol): WebSocket;\n}\n\nexport enum WebsocketsReadyState {\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3\n}\n\nexport interface IWebsocketsConnection {\n readonly subscriptionManager: IWebsocketsSubscriptionManager;\n\n isConnected(): boolean;\n isClosed(): boolean;\n\n connect(): Promise<void>;\n close(code: WebsocketsCloseCode, reason: string): Promise<boolean>;\n send<T extends IGenericData = IGenericData>(data: T): void;\n}\n"],"names":["WebsocketsReadyState"],"mappings":"AASO,IAAKA,6CAAoBA,WAAAA,GAAAA,SAApBA,oBAAoB;8DACf;wDACN;2DACG;0DACD;WAJDA"}
@@ -1,5 +1,5 @@
1
- import type { IWebsocketsSubscription, IWebsocketsSubscriptionCallback } from "./IWebsocketsSubscriptionManager";
2
- import type { IGenericData, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsManagerOpenEvent, WebsocketsCloseCode } from "./types";
1
+ import type { IWebsocketsSubscription, IWebsocketsSubscriptionCallback } from "./IWebsocketsSubscriptionManager.js";
2
+ import type { IGenericData, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsManagerOpenEvent, WebsocketsCloseCode } from "./types.js";
3
3
  export interface IWebsocketManagerSendData<T extends IGenericData = IGenericData> extends IGenericData {
4
4
  /**
5
5
  * A user token, which will identify the user sending the message.
@@ -9,10 +9,6 @@ export interface IWebsocketManagerSendData<T extends IGenericData = IGenericData
9
9
  * Current tenant.
10
10
  */
11
11
  tenant: string;
12
- /**
13
- * Current locale.
14
- */
15
- locale: string;
16
12
  /**
17
13
  * A unique message ID - generated on the UI side.
18
14
  * TODO implement waiting for the message response.
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsManager.js.map
@@ -1,5 +1,5 @@
1
- import type { GenericRecord } from "@webiny/app/types";
2
- import type { IGenericData, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsManagerOpenEvent } from "./types";
1
+ import type { GenericRecord } from "@webiny/app/types.js";
2
+ import type { IGenericData, IWebsocketsManagerCloseEvent, IWebsocketsManagerErrorEvent, IWebsocketsManagerMessageEvent, IWebsocketsManagerOpenEvent } from "./types.js";
3
3
  export type IWebsocketManagerEvent = "open" | "close" | "error" | "message";
4
4
  export interface IWebsocketsSubscriptionCallback<T> {
5
5
  (data: T): Promise<void> | void;
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsSubscriptionManager.js.map
@@ -1,4 +1,4 @@
1
- import type { GenericRecord } from "@webiny/app/types";
1
+ import type { GenericRecord } from "@webiny/app/types.js";
2
2
  export type IWebsocketsManagerMessageEvent<T = IGenericData> = MessageEvent<T>;
3
3
  export type IWebsocketsManagerCloseEvent = CloseEvent;
4
4
  export type IWebsocketsManagerOpenEvent = Event;
@@ -1,21 +1,22 @@
1
- export let WebsocketsCloseCode = /*#__PURE__*/function (WebsocketsCloseCode) {
2
- WebsocketsCloseCode[WebsocketsCloseCode["NORMAL"] = 1000] = "NORMAL";
3
- WebsocketsCloseCode[WebsocketsCloseCode["GOING_AWAY"] = 1001] = "GOING_AWAY";
4
- WebsocketsCloseCode[WebsocketsCloseCode["PROTOCOL_ERROR"] = 1002] = "PROTOCOL_ERROR";
5
- WebsocketsCloseCode[WebsocketsCloseCode["CANNOT_ACCEPT"] = 1003] = "CANNOT_ACCEPT";
6
- WebsocketsCloseCode[WebsocketsCloseCode["RESERVED"] = 1004] = "RESERVED";
7
- WebsocketsCloseCode[WebsocketsCloseCode["NO_STATUS"] = 1005] = "NO_STATUS";
8
- WebsocketsCloseCode[WebsocketsCloseCode["ABNORMAL"] = 1006] = "ABNORMAL";
9
- WebsocketsCloseCode[WebsocketsCloseCode["INVALID_DATA"] = 1007] = "INVALID_DATA";
10
- WebsocketsCloseCode[WebsocketsCloseCode["POLICY_VIOLATION"] = 1008] = "POLICY_VIOLATION";
11
- WebsocketsCloseCode[WebsocketsCloseCode["TOO_BIG"] = 1009] = "TOO_BIG";
12
- WebsocketsCloseCode[WebsocketsCloseCode["MISSING_EXTENSION"] = 1010] = "MISSING_EXTENSION";
13
- WebsocketsCloseCode[WebsocketsCloseCode["SERVER_ERROR"] = 1011] = "SERVER_ERROR";
14
- WebsocketsCloseCode[WebsocketsCloseCode["SERVICE_RESTART"] = 1012] = "SERVICE_RESTART";
15
- WebsocketsCloseCode[WebsocketsCloseCode["TRY_AGAIN_LATER"] = 1013] = "TRY_AGAIN_LATER";
16
- WebsocketsCloseCode[WebsocketsCloseCode["BAD_GATEWAY"] = 1014] = "BAD_GATEWAY";
17
- WebsocketsCloseCode[WebsocketsCloseCode["TLS_HANDSHAKE"] = 1015] = "TLS_HANDSHAKE";
18
- return WebsocketsCloseCode;
1
+ var types_WebsocketsCloseCode = /*#__PURE__*/ function(WebsocketsCloseCode) {
2
+ WebsocketsCloseCode[WebsocketsCloseCode["NORMAL"] = 1000] = "NORMAL";
3
+ WebsocketsCloseCode[WebsocketsCloseCode["GOING_AWAY"] = 1001] = "GOING_AWAY";
4
+ WebsocketsCloseCode[WebsocketsCloseCode["PROTOCOL_ERROR"] = 1002] = "PROTOCOL_ERROR";
5
+ WebsocketsCloseCode[WebsocketsCloseCode["CANNOT_ACCEPT"] = 1003] = "CANNOT_ACCEPT";
6
+ WebsocketsCloseCode[WebsocketsCloseCode["RESERVED"] = 1004] = "RESERVED";
7
+ WebsocketsCloseCode[WebsocketsCloseCode["NO_STATUS"] = 1005] = "NO_STATUS";
8
+ WebsocketsCloseCode[WebsocketsCloseCode["ABNORMAL"] = 1006] = "ABNORMAL";
9
+ WebsocketsCloseCode[WebsocketsCloseCode["INVALID_DATA"] = 1007] = "INVALID_DATA";
10
+ WebsocketsCloseCode[WebsocketsCloseCode["POLICY_VIOLATION"] = 1008] = "POLICY_VIOLATION";
11
+ WebsocketsCloseCode[WebsocketsCloseCode["TOO_BIG"] = 1009] = "TOO_BIG";
12
+ WebsocketsCloseCode[WebsocketsCloseCode["MISSING_EXTENSION"] = 1010] = "MISSING_EXTENSION";
13
+ WebsocketsCloseCode[WebsocketsCloseCode["SERVER_ERROR"] = 1011] = "SERVER_ERROR";
14
+ WebsocketsCloseCode[WebsocketsCloseCode["SERVICE_RESTART"] = 1012] = "SERVICE_RESTART";
15
+ WebsocketsCloseCode[WebsocketsCloseCode["TRY_AGAIN_LATER"] = 1013] = "TRY_AGAIN_LATER";
16
+ WebsocketsCloseCode[WebsocketsCloseCode["BAD_GATEWAY"] = 1014] = "BAD_GATEWAY";
17
+ WebsocketsCloseCode[WebsocketsCloseCode["TLS_HANDSHAKE"] = 1015] = "TLS_HANDSHAKE";
18
+ return WebsocketsCloseCode;
19
19
  }({});
20
+ export { types_WebsocketsCloseCode as WebsocketsCloseCode };
20
21
 
21
22
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebsocketsCloseCode"],"sources":["types.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/app/types\";\n\nexport type IWebsocketsManagerMessageEvent<T = IGenericData> = MessageEvent<T>;\nexport type IWebsocketsManagerCloseEvent = CloseEvent;\nexport type IWebsocketsManagerOpenEvent = Event;\nexport type IWebsocketsManagerErrorEvent = Event;\n\nexport type IGenericData = GenericRecord;\n\nexport enum WebsocketsCloseCode {\n NORMAL = 1000,\n GOING_AWAY = 1001,\n PROTOCOL_ERROR = 1002,\n CANNOT_ACCEPT = 1003,\n RESERVED = 1004,\n NO_STATUS = 1005,\n ABNORMAL = 1006,\n INVALID_DATA = 1007,\n POLICY_VIOLATION = 1008,\n TOO_BIG = 1009,\n MISSING_EXTENSION = 1010,\n SERVER_ERROR = 1011,\n SERVICE_RESTART = 1012,\n TRY_AGAIN_LATER = 1013,\n BAD_GATEWAY = 1014,\n TLS_HANDSHAKE = 1015\n}\n"],"mappings":"AASA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"domain/abstractions/types.js","sources":["../../../src/domain/abstractions/types.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/app/types.js\";\n\nexport type IWebsocketsManagerMessageEvent<T = IGenericData> = MessageEvent<T>;\nexport type IWebsocketsManagerCloseEvent = CloseEvent;\nexport type IWebsocketsManagerOpenEvent = Event;\nexport type IWebsocketsManagerErrorEvent = Event;\n\nexport type IGenericData = GenericRecord;\n\nexport enum WebsocketsCloseCode {\n NORMAL = 1000,\n GOING_AWAY = 1001,\n PROTOCOL_ERROR = 1002,\n CANNOT_ACCEPT = 1003,\n RESERVED = 1004,\n NO_STATUS = 1005,\n ABNORMAL = 1006,\n INVALID_DATA = 1007,\n POLICY_VIOLATION = 1008,\n TOO_BIG = 1009,\n MISSING_EXTENSION = 1010,\n SERVER_ERROR = 1011,\n SERVICE_RESTART = 1012,\n TRY_AGAIN_LATER = 1013,\n BAD_GATEWAY = 1014,\n TLS_HANDSHAKE = 1015\n}\n"],"names":["WebsocketsCloseCode"],"mappings":"AASO,IAAKA,4BAAmBA,WAAAA,GAAAA,SAAnBA,mBAAmB;wDAClB;4DACI;gEACI;+DACD;0DACL;2DACC;0DACD;8DACI;kEACI;yDACT;mEACU;8DACL;iEACG;iEACA;6DACJ;+DACE;WAhBRA"}
package/domain/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export * from "./WebsocketsAction";
2
- export * from "./WebsocketsActions";
3
- export * from "./WebsocketsConnection";
4
- export * from "./WebsocketsManager";
5
- export * from "./WebsocketsSubscriptionManager";
1
+ export * from "./WebsocketsAction.js";
2
+ export * from "./WebsocketsActions.js";
3
+ export * from "./WebsocketsConnection.js";
4
+ export * from "./WebsocketsManager.js";
5
+ export * from "./WebsocketsSubscriptionManager.js";
package/domain/index.js CHANGED
@@ -1,7 +1,5 @@
1
- export * from "./WebsocketsAction";
2
- export * from "./WebsocketsActions";
3
- export * from "./WebsocketsConnection";
4
- export * from "./WebsocketsManager";
5
- export * from "./WebsocketsSubscriptionManager";
6
-
7
- //# sourceMappingURL=index.js.map
1
+ export * from "./WebsocketsAction.js";
2
+ export * from "./WebsocketsActions.js";
3
+ export * from "./WebsocketsConnection.js";
4
+ export * from "./WebsocketsManager.js";
5
+ export * from "./WebsocketsSubscriptionManager.js";
package/domain/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export * from "./abstractions/IWebsocketsAction";
2
- export * from "./abstractions/IWebsocketsActions";
3
- export * from "./abstractions/IWebsocketsConnection";
4
- export * from "./abstractions/IWebsocketsManager";
5
- export * from "./abstractions/IWebsocketsSubscriptionManager";
6
- export * from "./abstractions/types";
1
+ export type * from "./abstractions/IWebsocketsAction.js";
2
+ export type * from "./abstractions/IWebsocketsActions.js";
3
+ export * from "./abstractions/IWebsocketsConnection.js";
4
+ export type * from "./abstractions/IWebsocketsManager.js";
5
+ export type * from "./abstractions/IWebsocketsSubscriptionManager.js";
6
+ export * from "./abstractions/types.js";
package/domain/types.js CHANGED
@@ -1,8 +1,2 @@
1
- export * from "./abstractions/IWebsocketsAction";
2
- export * from "./abstractions/IWebsocketsActions";
3
- export * from "./abstractions/IWebsocketsConnection";
4
- export * from "./abstractions/IWebsocketsManager";
5
- export * from "./abstractions/IWebsocketsSubscriptionManager";
6
- export * from "./abstractions/types";
7
-
8
- //# sourceMappingURL=types.js.map
1
+ export * from "./abstractions/IWebsocketsConnection.js";
2
+ export * from "./abstractions/types.js";
@@ -0,0 +1,10 @@
1
+ import { BaseEvent } from "@webiny/app/features/eventPublisher/index.js";
2
+ import type { IncomingGenericData } from "../types.js";
3
+ /**
4
+ * Published for every incoming websocket message. Carries the raw message data
5
+ * (which always includes an `action`), and routes to `WebsocketEventHandler` handlers.
6
+ */
7
+ export declare class WebsocketEvent extends BaseEvent<IncomingGenericData> {
8
+ readonly eventType: "Websockets/MessageReceived";
9
+ getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/app/features/eventPublisher/abstractions.js").IEventHandler<WebsocketEvent>>;
10
+ }
@@ -0,0 +1,13 @@
1
+ import { BaseEvent } from "@webiny/app/features/eventPublisher/index.js";
2
+ import { WebsocketEventHandler } from "./abstractions.js";
3
+ class WebsocketEvent extends BaseEvent {
4
+ getHandlerAbstraction() {
5
+ return WebsocketEventHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "Websockets/MessageReceived";
9
+ }
10
+ }
11
+ export { WebsocketEvent };
12
+
13
+ //# sourceMappingURL=WebsocketEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events/WebsocketEvent.js","sources":["../../src/events/WebsocketEvent.ts"],"sourcesContent":["import { BaseEvent } from \"@webiny/app/features/eventPublisher/index.js\";\nimport { WebsocketEventHandler } from \"./abstractions.js\";\nimport type { IncomingGenericData } from \"~/types.js\";\n\n/**\n * Published for every incoming websocket message. Carries the raw message data\n * (which always includes an `action`), and routes to `WebsocketEventHandler` handlers.\n */\nexport class WebsocketEvent extends BaseEvent<IncomingGenericData> {\n readonly eventType = \"Websockets/MessageReceived\" as const;\n\n getHandlerAbstraction() {\n return WebsocketEventHandler;\n }\n}\n"],"names":["WebsocketEvent","BaseEvent","WebsocketEventHandler"],"mappings":";;AAQO,MAAMA,uBAAuBC;IAGhC,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACM,SAAS,GAAG;;AAKzB"}
@@ -0,0 +1,13 @@
1
+ import type { IEventHandler } from "@webiny/app/features/eventPublisher/index.js";
2
+ import type { WebsocketEvent } from "./WebsocketEvent.js";
3
+ /**
4
+ * Handlers registered against this abstraction receive EVERY incoming websocket message
5
+ * (published as a `WebsocketEvent` by the websockets→EventPublisher bridge). Each handler
6
+ * is responsible for filtering by `event.payload.action` and reacting to the ones it cares
7
+ * about, instead of subscribing to the websocket service directly.
8
+ */
9
+ export declare const WebsocketEventHandler: import("@webiny/di").Abstraction<IEventHandler<WebsocketEvent>>;
10
+ export declare namespace WebsocketEventHandler {
11
+ type Interface = IEventHandler<WebsocketEvent>;
12
+ type Event = WebsocketEvent;
13
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const WebsocketEventHandler = createAbstraction("App/WebsocketEventHandler");
3
+ export { WebsocketEventHandler };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events/abstractions.js","sources":["../../src/events/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IEventHandler } from \"@webiny/app/features/eventPublisher/index.js\";\nimport type { WebsocketEvent } from \"./WebsocketEvent.js\";\n\n/**\n * Handlers registered against this abstraction receive EVERY incoming websocket message\n * (published as a `WebsocketEvent` by the websockets→EventPublisher bridge). Each handler\n * is responsible for filtering by `event.payload.action` and reacting to the ones it cares\n * about, instead of subscribing to the websocket service directly.\n */\nexport const WebsocketEventHandler = createAbstraction<IEventHandler<WebsocketEvent>>(\n \"App/WebsocketEventHandler\"\n);\n\nexport namespace WebsocketEventHandler {\n export type Interface = IEventHandler<WebsocketEvent>;\n export type Event = WebsocketEvent;\n}\n"],"names":["WebsocketEventHandler","createAbstraction"],"mappings":";AAUO,MAAMA,wBAAwBC,kBACjC"}
@@ -0,0 +1 @@
1
+ export { WebsocketEventHandler } from "../../events/abstractions.js";
@@ -0,0 +1 @@
1
+ export { WebsocketEventHandler } from "../../events/abstractions.js";
package/hooks/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./useWebsockets";
1
+ export * from "./useWebsockets.js";
package/hooks/index.js CHANGED
@@ -1,3 +1 @@
1
- export * from "./useWebsockets";
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export * from "./useWebsockets.js";
@@ -1,2 +1,2 @@
1
- import type { IWebsocketsContext } from "../types";
1
+ import type { IWebsocketsContext } from "../types.js";
2
2
  export declare const useWebsockets: () => IWebsocketsContext;
@@ -1,11 +1,10 @@
1
1
  import { useContext } from "react";
2
- import { WebsocketsContext } from "../WebsocketsContextProvider";
3
- export const useWebsockets = () => {
4
- const context = useContext(WebsocketsContext);
5
- if (!context) {
6
- throw new Error("useWebsockets must be used within a SocketsProvider");
7
- }
8
- return context;
2
+ import { WebsocketsContext } from "../WebsocketsContextProvider.js";
3
+ const useWebsockets = ()=>{
4
+ const context = useContext(WebsocketsContext);
5
+ if (!context) throw new Error("useWebsockets must be used within a SocketsProvider");
6
+ return context;
9
7
  };
8
+ export { useWebsockets };
10
9
 
11
10
  //# sourceMappingURL=useWebsockets.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useContext","WebsocketsContext","useWebsockets","context","Error"],"sources":["useWebsockets.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { WebsocketsContext } from \"~/WebsocketsContextProvider\";\nimport type { IWebsocketsContext } from \"~/types\";\n\nexport const useWebsockets = (): IWebsocketsContext => {\n const context = useContext(WebsocketsContext);\n if (!context) {\n throw new Error(\"useWebsockets must be used within a SocketsProvider\");\n }\n return context;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,iBAAiB;AAG1B,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAA0B;EACnD,MAAMC,OAAO,GAAGH,UAAU,CAACC,iBAAiB,CAAC;EAC7C,IAAI,CAACE,OAAO,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;EAC1E;EACA,OAAOD,OAAO;AAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"hooks/useWebsockets.js","sources":["../../src/hooks/useWebsockets.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { WebsocketsContext } from \"~/WebsocketsContextProvider.js\";\nimport type { IWebsocketsContext } from \"~/types.js\";\n\nexport const useWebsockets = (): IWebsocketsContext => {\n const context = useContext(WebsocketsContext);\n if (!context) {\n throw new Error(\"useWebsockets must be used within a SocketsProvider\");\n }\n return context;\n};\n"],"names":["useWebsockets","context","useContext","WebsocketsContext","Error"],"mappings":";;AAIO,MAAMA,gBAAgB;IACzB,MAAMC,UAAUC,WAAWC;IAC3B,IAAI,CAACF,SACD,MAAM,IAAIG,MAAM;IAEpB,OAAOH;AACX"}
package/index.d.ts CHANGED
@@ -2,6 +2,9 @@ import React from "react";
2
2
  export interface WebsocketsProviderProps {
3
3
  children: React.ReactNode;
4
4
  }
5
- export declare const Websockets: React.MemoExoticComponent<() => React.JSX.Element>;
6
- export * from "./types";
7
- export * from "./hooks";
5
+ declare const WebsocketsExtension: () => React.JSX.Element;
6
+ export declare const Websockets: React.MemoExoticComponent<typeof WebsocketsExtension>;
7
+ export * from "./types.js";
8
+ export * from "./hooks/index.js";
9
+ export * from "./events/WebsocketEvent.js";
10
+ export * from "./events/abstractions.js";
package/index.js CHANGED
@@ -1,18 +1,17 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { Provider } from "@webiny/app";
3
- import { WebsocketsContextProvider } from "./WebsocketsContextProvider";
4
- const WebsocketsHoc = Component => {
5
- return function WebsocketsProvider(props) {
6
- return /*#__PURE__*/React.createElement(WebsocketsContextProvider, null, /*#__PURE__*/React.createElement(Component, props));
7
- };
8
- };
9
- const WebsocketsExtension = () => {
10
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Provider, {
11
- hoc: WebsocketsHoc
12
- }));
13
- };
14
- export const Websockets = /*#__PURE__*/React.memo(WebsocketsExtension);
15
- export * from "./types";
16
- export * from "./hooks";
3
+ import { WebsocketsContextProvider } from "./WebsocketsContextProvider.js";
4
+ export * from "./types.js";
5
+ export * from "./hooks/index.js";
6
+ export * from "./events/WebsocketEvent.js";
7
+ export * from "./events/abstractions.js";
8
+ const WebsocketsHoc = (Component)=>function(props) {
9
+ return /*#__PURE__*/ react.createElement(WebsocketsContextProvider, null, /*#__PURE__*/ react.createElement(Component, props));
10
+ };
11
+ const WebsocketsExtension = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Provider, {
12
+ hoc: WebsocketsHoc
13
+ }));
14
+ const Websockets = /*#__PURE__*/ react.memo(WebsocketsExtension);
15
+ export { Websockets };
17
16
 
18
17
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["React","Provider","WebsocketsContextProvider","WebsocketsHoc","Component","WebsocketsProvider","props","createElement","WebsocketsExtension","Fragment","hoc","Websockets","memo"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { WebsocketsContextProvider } from \"~/WebsocketsContextProvider\";\n\nexport interface WebsocketsProviderProps {\n children: React.ReactNode;\n}\n\nconst WebsocketsHoc = (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function WebsocketsProvider(props: WebsocketsProviderProps) {\n return (\n <WebsocketsContextProvider>\n <Component {...props} />\n </WebsocketsContextProvider>\n );\n };\n};\n\nconst WebsocketsExtension = () => {\n return (\n <>\n <Provider hoc={WebsocketsHoc} />\n </>\n );\n};\n\nexport const Websockets = React.memo(WebsocketsExtension);\n\nexport * from \"./types\";\nexport * from \"./hooks\";\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,yBAAyB;AAMlC,MAAMC,aAAa,GAAIC,SAAuD,IAAK;EAC/E,OAAO,SAASC,kBAAkBA,CAACC,KAA8B,EAAE;IAC/D,oBACIN,KAAA,CAAAO,aAAA,CAACL,yBAAyB,qBACtBF,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKE,KAAQ,CACA,CAAC;EAEpC,CAAC;AACL,CAAC;AAED,MAAME,mBAAmB,GAAGA,CAAA,KAAM;EAC9B,oBACIR,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAS,QAAA,qBACIT,KAAA,CAAAO,aAAA,CAACN,QAAQ;IAACS,GAAG,EAAEP;EAAc,CAAE,CACjC,CAAC;AAEX,CAAC;AAED,OAAO,MAAMQ,UAAU,gBAAGX,KAAK,CAACY,IAAI,CAACJ,mBAAmB,CAAC;AAEzD;AACA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { WebsocketsContextProvider } from \"~/WebsocketsContextProvider.js\";\n\nexport interface WebsocketsProviderProps {\n children: React.ReactNode;\n}\n\nconst WebsocketsHoc = (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function WebsocketsProvider(props: WebsocketsProviderProps) {\n return (\n <WebsocketsContextProvider>\n <Component {...props} />\n </WebsocketsContextProvider>\n );\n };\n};\n\nconst WebsocketsExtension = () => {\n return (\n <>\n <Provider hoc={WebsocketsHoc} />\n </>\n );\n};\n\nexport const Websockets = React.memo(WebsocketsExtension);\n\nexport * from \"./types.js\";\nexport * from \"./hooks/index.js\";\nexport * from \"./events/WebsocketEvent.js\";\nexport * from \"./events/abstractions.js\";\n"],"names":["WebsocketsHoc","Component","props","WebsocketsContextProvider","WebsocketsExtension","Provider","Websockets","React"],"mappings":";;;;;;;AAQA,MAAMA,gBAAgB,CAACC,YACZ,SAA4BC,KAA8B;QAC7D,OAAO,WAAP,GACI,oBAACC,2BAAyBA,MAAAA,WAAAA,GACtB,oBAACF,WAAcC;IAG3B;AAGJ,MAAME,sBAAsB,IACjB,WAAP,GACI,wDACI,oBAACC,UAAQA;QAAC,KAAKL;;AAKpB,MAAMM,aAAa,WAAHA,GAAGC,MAAAA,IAAU,CAACH"}