@monterosa/sdk-connect-kit 2.0.0-rc.2 → 2.0.0-rc.3

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.
package/dist/index.cjs ADDED
@@ -0,0 +1,519 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var sdkCore = require('@monterosa/sdk-core');
6
+ var sdkUtil = require('@monterosa/sdk-util');
7
+ var Enmasse = require('@monterosa/sdk-enmasse-kit');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var Enmasse__default = /*#__PURE__*/_interopDefaultLegacy(Enmasse);
12
+
13
+ /**
14
+ * @license
15
+ * @monterosa/sdk-connect-kit
16
+ *
17
+ * Copyright © 2022 Monterosa Productions Limited. All rights reserved.
18
+ *
19
+ * More details on the license can be found at https://www.monterosa.co/sdk/license
20
+ */
21
+ /**
22
+ * @internal
23
+ */
24
+ const KIT_NAME = 'connect';
25
+ /**
26
+ * @internal
27
+ */
28
+ exports.InitState = void 0;
29
+ (function (InitState) {
30
+ InitState["NotInitialised"] = "not_initialised";
31
+ InitState["Initialised"] = "initialised";
32
+ InitState["Initialising"] = "initialising";
33
+ })(exports.InitState || (exports.InitState = {}));
34
+ /**
35
+ * A list of possible connection states.
36
+ *
37
+ * @remarks
38
+ * Can be used with {@link Connect | Connect.state} to determine the current state.
39
+ *
40
+ * By default {@link Connect} is in the disconnected state.
41
+ * When {@link connect} invoked `Connect` state switches to
42
+ * `ConnState.Connecting` and connection is maintained permanently until
43
+ * {@link disconnect} method is invoked. If connection was unsucessful,
44
+ * a new attempt will start after a short delay and `ConnState.connecting`
45
+ * is triggered. Delays between attempts increased based on this sequence:
46
+ * 0, 3, 5, 10, 20, 30, 45, 60 where 60 seconds is the max.
47
+ *
48
+ * If `Connect` was previously connected and for any reason connection is lost,
49
+ * the state changed to `ConnState.Connecting` again and the connection process
50
+ * starts again automatically.
51
+ *
52
+ * @example
53
+ * ```javascript
54
+ * if (conn.state === ConnState.Connecting) {
55
+ * // display "connecting" message
56
+ * }
57
+ * ```
58
+ */
59
+ exports.ConnState = void 0;
60
+ (function (ConnState) {
61
+ /**
62
+ * Disconnected state
63
+ */
64
+ ConnState["Disconnected"] = "disconnected";
65
+ /**
66
+ * Connecting state
67
+ */
68
+ ConnState["Connecting"] = "connecting";
69
+ /**
70
+ * Connected state
71
+ */
72
+ ConnState["Connected"] = "connected";
73
+ })(exports.ConnState || (exports.ConnState = {}));
74
+ /**
75
+ * Class of the {@link Message}
76
+ */
77
+ exports.Klass = void 0;
78
+ (function (Klass) {
79
+ /**
80
+ * Authentication request. Sent by server on client connection.
81
+ */
82
+ Klass["Authenticate"] = "auth";
83
+ /**
84
+ * Authentication response. Sent by client as response
85
+ * to authentication request.
86
+ */
87
+ Klass["AuthenticateResponse"] = "authr";
88
+ /**
89
+ * Authentication acknowledgement. Sent by the server as confirmation
90
+ * of successful authentication.
91
+ */
92
+ Klass["AuthenticateSuccess"] = "authok";
93
+ /**
94
+ * Ping message is sent by server periodically as a keep-alive.
95
+ * Ping message is only sent if no messages are sent for specific time
96
+ * period, meaning if there are other messages sent frequently enough
97
+ * then ping messages are not sent at all.
98
+ */
99
+ Klass["Ping"] = "ping";
100
+ /**
101
+ * Subscribe to a channel. Sent by the client to subscribe to a channel
102
+ */
103
+ Klass["Subscribe"] = "sub";
104
+ /**
105
+ * Unsubscribe from a channel. Sent by the client to unsubscribe from a channel
106
+ */
107
+ Klass["Unsububscribe"] = "unsub";
108
+ /**
109
+ * End of cache. Sent by the server to notify that all messages are sent from
110
+ * a channel cache
111
+ */
112
+ Klass["EndOfCache"] = "eoc";
113
+ /**
114
+ * User login. Sent by client to supply verified user identity to the server.
115
+ */
116
+ Klass["Login"] = "login";
117
+ /**
118
+ * User login success
119
+ */
120
+ Klass["LoginSuccess"] = "login_ok";
121
+ /**
122
+ * User login failure
123
+ */
124
+ Klass["LoginFail"] = "login_fail";
125
+ /**
126
+ * Averages counters. Client can submit a counter which is processed together
127
+ * with other counters to determine the average of all counters within specific
128
+ * demographics segment.
129
+ */
130
+ Klass["Counter"] = "counter";
131
+ /**
132
+ * Client votes. Sents by a user to vote for a poll option
133
+ */
134
+ Klass["Vote"] = "v";
135
+ })(exports.Klass || (exports.Klass = {}));
136
+
137
+ /**
138
+ * @license
139
+ * @monterosa/sdk-connect-kit
140
+ *
141
+ * Copyright © 2022 Monterosa Productions Limited. All rights reserved.
142
+ *
143
+ * More details on the license can be found at https://www.monterosa.co/sdk/license
144
+ */
145
+ function onState(conn, needle, callback) {
146
+ const handler = (state, ...rest) => {
147
+ if (state === needle) {
148
+ callback(...rest);
149
+ }
150
+ };
151
+ conn.on('state', handler);
152
+ return () => conn.off('state', handler);
153
+ }
154
+
155
+ /* eslint class-methods-use-this: "off" */
156
+ /**
157
+ * @internal
158
+ */
159
+ class ConnectImpl extends sdkUtil.Emitter {
160
+ constructor() {
161
+ super();
162
+ this.initState = exports.InitState.NotInitialised;
163
+ this.initPromise = Promise.resolve();
164
+ this.connectPromise = null;
165
+ Enmasse__default["default"].bind(Enmasse__default["default"].ON_STATE, (state, ...rest) => {
166
+ if (state === Enmasse__default["default"].STATE_CONNECTED) {
167
+ const [timestamp] = rest;
168
+ sdkUtil.setTimestamp(timestamp);
169
+ }
170
+ this.emit('state', ConnectImpl.toConnState(state), ...rest);
171
+ });
172
+ Enmasse__default["default"].bind(Enmasse__default["default"].ON_MESSAGE, (message) => {
173
+ this.emit('message', message);
174
+ });
175
+ }
176
+ get state() {
177
+ return ConnectImpl.toConnState(Enmasse__default["default"].getState());
178
+ }
179
+ get sessionId() {
180
+ return Enmasse__default["default"].getSessionId();
181
+ }
182
+ static getInstance() {
183
+ if (!ConnectImpl.instance) {
184
+ ConnectImpl.instance = new ConnectImpl();
185
+ }
186
+ return ConnectImpl.instance;
187
+ }
188
+ static toConnState(state) {
189
+ switch (state) {
190
+ default:
191
+ case Enmasse__default["default"].STATE_DISCONNECTED:
192
+ return exports.ConnState.Disconnected;
193
+ case Enmasse__default["default"].STATE_CONNECTING:
194
+ return exports.ConnState.Connecting;
195
+ case Enmasse__default["default"].STATE_CONNECTED:
196
+ return exports.ConnState.Connected;
197
+ }
198
+ }
199
+ async init(host) {
200
+ if (this.initState === exports.InitState.Initialising ||
201
+ this.initState === exports.InitState.Initialised) {
202
+ return this.initPromise;
203
+ }
204
+ this.initPromise = new Promise((resolve, reject) => {
205
+ this.initState = exports.InitState.Initialising;
206
+ Enmasse__default["default"].bind(Enmasse__default["default"].ON_READY, () => {
207
+ this.initState = exports.InitState.Initialised;
208
+ Enmasse__default["default"].unbind(Enmasse__default["default"].ON_READY);
209
+ Enmasse__default["default"].unbind(Enmasse__default["default"].ON_ERROR);
210
+ resolve();
211
+ });
212
+ Enmasse__default["default"].bind(Enmasse__default["default"].ON_ERROR, (err) => {
213
+ this.initState = exports.InitState.NotInitialised;
214
+ Enmasse__default["default"].unbind(Enmasse__default["default"].ON_READY);
215
+ Enmasse__default["default"].unbind(Enmasse__default["default"].ON_ERROR);
216
+ reject(new Error(`Unable to initialise connect kit: ${err}`));
217
+ });
218
+ Enmasse__default["default"].init({
219
+ config: `https://${host}/config/enmasse.json`,
220
+ });
221
+ });
222
+ return this.initPromise;
223
+ }
224
+ connect() {
225
+ if (this.initState !== exports.InitState.Initialised) {
226
+ return Promise.reject(new Error('must be initialised before connecting'));
227
+ }
228
+ if (this.state === exports.ConnState.Connected) {
229
+ return Promise.resolve();
230
+ }
231
+ if (this.state === exports.ConnState.Connecting) {
232
+ if (this.connectPromise) {
233
+ return this.connectPromise;
234
+ }
235
+ // This should never happen - indicates a bug in state management
236
+ return Promise.reject(new Error('BUG: Connection state is Connecting but connectPromise is null - ' +
237
+ 'this indicates an internal inconsistency'));
238
+ }
239
+ this.connectPromise = new Promise((resolve, reject) => {
240
+ const handler = (state) => {
241
+ switch (state) {
242
+ case exports.ConnState.Connected:
243
+ Enmasse__default["default"].unbind(Enmasse__default["default"].ON_STATE, handler);
244
+ this.connectPromise = null;
245
+ resolve();
246
+ break;
247
+ case exports.ConnState.Disconnected:
248
+ Enmasse__default["default"].unbind(Enmasse__default["default"].ON_STATE, handler);
249
+ this.connectPromise = null;
250
+ reject(new Error('disconnected'));
251
+ break;
252
+ case exports.ConnState.Connecting:
253
+ // The Enmasse library may emit the "connecting" state multiple
254
+ // times. This is expected and does not impact the connection
255
+ // process, so we safely ignore it.
256
+ break;
257
+ }
258
+ };
259
+ Enmasse__default["default"].bind(Enmasse__default["default"].ON_STATE, handler);
260
+ Enmasse__default["default"].connect();
261
+ });
262
+ return this.connectPromise;
263
+ }
264
+ disconnect() {
265
+ Enmasse__default["default"].disconnect();
266
+ }
267
+ subscribe(channel) {
268
+ return new Promise((resolve) => {
269
+ const handler = (ch) => {
270
+ if (ch !== channel)
271
+ return;
272
+ Enmasse__default["default"].unbind(Enmasse__default["default"].ON_EOC, handler);
273
+ resolve();
274
+ };
275
+ Enmasse__default["default"].bind(Enmasse__default["default"].ON_EOC, handler);
276
+ Enmasse__default["default"].subscribe(channel);
277
+ });
278
+ }
279
+ unsubscribe(channel) {
280
+ Enmasse__default["default"].unsubscribe(channel);
281
+ }
282
+ send(channel, klass, body) {
283
+ Enmasse__default["default"].send(channel, klass, body);
284
+ }
285
+ async login(userId, timestamp, signature) {
286
+ return new Promise((resolve, reject) => {
287
+ Enmasse__default["default"].login(userId, timestamp, signature, resolve, () => {
288
+ reject(new Error('Login failure'));
289
+ });
290
+ });
291
+ }
292
+ async logout() {
293
+ Enmasse__default["default"].logout();
294
+ return Promise.resolve();
295
+ }
296
+ delete() { }
297
+ }
298
+
299
+ /**
300
+ * @license
301
+ * @monterosa/sdk-connect-kit
302
+ *
303
+ * Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.
304
+ *
305
+ * More details on the license can be found at https://www.monterosa.co/sdk/license
306
+ */
307
+ /**
308
+ * @internal
309
+ */
310
+ const getConnectMemoized = sdkUtil.memoizePromise(async (host) => {
311
+ const conn = ConnectImpl.getInstance();
312
+ await conn.init(host);
313
+ return conn;
314
+ }, (host) => host);
315
+ /**
316
+ * Returns the {@link Connect} instance associated with the provided
317
+ * host. If host is not provided, it returns Connect instance for
318
+ * the host associated with the default sdk.
319
+ *
320
+ * @param host - The host URL. If not provided, uses the host
321
+ * from the default SDK instance.
322
+ */
323
+ function getConnect(host) {
324
+ if (host === undefined) {
325
+ const sdk = sdkCore.getSdk();
326
+ host = sdk.options.host;
327
+ }
328
+ return getConnectMemoized(host);
329
+ }
330
+ /**
331
+ * Adds an observer for when connection state changed to connected.
332
+ *
333
+ * @param conn - The {@link Connect} instance
334
+ * @param callback - The callback triggered when {@link ConnState | state}
335
+ * changed to connected
336
+ */
337
+ function onConnected(conn, callback) {
338
+ return onState(conn, exports.ConnState.Connected, callback);
339
+ }
340
+ /**
341
+ * Adds an observer for when connection state changed to connecting.
342
+ *
343
+ * @param conn - The {@link Connect} instance
344
+ * @param callback - callback triggered on connecting state. Two parameters
345
+ * are provided: `attempt`, the sequential number of connect attempt, and
346
+ * `delay` - delay in seconds before the next attempt
347
+ */
348
+ function onConnecting(conn, callback) {
349
+ return onState(conn, exports.ConnState.Connecting, callback);
350
+ }
351
+ /**
352
+ * Adds an observer for when connection state changed to disconnected.
353
+ *
354
+ * @param conn - The {@link Connect} instance
355
+ * @param callback - callback triggered on disconnected state
356
+ */
357
+ function onDisconnected(conn, callback) {
358
+ return onState(conn, exports.ConnState.Disconnected, callback);
359
+ }
360
+ /**
361
+ * Adds an observer for when a new message received
362
+ *
363
+ * @example
364
+ * ```javascript
365
+ * const unsubscribe = onMessage(conn, (message) => {
366
+ * console.log(message.body);
367
+ * });
368
+ * ```
369
+ *
370
+ * @param conn - The {@link Connect} instance
371
+ * @param callback - The callback function triggered on message receive
372
+ */
373
+ function onMessage(conn, callback) {
374
+ const handler = (message) => {
375
+ callback(message);
376
+ };
377
+ conn.on('message', handler);
378
+ return () => conn.off('message', handler);
379
+ }
380
+ /**
381
+ * Starts a connection process.
382
+ *
383
+ * @remarks
384
+ * If connect is successful a promise resolved by
385
+ * and {@link onConnected} is triggered, otherwise a next attempt will be
386
+ * automatically invoked and {@link onConnecting} is triggered.
387
+ *
388
+ * SDK connects automatically when its created. Connection procedure can be
389
+ * aborted by calling {@link disconnect} function and the promise is rejected.
390
+ *
391
+ * @example
392
+ * ```javascript
393
+ * try {
394
+ * const conn = await getConnect();
395
+ *
396
+ * await connect(conn);
397
+ *
398
+ * console.log('connected!');
399
+ * } catch (err) {
400
+ * console.log(err)
401
+ * }
402
+ * ```
403
+ *
404
+ * State of the connection can be handled separately
405
+ *
406
+ * @example
407
+ * ```javascript
408
+ * onConnected(() => console.log('connected'));
409
+ *
410
+ * onConnecting((attempt, delay) => console.log('connecting'));
411
+ *
412
+ * onDisconnected(() => console.log('disconnected'));
413
+ * ```
414
+ *
415
+ * @param conn - The {@link Connect} instance
416
+ * @param host - Interaction Cloud Studio host.
417
+ * Can be found in Project Settings in API tab
418
+ */
419
+ function connect(conn) {
420
+ // No need to memoize this, it's already memoized
421
+ // in the ConnectImpl class implementation
422
+ return conn.connect();
423
+ }
424
+ /**
425
+ * Disconnect from the server and triggers {@link onDisconnected}
426
+ *
427
+ * @param conn - The {@link Connect} instance
428
+ */
429
+ function disconnect(conn) {
430
+ conn.disconnect();
431
+ }
432
+ /**
433
+ * @internal
434
+ */
435
+ const subscribeMemoized = sdkUtil.memoizePromise(async (conn, channel) => conn.subscribe(channel), (conn, channel) => channel);
436
+ /**
437
+ * Subscribe to the server channel.
438
+ *
439
+ * @remarks
440
+ * Any message published to a channel is {@link onMessage | received}
441
+ * only by subscribers to that channel. The sdk out of the box handles
442
+ * all required subscriptions internally and {@link onMessage | handles messages}
443
+ * so there is no need in to subscribe by developers.
444
+ *
445
+ * To stop receiving messages on a channel {@link unsubscribe} should be called.
446
+ *
447
+ * @param conn - The {@link Connect} instance
448
+ * @param channel - Channel name
449
+ */
450
+ function subscribe(conn, channel) {
451
+ return subscribeMemoized(conn, channel);
452
+ }
453
+ /**
454
+ * Unsubscribe from the server channel.
455
+ *
456
+ * @remarks
457
+ * Removes subscription to the channel so that recipient no longer receive
458
+ * messages from that channel.
459
+ *
460
+ * @param conn - The {@link Connect} instance
461
+ * @param channel - Channel name
462
+ */
463
+ function unsubscribe(conn, channel) {
464
+ conn.unsubscribe(channel);
465
+ }
466
+ /**
467
+ * Send message to the server.
468
+ *
469
+ * @remarks
470
+ * The sdk out of the box provides more high level functions that uses
471
+ * this function to send data to the server. Though a developer still can
472
+ * use it if he knows a message protocol (klass and body) and a channel
473
+ * that expect the message.
474
+ *
475
+ * @param conn - The Connect instance
476
+ * @param channel - Channel name. Only {@link subscribe | subscribers}
477
+ * to that channel can send messages.
478
+ * @param klass - Message class name.
479
+ * @param body - Message payload
480
+ */
481
+ function send(conn, channel, klass, body) {
482
+ conn.send(channel, klass, body);
483
+ }
484
+ /**
485
+ * Authenticates the connection with user credentials.
486
+ *
487
+ * @param conn - The Connect instance
488
+ * @param userId - The user identifier
489
+ * @param timestamp - The signature timestamp in seconds
490
+ * @param signature - The session signature string
491
+ *
492
+ * @public
493
+ */
494
+ async function login(conn, userId, timestamp, signature) {
495
+ const result = await conn.login(userId, timestamp, signature);
496
+ return result;
497
+ }
498
+ async function logout(conn) {
499
+ const result = await conn.logout();
500
+ return result;
501
+ }
502
+
503
+ exports.ConnectImpl = ConnectImpl;
504
+ exports.KIT_NAME = KIT_NAME;
505
+ exports.connect = connect;
506
+ exports.disconnect = disconnect;
507
+ exports.getConnect = getConnect;
508
+ exports.getConnectMemoized = getConnectMemoized;
509
+ exports.login = login;
510
+ exports.logout = logout;
511
+ exports.onConnected = onConnected;
512
+ exports.onConnecting = onConnecting;
513
+ exports.onDisconnected = onDisconnected;
514
+ exports.onMessage = onMessage;
515
+ exports.send = send;
516
+ exports.subscribe = subscribe;
517
+ exports.subscribeMemoized = subscribeMemoized;
518
+ exports.unsubscribe = unsubscribe;
519
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/types.ts","../src/helpers.ts","../src/connect_impl.ts","../src/connect.ts"],"sourcesContent":["/**\n * @license\n * @monterosa/sdk-connect-kit\n *\n * Copyright © 2022 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { MonterosaKit } from '@monterosa/sdk-core';\nimport { Emitter } from '@monterosa/sdk-util';\n\n/**\n * @internal\n */\nexport const KIT_NAME = 'connect';\n\n/**\n * Represents a Connect Kit instance. Obtain one via {@link getConnect}.\n */\nexport interface Connect extends MonterosaKit, Emitter {\n /**\n * Connection state\n */\n state: ConnState;\n\n /**\n * Session ID\n */\n sessionId: string | null;\n\n /**\n * @internal\n */\n initState: InitState;\n\n /**\n * @internal\n */\n init(host: string): Promise<void>;\n\n /**\n * @internal\n */\n connect(): Promise<void>;\n\n /**\n * @internal\n */\n disconnect(): void;\n\n /**\n * @internal\n */\n subscribe(channel: string): Promise<void>;\n\n /**\n * @internal\n */\n unsubscribe(channel: string): void;\n\n /**\n * @internal\n */\n send(channel: string, klass: string, body: (string | number)[]): void;\n\n /**\n * @internal\n */\n login(userId: string, timestamp: number, signature: string): Promise<void>;\n\n logout(): void;\n}\n\n/**\n * @internal\n */\nexport enum InitState {\n NotInitialised = 'not_initialised',\n Initialised = 'initialised',\n Initialising = 'initialising',\n}\n\n/**\n * A list of possible connection states.\n *\n * @remarks\n * Can be used with {@link Connect | Connect.state} to determine the current state.\n *\n * By default {@link Connect} is in the disconnected state.\n * When {@link connect} invoked `Connect` state switches to\n * `ConnState.Connecting` and connection is maintained permanently until\n * {@link disconnect} method is invoked. If connection was unsucessful,\n * a new attempt will start after a short delay and `ConnState.connecting`\n * is triggered. Delays between attempts increased based on this sequence:\n * 0, 3, 5, 10, 20, 30, 45, 60 where 60 seconds is the max.\n *\n * If `Connect` was previously connected and for any reason connection is lost,\n * the state changed to `ConnState.Connecting` again and the connection process\n * starts again automatically.\n *\n * @example\n * ```javascript\n * if (conn.state === ConnState.Connecting) {\n * // display \"connecting\" message\n * }\n * ```\n */\nexport enum ConnState {\n /**\n * Disconnected state\n */\n Disconnected = 'disconnected',\n /**\n * Connecting state\n */\n Connecting = 'connecting',\n /**\n * Connected state\n */\n Connected = 'connected',\n}\n\n/**\n * Class of the {@link Message}\n */\nexport enum Klass {\n /**\n * Authentication request. Sent by server on client connection.\n */\n Authenticate = 'auth',\n /**\n * Authentication response. Sent by client as response\n * to authentication request.\n */\n AuthenticateResponse = 'authr',\n /**\n * Authentication acknowledgement. Sent by the server as confirmation\n * of successful authentication.\n */\n AuthenticateSuccess = 'authok',\n /**\n * Ping message is sent by server periodically as a keep-alive.\n * Ping message is only sent if no messages are sent for specific time\n * period, meaning if there are other messages sent frequently enough\n * then ping messages are not sent at all.\n */\n Ping = 'ping',\n /**\n * Subscribe to a channel. Sent by the client to subscribe to a channel\n */\n Subscribe = 'sub',\n /**\n * Unsubscribe from a channel. Sent by the client to unsubscribe from a channel\n */\n Unsububscribe = 'unsub',\n /**\n * End of cache. Sent by the server to notify that all messages are sent from\n * a channel cache\n */\n EndOfCache = 'eoc',\n /**\n * User login. Sent by client to supply verified user identity to the server.\n */\n Login = 'login',\n /**\n * User login success\n */\n LoginSuccess = 'login_ok',\n /**\n * User login failure\n */\n LoginFail = 'login_fail',\n /**\n * Averages counters. Client can submit a counter which is processed together\n * with other counters to determine the average of all counters within specific\n * demographics segment.\n */\n Counter = 'counter',\n /**\n * Client votes. Sents by a user to vote for a poll option\n */\n Vote = 'v',\n}\n\n/**\n * Represents a message received from or sent to the server.\n * Subscribe via {@link onMessage} to receive messages.\n */\nexport interface Message {\n /**\n * The channel on which this message was received. You must\n * {@link subscribe} to a channel to start receiving messages.\n */\n channel: string;\n /**\n * The class indicates the desired action to be performed or the result of\n * the action. E.g. in order to authenticate a developer should {@link send}\n * {@link Klass | Klass.AuthenticateResponse} klass message as a response on\n * a received {@link Klass | Klass.Authenticate} message\n */\n klass: Klass | string;\n /**\n * The timestamp (in seconds) when this message was sent\n */\n sent_at: number;\n /**\n * The message payload. Each piece of data is a `string`\n */\n body: string[];\n}\n","/**\n * @license\n * @monterosa/sdk-connect-kit\n *\n * Copyright © 2022 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { Unsubscribe } from '@monterosa/sdk-util';\n\nimport { Connect, ConnState } from './types';\n\nexport function onState(\n conn: Connect,\n needle: ConnState,\n callback: Function,\n): Unsubscribe {\n const handler = (state: ConnState, ...rest: unknown[]) => {\n if (state === needle) {\n callback(...rest);\n }\n };\n\n conn.on('state', handler);\n\n return () => conn.off('state', handler);\n}\n","/* eslint class-methods-use-this: \"off\" */\n\n/**\n * @license\n * @monterosa/sdk-connect-kit\n *\n * Copyright © 2022 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport Enmasse from '@monterosa/sdk-enmasse-kit';\nimport { Emitter, setTimestamp } from '@monterosa/sdk-util';\n\nimport { Connect, ConnState, InitState, Message } from './types';\n\n/**\n * @internal\n */\nexport class ConnectImpl extends Emitter implements Connect {\n private static instance: ConnectImpl;\n public initState: InitState = InitState.NotInitialised;\n private initPromise: Promise<void> = Promise.resolve();\n private connectPromise: Promise<void> | null = null;\n\n private constructor() {\n super();\n\n Enmasse.bind(\n Enmasse.ON_STATE,\n (state: Enmasse.States, ...rest: unknown[]) => {\n if (state === Enmasse.STATE_CONNECTED) {\n const [timestamp] = rest as [number];\n\n setTimestamp(timestamp);\n }\n\n this.emit('state', ConnectImpl.toConnState(state), ...rest);\n },\n );\n\n Enmasse.bind(Enmasse.ON_MESSAGE, (message: Enmasse.Message) => {\n this.emit('message', <Message>message);\n });\n }\n\n get state() {\n return ConnectImpl.toConnState(Enmasse.getState());\n }\n\n get sessionId() {\n return Enmasse.getSessionId();\n }\n\n public static getInstance(): ConnectImpl {\n if (!ConnectImpl.instance) {\n ConnectImpl.instance = new ConnectImpl();\n }\n\n return ConnectImpl.instance;\n }\n\n static toConnState(state: Enmasse.States): ConnState {\n switch (state) {\n default:\n case Enmasse.STATE_DISCONNECTED:\n return ConnState.Disconnected;\n case Enmasse.STATE_CONNECTING:\n return ConnState.Connecting;\n case Enmasse.STATE_CONNECTED:\n return ConnState.Connected;\n }\n }\n\n async init(host: string): Promise<void> {\n if (\n this.initState === InitState.Initialising ||\n this.initState === InitState.Initialised\n ) {\n return this.initPromise;\n }\n\n this.initPromise = new Promise((resolve, reject) => {\n this.initState = InitState.Initialising;\n\n Enmasse.bind(Enmasse.ON_READY, () => {\n this.initState = InitState.Initialised;\n\n Enmasse.unbind(Enmasse.ON_READY);\n Enmasse.unbind(Enmasse.ON_ERROR);\n\n resolve();\n });\n\n Enmasse.bind(Enmasse.ON_ERROR, (err: string) => {\n this.initState = InitState.NotInitialised;\n\n Enmasse.unbind(Enmasse.ON_READY);\n Enmasse.unbind(Enmasse.ON_ERROR);\n\n reject(new Error(`Unable to initialise connect kit: ${err}`));\n });\n\n Enmasse.init({\n config: `https://${host}/config/enmasse.json`,\n });\n });\n\n return this.initPromise;\n }\n\n connect(): Promise<void> {\n if (this.initState !== InitState.Initialised) {\n return Promise.reject(new Error('must be initialised before connecting'));\n }\n\n if (this.state === ConnState.Connected) {\n return Promise.resolve();\n }\n\n if (this.state === ConnState.Connecting) {\n if (this.connectPromise) {\n return this.connectPromise;\n }\n\n // This should never happen - indicates a bug in state management\n return Promise.reject(\n new Error(\n 'BUG: Connection state is Connecting but connectPromise is null - ' +\n 'this indicates an internal inconsistency',\n ),\n );\n }\n\n this.connectPromise = new Promise((resolve, reject) => {\n const handler = (state: ConnState) => {\n switch (state) {\n case ConnState.Connected:\n Enmasse.unbind(Enmasse.ON_STATE, handler);\n\n this.connectPromise = null;\n\n resolve();\n break;\n case ConnState.Disconnected:\n Enmasse.unbind(Enmasse.ON_STATE, handler);\n\n this.connectPromise = null;\n\n reject(new Error('disconnected'));\n break;\n case ConnState.Connecting:\n // The Enmasse library may emit the \"connecting\" state multiple\n // times. This is expected and does not impact the connection\n // process, so we safely ignore it.\n break;\n }\n };\n\n Enmasse.bind(Enmasse.ON_STATE, handler);\n\n Enmasse.connect();\n });\n\n return this.connectPromise;\n }\n\n disconnect() {\n Enmasse.disconnect();\n }\n\n subscribe(channel: string): Promise<void> {\n return new Promise((resolve) => {\n const handler = (ch: string) => {\n if (ch !== channel) return;\n\n Enmasse.unbind(Enmasse.ON_EOC, handler);\n\n resolve();\n };\n\n Enmasse.bind(Enmasse.ON_EOC, handler);\n\n Enmasse.subscribe(channel);\n });\n }\n\n unsubscribe(channel: string): void {\n Enmasse.unsubscribe(channel);\n }\n\n send(channel: string, klass: string, body: (string | number)[]): void {\n Enmasse.send(channel, klass, body);\n }\n\n async login(\n userId: string,\n timestamp: number,\n signature: string,\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n Enmasse.login(userId, timestamp, signature, resolve, () => {\n reject(new Error('Login failure'));\n });\n });\n }\n\n async logout(): Promise<void> {\n Enmasse.logout();\n\n return Promise.resolve();\n }\n\n delete() {}\n}\n","/**\n * @license\n * @monterosa/sdk-connect-kit\n *\n * Copyright © 2022-2024 Monterosa Productions Limited. All rights reserved.\n *\n * More details on the license can be found at https://www.monterosa.co/sdk/license\n */\n\nimport { getSdk } from '@monterosa/sdk-core';\nimport { memoizePromise, Unsubscribe } from '@monterosa/sdk-util';\n\nimport { Connect, ConnState, Message, Klass } from './types';\nimport { onState } from './helpers';\nimport { ConnectImpl } from './connect_impl';\n\n/**\n * @internal\n */\nconst getConnectMemoized = memoizePromise(\n async (host: string): Promise<Connect> => {\n const conn = ConnectImpl.getInstance();\n\n await conn.init(host);\n\n return conn;\n },\n (host: string): string => host,\n);\n\n/**\n * Returns the {@link Connect} instance associated with the provided\n * host. If host is not provided, it returns Connect instance for\n * the host associated with the default sdk.\n *\n * @param host - The host URL. If not provided, uses the host\n * from the default SDK instance.\n */\nfunction getConnect(host?: string): Promise<Connect> {\n if (host === undefined) {\n const sdk = getSdk();\n\n host = sdk.options.host;\n }\n\n return getConnectMemoized(host);\n}\n\n/**\n * Adds an observer for when connection state changed to connected.\n *\n * @param conn - The {@link Connect} instance\n * @param callback - The callback triggered when {@link ConnState | state}\n * changed to connected\n */\nfunction onConnected(\n conn: Connect,\n callback: (timestamp: number) => void,\n): Unsubscribe {\n return onState(conn, ConnState.Connected, callback);\n}\n\n/**\n * Adds an observer for when connection state changed to connecting.\n *\n * @param conn - The {@link Connect} instance\n * @param callback - callback triggered on connecting state. Two parameters\n * are provided: `attempt`, the sequential number of connect attempt, and\n * `delay` - delay in seconds before the next attempt\n */\nfunction onConnecting(\n conn: Connect,\n callback: (attempt: number, delay: number) => void,\n): Unsubscribe {\n return onState(conn, ConnState.Connecting, callback);\n}\n\n/**\n * Adds an observer for when connection state changed to disconnected.\n *\n * @param conn - The {@link Connect} instance\n * @param callback - callback triggered on disconnected state\n */\nfunction onDisconnected(conn: Connect, callback: () => void): Unsubscribe {\n return onState(conn, ConnState.Disconnected, callback);\n}\n\n/**\n * Adds an observer for when a new message received\n *\n * @example\n * ```javascript\n * const unsubscribe = onMessage(conn, (message) => {\n * console.log(message.body);\n * });\n * ```\n *\n * @param conn - The {@link Connect} instance\n * @param callback - The callback function triggered on message receive\n */\nfunction onMessage(\n conn: Connect,\n callback: (message: Message) => void,\n): Unsubscribe {\n const handler = (message: Message) => {\n callback(message);\n };\n\n conn.on('message', handler);\n\n return () => conn.off('message', handler);\n}\n\n/**\n * Starts a connection process.\n *\n * @remarks\n * If connect is successful a promise resolved by\n * and {@link onConnected} is triggered, otherwise a next attempt will be\n * automatically invoked and {@link onConnecting} is triggered.\n *\n * SDK connects automatically when its created. Connection procedure can be\n * aborted by calling {@link disconnect} function and the promise is rejected.\n *\n * @example\n * ```javascript\n * try {\n * const conn = await getConnect();\n *\n * await connect(conn);\n *\n * console.log('connected!');\n * } catch (err) {\n * console.log(err)\n * }\n * ```\n *\n * State of the connection can be handled separately\n *\n * @example\n * ```javascript\n * onConnected(() => console.log('connected'));\n *\n * onConnecting((attempt, delay) => console.log('connecting'));\n *\n * onDisconnected(() => console.log('disconnected'));\n * ```\n *\n * @param conn - The {@link Connect} instance\n * @param host - Interaction Cloud Studio host.\n * Can be found in Project Settings in API tab\n */\nfunction connect(conn: Connect): Promise<void> {\n // No need to memoize this, it's already memoized\n // in the ConnectImpl class implementation\n return conn.connect();\n}\n\n/**\n * Disconnect from the server and triggers {@link onDisconnected}\n *\n * @param conn - The {@link Connect} instance\n */\nfunction disconnect(conn: Connect): void {\n conn.disconnect();\n}\n\n/**\n * @internal\n */\nconst subscribeMemoized = memoizePromise(\n async (conn: Connect, channel: string): Promise<void> =>\n conn.subscribe(channel),\n (conn: Connect, channel: string): string => channel,\n);\n\n/**\n * Subscribe to the server channel.\n *\n * @remarks\n * Any message published to a channel is {@link onMessage | received}\n * only by subscribers to that channel. The sdk out of the box handles\n * all required subscriptions internally and {@link onMessage | handles messages}\n * so there is no need in to subscribe by developers.\n *\n * To stop receiving messages on a channel {@link unsubscribe} should be called.\n *\n * @param conn - The {@link Connect} instance\n * @param channel - Channel name\n */\nfunction subscribe(conn: Connect, channel: string): Promise<void> {\n return subscribeMemoized(conn, channel);\n}\n\n/**\n * Unsubscribe from the server channel.\n *\n * @remarks\n * Removes subscription to the channel so that recipient no longer receive\n * messages from that channel.\n *\n * @param conn - The {@link Connect} instance\n * @param channel - Channel name\n */\nfunction unsubscribe(conn: Connect, channel: string): void {\n conn.unsubscribe(channel);\n}\n\n/**\n * Send message to the server.\n *\n * @remarks\n * The sdk out of the box provides more high level functions that uses\n * this function to send data to the server. Though a developer still can\n * use it if he knows a message protocol (klass and body) and a channel\n * that expect the message.\n *\n * @param conn - The Connect instance\n * @param channel - Channel name. Only {@link subscribe | subscribers}\n * to that channel can send messages.\n * @param klass - Message class name.\n * @param body - Message payload\n */\nfunction send(\n conn: Connect,\n channel: string,\n klass: Klass | string,\n body: (string | number)[],\n): void {\n conn.send(channel, klass, body);\n}\n\n/**\n * Authenticates the connection with user credentials.\n *\n * @param conn - The Connect instance\n * @param userId - The user identifier\n * @param timestamp - The signature timestamp in seconds\n * @param signature - The session signature string\n *\n * @public\n */\nasync function login(\n conn: Connect,\n userId: string,\n timestamp: number,\n signature: string,\n): Promise<void> {\n const result = await conn.login(userId, timestamp, signature);\n\n return result;\n}\n\nasync function logout(conn: Connect): Promise<void> {\n const result = await conn.logout();\n\n return result;\n}\n\nexport {\n onConnected,\n onConnecting,\n onDisconnected,\n onMessage,\n disconnect,\n unsubscribe,\n send,\n getConnect,\n getConnectMemoized,\n connect,\n subscribe,\n subscribeMemoized,\n login,\n logout,\n};\n"],"names":["InitState","ConnState","Klass","Emitter","Enmasse","setTimestamp","memoizePromise","getSdk"],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@monterosa/sdk-connect-kit",
3
- "version": "2.0.0-rc.2",
3
+ "version": "2.0.0-rc.3",
4
4
  "description": "Monterosa JS SDK / Connect",
5
5
  "author": "Monterosa Productions Limited <hello@monterosa.co.uk> (https://www.monterosa.co/)",
6
- "main": "./dist/index.js",
6
+ "main": "./dist/index.cjs",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js",
12
- "default": "./dist/index.js"
12
+ "require": "./dist/index.cjs",
13
+ "default": "./dist/index.cjs"
13
14
  }
14
15
  },
15
16
  "files": [
@@ -31,9 +32,9 @@
31
32
  ],
32
33
  "license": "MIT",
33
34
  "dependencies": {
34
- "@monterosa/sdk-core": "2.0.0-rc.2",
35
- "@monterosa/sdk-enmasse-kit": "2.0.0-rc.2",
36
- "@monterosa/sdk-util": "2.0.0-rc.2"
35
+ "@monterosa/sdk-core": "2.0.0-rc.3",
36
+ "@monterosa/sdk-enmasse-kit": "2.0.0-rc.3",
37
+ "@monterosa/sdk-util": "2.0.0-rc.3"
37
38
  },
38
39
  "devDependencies": {
39
40
  "@rollup/plugin-json": "^4.1.0",
@@ -53,5 +54,5 @@
53
54
  "publishConfig": {
54
55
  "access": "public"
55
56
  },
56
- "gitHead": "0e2d4cd71055bf0ab38ec5a73d6040c55151da1c"
57
+ "gitHead": "d692ad26af0b5ea7cd7b664168bffa069f9ab911"
57
58
  }