@codiac.io/codiac-cli 1.3.35 → 1.3.37

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 (54) hide show
  1. package/README.md +1 -1
  2. package/dist/apis/nats/nats-client.d.ts +41 -0
  3. package/dist/apis/nats/nats-client.js +313 -0
  4. package/dist/apis/nats/nats-client.js.map +1 -0
  5. package/dist/apis/nats/sample-listener.d.ts +1 -0
  6. package/dist/apis/nats/sample-listener.js +19 -0
  7. package/dist/apis/nats/sample-listener.js.map +1 -0
  8. package/dist/command-base-enterprise.d.ts +3 -3
  9. package/dist/command-base-enterprise.js +10 -5
  10. package/dist/command-base-enterprise.js.map +1 -1
  11. package/dist/commands/asset/view.d.ts +5 -0
  12. package/dist/commands/asset/view.js +99 -62
  13. package/dist/commands/asset/view.js.map +1 -1
  14. package/dist/commands/auth/register.js +9 -4
  15. package/dist/commands/auth/register.js.map +1 -1
  16. package/dist/commands/cluster/scaling/update.js.map +1 -1
  17. package/dist/commands/noc/cluster/create.js +76 -69
  18. package/dist/commands/noc/cluster/create.js.map +1 -1
  19. package/dist/commands/tenant/create.js +1 -1
  20. package/dist/commands/tenant/create.js.map +1 -1
  21. package/dist/ops/INTERFACES_CLI.d.ts +1 -0
  22. package/dist/ops/INTERFACES_CLI.js +1 -0
  23. package/dist/ops/INTERFACES_CLI.js.map +1 -1
  24. package/dist/relay/relay-container.js +17 -3
  25. package/dist/relay/relay-container.js.map +1 -1
  26. package/dist/relay/wsclient/relay-socket-listener.d.ts +0 -68
  27. package/dist/relay/wsclient/relay-socket-listener.js +163 -163
  28. package/dist/relay/wsclient/relay-socket-listener.js.map +1 -1
  29. package/dist/relay/wsclient/relay-websocket-client.d.ts +21 -10
  30. package/dist/relay/wsclient/relay-websocket-client.js +95 -28
  31. package/dist/relay/wsclient/relay-websocket-client.js.map +1 -1
  32. package/dist/relay/wsclient/rx-websocket-subject.d.ts +0 -25
  33. package/dist/relay/wsclient/rx-websocket-subject.js +133 -132
  34. package/dist/relay/wsclient/rx-websocket-subject.js.map +1 -1
  35. package/dist/relay/wsclient/socket-contracts.d.ts +2 -16
  36. package/dist/relay/wsclient/socket-contracts.js +16 -0
  37. package/dist/relay/wsclient/socket-contracts.js.map +1 -1
  38. package/dist/relay/wsclient/websocket-listener-settings.d.ts +11 -0
  39. package/dist/relay/wsclient/websocket-listener-settings.js +16 -0
  40. package/dist/relay/wsclient/websocket-listener-settings.js.map +1 -0
  41. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +3 -3
  42. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +53 -36
  43. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js.map +1 -1
  44. package/dist/uilogic/i-messaging-client.d.ts +55 -0
  45. package/dist/uilogic/i-messaging-client.js +11 -0
  46. package/dist/uilogic/i-messaging-client.js.map +1 -0
  47. package/dist/uilogic/lrp-watcher-predef.d.ts +3 -3
  48. package/dist/uilogic/lrp-watcher-predef.js +19 -13
  49. package/dist/uilogic/lrp-watcher-predef.js.map +1 -1
  50. package/dist/uilogic/lrp-watcher.d.ts +3 -3
  51. package/dist/uilogic/lrp-watcher.js +17 -18
  52. package/dist/uilogic/lrp-watcher.js.map +1 -1
  53. package/oclif.manifest.json +2 -2
  54. package/package.json +2 -1
@@ -9,7 +9,7 @@ const _ = require("lodash");
9
9
  const WebSocket = require("ws");
10
10
  const guid_typescript_1 = require("guid-typescript");
11
11
  const stringify = require("json-stringify-safe");
12
- const relay_socket_listener_1 = require("./relay-socket-listener");
12
+ const websocket_listener_settings_1 = require("./websocket-listener-settings");
13
13
  const api_user_creds_1 = require("../../apis/codiac-api/common/api-user-creds");
