@bringg/dashboard-sdk 9.62.1 → 9.62.2-pre.1

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.
@@ -7,6 +7,6 @@ export default class GeocodingApi {
7
7
  autoComplete(address: string): Promise<AutoCompleteResponse>;
8
8
  getPlaceDetails(placeId: string): Promise<GetPlaceDetailsResponse>;
9
9
  reverseGeocode(lat: number, lng: number): Promise<BringgReverseGeocodedAddress>;
10
- subscribeToEvent(eventHandle: any): void;
11
- unsubscribeToEvent(eventHandle: any): void;
10
+ subscribeToEvent(eventHandle: (event: any) => void): void;
11
+ unsubscribeToEvent(eventHandle: (event: any) => void): void;
12
12
  }
@@ -21,7 +21,7 @@ var GeocodingApi = /** @class */ (function () {
21
21
  return this.geocodingEntity.reverseGeocode(lat, lng);
22
22
  };
23
23
  GeocodingApi.prototype.subscribeToEvent = function (eventHandle) {
24
- return this.realTime.on(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
24
+ this.realTime.on(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
25
25
  };
26
26
  GeocodingApi.prototype.unsubscribeToEvent = function (eventHandle) {
27
27
  this.realTime.off(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
@@ -1 +1 @@
1
- {"version":3,"file":"GeocodingApi.js","sourceRoot":"","sources":["../../src/Geocoding/GeocodingApi.ts"],"names":[],"mappings":";;;;;AAEA,mDAAsD;AAEtD,iEAA2C;AAC3C,uDAA6D;AAE7D;IAIC,sBAAY,OAAgB;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAEM,mCAAY,GAAnB,UAAoB,OAAe;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,sCAAe,GAAtB,UAAuB,OAAe;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAEM,qCAAc,GAArB,UAAsB,GAAW,EAAE,GAAW;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAEM,uCAAgB,GAAvB,UAAwB,WAAgB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,0CAAuB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;IAEM,yCAAkB,GAAzB,UAA0B,WAAgB;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAAuB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IACF,mBAAC;AAAD,CAAC,AA5BD,IA4BC"}
1
+ {"version":3,"file":"GeocodingApi.js","sourceRoot":"","sources":["../../src/Geocoding/GeocodingApi.ts"],"names":[],"mappings":";;;;;AAEA,mDAAsD;AAEtD,iEAA2C;AAC3C,uDAA6D;AAE7D;IAIC,sBAAY,OAAgB;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAEM,mCAAY,GAAnB,UAAoB,OAAe;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEM,sCAAe,GAAtB,UAAuB,OAAe;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAEM,qCAAc,GAArB,UAAsB,GAAW,EAAE,GAAW;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAEM,uCAAgB,GAAvB,UAAwB,WAAiC;QACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,0CAAuB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAEM,yCAAkB,GAAzB,UAA0B,WAAiC;QAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAAuB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IACF,mBAAC;AAAD,CAAC,AA5BD,IA4BC"}
@@ -11,6 +11,6 @@ export interface ResourceUtilizationApiResponse {
11
11
  avgHandlingUnitsUtilizationPercent: ResourceUtilizationWidgetData;
12
12
  }
13
13
  export interface GetResourceUtilizationParams {
14
- teamIds?: number[];
14
+ teamIds: number[];
15
15
  dateRange: [string, string];
16
16
  }
@@ -3,6 +3,7 @@ import User from './Identity/User';
3
3
  import { PubSubEvent } from './PubSubEvents';
4
4
  import { Notifiable, RealtimeConnection } from './RealtimeConnection';
5
5
  export declare const REALTIME_CONNECTION_RETRY_TIME = 5000;
6
+ export declare const ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG = "enable_realtime_unsubscribe_fix";
6
7
  export declare class UserWireMessage {
7
8
  id: number;
8
9
  auth_token: string;
@@ -12,6 +13,8 @@ export declare class UserWireMessage {
12
13
  export default class PersistentConnection implements Notifiable {
13
14
  session: Session;
14
15
  connection: RealtimeConnection;
16
+ private readonly isUnsubscribeFixEnabled;
17
+ private readonly wrappedHandlersByEvent;
15
18
  static wrapEventHandler(eventName: string, initialHandler: any, additionalHandler?: (string: any, any: any) => void): (any: any) => void;
16
19
  static init(session: Session): Promise<PersistentConnection>;
17
20
  private constructor();
@@ -25,4 +28,8 @@ export default class PersistentConnection implements Notifiable {
25
28
  publish<T>(ev: PubSubEvent<T>, mess: T, ackCallback?: (message: any | undefined) => void): void;
26
29
  subscribe<T>(eventType: PubSubEvent<T>, handler: (message: T) => void): void;
27
30
  dispose(): Promise<void>;
31
+ private createWrappedHandler;
32
+ private getOrCreateEventHandlers;
33
+ private subscribeWithWrappedHandler;
34
+ private unsubscribeWrappedHandler;
28
35
  }
@@ -39,12 +39,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.UserWireMessage = exports.REALTIME_CONNECTION_RETRY_TIME = void 0;
42
+ exports.UserWireMessage = exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG = exports.REALTIME_CONNECTION_RETRY_TIME = void 0;
43
43
  var Logger_1 = __importDefault(require("../Core/Logger"));
44
44
  var Polly_1 = __importDefault(require("../Core/Polly"));
45
45
  var PubSubEvents_1 = require("./PubSubEvents");
46
46
  var RealtimeConnection_1 = require("./RealtimeConnection");
47
47
  exports.REALTIME_CONNECTION_RETRY_TIME = 5000;
48
+ exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG = 'enable_realtime_unsubscribe_fix';
48
49
  var UserWireMessage = /** @class */ (function () {
49
50
  function UserWireMessage(user) {
50
51
  this.id = user.id;
@@ -56,7 +57,11 @@ var UserWireMessage = /** @class */ (function () {
56
57
  exports.UserWireMessage = UserWireMessage;
57
58
  var PersistentConnection = /** @class */ (function () {
58
59
  function PersistentConnection(session) {
60
+ var _a;
61
+ this.wrappedHandlersByEvent = new Map();
59
62
  this.session = session;
63
+ var featureFlags = (((_a = session.user) === null || _a === void 0 ? void 0 : _a.feature_flags) || {});
64
+ this.isUnsubscribeFixEnabled = !!featureFlags[exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG];
60
65
  }
61
66
  PersistentConnection.wrapEventHandler = function (eventName, initialHandler, additionalHandler) {
62
67
  return function (message) {
@@ -138,10 +143,18 @@ var PersistentConnection = /** @class */ (function () {
138
143
  connection.socket.emit(ev.name, mess, ackCallback);
139
144
  };
140
145
  PersistentConnection.prototype.subscribeInternal = function (connection, eventType, handler) {
141
- connection.socket.on(eventType.name, PersistentConnection.wrapEventHandler(eventType.name, handler, this.session.sendDataEvent));
146
+ if (!this.isUnsubscribeFixEnabled) {
147
+ connection.socket.on(eventType.name, this.createWrappedHandler(eventType.name, handler));
148
+ return;
149
+ }
150
+ this.subscribeWithWrappedHandler(connection, eventType.name, handler);
142
151
  };
143
152
  PersistentConnection.prototype.unsubscribe = function (eventType, handler) {
144
- this.connection.socket.off(eventType.name, handler);
153
+ if (!this.isUnsubscribeFixEnabled) {
154
+ this.connection.socket.off(eventType.name, handler);
155
+ return;
156
+ }
157
+ this.unsubscribeWrappedHandler(eventType.name, handler);
145
158
  };
146
159
  PersistentConnection.prototype.publish = function (ev, mess, ackCallback) {
147
160
  this.publishInternal(this.connection, ev, mess, ackCallback);
@@ -161,6 +174,47 @@ var PersistentConnection = /** @class */ (function () {
161
174
  });
162
175
  });
163
176
  };
177
+ PersistentConnection.prototype.createWrappedHandler = function (eventName, handler) {
178
+ return PersistentConnection.wrapEventHandler(eventName, handler, this.session.sendDataEvent);
179
+ };
180
+ PersistentConnection.prototype.getOrCreateEventHandlers = function (eventName) {
181
+ var eventHandlers = this.wrappedHandlersByEvent.get(eventName);
182
+ if (eventHandlers) {
183
+ return eventHandlers;
184
+ }
185
+ var handlers = new Map();
186
+ this.wrappedHandlersByEvent.set(eventName, handlers);
187
+ return handlers;
188
+ };
189
+ PersistentConnection.prototype.subscribeWithWrappedHandler = function (connection, eventName, handler) {
190
+ var eventHandlers = this.getOrCreateEventHandlers(eventName);
191
+ var originalHandler = handler;
192
+ if (eventHandlers.has(originalHandler)) {
193
+ return;
194
+ }
195
+ var wrappedHandler = this.createWrappedHandler(eventName, handler);
196
+ eventHandlers.set(originalHandler, wrappedHandler);
197
+ connection.socket.on(eventName, wrappedHandler);
198
+ };
199
+ PersistentConnection.prototype.unsubscribeWrappedHandler = function (eventName, handler) {
200
+ if (!handler) {
201
+ this.connection.socket.off(eventName);
202
+ this.wrappedHandlersByEvent.delete(eventName);
203
+ return;
204
+ }
205
+ var eventHandlers = this.wrappedHandlersByEvent.get(eventName);
206
+ var originalHandler = handler;
207
+ var wrappedHandler = eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.get(originalHandler);
208
+ if (!wrappedHandler) {
209
+ this.connection.socket.off(eventName, handler);
210
+ return;
211
+ }
212
+ this.connection.socket.off(eventName, wrappedHandler);
213
+ eventHandlers.delete(originalHandler);
214
+ if (eventHandlers.size === 0) {
215
+ this.wrappedHandlersByEvent.delete(eventName);
216
+ }
217
+ };
164
218
  return PersistentConnection;
165
219
  }());
166
220
  exports.default = PersistentConnection;
@@ -1 +1 @@
1
- {"version":3,"file":"PersistentConnection.js","sourceRoot":"","sources":["../../src/Services/PersistentConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAoC;AACpC,wDAAkC;AAGlC,+CAA2F;AAC3F,2DAAsE;AAEzD,QAAA,8BAA8B,GAAG,IAAI,CAAC;AAEnD;IAIC,yBAAY,IAAU;QACrB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IACF,sBAAC;AAAD,CAAC,AATD,IASC;AATY,0CAAe;AAW5B;IA0BC,8BAAoB,OAAgB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAxBa,qCAAgB,GAA9B,UACC,SAAiB,EACjB,cAAc,EACd,iBAAyC;QAEzC,OAAO,UAAA,OAAO;YACb,IAAI,iBAAiB,EAAE;gBACtB,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACtC;YAED,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;IACH,CAAC;IAEmB,yBAAI,GAAxB,UAAyB,OAAgB;;;;;;wBAClC,KAAK,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;wBAEhD,KAAA,KAAK,CAAA;wBAAc,qBAAM,uCAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,EAAA;;wBAAlG,GAAM,UAAU,GAAG,SAA+E,CAAC;wBAEnG,sBAAO,KAAK,EAAC;;;;KACb;IAMa,wCAAS,GAAvB,UAAwB,IAAwB;;;;;4BAC/C,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;4BACvC,OAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iCAAkB,EAAE,IAAI,eAAe,CAAC,OAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gCACtF,OAAI,CAAC,eAAe,CAAC,IAAI,EAAE,uCAAwB,EAAE,IAAI,eAAe,CAAC,OAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oCAC5F,OAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;oCACxD,OAAO,EAAE,CAAC;gCACX,CAAC,CAAC,CAAC;4BACJ,CAAC,CAAC,CAAC;wBACJ,CAAC,CAAC,EAAA;;wBAPF,SAOE,CAAC;;;;;KACH;IAEK,wCAAS,GAAf,UAAgB,UAA8B;;;;;4BACtC,qBAAM,IAAI,eAAK,EAAE;6BACtB,MAAM,CAAC,UAAA,EAAE;4BACT,gBAAM,CAAC,KAAK,CACX,gFACC,sCAA8B,GAAG,IAAI,uBACzB,EAAE,CAAE,CACjB,CAAC;4BAEF,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC;wBACjC,CAAC,CAAC;6BACD,YAAY,CAAC,CAAC,sCAA8B,CAAC,CAAC;6BAC9C,OAAO,EAAE;6BACT,iBAAiB,CAAC,cAAM,OAAA,OAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAA1B,CAA0B,CAAC,EAAA;4BAZrD,sBAAO,SAY8C,EAAC;;;;KACtD;IAEK,2CAAY,GAAlB,UAAmB,UAA8B;;;;;;KAEhD;IAEK,0CAAW,GAAjB,UAAkB,UAA8B;;;;;;KAE/C;IAEO,8CAAe,GAAvB,UACC,UAA8B,EAC9B,EAAkB,EAClB,IAAO,EACP,WAAgD;QAEhD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAEO,gDAAiB,GAAzB,UACC,UAA8B,EAC9B,SAAyB,EACzB,OAA6B;QAE7B,UAAU,CAAC,MAAM,CAAC,EAAE,CACnB,SAAS,CAAC,IAAI,EACd,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAC1F,CAAC;IACH,CAAC;IAEM,0CAAW,GAAlB,UAAsB,SAAyB,EAAE,OAA8B;QAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAEM,sCAAO,GAAd,UAAkB,EAAkB,EAAE,IAAO,EAAE,WAAgD;QAC9F,IAAI,CAAC,eAAe,CAAI,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAEM,wCAAS,GAAhB,UAAoB,SAAyB,EAAE,OAA6B;QAC3E,IAAI,CAAC,iBAAiB,CAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAEY,sCAAO,GAApB;;;;4BACC,qBAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAA;;wBAAlC,SAAkC,CAAC;;;;;KACnC;IACF,2BAAC;AAAD,CAAC,AApGD,IAoGC"}
1
+ {"version":3,"file":"PersistentConnection.js","sourceRoot":"","sources":["../../src/Services/PersistentConnection.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ var lodash_1 = require("lodash");
56
56
  var BringgException_1 = require("../Core/BringgException");
57
57
  var Logger_1 = __importDefault(require("../Core/Logger"));
58
58
  var abort_1 = require("../utils/abort");
59
- var version = '9.62.1';
59
+ var version = '9.62.2-pre.1';
60
60
  function logErrorResponse(response) {
61
61
  var data = response.data, status = response.status;
62
62
  try {
@@ -11234,7 +11234,7 @@ var GeocodingApi = /** @class */ (function () {
11234
11234
  return this.geocodingEntity.reverseGeocode(lat, lng);
11235
11235
  };
11236
11236
  GeocodingApi.prototype.subscribeToEvent = function (eventHandle) {
11237
- return this.realTime.on(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
11237
+ this.realTime.on(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
11238
11238
  };
11239
11239
  GeocodingApi.prototype.unsubscribeToEvent = function (eventHandle) {
11240
11240
  this.realTime.off(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
@@ -22780,12 +22780,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22780
22780
  return (mod && mod.__esModule) ? mod : { "default": mod };
22781
22781
  };
22782
22782
  Object.defineProperty(exports, "__esModule", ({ value: true }));
22783
- exports.UserWireMessage = exports.REALTIME_CONNECTION_RETRY_TIME = void 0;
22783
+ exports.UserWireMessage = exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG = exports.REALTIME_CONNECTION_RETRY_TIME = void 0;
22784
22784
  var Logger_1 = __importDefault(__webpack_require__(55860));
22785
22785
  var Polly_1 = __importDefault(__webpack_require__(51987));
22786
22786
  var PubSubEvents_1 = __webpack_require__(74102);
22787
22787
  var RealtimeConnection_1 = __webpack_require__(52944);
22788
22788
  exports.REALTIME_CONNECTION_RETRY_TIME = 5000;
22789
+ exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG = 'enable_realtime_unsubscribe_fix';
22789
22790
  var UserWireMessage = /** @class */ (function () {
22790
22791
  function UserWireMessage(user) {
22791
22792
  this.id = user.id;
@@ -22797,7 +22798,11 @@ var UserWireMessage = /** @class */ (function () {
22797
22798
  exports.UserWireMessage = UserWireMessage;
22798
22799
  var PersistentConnection = /** @class */ (function () {
22799
22800
  function PersistentConnection(session) {
22801
+ var _a;
22802
+ this.wrappedHandlersByEvent = new Map();
22800
22803
  this.session = session;
22804
+ var featureFlags = (((_a = session.user) === null || _a === void 0 ? void 0 : _a.feature_flags) || {});
22805
+ this.isUnsubscribeFixEnabled = !!featureFlags[exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG];
22801
22806
  }
22802
22807
  PersistentConnection.wrapEventHandler = function (eventName, initialHandler, additionalHandler) {
22803
22808
  return function (message) {
@@ -22879,10 +22884,18 @@ var PersistentConnection = /** @class */ (function () {
22879
22884
  connection.socket.emit(ev.name, mess, ackCallback);
22880
22885
  };
22881
22886
  PersistentConnection.prototype.subscribeInternal = function (connection, eventType, handler) {
22882
- connection.socket.on(eventType.name, PersistentConnection.wrapEventHandler(eventType.name, handler, this.session.sendDataEvent));
22887
+ if (!this.isUnsubscribeFixEnabled) {
22888
+ connection.socket.on(eventType.name, this.createWrappedHandler(eventType.name, handler));
22889
+ return;
22890
+ }
22891
+ this.subscribeWithWrappedHandler(connection, eventType.name, handler);
22883
22892
  };
22884
22893
  PersistentConnection.prototype.unsubscribe = function (eventType, handler) {
22885
- this.connection.socket.off(eventType.name, handler);
22894
+ if (!this.isUnsubscribeFixEnabled) {
22895
+ this.connection.socket.off(eventType.name, handler);
22896
+ return;
22897
+ }
22898
+ this.unsubscribeWrappedHandler(eventType.name, handler);
22886
22899
  };
22887
22900
  PersistentConnection.prototype.publish = function (ev, mess, ackCallback) {
22888
22901
  this.publishInternal(this.connection, ev, mess, ackCallback);
@@ -22902,6 +22915,47 @@ var PersistentConnection = /** @class */ (function () {
22902
22915
  });
22903
22916
  });
22904
22917
  };
22918
+ PersistentConnection.prototype.createWrappedHandler = function (eventName, handler) {
22919
+ return PersistentConnection.wrapEventHandler(eventName, handler, this.session.sendDataEvent);
22920
+ };
22921
+ PersistentConnection.prototype.getOrCreateEventHandlers = function (eventName) {
22922
+ var eventHandlers = this.wrappedHandlersByEvent.get(eventName);
22923
+ if (eventHandlers) {
22924
+ return eventHandlers;
22925
+ }
22926
+ var handlers = new Map();
22927
+ this.wrappedHandlersByEvent.set(eventName, handlers);
22928
+ return handlers;
22929
+ };
22930
+ PersistentConnection.prototype.subscribeWithWrappedHandler = function (connection, eventName, handler) {
22931
+ var eventHandlers = this.getOrCreateEventHandlers(eventName);
22932
+ var originalHandler = handler;
22933
+ if (eventHandlers.has(originalHandler)) {
22934
+ return;
22935
+ }
22936
+ var wrappedHandler = this.createWrappedHandler(eventName, handler);
22937
+ eventHandlers.set(originalHandler, wrappedHandler);
22938
+ connection.socket.on(eventName, wrappedHandler);
22939
+ };
22940
+ PersistentConnection.prototype.unsubscribeWrappedHandler = function (eventName, handler) {
22941
+ if (!handler) {
22942
+ this.connection.socket.off(eventName);
22943
+ this.wrappedHandlersByEvent.delete(eventName);
22944
+ return;
22945
+ }
22946
+ var eventHandlers = this.wrappedHandlersByEvent.get(eventName);
22947
+ var originalHandler = handler;
22948
+ var wrappedHandler = eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.get(originalHandler);
22949
+ if (!wrappedHandler) {
22950
+ this.connection.socket.off(eventName, handler);
22951
+ return;
22952
+ }
22953
+ this.connection.socket.off(eventName, wrappedHandler);
22954
+ eventHandlers.delete(originalHandler);
22955
+ if (eventHandlers.size === 0) {
22956
+ this.wrappedHandlersByEvent.delete(eventName);
22957
+ }
22958
+ };
22905
22959
  return PersistentConnection;
22906
22960
  }());
22907
22961
  exports["default"] = PersistentConnection;
@@ -23291,7 +23345,7 @@ var lodash_1 = __webpack_require__(96486);
23291
23345
  var BringgException_1 = __webpack_require__(43605);
23292
23346
  var Logger_1 = __importDefault(__webpack_require__(55860));
23293
23347
  var abort_1 = __webpack_require__(34179);
23294
- var version = '9.62.1';
23348
+ var version = '9.62.2-pre.1';
23295
23349
  function logErrorResponse(response) {
23296
23350
  var data = response.data, status = response.status;
23297
23351
  try {