centrifuge 3.0.0 → 3.1.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.
package/README.md CHANGED
@@ -1,23 +1,23 @@
1
- # Centrifuge and Centrifugo bidirectional SDK for NodeJS, React-Native and browser
2
-
3
1
  This SDK provides a client to connect to [Centrifugo](https://github.com/centrifugal/centrifugo) or any [Centrifuge-based](https://github.com/centrifugal/centrifuge) server using pure WebSocket or one of the fallback transports from web browser, ReactNative, or NodeJS environments.
4
2
 
5
3
  The client behaves according to a common [Centrifigo SDK spec](https://centrifugal.dev/docs/transports/client_api). It's recommended to read that before starting to work with this SDK as the spec covers common SDK behavior - describes client and subscription state transitions, main options and methods. Then proceed with this readme for more specifics about `centrifuge-js`.
6
4
 
7
5
  The features implemented by this SDK can be found in [SDK feature matrix](https://centrifugal.dev/docs/transports/client_sdk#sdk-feature-matrix).
8
6
 
7
+ > **`centrifuge-js` v3.x is compatible only with latest [Centrifugo](https://github.com/centrifugal/centrifugo) server (v4) and [Centrifuge](https://github.com/centrifugal/centrifuge) >= 0.25.0. For Centrifugo v2, Centrifugo v3 and Centrifuge < 0.25.0 you should use `centrifuge-js` v2.x.**
8
+
9
9
  * [Install](#install)
10
10
  * [Quick start](#quick-start)
11
- * [WebSocket transport](#websocket-transport)
12
- * [Using fallbacks](#using-fallbacks)
13
- * [Bidirectional emulation](#bidirectional-emulation)
14
- * [SockJS](#using-sockjs)
15
- * [WebTransport (experimental)](#webtransport-experimental)
11
+ * [Supported real-time transports](#supported-real-time-transports)
12
+ * [WebSocket transport](#websocket-transport)
13
+ * [HTTP-based WebSocket fallbacks](#http-based-websocket-fallbacks)
14
+ * [Using SockJS](#using-sockjs)
15
+ * [WebTransport (experimental)](#webtransport-experimental)
16
16
  * [Client API](#client-api)
17
17
  * [Client methods and events](#client-methods-and-events)
18
18
  * [Connection token](#connection-token)
19
19
  * [Subscription API](#subscription-api)
20
- * [Subscription methods and events](#client-methods-and-events)
20
+ * [Subscription methods and events](#subscription-methods-and-events)
21
21
  * [Subscription token](#subscription-token)
22
22
  * [Message batching](#message-batching)
23
23
  * [Server-side subscriptions](#server-side-subscriptions)
@@ -28,25 +28,27 @@ The features implemented by this SDK can be found in [SDK feature matrix](https:
28
28
 
29
29
  ## Install
30
30
 
31
- Using cdn (replace `3.0.0` to a concrete version number):
32
-
33
- ```html
34
- <script src="https://cdnjs.cloudflare.com/ajax/libs/centrifuge/3.0.0/centrifuge.js"></script>
35
- ```
36
-
37
- Also available via `npm`:
31
+ SDK can be installed via `npm`:
38
32
 
39
33
  ```bash
40
34
  npm install centrifuge
41
35
  ```
42
36
 
43
- And then:
37
+ And then in your project:
44
38
 
45
39
  ```javascript
46
40
  import { Centrifuge } from 'centrifuge';
47
41
  ```
48
42
 
49
- By default, library works with JSON only, see [Protobuf support](#protobuf-support) section to see how to import client with Protobuf support.
43
+ In browser, you can import SDK from CDN (replace `3.0.1` to a concrete version number you want to use, see [releases](https://github.com/centrifugal/centrifuge-js/releases)):
44
+
45
+ ```html
46
+ <script src="https://unpkg.com/centrifuge@3.0.1/dist/centrifuge.js"></script>
47
+ ```
48
+
49
+ See also [centrifuge-js on cdnjs](https://cdnjs.com/libraries/centrifuge). Note that `centrifuge-js` browser builds target [ES6](https://caniuse.com/es6) at this point.
50
+
51
+ **By default, library works with JSON only**, if you want to send binary payloads go to [Protobuf support](#protobuf-support) section to see how to import client with Protobuf support.
50
52
 
51
53
  ## Quick start
52
54
 
@@ -75,24 +77,30 @@ Note, that we explicitly call `.connect()` method to initiate connection establi
75
77
 
76
78
  **`Centrifuge` object and `Subscription` object are both instances of [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter).** Below we will describe events that can be exposed in detail.
77
79
 
78
- ## Websocket transport
80
+ ## Supported real-time transports
79
81
 
80
- WebSocket is the main protocol used by `centrifuge-js` to communicate with a server. In browser environment it's available globally, but if you want to connect from NodeJS env – then you need to provide WebSocket constructor to `centrifuge-js` explicitly. [See below](#using-with-nodejs) more information about this.
82
+ This SDK supports several real-time transports.
81
83
 
82
- ## Using fallbacks
84
+ ### Websocket transport
83
85
 
84
- In the quick start example above we used WebSocket endpoint to configure Centrifuge. WebSocket is the main transport it's bidirectional out of the box.
86
+ WebSocket is the main protocol used by `centrifuge-js` to communicate with a server.
87
+
88
+ In a browser environment WebSocket is available globally, but if you want to connect from NodeJS env – then you need to provide WebSocket constructor to `centrifuge-js` explicitly. [See below](#using-with-nodejs) more information about this.
89
+
90
+ It's the only transport for which you can just use a string endpoint as first argument of `Centrifuge` constructor. If you need to use other transports, or several transports – then you should use `Array<TransportEndpoint>`.
91
+
92
+ ### HTTP-based WebSocket fallbacks
85
93
 
86
- In some cases though, WebSocket connection may not be established (for example, due to corporate firewalls and proxies). For such situations `centrifuge-js` offers several WebSocket fallback options.
94
+ In the quick start example above we used WebSocket endpoint to configure Centrifuge. WebSocket is the main transport it's bidirectional out of the box.
87
95
 
88
- ### Bidirectional emulation
96
+ In some cases though, WebSocket connection may not be established (for example, due to corporate firewalls and proxies). For such situations `centrifuge-js` offers several WebSocket fallback options based on HTTP:
89
97
 
90
- SockJS is robust and stable product, but it's an extra dependency, it's pretty old, comes with some overhead and sticky sessions requirement for a distributed backend case. In most scenarios these days clients are fine to use WebSocket protocol for messaging. There are rare connection issues though which are caused by corporate firewall and proxy software. To deal with users behind such proxies Centrifuge SDK offers its own bidirectional emulation layer. This layer uses two HTTP-based transports:
98
+ * HTTP-streaming based on [ReadableStream API](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)
99
+ * [SSE (EventSource)](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).
91
100
 
92
- * HTTP-streaming based on ReadableStream API
93
- * SSE (EventSource).
101
+ These two transports use Centrifugo/Centrifuge own bidirectional emulation layer. See [more details in introduction post](https://centrifugal.dev/blog/2022/07/19/centrifugo-v4-released#modern-websocket-emulation-in-javascript). Bidirectional emulation must be first enabled on a server-side. See [Centrifugo docs](https://centrifugal.dev/docs/transports/overview) to find out how.
94
102
 
95
- Bidirectional emulation must be first enabled on a server-side. For example, see Centrifugo docs to find out how. Then in Javascript you can slightly change client initialization and point it to a list of endpoints and transports you want to use:
103
+ After enabling HTTP-streaming or SSE endpoints on a server side you can slightly change client initialization and point Javascript SDK to a list of endpoints and transports you want to use:
96
104
 
97
105
  ```javascript
98
106
  const transports = [
@@ -113,14 +121,14 @@ const centrifuge = new Centrifuge(transports);
113
121
  centrifuge.connect()
114
122
  ```
115
123
 
116
- In this case, client will try transports in order, one by one, during the initial handshake. Until success. Then will only use a successful transport during reconnects.
124
+ In this case, client will try transports in order, one by one, during the initial handshake. Until success. Then will only use a successfully chosen transport during reconnects.
117
125
 
118
126
  Supported transports are:
119
127
 
120
128
  * `websocket`
121
129
  * `http_stream`
122
130
  * `sse`
123
- * `sockjs` (yes, SockJS can also be used as a fallback in the bidirectional emulation layer, but sticky session must be used on the backend in distributed case, SockJS is currently in DEPRECATED status in Centrifugal ecosystem).
131
+ * `sockjs` (SockJS can also be used as a fallback, but sticky session must be used on the backend in distributed case, SockJS is currently in DEPRECATED status in Centrifugal ecosystem).
124
132
  * `webtransport` (experimental, see details below)
125
133
 
126
134
  If you want to use sticky sessions on a load balancer level as an optimimization for Centrifugal bidirectional emulation layer keep in mind that we currently use `same-origin` credentials policy for emulation requests in `http_stream` and `sse` transport cases. So cookies will only be passed in same-origin case. Please open an issue in case you need to configure more relaxed credentials. Though in most cases stickyness based on client's IP may be sufficient enough.
@@ -133,7 +141,7 @@ If you want to use SockJS you must also import SockJS client before centrifuge.j
133
141
 
134
142
  ```html
135
143
  <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js" type="text/javascript"></script>
136
- <script src="https://cdnjs.cloudflare.com/ajax/libs/centrifuge/3.0.0/centrifuge.js" type="text/javascript"></script>
144
+ <script src="https://unpkg.com/centrifuge@3.0.0/dist/centrifuge.js" type="text/javascript"></script>
137
145
  ```
138
146
 
139
147
  Or provide it explicitly as a dependency:
@@ -154,7 +162,7 @@ const centrifuge = new Centrifuge(transports, {
154
162
 
155
163
  Note, that in SockJS case endpoint starts with `http://`, not with `ws://` as we used above when connecting to a pure WebSocket endpoint.
156
164
 
157
- ## WebTransport (experimental)
165
+ ### WebTransport (experimental)
158
166
 
159
167
  WebTransport is experimental and is only supported by Centrifugo at the moment (i.e. it's not available in Centrifuge library for Go out of the box).
160
168
 
@@ -673,7 +681,7 @@ Timeout for operations in milliseconds.
673
681
  To import client with Protobuf protocol support:
674
682
 
675
683
  ```html
676
- <script src="https://cdn.jsdelivr.net/gh/centrifugal/centrifuge-js@2.X.X/dist/centrifuge.protobuf.min.js"></script>
684
+ <script src="https://unpkg.com/centrifuge@3.0.0/dist/centrifuge.protobuf.js"></script>
677
685
  ```
678
686
 
679
687
  Or if you are developing with npm:
@@ -684,7 +692,7 @@ import Centrifuge from 'centrifuge/build/protobuf';
684
692
 
685
693
  This client uses [protobuf.js](https://github.com/dcodeIO/ProtoBuf.js/) under the hood.
686
694
 
687
- Centrifuge client with Protobuf support also works with JSON. To enable binary websocket add `protocol: "protobuf"` option to Centrifuge configuration options:
695
+ To enable binary websocket add `protocol: 'protobuf'` option to Centrifuge configuration options:
688
696
 
689
697
  ```javascript
690
698
  const centrifuge = new Centrifuge('ws://centrifuge.example.com/connection/websocket", {
@@ -692,6 +700,13 @@ const centrifuge = new Centrifuge('ws://centrifuge.example.com/connection/websoc
692
700
  });
693
701
  ```
694
702
 
703
+ When running with Protobuf protocol, you can send and receive any binary data as `Uint8Array`. Make sure data is properly encoded when calling methods of Centrifuge Protobuf-based instance. For example, you can not just send JSON-like objects like in JSON protocol case, you need to encode data to `Uint8Array` first:
704
+
705
+ ```javascript
706
+ const data = new TextEncoder("utf-8").encode(JSON.stringify({"any": "data"}));
707
+ sub.publish(data);
708
+ ```
709
+
695
710
  ## Using with NodeJS
696
711
 
697
712
  NodeJS does not have native WebSocket library in std lib. To use `centrifuge-js` on Node you need to explicitly provide WebSocket constructor to the library.
@@ -12,6 +12,7 @@ export declare class Centrifuge extends Centrifuge_base {
12
12
  private _transportWasOpen;
13
13
  private _transport?;
14
14
  private _transportClosed;
15
+ private _reconnecting;
15
16
  private _reconnectTimeout?;
16
17
  private _reconnectAttempts;
17
18
  private _client;
@@ -96,6 +97,7 @@ export declare class Centrifuge extends Centrifuge_base {
96
97
  private _isConnecting;
97
98
  private _isConnected;
98
99
  private _nextCommandId;
100
+ private _setNetworkEvents;
99
101
  private _getReconnectDelay;
100
102
  private _clearOutgoingRequests;
101
103
  private _clearConnectedState;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.Centrifuge = void 0;
4
- const tslib_1 = require("tslib");
5
7
  const subscription_1 = require("./subscription");
6
8
  const codes_1 = require("./codes");
7
9
  const transport_sockjs_1 = require("./transport_sockjs");
@@ -12,7 +14,7 @@ const transport_webtransport_1 = require("./transport_webtransport");
12
14
  const json_1 = require("./json");
13
15
  const utils_1 = require("./utils");
14
16
  const types_1 = require("./types");
15
- const events_1 = tslib_1.__importDefault(require("events"));
17
+ const events_1 = __importDefault(require("events"));
16
18
  const defaults = {
17
19
  protocol: 'json',
18
20
  token: null,
@@ -32,6 +34,7 @@ const defaults = {
32
34
  maxReconnectDelay: 20000,
33
35
  timeout: 5000,
34
36
  maxServerPingDelay: 10000,
37
+ networkEventTarget: null,
35
38
  };
36
39
  /** Centrifuge is a Centrifuge/Centrifugo bidirectional client. */
37
40
  class Centrifuge extends events_1.default {
@@ -52,6 +55,7 @@ class Centrifuge extends events_1.default {
52
55
  this._transportClosed = true;
53
56
  this._encoder = null;
54
57
  this._decoder = null;
58
+ this._reconnecting = false;
55
59
  this._reconnectTimeout = null;
56
60
  this._reconnectAttempts = 0;
57
61
  this._client = null;
@@ -310,7 +314,7 @@ class Centrifuge extends events_1.default {
310
314
  return false;
311
315
  }
312
316
  _configure() {
313
- if (!('Promise' in global)) {
317
+ if (!('Promise' in globalThis)) {
314
318
  throw new Error('Promise polyfill required');
315
319
  }
316
320
  if (!this._endpoint) {
@@ -354,6 +358,7 @@ class Centrifuge extends events_1.default {
354
358
  }
355
359
  _setState(newState) {
356
360
  if (this.state !== newState) {
361
+ this._reconnecting = false;
357
362
  const oldState = this.state;
358
363
  this.state = newState;
359
364
  this.emit('state', { newState, oldState });
@@ -373,6 +378,31 @@ class Centrifuge extends events_1.default {
373
378
  _nextCommandId() {
374
379
  return ++this._commandId;
375
380
  }
381
+ _setNetworkEvents() {
382
+ let eventTarget = null;
383
+ if (this._config.networkEventTarget !== null) {
384
+ eventTarget = this._config.networkEventTarget;
385
+ }
386
+ else if (typeof globalThis.addEventListener !== 'undefined') {
387
+ eventTarget = globalThis;
388
+ }
389
+ if (eventTarget) {
390
+ eventTarget.addEventListener('offline', () => {
391
+ this._debug('offline event triggered');
392
+ if (this.state === types_1.State.Connected && this._transport && !this._transportClosed) {
393
+ this._transportClosed = true;
394
+ this._transport.close();
395
+ }
396
+ });
397
+ eventTarget.addEventListener('online', () => {
398
+ this._debug('online event triggered');
399
+ if (this.state === types_1.State.Connecting) {
400
+ this._clearReconnectTimeout();
401
+ this._startReconnecting();
402
+ }
403
+ });
404
+ }
405
+ }
376
406
  _getReconnectDelay() {
377
407
  const delay = (0, utils_1.backoff)(this._reconnectAttempts, this._config.minReconnectDelay, this._config.maxReconnectDelay);
378
408
  this._reconnectAttempts += 1;
@@ -451,8 +481,8 @@ class Centrifuge extends events_1.default {
451
481
  websocket = this._config.websocket;
452
482
  }
453
483
  else {
454
- if (!(typeof global.WebSocket !== 'function' && typeof global.WebSocket !== 'object')) {
455
- websocket = global.WebSocket;
484
+ if (!(typeof globalThis.WebSocket !== 'function' && typeof globalThis.WebSocket !== 'object')) {
485
+ websocket = globalThis.WebSocket;
456
486
  }
457
487
  }
458
488
  let sockjs = null;
@@ -460,8 +490,8 @@ class Centrifuge extends events_1.default {
460
490
  sockjs = this._config.sockjs;
461
491
  }
462
492
  else {
463
- if (typeof global.SockJS !== 'undefined') {
464
- sockjs = global.SockJS;
493
+ if (typeof globalThis.SockJS !== 'undefined') {
494
+ sockjs = globalThis.SockJS;
465
495
  }
466
496
  }
467
497
  let eventsource = null;
@@ -469,8 +499,8 @@ class Centrifuge extends events_1.default {
469
499
  eventsource = this._config.eventsource;
470
500
  }
471
501
  else {
472
- if (typeof global.EventSource !== 'undefined') {
473
- eventsource = global.EventSource;
502
+ if (typeof globalThis.EventSource !== 'undefined') {
503
+ eventsource = globalThis.EventSource;
474
504
  }
475
505
  }
476
506
  let fetchFunc = null;
@@ -478,8 +508,8 @@ class Centrifuge extends events_1.default {
478
508
  fetchFunc = this._config.fetch;
479
509
  }
480
510
  else {
481
- if (typeof global.fetch !== 'undefined') {
482
- fetchFunc = global.fetch;
511
+ if (typeof globalThis.fetch !== 'undefined') {
512
+ fetchFunc = globalThis.fetch;
483
513
  }
484
514
  }
485
515
  let readableStream = null;
@@ -487,8 +517,8 @@ class Centrifuge extends events_1.default {
487
517
  readableStream = this._config.readableStream;
488
518
  }
489
519
  else {
490
- if (typeof global.ReadableStream !== 'undefined') {
491
- readableStream = global.ReadableStream;
520
+ if (typeof globalThis.ReadableStream !== 'undefined') {
521
+ readableStream = globalThis.ReadableStream;
492
522
  }
493
523
  }
494
524
  if (!this._emulation) {
@@ -533,7 +563,7 @@ class Centrifuge extends events_1.default {
533
563
  else if (transportName === 'webtransport') {
534
564
  this._debug('trying webtransport transport');
535
565
  this._transport = new transport_webtransport_1.WebtransportTransport(transportEndpoint, {
536
- webtransport: global.WebTransport,
566
+ webtransport: globalThis.WebTransport,
537
567
  decoder: this._decoder,
538
568
  encoder: this._encoder
539
569
  });
@@ -700,6 +730,7 @@ class Centrifuge extends events_1.default {
700
730
  delay = 0;
701
731
  }
702
732
  self._debug('reconnect after ' + delay + ' milliseconds');
733
+ self._reconnecting = false;
703
734
  self._reconnectTimeout = setTimeout(() => {
704
735
  self._startReconnecting();
705
736
  }, delay);
@@ -731,9 +762,10 @@ class Centrifuge extends events_1.default {
731
762
  return connectCommand;
732
763
  }
733
764
  _startReconnecting() {
734
- if (!this._isConnecting()) {
765
+ if (!this._isConnecting() || this._reconnecting) {
735
766
  return;
736
767
  }
768
+ this._reconnecting = true;
737
769
  const needTokenRefresh = this._refreshRequired || (!this._token && this._config.getToken !== null);
738
770
  if (!needTokenRefresh) {
739
771
  this._initializeTransport();
@@ -764,6 +796,7 @@ class Centrifuge extends events_1.default {
764
796
  });
765
797
  const delay = self._getReconnectDelay();
766
798
  self._debug('error on connection token refresh, reconnect after ' + delay + ' milliseconds', e);
799
+ self._reconnecting = false;
767
800
  self._reconnectTimeout = setTimeout(() => {
768
801
  self._startReconnecting();
769
802
  }, delay);
@@ -1141,6 +1174,7 @@ class Centrifuge extends events_1.default {
1141
1174
  }
1142
1175
  this._client = result.client;
1143
1176
  this._setState(types_1.State.Connected);
1177
+ this._setNetworkEvents();
1144
1178
  if (this._refreshTimeout) {
1145
1179
  clearTimeout(this._refreshTimeout);
1146
1180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"centrifuge.js","sourceRoot":"","sources":["../src/centrifuge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"centrifuge.js","sourceRoot":"","sources":["../src/centrifuge.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -1,10 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.Subscription = exports.Centrifuge = void 0;
4
- const tslib_1 = require("tslib");
5
18
  const centrifuge_1 = require("./centrifuge");
6
19
  Object.defineProperty(exports, "Centrifuge", { enumerable: true, get: function () { return centrifuge_1.Centrifuge; } });
7
20
  const subscription_1 = require("./subscription");
8
21
  Object.defineProperty(exports, "Subscription", { enumerable: true, get: function () { return subscription_1.Subscription; } });
9
- tslib_1.__exportStar(require("./types"), exports);
22
+ __exportStar(require("./types"), exports);
10
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,6CAA0C;AAKtC,2FALK,uBAAU,OAKL;AAJd,iDAA8C;AAK1C,6FALK,2BAAY,OAKL;AAJhB,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAKtC,2FALK,uBAAU,OAKL;AAJd,iDAA8C;AAK1C,6FALK,2BAAY,OAKL;AAJhB,0CAAwB"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.Subscription = void 0;
4
- const tslib_1 = require("tslib");
5
- const events_1 = tslib_1.__importDefault(require("events"));
7
+ const events_1 = __importDefault(require("events"));
6
8
  const codes_1 = require("./codes");
7
9
  const types_1 = require("./types");
8
10
  const utils_1 = require("./utils");