@codiac.io/codiac-cli 1.3.34 → 1.3.36

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 (55) 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.d.ts +17 -19
  25. package/dist/relay/relay-container.js +150 -119
  26. package/dist/relay/relay-container.js.map +1 -1
  27. package/dist/relay/wsclient/relay-socket-listener.d.ts +0 -68
  28. package/dist/relay/wsclient/relay-socket-listener.js +163 -163
  29. package/dist/relay/wsclient/relay-socket-listener.js.map +1 -1
  30. package/dist/relay/wsclient/relay-websocket-client.d.ts +21 -10
  31. package/dist/relay/wsclient/relay-websocket-client.js +95 -28
  32. package/dist/relay/wsclient/relay-websocket-client.js.map +1 -1
  33. package/dist/relay/wsclient/rx-websocket-subject.d.ts +0 -25
  34. package/dist/relay/wsclient/rx-websocket-subject.js +133 -132
  35. package/dist/relay/wsclient/rx-websocket-subject.js.map +1 -1
  36. package/dist/relay/wsclient/socket-contracts.d.ts +2 -16
  37. package/dist/relay/wsclient/socket-contracts.js +16 -0
  38. package/dist/relay/wsclient/socket-contracts.js.map +1 -1
  39. package/dist/relay/wsclient/websocket-listener-settings.d.ts +11 -0
  40. package/dist/relay/wsclient/websocket-listener-settings.js +16 -0
  41. package/dist/relay/wsclient/websocket-listener-settings.js.map +1 -0
  42. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.d.ts +3 -3
  43. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js +53 -36
  44. package/dist/uilogic/cloud-resource-configurators/az-interactive-login-configurator.js.map +1 -1
  45. package/dist/uilogic/i-messaging-client.d.ts +55 -0
  46. package/dist/uilogic/i-messaging-client.js +11 -0
  47. package/dist/uilogic/i-messaging-client.js.map +1 -0
  48. package/dist/uilogic/lrp-watcher-predef.d.ts +3 -3
  49. package/dist/uilogic/lrp-watcher-predef.js +19 -13
  50. package/dist/uilogic/lrp-watcher-predef.js.map +1 -1
  51. package/dist/uilogic/lrp-watcher.d.ts +3 -3
  52. package/dist/uilogic/lrp-watcher.js +17 -18
  53. package/dist/uilogic/lrp-watcher.js.map +1 -1
  54. package/oclif.manifest.json +2 -2
  55. package/package.json +4 -2
@@ -1,165 +1,165 @@
1
1
  "use strict";
