@wireapp/api-client 27.87.0 → 27.87.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.
@@ -100,6 +100,7 @@ export declare class APIClient extends EventEmitter {
100
100
  };
101
101
  config: Config;
102
102
  backendFeatures: BackendFeatures;
103
+ private cookieRefreshListener?;
103
104
  static BACKEND: {
104
105
  PRODUCTION: import("./env/Backend").BackendData;
105
106
  STAGING: import("./env/Backend").BackendData;
@@ -1 +1 @@
1
- {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../src/APIClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../src/APIClient.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAIpC,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,eAAe,EAEf,OAAO,EACP,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,SAAS,EAET,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAChD,OAAO,EAAC,MAAM,EAAsB,MAAM,UAAU,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EAAe,UAAU,EAAC,MAAM,SAAS,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,QAAQ,CAAC;AAClD,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAI3C,aAAK,KAAK;IACR,oBAAoB,yCAAyC;IAC7D,cAAc,mCAAmC;IACjD,4CAA4C;IAC5C,SAAS,8BAA8B;CACxC;AAMD,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI,CAAC;IAE/E,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAE3E,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/F;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,YAAY,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,aAAa,CAAC;IAC1B,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,kBAAkB,CAAC;IACpC,KAAK,EAAE;QACL,YAAY,EAAE,mBAAmB,CAAC;QAClC,OAAO,EAAE,UAAU,CAAC;QACpB,gBAAgB,EAAE,mBAAmB,CAAC;QACtC,UAAU,EAAE,iBAAiB,CAAC;QAC9B,SAAS,EAAE,YAAY,CAAC;QACxB,MAAM,EAAE,SAAS,CAAC;QAClB,OAAO,EAAE,UAAU,CAAC;QACpB,OAAO,EAAE,UAAU,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,aAAa,CAAC;QACtB,OAAO,EAAE,UAAU,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,SAAS,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,sGAAsG;AACtG,MAAM,MAAM,eAAe,GAAG;IAC5B,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,WAAW,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,8BAA8B,EAAE,OAAO,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAGjC,GAAG,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,QAAQ,CAAyB;IAGzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,EAAE,EAAE,eAAe,CAAA;KAAC,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IAGxC,OAAO,CAAC,qBAAqB,CAAC,CAA4B;IAE1D,OAAc,OAAO;;;MAAW;IAEhC,gBAAuB,KAAK,eAAS;IAErC,OAAc,OAAO,SAAW;gBAEpB,MAAM,CAAC,EAAE,MAAM;IAmC3B,OAAO,CAAC,aAAa;IAiDrB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;;;;;;;OASG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IA2B/F;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;IAMvB,IAAI,CAAC,UAAU,GAAE,UAA4B,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWjF,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB7C,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,UAAU,GAAE,UAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAerG,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,GAAE,UAAiC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpG,MAAM,CAAC,OAAO,GAAE;QAAC,iBAAiB,EAAE,OAAO,CAAA;KAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/F,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,eAAe;YAIxC,aAAa;IAepB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxC,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,8DAA8D;IAC9D,IAAW,eAAe,IAAI,MAAM,CAKnC;IAED,gEAAgE;IAChE,IAAW,iBAAiB,IAAI,MAAM,CAKrC;IAED;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAc7C"}
package/lib/APIClient.js CHANGED
@@ -71,6 +71,8 @@ class APIClient extends events_1.EventEmitter {
71
71
  transport;
72
72
  config;
73
73
  backendFeatures;
74
+ // Store reference to cookie listener for cleanup
75
+ cookieRefreshListener;
74
76
  static BACKEND = env_1.Backend;
75
77
  static TOPIC = TOPIC;
76
78
  static VERSION = version;
@@ -79,7 +81,9 @@ class APIClient extends events_1.EventEmitter {
79
81
  this.config = { ...defaultConfig, ...config };
80
82
  this.accessTokenStore = new auth_1.AccessTokenStore();
81
83
  this.accessTokenStore.on(auth_1.AccessTokenStore.TOPIC.ACCESS_TOKEN_REFRESH, (accessToken) => this.emit(APIClient.TOPIC.ACCESS_TOKEN_REFRESH, accessToken));
82
- CookieStore_1.CookieStore.emitter.on(CookieStore_1.CookieStore.TOPIC.COOKIE_REFRESH, (cookie) => this.emit(APIClient.TOPIC.COOKIE_REFRESH, cookie));
84
+ // Store the listener reference so we can remove it on disconnect
85
+ this.cookieRefreshListener = (cookie) => this.emit(APIClient.TOPIC.COOKIE_REFRESH, cookie);
86
+ CookieStore_1.CookieStore.emitter.on(CookieStore_1.CookieStore.TOPIC.COOKIE_REFRESH, this.cookieRefreshListener);
83
87
  this.logger = commons_1.LogFactory.getLogger('@wireapp/api-client/Client');
84
88
  const httpClient = new http_1.HttpClient(this.config, this.accessTokenStore);
85
89
  const webSocket = new tcp_1.WebSocketClient(this.config.urls.ws, httpClient);
@@ -271,6 +275,10 @@ class APIClient extends events_1.EventEmitter {
271
275
  }
272
276
  disconnect(reason) {
273
277
  this.transport.ws.disconnect(reason);
278
+ // Remove the cookie refresh listener to prevent memory leaks
279
+ if (this.cookieRefreshListener) {
280
+ CookieStore_1.CookieStore.emitter.off(CookieStore_1.CookieStore.TOPIC.COOKIE_REFRESH, this.cookieRefreshListener);
281
+ }
274
282
  }
275
283
  get clientId() {
276
284
  return this.context?.clientId || undefined;
@@ -41,15 +41,15 @@ export declare class AssetAPI {
41
41
  */
42
42
  postAsset(asset: Uint8Array, options?: AssetOptions, progressCallback?: ProgressCallback): RequestCancelable<{
43
43
  key: string;
44
- token: string;
45
- expires: string;
46
- domain?: string | undefined;
44
+ domain: string;
45
+ token?: string | undefined;
46
+ expires?: string | undefined;
47
47
  }>;
48
48
  postServiceAsset(asset: Uint8Array, options?: AssetOptions, progressCallback?: ProgressCallback): RequestCancelable<{
49
49
  key: string;
50
- token: string;
51
- expires: string;
52
- domain?: string | undefined;
50
+ domain: string;
51
+ token?: string | undefined;
52
+ expires?: string | undefined;
53
53
  }>;
54
54
  }
55
55
  //# sourceMappingURL=AssetAPI.d.ts.map
@@ -5,23 +5,23 @@ import { z } from 'zod';
5
5
  */
6
6
  export declare const PostAssetsResponseSchema: z.ZodObject<{
7
7
  /** Asset domain (example.com) */
8
- domain: z.ZodOptional<z.ZodString>;
8
+ domain: z.ZodString;
9
9
  /** ISO 8601 formatted expiration date */
10
- expires: z.ZodString;
10
+ expires: z.ZodOptional<z.ZodString>;
11
11
  /** Asset key (e.g., "3-1-47de4580-ae51-4650-acbb-d10c028cb0ac") */
12
12
  key: z.ZodString;
13
13
  /** Base64 encoded token (e.g., "aGVsbG8") */
14
- token: z.ZodString;
14
+ token: z.ZodOptional<z.ZodString>;
15
15
  }, "strip", z.ZodTypeAny, {
16
16
  key: string;
17
- token: string;
18
- expires: string;
19
- domain?: string | undefined;
17
+ domain: string;
18
+ token?: string | undefined;
19
+ expires?: string | undefined;
20
20
  }, {
21
21
  key: string;
22
- token: string;
23
- expires: string;
24
- domain?: string | undefined;
22
+ domain: string;
23
+ token?: string | undefined;
24
+ expires?: string | undefined;
25
25
  }>;
26
26
  export type AssetUploadData = z.infer<typeof PostAssetsResponseSchema>;
27
27
  //# sourceMappingURL=AssetAPI.schema.d.ts.map
@@ -26,11 +26,11 @@ const zod_1 = require("zod");
26
26
  */
27
27
  exports.PostAssetsResponseSchema = zod_1.z.object({
28
28
  /** Asset domain (example.com) */
29
- domain: zod_1.z.string().optional(),
29
+ domain: zod_1.z.string().min(1),
30
30
  /** ISO 8601 formatted expiration date */
31
- expires: zod_1.z.string().datetime(),
31
+ expires: zod_1.z.string().datetime().optional(),
32
32
  /** Asset key (e.g., "3-1-47de4580-ae51-4650-acbb-d10c028cb0ac") */
33
33
  key: zod_1.z.string().min(1),
34
34
  /** Base64 encoded token (e.g., "aGVsbG8") */
35
- token: zod_1.z.string().min(1),
35
+ token: zod_1.z.string().min(1).optional(),
36
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CookieStore.d.ts","sourceRoot":"","sources":["../../src/auth/CookieStore.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAIpC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,aAAK,KAAK;IACR,cAAc,qCAAqC;CACpD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAS;IAC/B,OAAc,OAAO,wBAAsB;IAE3C,gBAAuB,KAAK,eAAS;IAErC,MAAM,CAAC,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC,OAAO,CAAC,MAAM,CAAC,IAAI;IAMnB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAKvC,MAAM,CAAC,YAAY,IAAI,IAAI;CAI5B"}
1
+ {"version":3,"file":"CookieStore.d.ts","sourceRoot":"","sources":["../../src/auth/CookieStore.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAIpC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,aAAK,KAAK;IACR,cAAc,qCAAqC;CACpD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAS;IAC/B,OAAc,OAAO,wBAA0C;IAE/D,gBAAuB,KAAK,eAAS;IAErC,MAAM,CAAC,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC,OAAO,CAAC,MAAM,CAAC,IAAI;IAMnB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAKvC,MAAM,CAAC,YAAY,IAAI,IAAI;CAI5B"}
@@ -27,7 +27,7 @@ var TOPIC;
27
27
  })(TOPIC || (TOPIC = {}));
28
28
  class CookieStore {
29
29
  static cookie;
30
- static emitter = new events_1.EventEmitter();
30
+ static emitter = new events_1.EventEmitter().setMaxListeners(20);
31
31
  static TOPIC = TOPIC;
32
32
  static getCookie() {
33
33
  return CookieStore.cookie;
@@ -65,9 +65,9 @@ export declare class ServicesAPI {
65
65
  */
66
66
  postAsset(asset: Uint8Array, options?: AssetOptions, progressCallback?: ProgressCallback): import("../http").RequestCancelable<{
67
67
  key: string;
68
- token: string;
69
- expires: string;
70
- domain?: string | undefined;
68
+ domain: string;
69
+ token?: string | undefined;
70
+ expires?: string | undefined;
71
71
  }>;
72
72
  /**
73
73
  * Download an asset.
@@ -27,6 +27,11 @@ export declare class ReconnectingWebsocket {
27
27
  private onMessage?;
28
28
  private onError?;
29
29
  private onClose?;
30
+ /**
31
+ * Cleanup function returned by onBackFromSleep to stop the sleep detection interval.
32
+ * This prevents memory leaks by ensuring the interval is cleared when the WebSocket is disconnected.
33
+ */
34
+ private readonly stopBackFromSleepHandler?;
30
35
  private isPingingEnabled;
31
36
  constructor(onReconnect: () => Promise<string>, options?: {
32
37
  pingInterval?: number;
@@ -43,6 +48,15 @@ export declare class ReconnectingWebsocket {
43
48
  send(message: any): void;
44
49
  getState(): WEBSOCKET_STATE;
45
50
  disconnect(reason?: string): void;
51
+ /**
52
+ * Cleans up all active intervals and timers to prevent memory leaks.
53
+ * This includes:
54
+ * - The ping interval (via stopPinging)
55
+ * - The sleep detection interval (via stopBackFromSleepHandler)
56
+ *
57
+ * This method should be called whenever the WebSocket connection is terminated.
58
+ */
59
+ private cleanup;
46
60
  private getReconnectingWebsocket;
47
61
  setOnOpen(onOpen: (event: Event) => void): void;
48
62
  setOnMessage(onMessage: (data: string) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ReconnectingWebsocket.d.ts","sourceRoot":"","sources":["../../src/tcp/ReconnectingWebsocket.ts"],"names":[],"mappings":"AAoBA,OAAY,EAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAU,MAAM,wBAAwB,CAAC;AAQnF,oBAAY,cAAc;IACxB,cAAc,OAAO;IACrB,UAAU,OAAO;IACjB,cAAc,OAAO;IACrB,gBAAgB,OAAO;CACxB;AAED,oBAAY,eAAe;IACzB,UAAU,IAAI;IACd,IAAI,IAAI;IACR,OAAO,IAAI;IACX,MAAM,IAAI;CACX;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,qBAAa,qBAAqB;IAwB9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAvB9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAQ1C;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,MAAM,CAAC,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,MAAM,CAAC,CAAyB;IACxC,OAAO,CAAC,SAAS,CAAC,CAAyB;IAC3C,OAAO,CAAC,OAAO,CAAC,CAA8B;IAC9C,OAAO,CAAC,OAAO,CAAC,CAA8B;IAE9C,OAAO,CAAC,gBAAgB,CAAQ;gBAGb,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACnD,OAAO,GAAE;QACP,YAAY,CAAC,EAAE,MAAM,CAAC;KAClB;IA0BR,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAEF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAahC;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAQ7B;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQlC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAM9B;IAEF,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAWvB;IAEK,OAAO,IAAI,IAAI;IAQf,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAIxB,QAAQ,IAAI,eAAe;IAI3B,UAAU,CAAC,MAAM,SAAqB,GAAG,IAAI;IAOpD,OAAO,CAAC,wBAAwB;IAIzB,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI/C,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIrD,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAItD,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAItD,cAAc,IAAI,IAAI;CAI9B"}
1
+ {"version":3,"file":"ReconnectingWebsocket.d.ts","sourceRoot":"","sources":["../../src/tcp/ReconnectingWebsocket.ts"],"names":[],"mappings":"AAoBA,OAAY,EAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAU,MAAM,wBAAwB,CAAC;AAQnF,oBAAY,cAAc;IACxB,cAAc,OAAO;IACrB,UAAU,OAAO;IACjB,cAAc,OAAO;IACrB,gBAAgB,OAAO;CACxB;AAED,oBAAY,eAAe;IACzB,UAAU,IAAI;IACd,IAAI,IAAI;IACR,OAAO,IAAI;IACX,MAAM,IAAI;CACX;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,qBAAa,qBAAqB;IA6B9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IA5B9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAQ1C;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,MAAM,CAAC,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,MAAM,CAAC,CAAyB;IACxC,OAAO,CAAC,SAAS,CAAC,CAAyB;IAC3C,OAAO,CAAC,OAAO,CAAC,CAA8B;IAC9C,OAAO,CAAC,OAAO,CAAC,CAA8B;IAC9C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAa;IAEvD,OAAO,CAAC,gBAAgB,CAAQ;gBAGb,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACnD,OAAO,GAAE;QACP,YAAY,CAAC,EAAE,MAAM,CAAC;KAClB;IA6BR,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAEF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAahC;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAQ7B;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAQlC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAM9B;IAEF,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAWvB;IAEK,OAAO,IAAI,IAAI;IAQf,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAIxB,QAAQ,IAAI,eAAe;IAI3B,UAAU,CAAC,MAAM,SAAqB,GAAG,IAAI;IASpD;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,wBAAwB;IAIzB,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI/C,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIrD,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAItD,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAItD,cAAc,IAAI,IAAI;CAI9B"}
@@ -89,6 +89,11 @@ class ReconnectingWebsocket {
89
89
  onMessage;
90
90
  onError;
91
91
  onClose;
92
+ /**
93
+ * Cleanup function returned by onBackFromSleep to stop the sleep detection interval.
94
+ * This prevents memory leaks by ensuring the interval is cleared when the WebSocket is disconnected.
95
+ */
96
+ stopBackFromSleepHandler;
92
97
  isPingingEnabled = true;
93
98
  constructor(onReconnect, options = {}) {
94
99
  this.onReconnect = onReconnect;
@@ -102,8 +107,11 @@ class ReconnectingWebsocket {
102
107
  * We won't receive the 'offline' event when the system goes to sleep (e.g. closing the lid of a laptop).
103
108
  * In this case navigator.onLine will still return true, but the WebSocket connection could be closed.
104
109
  * To handle this, we need a custom approach to detect when the system goes to sleep and when it wakes up.
110
+ *
111
+ * IMPORTANT: Store the cleanup function returned by onBackFromSleep. This function clears
112
+ * the internal setInterval and must be called when disconnecting to prevent memory leaks.
105
113
  * **/
106
- (0, BackFromSleepHandler_1.onBackFromSleep)({
114
+ this.stopBackFromSleepHandler = (0, BackFromSleepHandler_1.onBackFromSleep)({
107
115
  callback: () => {
108
116
  if (this.socket) {
109
117
  this.logger.debug('Back from sleep, reconnecting WebSocket');
@@ -194,6 +202,21 @@ class ReconnectingWebsocket {
194
202
  this.logger.info(`Disconnecting from WebSocket (reason: "${reason}")`);
195
203
  this.socket.close(CloseEventCode.NORMAL_CLOSURE, reason);
196
204
  }
205
+ // Always cleanup resources even if socket doesn't exist
206
+ this.cleanup();
207
+ }
208
+ /**
209
+ * Cleans up all active intervals and timers to prevent memory leaks.
210
+ * This includes:
211
+ * - The ping interval (via stopPinging)
212
+ * - The sleep detection interval (via stopBackFromSleepHandler)
213
+ *
214
+ * This method should be called whenever the WebSocket connection is terminated.
215
+ */
216
+ cleanup() {
217
+ this.stopPinging();
218
+ // Clear the sleep detection interval if it exists
219
+ this.stopBackFromSleepHandler?.();
197
220
  }
198
221
  getReconnectingWebsocket() {
199
222
  return new reconnecting_websocket_1.default(this.internalOnReconnect, undefined, ReconnectingWebsocket.RECONNECTING_OPTIONS);
@@ -168,23 +168,23 @@ declare const enforceFileDownloadLocationFeatureSchema: z.ZodOptional<z.ZodObjec
168
168
  ttl: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"unlimited">, z.ZodNumber]>>;
169
169
  }, {
170
170
  config: z.ZodObject<{
171
- enforcedDownloadLocation: z.ZodString;
171
+ enforcedDownloadLocation: z.ZodOptional<z.ZodString>;
172
172
  }, "strip", z.ZodTypeAny, {
173
- enforcedDownloadLocation: string;
173
+ enforcedDownloadLocation?: string | undefined;
174
174
  }, {
175
- enforcedDownloadLocation: string;
175
+ enforcedDownloadLocation?: string | undefined;
176
176
  }>;
177
177
  }>, "strip", z.ZodTypeAny, {
178
178
  status: FEATURE_STATUS;
179
179
  config: {
180
- enforcedDownloadLocation: string;
180
+ enforcedDownloadLocation?: string | undefined;
181
181
  };
182
182
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
183
183
  ttl?: number | "unlimited" | undefined;
184
184
  }, {
185
185
  status: FEATURE_STATUS;
186
186
  config: {
187
- enforcedDownloadLocation: string;
187
+ enforcedDownloadLocation?: string | undefined;
188
188
  };
189
189
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
190
190
  ttl?: number | "unlimited" | undefined;
@@ -611,23 +611,23 @@ export declare const allFeaturesResponseSchema: z.ZodObject<{
611
611
  ttl: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"unlimited">, z.ZodNumber]>>;
612
612
  }, {
613
613
  config: z.ZodObject<{
614
- enforcedDownloadLocation: z.ZodString;
614
+ enforcedDownloadLocation: z.ZodOptional<z.ZodString>;
615
615
  }, "strip", z.ZodTypeAny, {
616
- enforcedDownloadLocation: string;
616
+ enforcedDownloadLocation?: string | undefined;
617
617
  }, {
618
- enforcedDownloadLocation: string;
618
+ enforcedDownloadLocation?: string | undefined;
619
619
  }>;
620
620
  }>, "strip", z.ZodTypeAny, {
621
621
  status: FEATURE_STATUS;
622
622
  config: {
623
- enforcedDownloadLocation: string;
623
+ enforcedDownloadLocation?: string | undefined;
624
624
  };
625
625
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
626
626
  ttl?: number | "unlimited" | undefined;
627
627
  }, {
628
628
  status: FEATURE_STATUS;
629
629
  config: {
630
- enforcedDownloadLocation: string;
630
+ enforcedDownloadLocation?: string | undefined;
631
631
  };
632
632
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
633
633
  ttl?: number | "unlimited" | undefined;
@@ -1205,23 +1205,23 @@ export declare const allFeaturesResponseSchema: z.ZodObject<{
1205
1205
  ttl: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"unlimited">, z.ZodNumber]>>;
1206
1206
  }, {
1207
1207
  config: z.ZodObject<{
1208
- enforcedDownloadLocation: z.ZodString;
1208
+ enforcedDownloadLocation: z.ZodOptional<z.ZodString>;
1209
1209
  }, "strip", z.ZodTypeAny, {
1210
- enforcedDownloadLocation: string;
1210
+ enforcedDownloadLocation?: string | undefined;
1211
1211
  }, {
1212
- enforcedDownloadLocation: string;
1212
+ enforcedDownloadLocation?: string | undefined;
1213
1213
  }>;
1214
1214
  }>, "strip", z.ZodTypeAny, {
1215
1215
  status: FEATURE_STATUS;
1216
1216
  config: {
1217
- enforcedDownloadLocation: string;
1217
+ enforcedDownloadLocation?: string | undefined;
1218
1218
  };
1219
1219
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
1220
1220
  ttl?: number | "unlimited" | undefined;
1221
1221
  }, {
1222
1222
  status: FEATURE_STATUS;
1223
1223
  config: {
1224
- enforcedDownloadLocation: string;
1224
+ enforcedDownloadLocation?: string | undefined;
1225
1225
  };
1226
1226
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
1227
1227
  ttl?: number | "unlimited" | undefined;
@@ -1799,23 +1799,23 @@ export declare const allFeaturesResponseSchema: z.ZodObject<{
1799
1799
  ttl: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"unlimited">, z.ZodNumber]>>;
1800
1800
  }, {
1801
1801
  config: z.ZodObject<{
1802
- enforcedDownloadLocation: z.ZodString;
1802
+ enforcedDownloadLocation: z.ZodOptional<z.ZodString>;
1803
1803
  }, "strip", z.ZodTypeAny, {
1804
- enforcedDownloadLocation: string;
1804
+ enforcedDownloadLocation?: string | undefined;
1805
1805
  }, {
1806
- enforcedDownloadLocation: string;
1806
+ enforcedDownloadLocation?: string | undefined;
1807
1807
  }>;
1808
1808
  }>, "strip", z.ZodTypeAny, {
1809
1809
  status: FEATURE_STATUS;
1810
1810
  config: {
1811
- enforcedDownloadLocation: string;
1811
+ enforcedDownloadLocation?: string | undefined;
1812
1812
  };
1813
1813
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
1814
1814
  ttl?: number | "unlimited" | undefined;
1815
1815
  }, {
1816
1816
  status: FEATURE_STATUS;
1817
1817
  config: {
1818
- enforcedDownloadLocation: string;
1818
+ enforcedDownloadLocation?: string | undefined;
1819
1819
  };
1820
1820
  lockStatus?: FEATURE_LOCK_STATUS | undefined;
1821
1821
  ttl?: number | "unlimited" | undefined;
@@ -70,7 +70,7 @@ const selfDeletingMessagesConfigSchema = zod_1.z.object({
70
70
  enforcedTimeoutSeconds: zod_1.z.number(),
71
71
  });
72
72
  const enforceFileDownloadLocationConfigSchema = zod_1.z.object({
73
- enforcedDownloadLocation: zod_1.z.string(),
73
+ enforcedDownloadLocation: zod_1.z.string().optional(),
74
74
  });
75
75
  const classifiedDomainsConfigSchema = zod_1.z.object({
76
76
  domains: zod_1.z.array(zod_1.z.string()),
package/package.json CHANGED
@@ -70,6 +70,6 @@
70
70
  "watch": "webpack serve --config webpack.browser.js",
71
71
  "prepare": "yarn dist"
72
72
  },
73
- "version": "27.87.0",
74
- "gitHead": "031bc333d66a0228a3475dc0a10b5c3685784132"
73
+ "version": "27.87.1",
74
+ "gitHead": "de036306195ee6af235aa1541443b1ffefaa8e26"
75
75
  }