@amityco/ts-sdk 7.26.1-86332f0.0 → 7.26.1-93c0877f.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.
@@ -32,7 +32,9 @@ declare global {
32
32
  accessToken: string;
33
33
  userId: string;
34
34
  }) => Promise<void>;
35
- disconnect: () => Promise<void>;
35
+ disconnect: (options?: {
36
+ endSession?: boolean;
37
+ }) => Promise<void>;
36
38
  get connected(): boolean;
37
39
  on: <T extends keyof Amity.MqttEvents>(event: T, handler: (payload: Amity.MqttEvents[T]) => void) => void;
38
40
  once: <T extends keyof Amity.MqttEvents>(event: T, handler: (payload: Amity.MqttEvents[T]) => void) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/@types/core/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,eAAe,CAAC,CAAC,IAAI;YACxB,MAAM,EAAE,SAAS,CAAC;YAClB,IAAI,EAAE,CAAC,CAAC;SACT,CAAC;QAEF,KAAK,YAAY,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;SACzB,CAAC;QAEF,KAAK,aAAa,GAAG;YACnB,MAAM,EAAE,OAAO,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;SACzB,CAAC;QAEF,KAAK,gBAAgB,GAAG;YACtB,OAAO,EAAE,OAAO,CAAC;SAClB,CAAC;QAEF,KAAK,QAAQ,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC;QAErE,KAAK,KAAK,GAAG,MAAM,CAAC;QAEpB,KAAK,UAAU,GAAG;YAChB,MAAM,EAAE;gBACN,QAAQ,CAAC,EAAE,KAAK,CAAC;gBACjB,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,SAAS,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;QAEF,KAAK,UAAU,GAAG;YAChB,OAAO,EAAE,CAAC,MAAM,EAAE;gBAAE,WAAW,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5E,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,SAAS,IAAI,OAAO,CAAC;YACzB,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,UAAU,EACnC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,KAC5C,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,UAAU,EACrC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,KAC5C,IAAI,CAAC;YACV,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,UAAU,EACpC,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,KAC7C,IAAI,CAAC;YACV,kBAAkB,EAAE,MAAM,IAAI,CAAC;YAC/B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;YAC7F,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;SACtC,CAAC;KACH;CACF"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/@types/core/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,eAAe,CAAC,CAAC,IAAI;YACxB,MAAM,EAAE,SAAS,CAAC;YAClB,IAAI,EAAE,CAAC,CAAC;SACT,CAAC;QAEF,KAAK,YAAY,GAAG;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;SACzB,CAAC;QAEF,KAAK,aAAa,GAAG;YACnB,MAAM,EAAE,OAAO,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;SACzB,CAAC;QAEF,KAAK,gBAAgB,GAAG;YACtB,OAAO,EAAE,OAAO,CAAC;SAClB,CAAC;QAEF,KAAK,QAAQ,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC;QAErE,KAAK,KAAK,GAAG,MAAM,CAAC;QAEpB,KAAK,UAAU,GAAG;YAChB,MAAM,EAAE;gBACN,QAAQ,CAAC,EAAE,KAAK,CAAC;gBACjB,IAAI,CAAC,EAAE,KAAK,CAAC;gBACb,SAAS,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;QAEF,KAAK,UAAU,GAAG;YAChB,OAAO,EAAE,CAAC,MAAM,EAAE;gBAAE,WAAW,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5E,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE;gBAAE,UAAU,CAAC,EAAE,OAAO,CAAA;aAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,SAAS,IAAI,OAAO,CAAC;YACzB,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,UAAU,EACnC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,KAC5C,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,UAAU,EACrC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,KAC5C,IAAI,CAAC;YACV,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,UAAU,EACpC,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,KAC7C,IAAI,CAAC;YACV,kBAAkB,EAAE,MAAM,IAAI,CAAC;YAC/B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;YAC7F,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;SACtC,CAAC;KACH;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt.d.ts","sourceRoot":"","sources":["../../../src/core/transports/mqtt.ts"],"names":[],"mappings":"AAEA,OAAa,EAAuB,cAAc,EAAsB,UAAU,EAAE,MAAM,MAAM,CAAC;AAgCjG,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,cAAc,CAuBjB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,KAAG,gBAkKtD,CAAC"}
1
+ {"version":3,"file":"mqtt.d.ts","sourceRoot":"","sources":["../../../src/core/transports/mqtt.ts"],"names":[],"mappings":"AAEA,OAAa,EAAuB,cAAc,EAAsB,UAAU,EAAE,MAAM,MAAM,CAAC;AAiCjG,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,cAAc,CAuBjB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,KAAG,gBAgLtD,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -2456,10 +2456,11 @@ var MqttError;
2456
2456
  MqttError[MqttError["BAD_USERNAME_OR_PASSWORD"] = 134] = "BAD_USERNAME_OR_PASSWORD";
2457
2457
  MqttError[MqttError["NOT_AUTHORIZED"] = 135] = "NOT_AUTHORIZED";
2458
2458
  })(MqttError || (MqttError = {}));