14
14
  /** Meta added to a message handler for facility in managing message subscribers. */
15
15
  class HandlerSubx {
@@ -20,7 +20,7 @@ class HandlerSubx {
20
20
  }
21
21
  let RelayWebsocketClient = RelayWebsocketClient_1 = class RelayWebsocketClient {
22
22
  static bootstrap(ioc, settings) {
23
- ioc.bind(relay_socket_listener_1.RelaySocketListenerSettings).toConstantValue(settings !== null && settings !== void 0 ? settings : {});
23
+ ioc.bind(websocket_listener_settings_1.WebsocketListenerSettings).toConstantValue(settings !== null && settings !== void 0 ? settings : {});
24
24
  ioc.bind(RelayWebsocketClient_1).toSelf().inSingletonScope(); // <-- There can be only one socket connection from the CLI.
25
25
  }
26
26
  constructor(credentials, settings, logger) {
@@ -29,7 +29,7 @@ let RelayWebsocketClient = RelayWebsocketClient_1 = class RelayWebsocketClient {
29
29
  this.settings = _.assignIn({}, RelayWebsocketClient_1.DEFAULT_SETTINGS, settings);
30
30
  this.subscribers = {};
31
31
  }
32
- open() {
32
+ connect(connectionId) {
33
33
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
34
  return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
35
35
  try {
@@ -51,10 +51,10 @@ let RelayWebsocketClient = RelayWebsocketClient_1 = class RelayWebsocketClient {
51
51
  reject(new Error(`WebSocket ${eventMsg.type} error: ${eventMsg.message}`));
52
52
  }
53
53
  };
54
- this.listenFor("connection", (msg) => tslib_1.__awaiter(this, void 0, void 0, function* () {
55
- var _a, _b;
56
- this.logger.trace(`COnnection msg received: `, msg);
57
- resolve((_b = (_a = msg.payload) === null || _a === void 0 ? void 0 : _a.socketId) !== null && _b !== void 0 ? _b : "undefined-socket-id");
54
+ this.subscribe("connection", (err, msg, meta, raw) => tslib_1.__awaiter(this, void 0, void 0, function* () {
55
+ var _a;
56
+ this.logger.trace(`Connection msg received: `, msg);
57
+ resolve((_a = msg === null || msg === void 0 ? void 0 : msg.socketId) !== null && _a !== void 0 ? _a : RelayWebsocketClient_1.SOCKET_ID_UNDEFINED);
58
58
  }));
59
59
  this.socket.onmessage = (msg) => {
60
60
  var _a, _b;
@@ -79,7 +79,20 @@ let RelayWebsocketClient = RelayWebsocketClient_1 = class RelayWebsocketClient {
79
79
  }));
80
80
  });
81
81
  }
82
- close() {
82
+ isConnected() {
83
+ var _a;
84
+ let isConnected = false;
85
+ try {
86
+ isConnected = Boolean(this.socket != undefined);
87
+ }
88
+ catch (err) {
89
+ this.logger.error("Error checking connection: ".concat((_a = err.message) !== null && _a !== void 0 ? _a : ""), err.stack);
90
+ }
91
+ finally {
92
+ return isConnected;
93
+ }
94
+ }
95
+ disconnect() {
83
96
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
84
97
  return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
85
98
  var _a;
@@ -87,7 +100,7 @@ let RelayWebsocketClient = RelayWebsocketClient_1 = class RelayWebsocketClient {
87
100
  if (this.socket) {
88
101
  let closingStates = [this.socket.CLOSED, this.socket.CLOSING];
89
102
  if (!closingStates.includes(this.socket.readyState)) {
90
- this.socket.close();
103
+ this.socket.close(1000); // for codes see: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/code
91
104
  this.logger.debug(`Closed web socket.`);
92
105
  }
93
106
  else {
@@ -106,48 +119,84 @@ let RelayWebsocketClient = RelayWebsocketClient_1 = class RelayWebsocketClient {
106
119
  }));
107
120
  });
108
121
  }
122
+ // ---------------------------------------------------------------------------------------
123
+ // PUB-SUB (...well, sub, really)
124
+ // ---------------------------------------------------------------------------------------
125
+ publish(msg, meta) {
126
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
127
+ // TODO: Lift this from the ServerSideWebSocketClient
128
+ throw new Error("publish is not yet implemented");
129
+ });
130
+ }
131
+ /** Invoke and wait for a direct response (Request-response pattern). */
132
+ request(msg, meta, timeoutInSecs) {
133
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
134
+ // TODO: Lift this from the ServerSideWebSocketClient
135
+ throw new Error("request is not yet implemented");
136
+ });
137
+ }
109
138
  /** Returns the subscription id for the handler (reqd for unsubcribing).
110
139
  */
