@bringg/dashboard-sdk 9.69.0 → 9.69.2

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"}
@@ -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,7 @@ export declare class UserWireMessage {
12
13
  export default class PersistentConnection implements Notifiable {
13
14
  session: Session;
14
15
  connection: RealtimeConnection;
16
+ private readonly wrappedHandlersByEvent;
15
17
  static wrapEventHandler(eventName: string, initialHandler: any, additionalHandler?: (string: any, any: any) => void): (any: any) => void;
16
18
  static init(session: Session): Promise<PersistentConnection>;
17
19
  private constructor();
@@ -25,4 +27,11 @@ export default class PersistentConnection implements Notifiable {
25
27
  publish<T>(ev: PubSubEvent<T>, mess: T, ackCallback?: (message: any | undefined) => void): void;
26
28
  subscribe<T>(eventType: PubSubEvent<T>, handler: (message: T) => void): void;
27
29
  dispose(): Promise<void>;
30
+ private createWrappedHandler;
31
+ private isUnsubscribeFixEnabled;
32
+ private getEventHandlers;
33
+ private createEventHandlers;
34
+ private getOrCreateEventHandlers;
35
+ private subscribeWithWrappedHandler;
36
+ private unsubscribeWrappedHandler;
28
37
  }
@@ -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,6 +57,7 @@ var UserWireMessage = /** @class */ (function () {
56
57
  exports.UserWireMessage = UserWireMessage;
57
58
  var PersistentConnection = /** @class */ (function () {
58
59
  function PersistentConnection(session) {
60
+ this.wrappedHandlersByEvent = new Map();
59
61
  this.session = session;
60
62
  }
61
63
  PersistentConnection.wrapEventHandler = function (eventName, initialHandler, additionalHandler) {
@@ -138,10 +140,18 @@ var PersistentConnection = /** @class */ (function () {
138
140
  connection.socket.emit(ev.name, mess, ackCallback);
139
141
  };
140
142
  PersistentConnection.prototype.subscribeInternal = function (connection, eventType, handler) {
141
- connection.socket.on(eventType.name, PersistentConnection.wrapEventHandler(eventType.name, handler, this.session.sendDataEvent));
143
+ if (!this.isUnsubscribeFixEnabled()) {
144
+ connection.socket.on(eventType.name, this.createWrappedHandler(eventType.name, handler));
145
+ return;
146
+ }
147
+ this.subscribeWithWrappedHandler(connection, eventType.name, handler);
142
148
  };
143
149
  PersistentConnection.prototype.unsubscribe = function (eventType, handler) {
144
- this.connection.socket.off(eventType.name, handler);
150
+ if (!this.isUnsubscribeFixEnabled()) {
151
+ this.connection.socket.off(eventType.name, handler);
152
+ return;
153
+ }
154
+ this.unsubscribeWrappedHandler(eventType.name, handler);
145
155
  };
146
156
  PersistentConnection.prototype.publish = function (ev, mess, ackCallback) {
147
157
  this.publishInternal(this.connection, ev, mess, ackCallback);
@@ -161,6 +171,55 @@ var PersistentConnection = /** @class */ (function () {
161
171
  });
162
172
  });
163
173
  };
174
+ PersistentConnection.prototype.createWrappedHandler = function (eventName, handler) {
175
+ return PersistentConnection.wrapEventHandler(eventName, handler, this.session.sendDataEvent);
176
+ };
177
+ PersistentConnection.prototype.isUnsubscribeFixEnabled = function () {
178
+ var _a;
179
+ var merchantFeatureFlags = (((_a = this.session.merchant) === null || _a === void 0 ? void 0 : _a.feature_flags) || {});
180
+ return !!merchantFeatureFlags[exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG];
181
+ };
182
+ PersistentConnection.prototype.getEventHandlers = function (eventName) {
183
+ return this.wrappedHandlersByEvent.get(eventName);
184
+ };
185
+ PersistentConnection.prototype.createEventHandlers = function (eventName) {
186
+ var handlers = new Map();
187
+ this.wrappedHandlersByEvent.set(eventName, handlers);
188
+ return handlers;
189
+ };
190
+ PersistentConnection.prototype.getOrCreateEventHandlers = function (eventName) {
191
+ var _a;
192
+ return (_a = this.getEventHandlers(eventName)) !== null && _a !== void 0 ? _a : this.createEventHandlers(eventName);
193
+ };
194
+ PersistentConnection.prototype.subscribeWithWrappedHandler = function (connection, eventName, handler) {
195
+ var eventHandlers = this.getOrCreateEventHandlers(eventName);
196
+ var originalHandler = handler;
197
+ if (eventHandlers.has(originalHandler)) {
198
+ return;
199
+ }
200
+ var wrappedHandler = this.createWrappedHandler(eventName, handler);
201
+ eventHandlers.set(originalHandler, wrappedHandler);
202
+ connection.socket.on(eventName, wrappedHandler);
203
+ };
204
+ PersistentConnection.prototype.unsubscribeWrappedHandler = function (eventName, handler) {
205
+ if (!handler) {
206
+ this.connection.socket.off(eventName);
207
+ this.wrappedHandlersByEvent.delete(eventName);
208
+ return;
209
+ }
210
+ var eventHandlers = this.getEventHandlers(eventName);
211
+ var originalHandler = handler;
212
+ var wrappedHandler = eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.get(originalHandler);
213
+ if (!wrappedHandler) {
214
+ this.connection.socket.off(eventName, handler);
215
+ return;
216
+ }
217
+ this.connection.socket.off(eventName, wrappedHandler);
218
+ eventHandlers.delete(originalHandler);
219
+ if (eventHandlers.size === 0) {
220
+ this.wrappedHandlersByEvent.delete(eventName);
221
+ }
222
+ };
164
223
  return PersistentConnection;
165
224
  }());
166
225
  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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAoC;AACpC,wDAAkC;AAGlC,+CAA2F;AAC3F,2DAAsE;AAEzD,QAAA,8BAA8B,GAAG,IAAI,CAAC;AACtC,QAAA,4CAA4C,GAAG,iCAAiC,CAAC;AAK9F;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;IA2BC,8BAAoB,OAAgB;QAxBnB,2BAAsB,GAAoB,IAAI,GAAG,EAAE,CAAC;QAyBpE,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,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE;YACpC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAEzF,OAAO;SACP;QAED,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,0CAAW,GAAlB,UAAsB,SAAyB,EAAE,OAA8B;QAC9E,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE;YACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEpD,OAAO;SACP;QAED,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,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;IAEO,mDAAoB,GAA5B,UAAgC,SAAiB,EAAE,OAA6B;QAC/E,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9F,CAAC;IAEO,sDAAuB,GAA/B;;QACC,IAAM,oBAAoB,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,0CAAE,aAAa,KAAI,EAAE,CAGvE,CAAC;QAEF,OAAO,CAAC,CAAC,oBAAoB,CAAC,oDAA4C,CAAC,CAAC;IAC7E,CAAC;IAEO,+CAAgB,GAAxB,UAAyB,SAAiB;QACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAEO,kDAAmB,GAA3B,UAA4B,SAAiB;QAC5C,IAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEzD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAErD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,uDAAwB,GAAhC,UAAiC,SAAiB;;QACjD,OAAO,MAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,mCAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;IAEO,0DAA2B,GAAnC,UACC,UAA8B,EAC9B,SAAiB,EACjB,OAA6B;QAE7B,IAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAM,eAAe,GAAG,OAAwB,CAAC;QAEjD,IAAI,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YACvC,OAAO;SACP;QAED,IAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAkB,CAAC;QAEtF,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACnD,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,cAAsC,CAAC,CAAC;IACzE,CAAC;IAEO,wDAAyB,GAAjC,UAAqC,SAAiB,EAAE,OAA8B;QACrF,IAAI,CAAC,OAAO,EAAE;YACb,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE9C,OAAO;SACP;QAED,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAM,eAAe,GAAG,OAAwB,CAAC;QACjD,IAAM,cAAc,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAE3D,IAAI,CAAC,cAAc,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAE/C,OAAO;SACP;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,cAAsC,CAAC,CAAC;QAC9E,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEtC,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC9C;IACF,CAAC;IACF,2BAAC;AAAD,CAAC,AAvLD,IAuLC"}
@@ -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.69.0';
59
+ var version = '9.69.2';
60
60
  function logErrorResponse(response) {
61
61
  var data = response.data, status = response.status;
62
62
  try {
@@ -11248,7 +11248,7 @@ var GeocodingApi = /** @class */ (function () {
11248
11248
  return this.geocodingEntity.reverseGeocode(lat, lng);
11249
11249
  };
11250
11250
  GeocodingApi.prototype.subscribeToEvent = function (eventHandle) {
11251
- return this.realTime.on(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
11251
+ this.realTime.on(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
11252
11252
  };
11253
11253
  GeocodingApi.prototype.unsubscribeToEvent = function (eventHandle) {
11254
11254
  this.realTime.off(Geocoding_consts_1.RealTimeGeocodingEvents.GEOCODING_CHANGED, eventHandle);
@@ -22824,12 +22824,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22824
22824
  return (mod && mod.__esModule) ? mod : { "default": mod };
22825
22825
  };
22826
22826
  Object.defineProperty(exports, "__esModule", ({ value: true }));
22827
- exports.UserWireMessage = exports.REALTIME_CONNECTION_RETRY_TIME = void 0;
22827
+ exports.UserWireMessage = exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG = exports.REALTIME_CONNECTION_RETRY_TIME = void 0;
22828
22828
  var Logger_1 = __importDefault(__webpack_require__(55860));
22829
22829
  var Polly_1 = __importDefault(__webpack_require__(51987));
22830
22830
  var PubSubEvents_1 = __webpack_require__(74102);
22831
22831
  var RealtimeConnection_1 = __webpack_require__(52944);
22832
22832
  exports.REALTIME_CONNECTION_RETRY_TIME = 5000;
22833
+ exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG = 'enable_realtime_unsubscribe_fix';
22833
22834
  var UserWireMessage = /** @class */ (function () {
22834
22835
  function UserWireMessage(user) {
22835
22836
  this.id = user.id;
@@ -22841,6 +22842,7 @@ var UserWireMessage = /** @class */ (function () {
22841
22842
  exports.UserWireMessage = UserWireMessage;
22842
22843
  var PersistentConnection = /** @class */ (function () {
22843
22844
  function PersistentConnection(session) {
22845
+ this.wrappedHandlersByEvent = new Map();
22844
22846
  this.session = session;
22845
22847
  }
22846
22848
  PersistentConnection.wrapEventHandler = function (eventName, initialHandler, additionalHandler) {
@@ -22923,10 +22925,18 @@ var PersistentConnection = /** @class */ (function () {
22923
22925
  connection.socket.emit(ev.name, mess, ackCallback);
22924
22926
  };
22925
22927
  PersistentConnection.prototype.subscribeInternal = function (connection, eventType, handler) {
22926
- connection.socket.on(eventType.name, PersistentConnection.wrapEventHandler(eventType.name, handler, this.session.sendDataEvent));
22928
+ if (!this.isUnsubscribeFixEnabled()) {
22929
+ connection.socket.on(eventType.name, this.createWrappedHandler(eventType.name, handler));
22930
+ return;
22931
+ }
22932
+ this.subscribeWithWrappedHandler(connection, eventType.name, handler);
22927
22933
  };
22928
22934
  PersistentConnection.prototype.unsubscribe = function (eventType, handler) {
22929
- this.connection.socket.off(eventType.name, handler);
22935
+ if (!this.isUnsubscribeFixEnabled()) {
22936
+ this.connection.socket.off(eventType.name, handler);
22937
+ return;
22938
+ }
22939
+ this.unsubscribeWrappedHandler(eventType.name, handler);
22930
22940
  };
22931
22941
  PersistentConnection.prototype.publish = function (ev, mess, ackCallback) {
22932
22942
  this.publishInternal(this.connection, ev, mess, ackCallback);
@@ -22946,6 +22956,55 @@ var PersistentConnection = /** @class */ (function () {
22946
22956
  });
22947
22957
  });
22948
22958
  };
22959
+ PersistentConnection.prototype.createWrappedHandler = function (eventName, handler) {
22960
+ return PersistentConnection.wrapEventHandler(eventName, handler, this.session.sendDataEvent);
22961
+ };
22962
+ PersistentConnection.prototype.isUnsubscribeFixEnabled = function () {
22963
+ var _a;
22964
+ var merchantFeatureFlags = (((_a = this.session.merchant) === null || _a === void 0 ? void 0 : _a.feature_flags) || {});
22965
+ return !!merchantFeatureFlags[exports.ENABLE_REALTIME_UNSUBSCRIBE_FIX_FEATURE_FLAG];
22966
+ };
22967
+ PersistentConnection.prototype.getEventHandlers = function (eventName) {
22968
+ return this.wrappedHandlersByEvent.get(eventName);
22969
+ };
22970
+ PersistentConnection.prototype.createEventHandlers = function (eventName) {
22971
+ var handlers = new Map();
22972
+ this.wrappedHandlersByEvent.set(eventName, handlers);
22973
+ return handlers;
22974
+ };
22975
+ PersistentConnection.prototype.getOrCreateEventHandlers = function (eventName) {
22976
+ var _a;
22977
+ return (_a = this.getEventHandlers(eventName)) !== null && _a !== void 0 ? _a : this.createEventHandlers(eventName);
22978
+ };
22979
+ PersistentConnection.prototype.subscribeWithWrappedHandler = function (connection, eventName, handler) {
22980
+ var eventHandlers = this.getOrCreateEventHandlers(eventName);
22981
+ var originalHandler = handler;
22982
+ if (eventHandlers.has(originalHandler)) {
22983
+ return;
22984
+ }
22985
+ var wrappedHandler = this.createWrappedHandler(eventName, handler);
22986
+ eventHandlers.set(originalHandler, wrappedHandler);
22987
+ connection.socket.on(eventName, wrappedHandler);
22988
+ };
22989
+ PersistentConnection.prototype.unsubscribeWrappedHandler = function (eventName, handler) {
22990
+ if (!handler) {
22991
+ this.connection.socket.off(eventName);
22992
+ this.wrappedHandlersByEvent.delete(eventName);
22993
+ return;
22994
+ }
22995
+ var eventHandlers = this.getEventHandlers(eventName);
22996
+ var originalHandler = handler;
22997
+ var wrappedHandler = eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.get(originalHandler);
22998
+ if (!wrappedHandler) {
22999
+ this.connection.socket.off(eventName, handler);
23000
+ return;
23001
+ }
23002
+ this.connection.socket.off(eventName, wrappedHandler);
23003
+ eventHandlers.delete(originalHandler);
23004
+ if (eventHandlers.size === 0) {
23005
+ this.wrappedHandlersByEvent.delete(eventName);
23006
+ }
23007
+ };
22949
23008
  return PersistentConnection;
22950
23009
  }());
22951
23010
  exports["default"] = PersistentConnection;
@@ -23335,7 +23394,7 @@ var lodash_1 = __webpack_require__(96486);
23335
23394
  var BringgException_1 = __webpack_require__(43605);
23336
23395
  var Logger_1 = __importDefault(__webpack_require__(55860));
23337
23396
  var abort_1 = __webpack_require__(34179);
23338
- var version = '9.69.0';
23397
+ var version = '9.69.2';
23339
23398
  function logErrorResponse(response) {
23340
23399
  var data = response.data, status = response.status;
23341
23400
  try {
@@ -37193,6 +37252,7 @@ var AnalyticsDataSource;
37193
37252
  (function (AnalyticsDataSource) {
37194
37253
  AnalyticsDataSource[AnalyticsDataSource["Presto"] = 0] = "Presto";
37195
37254
  AnalyticsDataSource[AnalyticsDataSource["Druid"] = 1] = "Druid";
37255
+ AnalyticsDataSource[AnalyticsDataSource["BigQuery"] = 2] = "BigQuery";
37196
37256
  })(AnalyticsDataSource || (exports.AnalyticsDataSource = AnalyticsDataSource = {}));
37197
37257
  var AnalyticsParentApp;
37198
37258
  (function (AnalyticsParentApp) {
@@ -37274,6 +37334,7 @@ var CubeDataSource;
37274
37334
  (function (CubeDataSource) {
37275
37335
  CubeDataSource["Presto"] = "prestodb";
37276
37336
  CubeDataSource["Druid"] = "druid";
37337
+ CubeDataSource["BigQuery"] = "bigquery";
37277
37338
  })(CubeDataSource || (exports.CubeDataSource = CubeDataSource = {}));
37278
37339
  var CubeApplication;
37279
37340
  (function (CubeApplication) {
@@ -37281,6 +37342,7 @@ var CubeApplication;
37281
37342
  CubeApplication["DeliveryHubReports"] = "DeliveryHubReports";
37282
37343
  CubeApplication["OwnFleetBiDashboards"] = "OwnFleetBiDashboards";
37283
37344
  CubeApplication["DeliveryHubBiDashboards"] = "DeliveryHubBiDashboards";
37345
+ CubeApplication["OwnFleetBigQuery"] = "OwnFleetBigQuery";
37284
37346
  CubeApplication["OwnFleetBiDashboardsPresto"] = "OwnFleetBiDashboardsPresto";
37285
37347
  })(CubeApplication || (exports.CubeApplication = CubeApplication = {}));
37286
37348
  var OwnFleetDruidCube;
@@ -38921,7 +38983,7 @@ var CustomAttributesMandatoryRpcActions;
38921
38983
  (function (CustomAttributesMandatoryRpcActions) {
38922
38984
  CustomAttributesMandatoryRpcActions["CheckUsage"] = "custom-attributes:check-record-usage";
38923
38985
  })(CustomAttributesMandatoryRpcActions || (exports.CustomAttributesMandatoryRpcActions = CustomAttributesMandatoryRpcActions = {}));
38924
- exports.pathValidationRegExp = /^[a-zA-Z_$\d\s-]+(\[\d+\])*?$/;
38986
+ exports.pathValidationRegExp = /^[a-zA-Z_$\d\s-]+(\[(\d+|"[^"]*")\])*$/;
38925
38987
  //# sourceMappingURL=custom_attribute.js.map
38926
38988
 
38927
38989
  /***/ }),