@webiny/app-websockets 6.3.0-beta.4 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/WebsocketsContextProvider.js +119 -142
  2. package/WebsocketsContextProvider.js.map +1 -1
  3. package/domain/WebsocketsAction.js +17 -24
  4. package/domain/WebsocketsAction.js.map +1 -1
  5. package/domain/WebsocketsActions.js +52 -73
  6. package/domain/WebsocketsActions.js.map +1 -1
  7. package/domain/WebsocketsConnection.js +72 -102
  8. package/domain/WebsocketsConnection.js.map +1 -1
  9. package/domain/WebsocketsManager.js +33 -34
  10. package/domain/WebsocketsManager.js.map +1 -1
  11. package/domain/WebsocketsSubscriptionManager.js +57 -64
  12. package/domain/WebsocketsSubscriptionManager.js.map +1 -1
  13. package/domain/abstractions/IWebsocketsAction.js +0 -3
  14. package/domain/abstractions/IWebsocketsActions.js +0 -3
  15. package/domain/abstractions/IWebsocketsConnection.js +7 -6
  16. package/domain/abstractions/IWebsocketsConnection.js.map +1 -1
  17. package/domain/abstractions/IWebsocketsManager.js +0 -3
  18. package/domain/abstractions/IWebsocketsSubscriptionManager.js +0 -3
  19. package/domain/abstractions/types.js +19 -18
  20. package/domain/abstractions/types.js.map +1 -1
  21. package/domain/index.js +0 -2
  22. package/domain/types.js +0 -2
  23. package/hooks/index.js +0 -2
  24. package/hooks/useWebsockets.js +5 -6
  25. package/hooks/useWebsockets.js.map +1 -1
  26. package/index.js +9 -12
  27. package/index.js.map +1 -1
  28. package/package.json +6 -6
  29. package/types.js +0 -3
  30. package/utils/getUrl.js +4 -3
  31. package/utils/getUrl.js.map +1 -1
  32. package/domain/abstractions/IWebsocketsAction.js.map +0 -1
  33. package/domain/abstractions/IWebsocketsActions.js.map +0 -1
  34. package/domain/abstractions/IWebsocketsManager.js.map +0 -1
  35. package/domain/abstractions/IWebsocketsSubscriptionManager.js.map +0 -1
  36. package/domain/index.js.map +0 -1
  37. package/domain/types.js.map +0 -1
  38. package/hooks/index.js.map +0 -1
  39. package/types.js.map +0 -1
@@ -1,114 +1,84 @@
1
1
  import { WebsocketsReadyState } from "./types.js";
2
- const defaultFactory = (url, protocol) => {
3
- return new WebSocket(url, protocol);
4
- };
5
-
6
- /**
7
- * We need to attach the websockets cache to window object, or it will be reset on every hot reload.
8
- */
9
-
10
- if (!window.WebinyWebsocketsConnectionCache) {
11
- window.WebinyWebsocketsConnectionCache = {
2
+ const defaultFactory = (url, protocol)=>new WebSocket(url, protocol);
3
+ if (!window.WebinyWebsocketsConnectionCache) window.WebinyWebsocketsConnectionCache = {
12
4
  ws: null
13
- };
14
- }
5
+ };
15
6
  const connectionCache = window.WebinyWebsocketsConnectionCache;