111
- listenFor(action, handler) {
112
- if (this.subscribers[action] == undefined) {
113
- this.subscribers[action] = [];
140
+ subscribe(topics, handler) {
141
+ if (this.subscribers[topics] == undefined) {
142
+ this.subscribers[topics] = [];
114
143
  }
115
144
  let subx = {
116
145
  id: guid_typescript_1.Guid.create().toString(),
117
146
  handler: handler
118
147
  };
119
- this.subscribers[action].push(subx);
148
+ this.subscribers[topics].push(subx);
120
149
  return subx.id;
121
150
  }
122
151
  /** Removes the given listener. (IDEMPOTENT) Returns whether a handler was indeed removed (false if it didn't exist).
123
152
  *
124
153
  * Throws any exceptions. */
125
- unlisten(action, subscriptionId) {
126
- let existings = this.subscribers[action];
127
- if (existings && existings.length > 0) {
128
- let removed = _.remove(existings, x => x.id === subscriptionId);
129
- return Boolean(removed.length > 0);
130
- }
131
- else {
132
- return false;
133
- }
154
+ // public async unsubscribe(action: string, subscriptionId: string): Promise<boolean> {
155
+ unsubscribe(topics, options) {
156
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
157
+ let existings = this.subscribers[topics];
158
+ if (existings && existings.length > 0) {
159
+ let removed;
160
+ if (options === null || options === void 0 ? void 0 : options.subscriptionId) {
161
+ removed = _.remove(existings, x => x.id === options.subscriptionId);
162
+ }
163
+ else {
164
+ removed = this.subscribers[topics];
165
+ delete this.subscribers[topics];
166
+ }
167
+ return Boolean(removed.length > 0);
168
+ }
169
+ else {
170
+ return false;
171
+ }
172
+ });
134
173
  }
135
174
  /** Fires any registered handlers.
136
175
  * (and doesnt wait for them).
137
176
  */
138
177
  routeInboundMessage(msg) {
139
178
  var _a, _b;
140
- if (msg.action) {
179
+ if ((msg === null || msg === void 0 ? void 0 : msg.action) != undefined /* && msg.payload != undefined */) {
141
180
  let actionMsg = msg;
142
- let subxs = this.subscribers[actionMsg.action];
181
+ let meta = this.extractInboundMeta(msg);
182
+ let subxs = this.subscribers[meta.action];
143
183
  if (subxs && subxs.length > 0) {
144
184
  for (let subx of subxs) {
145
185
  try {
146
186
  this.logger.debug(`Handling inbound [${actionMsg.action}] SocketAction [handler id: ${subx.id}]...`);
147
- /* TODO: await? */ subx.handler(actionMsg);
187
+ // -----------------------------------------------------
188
+ // !!!! ATTENTION !!!!
189
+ // We're firing off all these handlers simulataneously!
190
+ // TODO: consider await instead of async catch
191
+ // (for sequential executions)
192
+ subx.handler(null, msg.payload /* <-- HACK to allow for existing msgs wo payloads */, meta, msg)
193
+ .catch(reason => {
194
+ this.logger.error(`Unhandled error in [${actionMsg.action}] SocketAction handler [id: ${subx.id}]: ${reason !== null && reason !== void 0 ? reason : "(No details available)"}`);
195
+ });
196
+ // -----------------------------------------------------
148
197
  }
149
198
  catch (err) {
150
- this.logger.error(`Unhandled error in [${actionMsg.action}] SocketAction handler [id: ${subx.id}]: ${(_a = err.name) !== null && _a !== void 0 ? _a : ""} ${(_b = err.message) !== null && _b !== void 0 ? _b : "(No details available)"}`);
199
+ this.logger.error(`Error triggering [${actionMsg.action}] SocketAction handler [id: ${subx.id}]: ${(_a = err.name) !== null && _a !== void 0 ? _a : ""} ${(_b = err.message) !== null && _b !== void 0 ? _b : "(No details available)"}`);
151
200
  }
152
201
  }
153
202
  }
@@ -160,6 +209,22 @@ let RelayWebsocketClient = RelayWebsocketClient_1 = class RelayWebsocketClient {
160
209
  }
161
210
  return;
162
211
  }
212
+ extractInboundMeta(msg) {
213
+ var _a, _b, _c;
214
+ try {
215
+ let meta = {
216
+ sid: (_b = (_a = msg.payload) === null || _a === void 0 ? void 0 : _a.socketId) !== null && _b !== void 0 ? _b : RelayWebsocketClient_1.SOCKET_ID_UNDEFINED,
217
+ action: msg.action,
218
+ subject: RelayWebsocketClient_1.NOT_USED_PLACEHOLDER,
219
+ correlationId: msg.correlationId,
220
+ };
221
+ return meta;
222
+ }
223
+ catch (err) {
224
+ this.logger.error("Error extracting meta from SocketAction: ".concat((_c = err.message) !== null && _c !== void 0 ? _c : "no details available"), err.stack);
225
+ throw err;
226
+ }
227
+ }
163
228
  };
164
229
  RelayWebsocketClient.DEFAULT_SETTINGS = {
165
230
  url: "ws://localhost:5798",
@@ -168,13 +233,15 @@ RelayWebsocketClient.DEFAULT_SETTINGS = {
168
233
  * not an ongoing user session (thus it needs to fail fast). */
169
234
  reconnectAttempts: 5
170
235
  };
236
+ RelayWebsocketClient.SOCKET_ID_UNDEFINED = "undefined-socket-id";
237
+ RelayWebsocketClient.NOT_USED_PLACEHOLDER = "not-used";
171
238
  RelayWebsocketClient = RelayWebsocketClient_1 = tslib_1.__decorate([
172
239
  (0, inversify_1.injectable)(),
173
240
  tslib_1.__param(0, (0, inversify_1.inject)(api_user_creds_1.ApiUserCreds)),
174
- tslib_1.__param(1, (0, inversify_1.inject)(relay_socket_listener_1.RelaySocketListenerSettings)),
241
+ tslib_1.__param(1, (0, inversify_1.inject)(websocket_listener_settings_1.WebsocketListenerSettings)),
175
242
  tslib_1.__param(2, (0, inversify_1.inject)(codiac_common_1.INTERFACES.IBetterLogger)),
176
243
  tslib_1.__metadata("design:paramtypes", [api_user_creds_1.ApiUserCreds,
177
- relay_socket_listener_1.RelaySocketListenerSettings, Object])
244
+ websocket_listener_settings_1.WebsocketListenerSettings, Object])
178
245
  ], RelayWebsocketClient);
179
246
  exports.RelayWebsocketClient = RelayWebsocketClient;
180
247
  //# sourceMappingURL=relay-websocket-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-websocket-client.js","sourceRoot":"","sources":["../../../src/relay/wsclient/relay-websocket-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-websocket-client.js","sourceRoot":"","sources":["../../../src/relay/wsclient/relay-websocket-client.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import { Subject, Observable } from 'rxjs';
2
- import { IBetterLogger } from "@codiac.io/codiac-common";
3
- import { SocketAction } from './socket-contracts';
4
- export declare class RxWebsocketSubject<T> extends Subject<T> {
5
- private url;
6
- private reconnectInterval;
7
- private reconnectAttempts;
8
- private resultSelector;
9
- private logger;
10
- private serializer?;
11
- private data;
12
- private reconnectionObservable;
13
- private wsSubjectConfig;
14
- private socket;
15
- private connectionObserver;
16
- connectionStatus: Observable<boolean>;
17
- defaultResultSelector: (e: MessageEvent | SocketAction) => any;
18
- defaultSerializer: (data: any) => string;
19
- constructor(url: string, reconnectInterval: number, reconnectAttempts: number, resultSelector: (e: MessageEvent | SocketAction) => any, logger: IBetterLogger, serializer?: ((data: any) => string) | undefined);
20
- connect(): void;
21
- private cnxnHandler;
22
- onSocketConnection(handler: (err: Error | undefined, data?: any) => void): void;
23
- reconnect(): void;
24
- send(data: any): void;
25
- }
@@ -1,134 +1,135 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RxWebsocketSubject = void 0;
4
- const tslib_1 = require("tslib");
5
- const inversify_1 = require("inversify");
6
- const rxjs_1 = require("rxjs");
7
- const operators_1 = require("rxjs/operators");
8
- const webSocket_1 = require("rxjs/webSocket");
9
- global.WebSocket = require('ws');
10
- let RxWebsocketSubject = class RxWebsocketSubject extends rxjs_1.Subject {
11
- constructor(url, reconnectInterval = 5000, reconnectAttempts = 10, resultSelector, logger, serializer) {
12
- super();
13
- this.url = url;
14
- this.reconnectInterval = reconnectInterval;
15
- this.reconnectAttempts = reconnectAttempts;
16
- this.resultSelector = resultSelector;
17
- this.logger = logger;
18
- this.serializer = serializer;
19
- this.defaultResultSelector = (e) => {
20
- if (e.data)
21
- return JSON.parse(e.data);
22
- };
23
- this.defaultSerializer = (data) => {
24
- this.logger.debug("deserializing...");
25
- return JSON.stringify(data);
26
- };
27
- this.connectionStatus = new rxjs_1.Observable((observer) => {
28
- this.connectionObserver = observer;
29
- }).pipe((0, operators_1.share)(), (0, operators_1.distinctUntilChanged)());
30
- if (!resultSelector) {
31
- this.resultSelector = this.defaultResultSelector;
32
- }
33
- if (!this.serializer) {
34
- this.serializer = this.defaultSerializer;
35
- }
36
- this.wsSubjectConfig = {
37
- url: url,
38
- closeObserver: {
39
- next: (e) => {
40
- this.logger.detail(`connection CLOSE [code: ${e.code}]`);
41
- this.socket = undefined;
42
- if (this.connectionObserver) {
43
- this.connectionObserver.next(false);
44
- }
45
- else {
46
- return undefined; // false?
47
- }
48
- }
49
- },
50
- openObserver: {
51
- next: (e) => {
52
- this.logger.detail(`connection OPEN`);
53
- if (this.connectionObserver) {
54
- this.connectionObserver.next(true);
55
- }
56
- else {
57
- return undefined; // false?
58
- }
59
- }
60
- }
61
- };
62
- this.connect();
63
- this.connectionStatus.subscribe((isConnected) => {
64
- this.logger.debug(`Connection status: ${isConnected ? "connected" : "not connected"}`);
65
- if (!this.reconnectionObservable && typeof (isConnected) == "boolean" && !isConnected) {
66
- this.reconnect();
67
- }
68
- });
69
- }
70
- connect() {
71
- this.socket = new webSocket_1.WebSocketSubject(this.wsSubjectConfig);
72
- this.socket
73
- .pipe((0, operators_1.tap)(msg => {
74
- var _a;
75
- if (msg) {
76
- if (msg.action === "connection" && this.cnxnHandler) {
77
- try {
78
- this.cnxnHandler(msg.error, msg.payload);
79
- }
80
- catch (err) {
81
- this.logger.warn(`Unhandled exception in connection handler: ${(_a = err.message) !== null && _a !== void 0 ? _a : "(no details available)"}`);
82
- }
83
- // } else {
84
- // this.logger.debug(msg);
85
- }
86
- }
87
- }))
88
- .subscribe((m) => {
89
- this.next(m);
90
- this.resultSelector(m);
91
- }, (error) => {
92
- var _a;
93
- this.logger.error(`Connection error: ${(_a = error.message) !== null && _a !== void 0 ? _a : ""}`);
94
- if (!this.socket) {
95
- this.reconnect();
96
- }
97
- });
98
- }
99
- onSocketConnection(handler) {
100
- this.cnxnHandler = handler;
101
- }
102
- reconnect() {
103
- this.reconnectionObservable = (0, rxjs_1.interval)(this.reconnectInterval)
104
- .pipe((0, operators_1.takeWhile)((v, index) => {
105
- return index < this.reconnectAttempts && !this.socket;
106
- }));
107
- this.reconnectionObservable.subscribe(() => {
108
- this.connect();
109
- // this.send(this.data);
110
- }, null, () => {
111
- this.reconnectionObservable = undefined;
112
- if (!this.socket) {
113
- this.complete();
114
- if (this.connectionObserver) {
115
- this.connectionObserver.complete();
116
- }
117
- else {
118
- return undefined;
119
- }
120
- }
121
- });
122
- }
123
- send(data) {
124
- this.data = data;
125
- if (this.data && this.socket)
126
- this.socket.next(this.data);
127
- }
128
- };
129
- RxWebsocketSubject = tslib_1.__decorate([
130
- (0, inversify_1.injectable)(),
131
- tslib_1.__metadata("design:paramtypes", [String, Number, Number, Function, Object, Function])
132
- ], RxWebsocketSubject);
133
- exports.RxWebsocketSubject = RxWebsocketSubject;
2
+ // COMMENTED OUT BC: Was only used by RelaySocketListener, which is obsolete.
3
+ // import { injectable } from 'inversify';
4
+ // import { Subject, Observer, Observable, interval, fromEvent, timer } from 'rxjs';
5
+ // import { tap, delayWhen, distinctUntilChanged, retryWhen, share, takeWhile } from 'rxjs/operators';
6
+ // import { WebSocketSubject, WebSocketSubjectConfig } from 'rxjs/webSocket';
7
+ // import { IBetterLogger } from "@codiac.io/codiac-common";
8
+ // import { SocketAction } from './socket-contracts';
9
+ // (global as any).WebSocket = require('ws');
10
+ // @injectable()
11
+ // export class RxWebsocketSubject<T> extends Subject<T> {
12
+ // private data: any;
13
+ // private reconnectionObservable: Observable<number> | undefined;
14
+ // private wsSubjectConfig: WebSocketSubjectConfig<T>;
15
+ // private socket: WebSocketSubject<any> | undefined;
16
+ // private connectionObserver: Observer<boolean> | undefined;
17
+ // public connectionStatus: Observable<boolean>;
18
+ // defaultResultSelector = (e: MessageEvent | SocketAction) => {
19
+ // if ((<any>e).data) return JSON.parse((<any>e).data);
20
+ // }
21
+ // defaultSerializer = (data: any): string => {
22
+ // this.logger.debug("deserializing...")
23
+ // return JSON.stringify(data);
24
+ // }
25
+ // constructor(
26
+ // private url: string,
27
+ // private reconnectInterval: number = 5000,
28
+ // private reconnectAttempts: number = 10,
29
+ // private resultSelector: (e: MessageEvent | SocketAction) => any,
30
+ // private logger: IBetterLogger,
31
+ // private serializer?: (data: any) => string,
32
+ // ) {
33
+ // super();
34
+ // this.connectionStatus = new Observable<boolean>((observer) => {
35
+ // this.connectionObserver = observer;
36
+ // }).pipe(share(), distinctUntilChanged());
37
+ // if (!resultSelector) {
38
+ // this.resultSelector = this.defaultResultSelector;
39
+ // }
40
+ // if (!this.serializer) {
41
+ // this.serializer = this.defaultSerializer;
42
+ // }
43
+ // this.wsSubjectConfig = {
44
+ // url: url,
45
+ // closeObserver: {
46
+ // next: (e: CloseEvent) => {
47
+ // this.logger.detail(`connection CLOSE [code: ${e.code}]`);
48
+ // this.socket = undefined;
49
+ // if (this.connectionObserver) {
50
+ // this.connectionObserver.next(false);
51
+ // } else {
52
+ // return undefined; // false?
53
+ // }
54
+ // }
55
+ // },
56
+ // openObserver: {
57
+ // next: (e: Event) => {
58
+ // this.logger.detail(`connection OPEN`);
59
+ // if (this.connectionObserver) {
60
+ // this.connectionObserver.next(true);
61
+ // } else {
62
+ // return undefined; // false?
63
+ // }
64
+ // }
65
+ // }
66
+ // };
67
+ // this.connect();
68
+ // this.connectionStatus.subscribe((isConnected) => {
69
+ // this.logger.debug(`Connection status: ${isConnected ? "connected" : "not connected"}`);
70
+ // if (!this.reconnectionObservable && typeof (isConnected) == "boolean" && !isConnected) {
71
+ // this.reconnect();
72
+ // }
73
+ // });
74
+ // }
75
+ // connect(): void {
76
+ // this.socket = new WebSocketSubject(this.wsSubjectConfig);
77
+ // this.socket
78
+ // .pipe(tap(msg => {
79
+ // if (msg) {
80
+ // if (msg.action === "connection" && this.cnxnHandler) {
81
+ // try {
82
+ // this.cnxnHandler(msg.error, msg.payload)
83
+ // } catch (err) {
84
+ // this.logger.warn(`Unhandled exception in connection handler: ${err.message ?? "(no details available)"}`)
85
+ // }
86
+ // // } else {
87
+ // // this.logger.debug(msg);
88
+ // }
89
+ // }
90
+ // }))
91
+ // .subscribe(
92
+ // (m) => {
93
+ // this.next(m);
94
+ // this.resultSelector(m);
95
+ // },
96
+ // (error: Event) => {
97
+ // this.logger.error(`Connection error: ${(<Error><any>error).message ?? ""}`);
98
+ // if (!this.socket) {
99
+ // this.reconnect();
100
+ // }
101
+ // });
102
+ // }
103
+ // private cnxnHandler: ((err: Error | undefined, data?: any) => void) | undefined;
104
+ // public onSocketConnection(handler: (err: Error | undefined, data?: any) => void): void {
105
+ // this.cnxnHandler = handler;
106
+ // }
107
+ // reconnect(): void {
108
+ // this.reconnectionObservable = interval(this.reconnectInterval)
109
+ // .pipe(takeWhile((v, index) => {
110
+ // return index < this.reconnectAttempts && !this.socket
111
+ // }));
112
+ // this.reconnectionObservable.subscribe(
113
+ // () => {
114
+ // this.connect();
115
+ // // this.send(this.data);
116
+ // },
117
+ // null,
118
+ // () => {
119
+ // this.reconnectionObservable = undefined;
120
+ // if (!this.socket) {
121
+ // this.complete();
122
+ // if (this.connectionObserver) {
123
+ // this.connectionObserver.complete();
124
+ // } else {
125
+ // return undefined;
126
+ // }
127
+ // }
128
+ // });
129
+ // }
130
+ // send(data: any): void {
131
+ // this.data = data;
132
+ // if (this.data && this.socket) this.socket.next(this.data);
133
+ // }
134
+ // }
134
135
  //# sourceMappingURL=rx-websocket-subject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rx-websocket-subject.js","sourceRoot":"","sources":["../../../src/relay/wsclient/rx-websocket-subject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rx-websocket-subject.js","sourceRoot":"","sources":["../../../src/relay/wsclient/rx-websocket-subject.ts"],"names":[],"mappings":";AAAA,6EAA6E;AAE7E,0CAA0C;AAC1C,oFAAoF;AACpF,sGAAsG;AACtG,6EAA6E;AAC7E,4DAA4D;AAC5D,qDAAqD;AACrD,6CAA6C;AAE7C,gBAAgB;AAChB,0DAA0D;AAC1D,uBAAuB;AACvB,oEAAoE;AACpE,wDAAwD;AACxD,uDAAuD;AACvD,+DAA+D;AAC/D,kDAAkD;AAElD,kEAAkE;AAClE,2DAA2D;AAC3D,MAAM;AAEN,iDAAiD;AACjD,4CAA4C;AAC5C,mCAAmC;AACnC,MAAM;AAEN,iBAAiB;AACjB,2BAA2B;AAC3B,gDAAgD;AAChD,8CAA8C;AAC9C,uEAAuE;AACvE,qCAAqC;AACrC,kDAAkD;AAClD,QAAQ;AACR,eAAe;AAEf,sEAAsE;AACtE,4CAA4C;AAC5C,gDAAgD;AAEhD,6BAA6B;AAC7B,0DAA0D;AAC1D,QAAQ;AACR,8BAA8B;AAC9B,kDAAkD;AAClD,QAAQ;AAER,+BAA+B;AAC/B,kBAAkB;AAClB,yBAAyB;AACzB,qCAAqC;AACrC,sEAAsE;AACtE,qCAAqC;AACrC,2CAA2C;AAC3C,mDAAmD;AACnD,qBAAqB;AACrB,2CAA2C;AAC3C,cAAc;AACd,YAAY;AACZ,WAAW;AACX,wBAAwB;AACxB,gCAAgC;AAChC,mDAAmD;AACnD,2CAA2C;AAC3C,kDAAkD;AAClD,qBAAqB;AACrB,0CAA0C;AAC1C,cAAc;AACd,YAAY;AACZ,UAAU;AACV,SAAS;AACT,sBAAsB;AACtB,yDAAyD;AACzD,gGAAgG;AAChG,iGAAiG;AACjG,4BAA4B;AAC5B,UAAU;AACV,UAAU;AACV,MAAM;AAEN,sBAAsB;AACtB,gEAAgE;AAChE,kBAAkB;AAClB,2BAA2B;AAC3B,qBAAqB;AACrB,mEAAmE;AACnE,oBAAoB;AACpB,yDAAyD;AACzD,8BAA8B;AAC9B,0HAA0H;AAC1H,gBAAgB;AAChB,0BAA0B;AAC1B,2CAA2C;AAC3C,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,oBAAoB;AACpB,mBAAmB;AACnB,0BAA0B;AAC1B,oCAAoC;AACpC,aAAa;AACb,8BAA8B;AAC9B,yFAAyF;AACzF,gCAAgC;AAChC,gCAAgC;AAChC,cAAc;AACd,cAAc;AACd,MAAM;AAGN,qFAAqF;AAErF,6FAA6F;AAC7F,kCAAkC;AAClC,MAAM;AAEN,wBAAwB;AACxB,qEAAqE;AACrE,wCAAwC;AACxC,gEAAgE;AAChE,aAAa;AACb,6CAA6C;AAC7C,gBAAgB;AAChB,0BAA0B;AAC1B,mCAAmC;AACnC,WAAW;AACX,cAAc;AACd,gBAAgB;AAChB,mDAAmD;AACnD,8BAA8B;AAC9B,6BAA6B;AAC7B,2CAA2C;AAC3C,kDAAkD;AAClD,qBAAqB;AACrB,gCAAgC;AAChC,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,MAAM;AAEN,4BAA4B;AAC5B,wBAAwB;AACxB,iEAAiE;AACjE,MAAM;AACN,IAAI"}
@@ -1,22 +1,8 @@
1
- export type SocketPayload = {
2
- [name: string]: string | string[] | any;
3
- };
1
+ import { MessagePayload } from "../../uilogic/i-messaging-client";
4
2
  export type SocketAction = {
5
3
  action: string;
6
4
  correlationId: string;
7
- payload?: SocketPayload;
5
+ payload?: MessagePayload;
8
6
  };
9
7
  export type SocketActionHandler = (response: SocketAction) => void;
10
8
  export type SocketActionHandlerAsync = (response: SocketAction) => Promise<void>;
11
- export interface IMessage {
12
- messageId: string;
13
- entity: any;
14
- entityId: string;
15
- entityType: string;
16
- operation: string;
17
- messageType: string;
18
- sentBy: string;
19
- sentOn: Date;
20
- description: string;
21
- correlationId?: string | undefined;
22
- }
@@ -1,3 +1,19 @@
1
1
  "use strict";
2
+ // export type SocketPayload = {
3
+ // [name: string]: string | string[] | any;
4
+ // };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ // Commented out bc: Not in use.
7
+ // export interface IMessage {
8
+ // messageId: string,
9
+ // entity: any,
10
+ // entityId: string,
11
+ // entityType: string,
12
+ // operation: string,
13
+ // messageType: string,
14
+ // sentBy: string,
15
+ // sentOn: Date,
16
+ // description: string,
17
+ // correlationId?: string | undefined
18
+ // }
3
19
  //# sourceMappingURL=socket-contracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket-contracts.js","sourceRoot":"","sources":["../../../src/relay/wsclient/socket-contracts.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"socket-contracts.js","sourceRoot":"","sources":["../../../src/relay/wsclient/socket-contracts.ts"],"names":[],"mappings":";AACA,gCAAgC;AAChC,6CAA6C;AAC7C,KAAK;;AAaL,gCAAgC;AAChC,8BAA8B;AAC9B,uBAAuB;AACvB,iBAAiB;AACjB,sBAAsB;AACtB,wBAAwB;AACxB,uBAAuB;AACvB,yBAAyB;AACzB,oBAAoB;AACpB,kBAAkB;AAClB,yBAAyB;AACzB,uCAAuC;AACvC,IAAI"}