2459
- // MQTT 5 session expiry, in seconds. 0xFFFFFFFF keeps the session alive
2460
- // indefinitely, matching the previous 3.1.1 `clean: false` behaviour where the
2461
- // broker retained the session (and its subscriptions) across disconnects.
2462
- const SESSION_EXPIRY_INTERVAL = 0xffffffff;
2459
+ // MQTT 5 session expiry, in seconds. Under MQTT 3.1.1 the broker capped
2460
+ // retained sessions at ~30 min; under MQTT 5 the client's value wins, so an
2461
+ // unbounded value ("never") left disconnected sessions piling up on the broker.
2462
+ // 1800s matches the previous 3.1.1 cap.
2463
+ const SESSION_EXPIRY_INTERVAL = 1800;
2463
2464
  function getMqttOptions(params) {
2464
2465
  return Object.assign({ clean: false, clientId: `mqttjs_ + ${Math.random().toString(16).substring(2, 10)}`, protocolId: 'MQTT', protocolVersion: 5, reconnectPeriod: RETRY_BASE_TIMEOUT, resubscribe: true,
2465
2466
  // The broker/LB drops idle sockets at ~60s. mqtt.js v5 sends its first
@@ -2561,8 +2562,16 @@ const createMqttTransport = (endpoint) => {
2561
2562
  }
2562
2563
  return {
2563
2564
  connect,
2564
- async disconnect() {
2565
+ async disconnect(options) {
2565
2566
  if (this.connected) {
2567
+ // On logout we want the broker to release the session immediately
2568
+ // instead of keeping it around for SESSION_EXPIRY_INTERVAL. mqtt.js
2569
+ // only sends a DISCONNECT packet when `force` is false; force=true
2570
+ // just tears the socket down and the broker keeps the session until
2571
+ // it expires on its own.
2572
+ if (options === null || options === void 0 ? void 0 : options.endSession) {
2573
+ return new Promise(resolve => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.end(false, { reasonCode: 0, properties: { sessionExpiryInterval: 0 } }, () => resolve()));
2574
+ }
2566
2575
  return new Promise(resolve => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.end(true, undefined, () => resolve()));
2567
2576
  }
2568
2577
  },
@@ -5439,7 +5448,7 @@ const logout = async () => {
5439
5448
  const client = getActiveClient();
5440
5449
  client.log('client/api/disconnectClient');
5441
5450
  if (client.mqtt && client.mqtt.connected) {
5442
- client.mqtt.disconnect();
5451
+ await client.mqtt.disconnect({ endSession: true });
5443
5452
  }
5444
5453
  /*
5445
5454
  * for cases when session state is terminated (example on ban) or token expired,
package/dist/index.esm.js CHANGED
@@ -2440,10 +2440,11 @@ var MqttError;
2440
2440
  MqttError[MqttError["BAD_USERNAME_OR_PASSWORD"] = 134] = "BAD_USERNAME_OR_PASSWORD";
2441
2441
  MqttError[MqttError["NOT_AUTHORIZED"] = 135] = "NOT_AUTHORIZED";
2442
2442
  })(MqttError || (MqttError = {}));
2443
- // MQTT 5 session expiry, in seconds. 0xFFFFFFFF keeps the session alive
2444
- // indefinitely, matching the previous 3.1.1 `clean: false` behaviour where the
2445
- // broker retained the session (and its subscriptions) across disconnects.
2446
- const SESSION_EXPIRY_INTERVAL = 0xffffffff;
2443
+ // MQTT 5 session expiry, in seconds. Under MQTT 3.1.1 the broker capped
2444
+ // retained sessions at ~30 min; under MQTT 5 the client's value wins, so an
2445
+ // unbounded value ("never") left disconnected sessions piling up on the broker.
2446
+ // 1800s matches the previous 3.1.1 cap.
2447
+ const SESSION_EXPIRY_INTERVAL = 1800;
2447
2448
  function getMqttOptions(params) {
2448
2449
  return Object.assign({ clean: false, clientId: `mqttjs_ + ${Math.random().toString(16).substring(2, 10)}`, protocolId: 'MQTT', protocolVersion: 5, reconnectPeriod: RETRY_BASE_TIMEOUT, resubscribe: true,
2449
2450
  // The broker/LB drops idle sockets at ~60s. mqtt.js v5 sends its first
@@ -2545,8 +2546,16 @@ const createMqttTransport = (endpoint) => {
2545
2546
  }
2546
2547
  return {
2547
2548
  connect,
2548
- async disconnect() {
2549
+ async disconnect(options) {
2549
2550
  if (this.connected) {
2551
+ // On logout we want the broker to release the session immediately
2552
+ // instead of keeping it around for SESSION_EXPIRY_INTERVAL. mqtt.js
2553
+ // only sends a DISCONNECT packet when `force` is false; force=true
2554
+ // just tears the socket down and the broker keeps the session until
2555
+ // it expires on its own.
2556
+ if (options === null || options === void 0 ? void 0 : options.endSession) {
2557
+ return new Promise(resolve => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.end(false, { reasonCode: 0, properties: { sessionExpiryInterval: 0 } }, () => resolve()));
2558
+ }
2550
2559
  return new Promise(resolve => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.end(true, undefined, () => resolve()));
2551
2560
  }
2552
2561
  },
@@ -5439,7 +5448,7 @@ const logout = async () => {
5439
5448
  const client = getActiveClient();
5440
5449
  client.log('client/api/disconnectClient');
5441
5450
  if (client.mqtt && client.mqtt.connected) {
5442
- client.mqtt.disconnect();
5451
+ await client.mqtt.disconnect({ endSession: true });
5443
5452
  }
5444
5453
  /*
5445
5454
  * for cases when session state is terminated (example on ban) or token expired,