2
- var RelaySocketListener_1;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.RelaySocketListener = exports.RelaySocketListenerSettings = void 0;
5
- const tslib_1 = require("tslib");
6
- const inversify_1 = require("inversify");
7
- const _ = require("lodash");
8
- const guid_typescript_1 = require("guid-typescript");
9
- const stringify = require("json-stringify-safe");
10
- const codiac_common_1 = require("@codiac.io/codiac-common");
11
- const rx_websocket_subject_1 = require("./rx-websocket-subject");
12
- /** Configuration for the relay web socket client
13
- * (ie: duplex comms with the relay via Websocket) */
14
- let RelaySocketListenerSettings = class RelaySocketListenerSettings {
15
- constructor() { }
16
- };
17
- RelaySocketListenerSettings = tslib_1.__decorate([
18
- (0, inversify_1.injectable)(),
19
- tslib_1.__metadata("design:paramtypes", [])
20
- ], RelaySocketListenerSettings);
21
- exports.RelaySocketListenerSettings = RelaySocketListenerSettings;
22
- /** Meta added to a message handler for facility in managing message subscribers. */
23
- class HandlerSubx {
24
- constructor(id, handler) {
25
- this.id = id;
26
- this.handler = handler;
27
- }
28
- }
29
- /**
30
- * **USAGE:**
31
- *
32
- * At bootstrap time...
33
- * ```
34
- * RelaySocketListenerService.bootstrap(ioc, { reconnectIntervalMs: 2000 });
35
- * ```
36
- * At ctor injection...
37
- * ```
38
- * export class MyClass {
39
- * constructor(@inject(RelaySocketListener) private socket: RelaySocketListener) { ... }
40
- *
41
- * public doSomething() {
42
- * // wire up a msg handler...
43
- * this.socket.listenFor("MyAction", msg => {
44
- * console.log(`I just got a ${msg.action}, with cid: ${msg.correlationId}`);
45
- * });
46
- *
47
- * // Start listening (if its not already)
48
- * this.socket.start();
49
- * }
50
- * }
51
- * ```
52
- */
53
- let RelaySocketListener = RelaySocketListener_1 = class RelaySocketListener {
54
- static bootstrap(ioc, settings) {
55
- ioc.bind(RelaySocketListenerSettings).toConstantValue(settings !== null && settings !== void 0 ? settings : {});
56
- ioc.bind(RelaySocketListener_1).toSelf().inSingletonScope(); // <-- There can be only one socket connection from the CLI.
57
- }
58
- constructor(settings, logger) {
59
- this.logger = logger;
60
- /** Fires any registered handlers. */
61
- this.routeInboundMessage = (msg) => {
62
- var _a, _b;
63
- if (msg.action) {
64
- let actionMsg = msg;
65
- let subxs = this.subscribers[actionMsg.action];
66
- if (subxs && subxs.length > 0) {
67
- for (let subx of subxs) {
68
- try {
69
- this.logger.debug(`Handling inbound [${actionMsg.action}] SocketAction [handler id: ${subx.id}]...`);
70
- /* TODO: await */ subx.handler(actionMsg);
71
- }
72
- catch (err) {
73
- 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)"}`);
74
- }
75
- }
76
- }
77
- else {
78
- this.logger.warn(`Received unhandled [${actionMsg.action}] message from [${this.settings.url}];`);
79
- }
80
- }
81
- else {
82
- this.logger.warn(`Received unrecognized WebSocket message.`, stringify(msg));
83
- }
84
- return msg; // <--- Do we need to return this?
85
- };
86
- this.settings = _.assignIn({}, RelaySocketListener_1.DEFAULT_SETTINGS, settings);
87
- this.subscribers = {};
88
- }
89
- /** Connects and initiates the listeners.
90
- * Returns the SocketId.
91
- * (IDEMPOTENT) Lazy-start: this method wont duplicate connections if it's already connected to the remote websocket server.
92
- */
93
- start() {
94
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
95
- return new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
96
- // if (this.rxWebsocketSubject?.connectionStatus !== connected) {
97
- if (this.rxWebsocketSubject == undefined) {
98
- this.rxWebsocketSubject = new rx_websocket_subject_1.RxWebsocketSubject(this.settings.url, this.settings.reconnectIntervalMs, this.settings.reconnectAttempts, this.routeInboundMessage, this.logger);
99
- }
100
- this.rxWebsocketSubject.onSocketConnection((err, socketId) => {
101
- if (err) {
102
- reject(err);
103
- }
104
- else {
105
- resolve(socketId);
106
- }
107
- });
108
- this.rxWebsocketSubject.connect();
109
- this.rxWebsocketSubject.subscribe();
110
- // }
111
- // How do we observe the connection status and return the socketId once connected?
112
- // resolve("fakeSocketId-123-345");
113
- }));
114
- });
115
- }
116
- /** (IDEMPOTENT) Lazy-stop: this method can be called even if the (one-and-only) socket is already closed. */
117
- stop() {
118
- if (this.rxWebsocketSubject) {
119
- if (this.rxWebsocketSubject.closed !== true /* .isStopped ? */) {
120
- this.rxWebsocketSubject.complete(); // Is this right?
121
- }
122
- }
123
- }
124
- /** Returns the subscription id for the handler (reqd for unsubcribing).
125
- */
126
- listenFor(action, handler) {
127
- if (this.subscribers[action] == undefined) {
128
- this.subscribers[action] = [];
129
- }
130
- let subx = {
131
- id: guid_typescript_1.Guid.create().toString(),
132
- handler: handler
133
- };
134
- this.subscribers[action].push(subx);
135
- return subx.id;
136
- }
137
- /** Removes the given listener. (IDEMPOTENT) Returns whether a handler was indeed removed (false if it didn't exist).
138
- *
139
- * Throws any exceptions. */
140
- unlisten(action, subscriptionId) {
141
- let existings = this.subscribers[action];
142
- if (existings && existings.length > 0) {
143
- let removed = _.remove(existings, x => x.id === subscriptionId);
144
- return Boolean(removed.length > 0);
145
- }
146
- else {
147
- return false;
148
- }
149
- }
150
- };
151
- RelaySocketListener.DEFAULT_SETTINGS = {
152
- url: "ws://localhost:5798",
153
- reconnectIntervalMs: 2000,
154
- /** Deliberately kept short because the retry is limited to a single cli command execution,
155
- * not an ongoing user session (thus it needs to fail fast). */
156
- reconnectAttempts: 5
157
- };
158
- RelaySocketListener = RelaySocketListener_1 = tslib_1.__decorate([
159
- (0, inversify_1.injectable)(),
160
- tslib_1.__param(0, (0, inversify_1.inject)(RelaySocketListenerSettings)),
161
- tslib_1.__param(1, (0, inversify_1.inject)(codiac_common_1.INTERFACES.IBetterLogger)),
162
- tslib_1.__metadata("design:paramtypes", [RelaySocketListenerSettings, Object])
163
- ], RelaySocketListener);
164
- exports.RelaySocketListener = RelaySocketListener;
2
+ // import { injectable, inject, interfaces } from "inversify"
3
+ // import _ = require("lodash");
4
+ // import { Observable } from 'rxjs';
5
+ // import { concatMap, take, tap, } from 'rxjs/operators';
6
+ // import { Guid } from "guid-typescript";
7
+ // import * as stringify from "json-stringify-safe"
8
+ // import { INTERFACES, IBetterLogger } from "@codiac.io/codiac-common";
9
+ // import { RxWebsocketSubject } from './rx-websocket-subject'
10
+ // import { IMessage, SocketAction, SocketActionHandler } from './socket-contracts';
11
+ // /** Configuration for the relay web socket client
12
+ // * (ie: duplex comms with the relay via Websocket) */
13
+ // @injectable()
14
+ // export class RelaySocketListenerSettings {
15
+ // constructor() { }
16
+ // /** Fully qualified url of the target web socket service. */
17
+ // public url?: string | undefined;
18
+ // /** The pause in mmilliseconds to wait after a connection failure before attempting to reconnect. */
19
+ // public reconnectIntervalMs?: number | undefined;
20
+ // /** The number of retries on a failed connection before throwing exception. */
21
+ // public reconnectAttempts?: number | undefined;
22
+ // }
23
+ // /** Meta added to a message handler for facility in managing message subscribers. */
24
+ // class HandlerSubx {
25
+ // constructor(public id: string, public handler: SocketActionHandler) {
26
+ // }
27
+ // }
28
+ // /**
29
+ // * **USAGE:**
30
+ // *
31
+ // * At bootstrap time...
32
+ // * ```
33
+ // * RelaySocketListenerService.bootstrap(ioc, { reconnectIntervalMs: 2000 });
34
+ // * ```
35
+ // * At ctor injection...
36
+ // * ```
37
+ // * export class MyClass {
38
+ // * constructor(@inject(RelaySocketListener) private socket: RelaySocketListener) { ... }
39
+ // *
40
+ // * public doSomething() {
41
+ // * // wire up a msg handler...
42
+ // * this.socket.listenFor("MyAction", msg => {
43
+ // * console.log(`I just got a ${msg.action}, with cid: ${msg.correlationId}`);
44
+ // * });
45
+ // *
46
+ // * // Start listening (if its not already)
47
+ // * this.socket.start();
48
+ // * }
49
+ // * }
50
+ // * ```
51
+ // */
52
+ // @injectable()
53
+ // export class RelaySocketListener {
54
+ // public static bootstrap(ioc: interfaces.Container, settings?: RelaySocketListenerSettings | undefined): void {
55
+ // ioc.bind(RelaySocketListenerSettings).toConstantValue(settings ?? {});
56
+ // ioc.bind(RelaySocketListener).toSelf().inSingletonScope(); // <-- There can be only one socket connection from the CLI.
57
+ // }
58
+ // public static readonly DEFAULT_SETTINGS: Required<RelaySocketListenerSettings> = {
59
+ // url: "ws://localhost:5798",
60
+ // reconnectIntervalMs: 2000,
61
+ // /** Deliberately kept short because the retry is limited to a single cli command execution,
62
+ // * not an ongoing user session (thus it needs to fail fast). */
63
+ // reconnectAttempts: 5
64
+ // };
65
+ // constructor(
66
+ // @inject(RelaySocketListenerSettings) settings: RelaySocketListenerSettings,
67
+ // @inject(INTERFACES.IBetterLogger) private logger: IBetterLogger
68
+ // ) {
69
+ // this.settings = _.assignIn({}, RelaySocketListener.DEFAULT_SETTINGS, settings);
70
+ // this.subscribers = {};
71
+ // }
72
+ // private readonly settings: Required<RelaySocketListenerSettings>;
73
+ // private rxWebsocketSubject: RxWebsocketSubject<IMessage> | undefined
74
+ // /** Connects and initiates the listeners.
75
+ // * Returns the SocketId.
76
+ // * (IDEMPOTENT) Lazy-start: this method wont duplicate connections if it's already connected to the remote websocket server.
77
+ // */
78
+ // public async start(): Promise<string> {
79
+ // return new Promise<string>(async (resolve, reject) => {
80
+ // // if (this.rxWebsocketSubject?.connectionStatus !== connected) {
81
+ // if (this.rxWebsocketSubject == undefined) {
82
+ // this.rxWebsocketSubject = new RxWebsocketSubject(this.settings.url, this.settings.reconnectIntervalMs, this.settings.reconnectAttempts, this.routeInboundMessage, this.logger)
83
+ // }
84
+ // this.rxWebsocketSubject.onSocketConnection((err, socketId) => {
85
+ // if (err) {
86
+ // reject(err);
87
+ // } else {
88
+ // resolve(socketId);
89
+ // }
90
+ // })
91
+ // this.rxWebsocketSubject.connect();
92
+ // this.rxWebsocketSubject.subscribe();
93
+ // // }
94
+ // // How do we observe the connection status and return the socketId once connected?
95
+ // // resolve("fakeSocketId-123-345");
96
+ // })
97
+ // }
98
+ // /** (IDEMPOTENT) Lazy-stop: this method can be called even if the (one-and-only) socket is already closed. */
99
+ // public stop(): void {
100
+ // if (this.rxWebsocketSubject) {
101
+ // if (this.rxWebsocketSubject.closed !== true /* .isStopped ? */) {
102
+ // this.rxWebsocketSubject.complete(); // Is this right?
103
+ // }
104
+ // }
105
+ // }
106
+ // // public go(correlationId?: string): void {
107
+ // // if (correlationId) this.correlationId = correlationId;
108
+ // // const socketRequest: SocketAction = { action: this.ACTION, correlationId: correlationId, payload: { authorization: this.authTokenQuery.JWT } } // new HttpHeaders({ authorization: this.authTokenQuery.JWT })
109
+ // // this.rxWebsocketSubject.send(socketRequest);
110
+ // // }
111
+ // /** Late-bound subscribers to incoming messages, mapped by `SocketAction.action`.
112
+ // *
113
+ // * If multiple handlers are registered for a given action,
114
+ // * they get fired in order they subscribed (first-come first served).
115
+ // */
116
+ // private subscribers: { [action: string]: HandlerSubx[] };
117
+ // /** Returns the subscription id for the handler (reqd for unsubcribing).
118
+ // */
119
+ // public listenFor(action: string, handler: SocketActionHandler): string {
120
+ // if (this.subscribers[action] == undefined) {
121
+ // this.subscribers[action] = [];
122
+ // }
123
+ // let subx: HandlerSubx = {
124
+ // id: Guid.create().toString(),
125
+ // handler: handler
126
+ // };
127
+ // this.subscribers[action].push(subx);
128
+ // return subx.id;
129
+ // }
130
+ // /** Removes the given listener. (IDEMPOTENT) Returns whether a handler was indeed removed (false if it didn't exist).
131
+ // *
132
+ // * Throws any exceptions. */
133
+ // public unlisten(action: string, subscriptionId: string): boolean {
134
+ // let existings = this.subscribers[action];
135
+ // if (existings && existings.length > 0) {
136
+ // let removed = _.remove(existings, x => x.id === subscriptionId);
137
+ // return Boolean(removed.length > 0);
138
+ // } else {
139
+ // return false;
140
+ // }
141
+ // }
142
+ // /** Fires any registered handlers. */
143
+ // private routeInboundMessage = (msg: MessageEvent | SocketAction) => {
144
+ // if ((<any>msg).action) {
145
+ // let actionMsg = <SocketAction>msg;
146
+ // let subxs = this.subscribers[actionMsg.action];
147
+ // if (subxs && subxs.length > 0) {
148
+ // for (let subx of subxs) {
149
+ // try {
150
+ // this.logger.debug(`Handling inbound [${actionMsg.action}] SocketAction [handler id: ${subx.id}]...`);
151
+ // /* TODO: await */ subx.handler(actionMsg);
152
+ // } catch (err) {
153
+ // this.logger.error(`Unhandled error in [${actionMsg.action}] SocketAction handler [id: ${subx.id}]: ${err.name ?? ""} ${err.message ?? "(No details available)"}`);
154
+ // }
155
+ // }
156
+ // } else {
157
+ // this.logger.warn(`Received unhandled [${actionMsg.action}] message from [${this.settings.url}];`);
158
+ // }
159
+ // } else {
160
+ // this.logger.warn(`Received unrecognized WebSocket message.`, stringify(msg));
161
+ // }
162
+ // return msg; // <--- Do we need to return this?
163
+ // }
164
+ // }
165
165
  //# sourceMappingURL=relay-socket-listener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-socket-listener.js","sourceRoot":"","sources":["../../../src/relay/wsclient/relay-socket-listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-socket-listener.js","sourceRoot":"","sources":["../../../src/relay/wsclient/relay-socket-listener.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,gCAAgC;AAChC,qCAAqC;AACrC,0DAA0D;AAC1D,0CAA0C;AAC1C,mDAAmD;AAEnD,wEAAwE;AAExE,8DAA8D;AAC9D,oFAAoF;AAGpF,oDAAoD;AACpD,yDAAyD;AACzD,gBAAgB;AAChB,6CAA6C;AAC7C,sBAAsB;AAEtB,iEAAiE;AACjE,qCAAqC;AACrC,0GAA0G;AAC1G,qDAAqD;AACrD,mFAAmF;AACnF,mDAAmD;AACnD,IAAI;AAEJ,uFAAuF;AACvF,sBAAsB;AACtB,0EAA0E;AAC1E,MAAM;AACN,IAAI;AAEJ,MAAM;AACN,gBAAgB;AAChB,KAAK;AACL,0BAA0B;AAC1B,SAAS;AACT,+EAA+E;AAC/E,SAAS;AACT,0BAA0B;AAC1B,SAAS;AACT,4BAA4B;AAC5B,4FAA4F;AAC5F,KAAK;AACL,6BAA6B;AAC7B,oCAAoC;AACpC,mDAAmD;AACnD,qFAAqF;AACrF,YAAY;AACZ,KAAK;AACL,gDAAgD;AAChD,6BAA6B;AAC7B,QAAQ;AACR,OAAO;AACP,SAAS;AACT,MAAM;AACN,gBAAgB;AAChB,qCAAqC;AAErC,mHAAmH;AACnH,6EAA6E;AAC7E,+HAA+H;AAC/H,MAAM;AAGN,uFAAuF;AACvF,kCAAkC;AAClC,iCAAiC;AACjC,kGAAkG;AAClG,uEAAuE;AACvE,2BAA2B;AAC3B,OAAO;AAGP,iBAAiB;AACjB,kFAAkF;AAClF,sEAAsE;AACtE,QAAQ;AACR,sFAAsF;AACtF,6BAA6B;AAC7B,MAAM;AAEN,sEAAsE;AACtE,yEAAyE;AAIzE,8CAA8C;AAC9C,6BAA6B;AAC7B,iIAAiI;AACjI,QAAQ;AACR,4CAA4C;AAC5C,8DAA8D;AAC9D,0EAA0E;AAC1E,oDAAoD;AACpD,yLAAyL;AACzL,UAAU;AAEV,wEAAwE;AACxE,qBAAqB;AACrB,yBAAyB;AACzB,mBAAmB;AACnB,+BAA+B;AAC/B,YAAY;AACZ,WAAW;AAEX,2CAA2C;AAC3C,6CAA6C;AAC7C,aAAa;AAEb,2FAA2F;AAC3F,4CAA4C;AAC5C,SAAS;AACT,MAAM;AAGN,kHAAkH;AAClH,0BAA0B;AAC1B,qCAAqC;AACrC,2EAA2E;AAC3E,iEAAiE;AACjE,UAAU;AACV,QAAQ;AACR,MAAM;AAEN,iDAAiD;AACjD,gEAAgE;AAChE,uNAAuN;AACvN,sDAAsD;AACtD,SAAS;AAGT,sFAAsF;AACtF,OAAO;AACP,+DAA+D;AAC/D,0EAA0E;AAC1E,QAAQ;AACR,8DAA8D;AAG9D,6EAA6E;AAC7E,QAAQ;AACR,6EAA6E;AAC7E,mDAAmD;AACnD,uCAAuC;AACvC,QAAQ;AACR,gCAAgC;AAChC,sCAAsC;AACtC,yBAAyB;AACzB,SAAS;AACT,2CAA2C;AAC3C,sBAAsB;AACtB,MAAM;AAGN,2HAA2H;AAC3H,OAAO;AACP,iCAAiC;AACjC,uEAAuE;AACvE,gDAAgD;AAChD,+CAA+C;AAC/C,yEAAyE;AACzE,4CAA4C;AAC5C,eAAe;AACf,sBAAsB;AACtB,QAAQ;AACR,MAAM;AAIN,0CAA0C;AAC1C,0EAA0E;AAE1E,+BAA+B;AAC/B,2CAA2C;AAC3C,wDAAwD;AACxD,yCAAyC;AACzC,oCAAoC;AACpC,kBAAkB;AAClB,oHAAoH;AACpH,yDAAyD;AACzD,4BAA4B;AAC5B,iLAAiL;AACjL,cAAc;AACd,YAAY;AACZ,iBAAiB;AACjB,6GAA6G;AAC7G,UAAU;AACV,eAAe;AACf,sFAAsF;AACtF,QAAQ;AAER,sDAAsD;AACtD,MAAM;AACN,IAAI"}