16
- export class WebsocketsConnection {
17
- constructor(params) {
18
- this.url = params.url;
19
- this.tenant = params.tenant;
20
- this.getToken = params.getToken;
21
- this.protocol = params.protocol;
22
- this.subscriptionManager = params.subscriptionManager;
23
- this.factory = params.factory || defaultFactory;
24
- }
25
- setTenant(tenant) {
26
- this.tenant = tenant;
27
- }
28
- async connect() {
29
- await this.getConnection();
30
- }
31
- async close(code, reason) {
32
- if (!connectionCache.ws || connectionCache.ws.readyState === WebsocketsReadyState.CLOSED || connectionCache.ws.readyState === WebsocketsReadyState.CLOSING) {
33
- connectionCache.ws = undefined;
34
- return true;
7
+ class WebsocketsConnection {
8
+ constructor(params){
9
+ this.url = params.url;
10
+ this.tenant = params.tenant;
11
+ this.getToken = params.getToken;
12
+ this.protocol = params.protocol;
13
+ this.subscriptionManager = params.subscriptionManager;
14
+ this.factory = params.factory || defaultFactory;
35
15
  }
36
- connectionCache.ws.close(code, reason);
37
- connectionCache.ws = undefined;
38
- return true;
39
- }
40
- async send(data) {
41
- const connection = await this.getConnection();
42
- if (connection.readyState !== WebsocketsReadyState.OPEN) {
43
- console.info("Websocket connection is not open, cannot send any data.", data);
44
- return;
16
+ setTenant(tenant) {
17
+ this.tenant = tenant;
45
18
  }
46
- connection.send(JSON.stringify(data));
47
- }
48
- isConnected() {
49
- return connectionCache.ws?.readyState === WebsocketsReadyState.OPEN;
50
- }
51
- isClosed() {
52
- return connectionCache.ws?.readyState === WebsocketsReadyState.CLOSED;
53
- }
54
- async createUrl() {
55
- const token = await this.getToken();
56
- if (!token) {
57
- console.error(`Missing token to connect to websockets.`);
58
- return null;
19
+ async connect() {
20
+ await this.getConnection();
59
21
  }
60
- return {
61
- token,
62
- url: `${this.url}?token=${token}&tenant=${this.tenant}`
63
- };
64
- }
65
- async getConnection() {
66
- if (connectionCache.ws?.readyState === WebsocketsReadyState.OPEN) {
67
- return connectionCache.ws;
68
- } else if (connectionCache.ws?.readyState === WebsocketsReadyState.CONNECTING) {
69
- return connectionCache.ws;
22
+ async close(code, reason) {
23
+ if (!connectionCache.ws || connectionCache.ws.readyState === WebsocketsReadyState.CLOSED || connectionCache.ws.readyState === WebsocketsReadyState.CLOSING) {
24
+ connectionCache.ws = void 0;
25
+ return true;
26
+ }
27
+ connectionCache.ws.close(code, reason);
28
+ connectionCache.ws = void 0;
29
+ return true;
70
30
  }
71
- const result = await this.createUrl();
72
- if (!result) {
73
- throw new Error(`Missing URL for WebSocket to connect to.`);
31
+ async send(data) {
32
+ const connection = await this.getConnection();
33
+ if (connection.readyState !== WebsocketsReadyState.OPEN) return void console.info("Websocket connection is not open, cannot send any data.", data);
34
+ connection.send(JSON.stringify(data));
74
35
  }
75
- const {
76
- url
77
- } = result;
78
- connectionCache.ws = this.factory(url, this.protocol);
79
- const start = new Date().getTime();
80
- console.log(`Websockets connecting to ${this.url}...`);
81
- connectionCache.ws.addEventListener("open", event => {
82
- const end = new Date().getTime();
83
- console.log(`...connected in ${end - start}ms.`);
84
- return this.subscriptionManager.triggerOnOpen(event);
85
- });
86
- connectionCache.ws.addEventListener("close", event => {
87
- return this.subscriptionManager.triggerOnClose(event);
88
- });
89
- connectionCache.ws.addEventListener("error", event => {
90
- console.info(`Error in the Websocket connection.`, event);
91
- /**
92
- * Let's close it if possible.
93
- * It will reopen automatically.
94
- */
95
- if (connectionCache.ws?.close) {
96
- try {
97
- connectionCache.ws.close();
98
- } catch (ex) {
99
- console.error(ex);
36
+ isConnected() {
37
+ return connectionCache.ws?.readyState === WebsocketsReadyState.OPEN;
38
+ }
39
+ isClosed() {
40
+ return connectionCache.ws?.readyState === WebsocketsReadyState.CLOSED;
41
+ }
42
+ async createUrl() {
43
+ const token = await this.getToken();
44
+ if (!token) {
45
+ console.error("Missing token to connect to websockets.");
46
+ return null;
100
47
  }
101
- }
102
- return this.subscriptionManager.triggerOnError(event);
103
- });
104
- connectionCache.ws.addEventListener("message", event => {
105
- return this.subscriptionManager.triggerOnMessage(event);
106
- });
107
- return connectionCache.ws;
108
- }
48
+ return {
49
+ token,
50
+ url: `${this.url}?token=${token}&tenant=${this.tenant}`
51
+ };
52
+ }
53
+ async getConnection() {
54
+ if (connectionCache.ws?.readyState === WebsocketsReadyState.OPEN) return connectionCache.ws;
55
+ if (connectionCache.ws?.readyState === WebsocketsReadyState.CONNECTING) return connectionCache.ws;
56
+ const result = await this.createUrl();
57
+ if (!result) throw new Error("Missing URL for WebSocket to connect to.");
58
+ const { url } = result;
59
+ connectionCache.ws = this.factory(url, this.protocol);
60
+ const start = new Date().getTime();
61
+ console.log(`Websockets connecting to ${this.url}...`);
62
+ connectionCache.ws.addEventListener("open", (event)=>{
63
+ const end = new Date().getTime();
64
+ console.log(`...connected in ${end - start}ms.`);
65
+ return this.subscriptionManager.triggerOnOpen(event);
66
+ });
67
+ connectionCache.ws.addEventListener("close", (event)=>this.subscriptionManager.triggerOnClose(event));
68
+ connectionCache.ws.addEventListener("error", (event)=>{
69
+ console.info("Error in the Websocket connection.", event);
70
+ if (connectionCache.ws?.close) try {
71
+ connectionCache.ws.close();
72
+ } catch (ex) {
73
+ console.error(ex);
74
+ }
75
+ return this.subscriptionManager.triggerOnError(event);
76
+ });
77
+ connectionCache.ws.addEventListener("message", (event)=>this.subscriptionManager.triggerOnMessage(event));
78
+ return connectionCache.ws;
79
+ }
109
80
  }
110
- export const createWebsocketsConnection = params => {
111
- return new WebsocketsConnection(params);
112
- };
81
+ const createWebsocketsConnection = (params)=>new WebsocketsConnection(params);
82
+ export { WebsocketsConnection, createWebsocketsConnection };
113
83
 
114
84
  //# sourceMappingURL=WebsocketsConnection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebsocketsReadyState","defaultFactory","url","protocol","WebSocket","window","WebinyWebsocketsConnectionCache","ws","connectionCache","WebsocketsConnection","constructor","params","tenant","getToken","subscriptionManager","factory","setTenant","connect","getConnection","close","code","reason","readyState","CLOSED","CLOSING","undefined","send","data","connection","OPEN","console","info","JSON","stringify","isConnected","isClosed","createUrl","token","error","CONNECTING","result","Error","start","Date","getTime","log","addEventListener","event","end","triggerOnOpen","triggerOnClose","ex","triggerOnError","triggerOnMessage","createWebsocketsConnection"],"sources":["WebsocketsConnection.ts"],"sourcesContent":["import type {\n IGenericData,\n IWebsocketsConnection,\n IWebsocketsConnectionFactory,\n IWebsocketsConnectProtocol,\n IWebsocketsManagerMessageEvent,\n IWebsocketsSubscriptionManager,\n WebsocketsCloseCode\n} from \"./types.js\";\nimport { WebsocketsReadyState } from \"./types.js\";\n\ninterface ICreateUrlResult {\n token: string;\n url: string;\n}\n\nconst defaultFactory: IWebsocketsConnectionFactory = (url, protocol) => {\n return new WebSocket(url, protocol);\n};\n\ninterface IConnection {\n ws: WebSocket | null;\n}\n\n/**\n * We need to attach the websockets cache to window object, or it will be reset on every hot reload.\n */\ndeclare global {\n interface Window {\n WebinyWebsocketsConnectionCache: IConnection;\n }\n}\n\nif (!window.WebinyWebsocketsConnectionCache) {\n window.WebinyWebsocketsConnectionCache = {\n ws: null\n };\n}\n\nconst connectionCache = window.WebinyWebsocketsConnectionCache;\n\nexport interface IWebsocketsConnectionParams {\n url: string;\n tenant: string;\n getToken(): Promise<string | undefined>;\n subscriptionManager: IWebsocketsSubscriptionManager;\n protocol?: IWebsocketsConnectProtocol;\n factory?: IWebsocketsConnectionFactory;\n}\n\nexport class WebsocketsConnection implements IWebsocketsConnection {\n private readonly url: string;\n private readonly getToken: () => Promise<string | undefined>;\n private tenant: string;\n private readonly protocol: IWebsocketsConnectProtocol;\n public readonly subscriptionManager: IWebsocketsSubscriptionManager;\n private readonly factory: IWebsocketsConnectionFactory;\n\n public constructor(params: IWebsocketsConnectionParams) {\n this.url = params.url;\n this.tenant = params.tenant;\n this.getToken = params.getToken;\n this.protocol = params.protocol;\n this.subscriptionManager = params.subscriptionManager;\n this.factory = params.factory || defaultFactory;\n }\n\n public setTenant(tenant: string): void {\n this.tenant = tenant;\n }\n\n public async connect(): Promise<void> {\n await this.getConnection();\n }\n\n public async close(code: WebsocketsCloseCode, reason: string): Promise<boolean> {\n if (\n !connectionCache.ws ||\n connectionCache.ws.readyState === WebsocketsReadyState.CLOSED ||\n connectionCache.ws.readyState === WebsocketsReadyState.CLOSING\n ) {\n connectionCache.ws = undefined as unknown as null;\n\n return true;\n }\n connectionCache.ws.close(code, reason);\n\n connectionCache.ws = undefined as unknown as null;\n return true;\n }\n\n public async send<T extends IGenericData = IGenericData>(data: T): Promise<void> {\n const connection = await this.getConnection();\n if (connection.readyState !== WebsocketsReadyState.OPEN) {\n console.info(\"Websocket connection is not open, cannot send any data.\", data);\n return;\n }\n connection.send(JSON.stringify(data));\n }\n\n public isConnected(): boolean {\n return connectionCache.ws?.readyState === WebsocketsReadyState.OPEN;\n }\n\n public isClosed(): boolean {\n return connectionCache.ws?.readyState === WebsocketsReadyState.CLOSED;\n }\n\n private async createUrl(): Promise<ICreateUrlResult | null> {\n const token = await this.getToken();\n if (!token) {\n console.error(`Missing token to connect to websockets.`);\n return null;\n }\n return {\n token,\n url: `${this.url}?token=${token}&tenant=${this.tenant}`\n };\n }\n\n private async getConnection(): Promise<WebSocket> {\n if (connectionCache.ws?.readyState === WebsocketsReadyState.OPEN) {\n return connectionCache.ws;\n } else if (connectionCache.ws?.readyState === WebsocketsReadyState.CONNECTING) {\n return connectionCache.ws;\n }\n\n const result = await this.createUrl();\n if (!result) {\n throw new Error(`Missing URL for WebSocket to connect to.`);\n }\n const { url } = result;\n\n connectionCache.ws = this.factory(url, this.protocol);\n\n const start = new Date().getTime();\n\n console.log(`Websockets connecting to ${this.url}...`);\n\n connectionCache.ws.addEventListener(\"open\", event => {\n const end = new Date().getTime();\n console.log(`...connected in ${end - start}ms.`);\n return this.subscriptionManager.triggerOnOpen(event);\n });\n connectionCache.ws.addEventListener(\"close\", event => {\n return this.subscriptionManager.triggerOnClose(event);\n });\n connectionCache.ws.addEventListener(\"error\", event => {\n console.info(`Error in the Websocket connection.`, event);\n /**\n * Let's close it if possible.\n * It will reopen automatically.\n */\n if (connectionCache.ws?.close) {\n try {\n connectionCache.ws.close();\n } catch (ex) {\n console.error(ex);\n }\n }\n return this.subscriptionManager.triggerOnError(event);\n });\n\n connectionCache.ws.addEventListener(\n \"message\",\n (event: IWebsocketsManagerMessageEvent<string>) => {\n return this.subscriptionManager.triggerOnMessage(event);\n }\n );\n\n return connectionCache.ws;\n }\n}\n\nexport const createWebsocketsConnection = (\n params: IWebsocketsConnectionParams\n): IWebsocketsConnection => {\n return new WebsocketsConnection(params);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"domain/WebsocketsConnection.js","sources":["../../src/domain/WebsocketsConnection.ts"],"sourcesContent":["import type {\n IGenericData,\n IWebsocketsConnection,\n IWebsocketsConnectionFactory,\n IWebsocketsConnectProtocol,\n IWebsocketsManagerMessageEvent,\n IWebsocketsSubscriptionManager,\n WebsocketsCloseCode\n} from \"./types.js\";\nimport { WebsocketsReadyState } from \"./types.js\";\n\ninterface ICreateUrlResult {\n token: string;\n url: string;\n}\n\nconst defaultFactory: IWebsocketsConnectionFactory = (url, protocol) => {\n return new WebSocket(url, protocol);\n};\n\ninterface IConnection {\n ws: WebSocket | null;\n}\n\n/**\n * We need to attach the websockets cache to window object, or it will be reset on every hot reload.\n */\ndeclare global {\n interface Window {\n WebinyWebsocketsConnectionCache: IConnection;\n }\n}\n\nif (!window.WebinyWebsocketsConnectionCache) {\n window.WebinyWebsocketsConnectionCache = {\n ws: null\n };\n}\n\nconst connectionCache = window.WebinyWebsocketsConnectionCache;\n\nexport interface IWebsocketsConnectionParams {\n url: string;\n tenant: string;\n getToken(): Promise<string | undefined>;\n subscriptionManager: IWebsocketsSubscriptionManager;\n protocol?: IWebsocketsConnectProtocol;\n factory?: IWebsocketsConnectionFactory;\n}\n\nexport class WebsocketsConnection implements IWebsocketsConnection {\n private readonly url: string;\n private readonly getToken: () => Promise<string | undefined>;\n private tenant: string;\n private readonly protocol: IWebsocketsConnectProtocol;\n public readonly subscriptionManager: IWebsocketsSubscriptionManager;\n private readonly factory: IWebsocketsConnectionFactory;\n\n public constructor(params: IWebsocketsConnectionParams) {\n this.url = params.url;\n this.tenant = params.tenant;\n this.getToken = params.getToken;\n this.protocol = params.protocol;\n this.subscriptionManager = params.subscriptionManager;\n this.factory = params.factory || defaultFactory;\n }\n\n public setTenant(tenant: string): void {\n this.tenant = tenant;\n }\n\n public async connect(): Promise<void> {\n await this.getConnection();\n }\n\n public async close(code: WebsocketsCloseCode, reason: string): Promise<boolean> {\n if (\n !connectionCache.ws ||\n connectionCache.ws.readyState === WebsocketsReadyState.CLOSED ||\n connectionCache.ws.readyState === WebsocketsReadyState.CLOSING\n ) {\n connectionCache.ws = undefined as unknown as null;\n\n return true;\n }\n connectionCache.ws.close(code, reason);\n\n connectionCache.ws = undefined as unknown as null;\n return true;\n }\n\n public async send<T extends IGenericData = IGenericData>(data: T): Promise<void> {\n const connection = await this.getConnection();\n if (connection.readyState !== WebsocketsReadyState.OPEN) {\n console.info(\"Websocket connection is not open, cannot send any data.\", data);\n return;\n }\n connection.send(JSON.stringify(data));\n }\n\n public isConnected(): boolean {\n return connectionCache.ws?.readyState === WebsocketsReadyState.OPEN;\n }\n\n public isClosed(): boolean {\n return connectionCache.ws?.readyState === WebsocketsReadyState.CLOSED;\n }\n\n private async createUrl(): Promise<ICreateUrlResult | null> {\n const token = await this.getToken();\n if (!token) {\n console.error(`Missing token to connect to websockets.`);\n return null;\n }\n return {\n token,\n url: `${this.url}?token=${token}&tenant=${this.tenant}`\n };\n }\n\n private async getConnection(): Promise<WebSocket> {\n if (connectionCache.ws?.readyState === WebsocketsReadyState.OPEN) {\n return connectionCache.ws;\n } else if (connectionCache.ws?.readyState === WebsocketsReadyState.CONNECTING) {\n return connectionCache.ws;\n }\n\n const result = await this.createUrl();\n if (!result) {\n throw new Error(`Missing URL for WebSocket to connect to.`);\n }\n const { url } = result;\n\n connectionCache.ws = this.factory(url, this.protocol);\n\n const start = new Date().getTime();\n\n console.log(`Websockets connecting to ${this.url}...`);\n\n connectionCache.ws.addEventListener(\"open\", event => {\n const end = new Date().getTime();\n console.log(`...connected in ${end - start}ms.`);\n return this.subscriptionManager.triggerOnOpen(event);\n });\n connectionCache.ws.addEventListener(\"close\", event => {\n return this.subscriptionManager.triggerOnClose(event);\n });\n connectionCache.ws.addEventListener(\"error\", event => {\n console.info(`Error in the Websocket connection.`, event);\n /**\n * Let's close it if possible.\n * It will reopen automatically.\n */\n if (connectionCache.ws?.close) {\n try {\n connectionCache.ws.close();\n } catch (ex) {\n console.error(ex);\n }\n }\n return this.subscriptionManager.triggerOnError(event);\n });\n\n connectionCache.ws.addEventListener(\n \"message\",\n (event: IWebsocketsManagerMessageEvent<string>) => {\n return this.subscriptionManager.triggerOnMessage(event);\n }\n );\n\n return connectionCache.ws;\n }\n}\n\nexport const createWebsocketsConnection = (\n params: IWebsocketsConnectionParams\n): IWebsocketsConnection => {\n return new WebsocketsConnection(params);\n};\n"],"names":["defaultFactory","url","protocol","WebSocket","window","connectionCache","WebsocketsConnection","params","tenant","code","reason","WebsocketsReadyState","undefined","data","connection","console","JSON","token","result","Error","start","Date","event","end","ex","createWebsocketsConnection"],"mappings":"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"}
@@ -1,37 +1,36 @@
1
- export class WebsocketsManager {
2
- constructor(connection) {
3
- this.connection = connection;
4
- }
5
- onOpen(cb) {
6
- return this.connection.subscriptionManager.onOpen(cb);
7
- }
8
- onClose(cb) {
9
- return this.connection.subscriptionManager.onClose(cb);
10
- }
11
- onMessage(cb) {
12
- return this.connection.subscriptionManager.onMessage(cb);
13
- }
14
- onError(cb) {
15
- return this.connection.subscriptionManager.onError(cb);
16
- }
17
- async connect() {
18
- return this.connection.connect();
19
- }
20
- async close(code, reason) {
21
- return await this.connection.close(code, reason);
22
- }
23
- send(data) {
24
- return this.connection.send(data);
25
- }
26
- isConnected() {
27
- return this.connection.isConnected();
28
- }
29
- isClosed() {
30
- return this.connection.isClosed();
31
- }
1
+ class WebsocketsManager {
2
+ constructor(connection){
3
+ this.connection = connection;
4
+ }
5
+ onOpen(cb) {
6
+ return this.connection.subscriptionManager.onOpen(cb);
7
+ }
8
+ onClose(cb) {
9
+ return this.connection.subscriptionManager.onClose(cb);
10
+ }
11
+ onMessage(cb) {
12
+ return this.connection.subscriptionManager.onMessage(cb);
13
+ }
14
+ onError(cb) {
15
+ return this.connection.subscriptionManager.onError(cb);
16
+ }
17
+ async connect() {
18
+ return this.connection.connect();
19
+ }
20
+ async close(code, reason) {
21
+ return await this.connection.close(code, reason);
22
+ }
23
+ send(data) {
24
+ return this.connection.send(data);
25
+ }
26
+ isConnected() {
27
+ return this.connection.isConnected();
28
+ }
29
+ isClosed() {
30
+ return this.connection.isClosed();
31
+ }
32
32
  }
33
- export const createWebsocketsManager = connection => {
34
- return new WebsocketsManager(connection);
35
- };
33
+ const createWebsocketsManager = (connection)=>new WebsocketsManager(connection);
34
+ export { WebsocketsManager, createWebsocketsManager };
36
35
 
37
36
  //# sourceMappingURL=WebsocketsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebsocketsManager","constructor","connection","onOpen","cb","subscriptionManager","onClose","onMessage","onError","connect","close","code","reason","send","data","isConnected","isClosed","createWebsocketsManager"],"sources":["WebsocketsManager.ts"],"sourcesContent":["import type {\n IGenericData,\n IWebsocketsConnection,\n IWebsocketsManager,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsManagerOpenEvent,\n IWebsocketManagerSendData,\n IWebsocketsSubscription,\n IWebsocketsSubscriptionCallback,\n WebsocketsCloseCode\n} from \"./types.js\";\n\nexport class WebsocketsManager implements IWebsocketsManager {\n public readonly connection: IWebsocketsConnection;\n\n public constructor(connection: IWebsocketsConnection) {\n this.connection = connection;\n }\n\n public onOpen(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerOpenEvent> {\n return this.connection.subscriptionManager.onOpen(cb);\n }\n\n public onClose(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent> {\n return this.connection.subscriptionManager.onClose(cb);\n }\n\n public onMessage<T extends IGenericData = IGenericData>(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerMessageEvent<T>>\n ): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>> {\n return this.connection.subscriptionManager.onMessage<T>(cb);\n }\n\n public onError(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent> {\n return this.connection.subscriptionManager.onError(cb);\n }\n\n public async connect(): Promise<void> {\n return this.connection.connect();\n }\n\n public async close(code: WebsocketsCloseCode, reason: string): Promise<boolean> {\n return await this.connection.close(code, reason);\n }\n\n public send<T extends IWebsocketManagerSendData = IWebsocketManagerSendData>(data: T): void {\n return this.connection.send<T>(data);\n }\n\n public isConnected(): boolean {\n return this.connection.isConnected();\n }\n\n public isClosed(): boolean {\n return this.connection.isClosed();\n }\n}\n\nexport const createWebsocketsManager = (connection: IWebsocketsConnection): IWebsocketsManager => {\n return new WebsocketsManager(connection);\n};\n"],"mappings":"AAcA,OAAO,MAAMA,iBAAiB,CAA+B;EAGlDC,WAAWA,CAACC,UAAiC,EAAE;IAClD,IAAI,CAACA,UAAU,GAAGA,UAAU;EAChC;EAEOC,MAAMA,CACTC,EAAgE,EACZ;IACpD,OAAO,IAAI,CAACF,UAAU,CAACG,mBAAmB,CAACF,MAAM,CAACC,EAAE,CAAC;EACzD;EAEOE,OAAOA,CACVF,EAAiE,EACZ;IACrD,OAAO,IAAI,CAACF,UAAU,CAACG,mBAAmB,CAACC,OAAO,CAACF,EAAE,CAAC;EAC1D;EAEOG,SAASA,CACZH,EAAsE,EACZ;IAC1D,OAAO,IAAI,CAACF,UAAU,CAACG,mBAAmB,CAACE,SAAS,CAAIH,EAAE,CAAC;EAC/D;EAEOI,OAAOA,CACVJ,EAAiE,EACZ;IACrD,OAAO,IAAI,CAACF,UAAU,CAACG,mBAAmB,CAACG,OAAO,CAACJ,EAAE,CAAC;EAC1D;EAEA,MAAaK,OAAOA,CAAA,EAAkB;IAClC,OAAO,IAAI,CAACP,UAAU,CAACO,OAAO,CAAC,CAAC;EACpC;EAEA,MAAaC,KAAKA,CAACC,IAAyB,EAAEC,MAAc,EAAoB;IAC5E,OAAO,MAAM,IAAI,CAACV,UAAU,CAACQ,KAAK,CAACC,IAAI,EAAEC,MAAM,CAAC;EACpD;EAEOC,IAAIA,CAAkEC,IAAO,EAAQ;IACxF,OAAO,IAAI,CAACZ,UAAU,CAACW,IAAI,CAAIC,IAAI,CAAC;EACxC;EAEOC,WAAWA,CAAA,EAAY;IAC1B,OAAO,IAAI,CAACb,UAAU,CAACa,WAAW,CAAC,CAAC;EACxC;EAEOC,QAAQA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACd,UAAU,CAACc,QAAQ,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMC,uBAAuB,GAAIf,UAAiC,IAAyB;EAC9F,OAAO,IAAIF,iBAAiB,CAACE,UAAU,CAAC;AAC5C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"domain/WebsocketsManager.js","sources":["../../src/domain/WebsocketsManager.ts"],"sourcesContent":["import type {\n IGenericData,\n IWebsocketsConnection,\n IWebsocketsManager,\n IWebsocketsManagerCloseEvent,\n IWebsocketsManagerErrorEvent,\n IWebsocketsManagerMessageEvent,\n IWebsocketsManagerOpenEvent,\n IWebsocketManagerSendData,\n IWebsocketsSubscription,\n IWebsocketsSubscriptionCallback,\n WebsocketsCloseCode\n} from \"./types.js\";\n\nexport class WebsocketsManager implements IWebsocketsManager {\n public readonly connection: IWebsocketsConnection;\n\n public constructor(connection: IWebsocketsConnection) {\n this.connection = connection;\n }\n\n public onOpen(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerOpenEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerOpenEvent> {\n return this.connection.subscriptionManager.onOpen(cb);\n }\n\n public onClose(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerCloseEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerCloseEvent> {\n return this.connection.subscriptionManager.onClose(cb);\n }\n\n public onMessage<T extends IGenericData = IGenericData>(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerMessageEvent<T>>\n ): IWebsocketsSubscription<IWebsocketsManagerMessageEvent<T>> {\n return this.connection.subscriptionManager.onMessage<T>(cb);\n }\n\n public onError(\n cb: IWebsocketsSubscriptionCallback<IWebsocketsManagerErrorEvent>\n ): IWebsocketsSubscription<IWebsocketsManagerErrorEvent> {\n return this.connection.subscriptionManager.onError(cb);\n }\n\n public async connect(): Promise<void> {\n return this.connection.connect();\n }\n\n public async close(code: WebsocketsCloseCode, reason: string): Promise<boolean> {\n return await this.connection.close(code, reason);\n }\n\n public send<T extends IWebsocketManagerSendData = IWebsocketManagerSendData>(data: T): void {\n return this.connection.send<T>(data);\n }\n\n public isConnected(): boolean {\n return this.connection.isConnected();\n }\n\n public isClosed(): boolean {\n return this.connection.isClosed();\n }\n}\n\nexport const createWebsocketsManager = (connection: IWebsocketsConnection): IWebsocketsManager => {\n return new WebsocketsManager(connection);\n};\n"],"names":["WebsocketsManager","connection","cb","code","reason","data","createWebsocketsManager"],"mappings":"AAcO,MAAMA;IAGT,YAAmBC,UAAiC,CAAE;QAClD,IAAI,CAAC,UAAU,GAAGA;IACtB;IAEO,OACHC,EAAgE,EACZ;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAACA;IACtD;IAEO,QACHA,EAAiE,EACZ;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAACA;IACvD;IAEO,UACHA,EAAsE,EACZ;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAIA;IAC5D;IAEO,QACHA,EAAiE,EACZ;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAACA;IACvD;IAEA,MAAa,UAAyB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO;IAClC;IAEA,MAAa,MAAMC,IAAyB,EAAEC,MAAc,EAAoB;QAC5E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAACD,MAAMC;IAC7C;IAEO,KAAsEC,IAAO,EAAQ;QACxF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAIA;IACnC;IAEO,cAAuB;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW;IACtC;IAEO,WAAoB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ;IACnC;AACJ;AAEO,MAAMC,0BAA0B,CAACL,aAC7B,IAAID,kBAAkBC"}
@@ -1,73 +1,66 @@
1
1
  import { generateId } from "@webiny/utils/generateId.js";
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);
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.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"],"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,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsAction.js.map
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsActions.js.map
@@ -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.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"],"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;;;;;WAApBA"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsManager.js.map
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=IWebsocketsSubscriptionManager.js.map
@@ -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.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"],"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;;;;;;;;;;;;;;;;;WAAnBA"}
package/domain/index.js CHANGED
@@ -3,5 +3,3 @@ export * from "./WebsocketsActions.js";
3
3
  export * from "./WebsocketsConnection.js";
4
4
  export * from "./WebsocketsManager.js";
5
5
  export * from "./WebsocketsSubscriptionManager.js";
6
-
7
- //# sourceMappingURL=index.js.map
package/domain/types.js CHANGED
@@ -1,4 +1,2 @@
1
1
  export * from "./abstractions/IWebsocketsConnection.js";
2
2
  export * from "./abstractions/types.js";
3
-
4
- //# sourceMappingURL=types.js.map
package/hooks/index.js CHANGED
@@ -1,3 +1 @@
1
1
  export * from "./useWebsockets.js";
2
-
3
- //# sourceMappingURL=index.js.map