@@ -1,18 +1,25 @@
1
1
  import { IBetterLogger } from "@codiac.io/codiac-common";
2
+ import { Result } from "@codiac.io/codiac-common/contracts";
2
3
  import { interfaces } from "inversify";
3
- import { RelaySocketListenerSettings } from "./relay-socket-listener";
4
- import { SocketActionHandler } from './socket-contracts';
4
+ import { WebsocketListenerSettings } from "./websocket-listener-settings";
5
5
  import { ApiUserCreds } from "../../apis/codiac-api/common/api-user-creds";
6
- export declare class RelayWebsocketClient {
6
+ import { IMessageSendMeta, IMessagingClient, MessageHandlerOf, MessagePayload } from "../../uilogic/i-messaging-client";
7
+ export declare class RelayWebsocketClient implements IMessagingClient {
7
8
  private credentials;
8
9
  private logger;
9
- static bootstrap(ioc: interfaces.Container, settings?: RelaySocketListenerSettings | undefined): void;
10
- static readonly DEFAULT_SETTINGS: Required<RelaySocketListenerSettings>;
11
- constructor(credentials: ApiUserCreds, settings: RelaySocketListenerSettings, logger: IBetterLogger);
10
+ static bootstrap(ioc: interfaces.Container, settings?: WebsocketListenerSettings | undefined): void;
11
+ static readonly DEFAULT_SETTINGS: Required<WebsocketListenerSettings>;
12
+ private static readonly SOCKET_ID_UNDEFINED;
13
+ private static readonly NOT_USED_PLACEHOLDER;
14
+ constructor(credentials: ApiUserCreds, settings: WebsocketListenerSettings, logger: IBetterLogger);
12
15
  private readonly settings;
13
16
  private socket;
14
- open(): Promise<string>;
15
- close(): Promise<void>;
17
+ connect(connectionId?: string): Promise<string>;
18
+ isConnected(): boolean;
19
+ disconnect(): Promise<void>;
20
+ publish(msg: MessagePayload, meta?: Partial<IMessageSendMeta>): Promise<void>;
21
+ /** Invoke and wait for a direct response (Request-response pattern). */
22
+ request<TMsg extends MessagePayload, TRes extends Result>(msg: TMsg, meta?: Partial<IMessageSendMeta>, timeoutInSecs?: number): Promise<TRes>;
16
23
  /** Late-bound subscribers to incoming messages, mapped by `SocketAction.action`.
17
24
  *
18
25
  * If multiple handlers are registered for a given action,
@@ -21,13 +28,17 @@ export declare class RelayWebsocketClient {
21
28
  private subscribers;
22
29
  /** Returns the subscription id for the handler (reqd for unsubcribing).
23
30
  */
24
- listenFor(action: string, handler: SocketActionHandler): string;
31
+ subscribe<TMsg extends MessagePayload>(topics: string, handler: MessageHandlerOf<TMsg>): string;
25
32
  /** Removes the given listener. (IDEMPOTENT) Returns whether a handler was indeed removed (false if it didn't exist).
26
33
  *
27
34
  * Throws any exceptions. */
28
- unlisten(action: string, subscriptionId: string): boolean;
35
+ unsubscribe(topics: string, options?: {
36
+ force?: boolean;
37
+ subscriptionId?: string;
38
+ }): Promise<boolean>;
29
39
  /** Fires any registered handlers.
30
40
  * (and doesnt wait for them).
31
41
  */
32
42
  private routeInboundMessage;
43
+ private extractInboundMeta;
33
44
  }