@ethora/chat-component-rn 26.10.1 → 26.10.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.
@@ -54,7 +54,18 @@ const logoutService = exports.logoutService = {
54
54
  * AFTER all the disk work has actually landed.
55
55
  */
56
56
  performLogout: async () => {
57
- // 0. Flush lastViewedTimestamp to the server's private store BEFORE
57
+ // 0. Push. Release the device-token registration on the backend
58
+ // FIRST, while the access token is still valid (the token itself
59
+ // is kept so the next login re-registers it). It runs alongside
60
+ // the private-store flush below instead of after it: the flush
61
+ // can take up to 2s, and a host with a logout time budget could
62
+ // cut us off before the release went out, leaving the device
63
+ // receiving pushes for the logged-out user.
64
+ const pushRelease = (0, _pushRegistration.releasePushRegistration)().catch(e => {
65
+ console.warn('logoutService: push release failed', e);
66
+ });
67
+
68
+ // 0a. Flush lastViewedTimestamp to the server's private store BEFORE
58
69
  // we close XMPP. Only rooms with no outstanding unread (plus the
59
70
  // visible room) get their entries updated — rooms with unread
60
71
  // keep their old marker so the next login still surfaces those
@@ -90,15 +101,9 @@ const logoutService = exports.logoutService = {
90
101
  /* non-fatal */
91
102
  }
92
103
 
93
- // 2. Push. Release the device-token registration on the backend
94
- // while the access token is still valid (the token itself is kept
95
- // so the next login re-registers it), then clear the local MucSub
96
- // room cache.
97
- try {
98
- await (0, _pushRegistration.releasePushRegistration)();
99
- } catch (e) {
100
- console.warn('logoutService: push release failed', e);
101
- }
104
+ // 2. Push. Wait for the release started in step 0, then clear the
105
+ // local MucSub room cache.
106
+ await pushRelease;
102
107
  try {
103
108
  await _pushSubscriptionService.pushSubscriptionService.reset();
104
109
  } catch (e) {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_pushRegistration","_rooms","_persistence","_secureUserStorage","_getServerReadTimestamp","_e2ee","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","state","store","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","getFlushBoundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","console","warn","DeviceEventEmitter","emit","releasePushRegistration","pushSubscriptionService","reset","stopOmemo","clearOpenedFiles","clearRoomsRestCache","dispatch","setLogoutState","clearHeap","logout","clearPersistedState","AsyncStorage","multiRemove","secureUserStorage","remove","useLogout","useDispatch","useCallback","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,wBAAA,GAAAT,OAAA;AACA,IAAAU,iBAAA,GAAAV,OAAA;AACA,IAAAW,MAAA,GAAAX,OAAA;AACA,IAAAY,YAAA,GAAAZ,OAAA;AACA,IAAAa,kBAAA,GAAAb,OAAA;AACA,IAAAc,uBAAA,GAAAd,OAAA;AACA,IAAAe,KAAA,GAAAf,OAAA;AAAoC,SAAAG,uBAAAa,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,kBAAkB,GAAG,CACzB,iCAAiC,CAAE;AAAA,CACpC;AAED,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EACpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,aAAa,EAAE,MAAAA,CAAA,KAA2B;IACxC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI;MACF,MAAMC,KAAK,GAAGC,gBAAK,CAACC,QAAQ,CAAC,CAAC;MAC9B,MAAMC,MAAM,GAAIH,KAAK,CAACI,gBAAgB,EAAUD,MAAM;MACtD,MAAME,KAAK,GAAGL,KAAK,CAACK,KAAK,EAAEA,KAAK;MAChC,MAAMC,cAAc,GAAGN,KAAK,CAACK,KAAK,EAAEC,cAAc,IAAI,IAAI;MAC1D;MACA;MACA;MACA;MACA;MACA,MAAMC,UAAU,GAAGD,cAAc,GAC7B,IAAAE,0CAAkB,EAChBH,KAAK,GAAGC,cAAc,CAAC,EACvBN,KAAK,CAACS,aAAa,EACnBT,KAAK,CAACK,KAAK,EAAEK,cAAc,GAAGJ,cAAc,CAAC,IAAI,IACnD,CAAC,GACDK,SAAS;MACb,IAAIR,MAAM,EAAES,mCAAmC,EAAE;QAC/C,MAAMC,OAAO,CAACC,IAAI,CAAC,CACjBX,MAAM,CAACS,mCAAmC,CAACP,KAAK,EAAE;UAChDC,cAAc;UACdS,aAAa,EAAER,UAAU;UACzBS,cAAc,EAAE;QAClB,CAAC,CAAC,EACF,IAAIH,OAAO,CAAEI,GAAG,IAAKC,UAAU,CAACD,GAAG,EAAE,IAAI,CAAC,CAAC,CAC5C,CAAC;MACJ;IACF,CAAC,CAAC,OAAOxB,CAAC,EAAE;MACV0B,OAAO,CAACC,IAAI,CAAC,2CAA2C,EAAE3B,CAAC,CAAC;IAC9D;;IAEA;IACA,IAAI;MACF4B,+BAAkB,CAACC,IAAI,CAAC,0BAA0B,CAAC;IACrD,CAAC,CAAC,MAAM;MACN;IAAA;;IAGF;IACA;IACA;IACA;IACA,IAAI;MACF,MAAM,IAAAC,yCAAuB,EAAC,CAAC;IACjC,CAAC,CAAC,OAAO9B,CAAC,EAAE;MACV0B,OAAO,CAACC,IAAI,CAAC,oCAAoC,EAAE3B,CAAC,CAAC;IACvD;IACA,IAAI;MACF,MAAM+B,gDAAuB,CAACC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,OAAOhC,CAAC,EAAE;MACV0B,OAAO,CAACC,IAAI,CAAC,kCAAkC,EAAE3B,CAAC,CAAC;IACrD;IAEA,IAAAiC,eAAS,EAAC,CAAC;IACX,IAAI;MACF,MAAM;QAAEC;MAAiB,CAAC,GACxBlD,OAAO,CAAC,qBAAqB,CAAyC;MACxEkD,gBAAgB,CAAC,CAAC;IACpB,CAAC,CAAC,MAAM,CACR;;IAEA;IACA;IACA,IAAI;MACF,IAAAC,0BAAmB,EAAC,CAAC;IACvB,CAAC,CAAC,MAAM;MACN;IAAA;;IAGF;IACA;IACA;IACA;IACA,IAAI;MACF3B,gBAAK,CAAC4B,QAAQ,CAAC,IAAAC,0BAAc,EAAC,CAAC,CAAC,CAAC,CAAC;MAClC7B,gBAAK,CAAC4B,QAAQ,CAAC,IAAAE,wBAAS,EAAC,CAAC,CAAC,CAAC,CAAC;MAC7B9B,gBAAK,CAAC4B,QAAQ,CAAC,IAAAG,yBAAM,EAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAOvC,CAAC,EAAE;MACV0B,OAAO,CAACC,IAAI,CAAC,sCAAsC,EAAE3B,CAAC,CAAC;IACzD;;IAEA;IACA;IACA;IACA;IACA,IAAI;MACF,MAAM,IAAAwC,gCAAmB,EAAC,CAAC;IAC7B,CAAC,CAAC,MAAM;MACN;IAAA;;IAGF;IACA,IAAI;MACF,MAAMC,qBAAY,CAACC,WAAW,CAACvC,kBAAkB,CAAC;IACpD,CAAC,CAAC,OAAOH,CAAC,EAAE;MACV0B,OAAO,CAACC,IAAI,CAAC,uCAAuC,EAAE3B,CAAC,CAAC;IAC1D;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI;MACF,MAAM,IAAA2C,oCAAiB,EAAC,CAAC,CAACC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,OAAO5C,CAAC,EAAE;MACV0B,OAAO,CAACC,IAAI,CAAC,iDAAiD,EAAE3B,CAAC,CAAC;IACpE;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM6C,SAAS,GAAGA,CAAA,KAA6B;EACpD;EACA;EACA;EACA,IAAAC,uBAAW,EAAC,CAAC;EAEb,OAAO,IAAAC,kBAAW,EAAC,YAAY;IAC7B,IAAI;MACF,MAAM3C,aAAa,CAACE,aAAa,CAAC,CAAC;IACrC,CAAC,CAAC,OAAO0C,GAAG,EAAE;MACZtB,OAAO,CAACC,IAAI,CAAC,iCAAiC,EAAEqB,GAAG,CAAC;IACtD;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC3C,OAAA,CAAAwC,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_pushRegistration","_rooms","_persistence","_secureUserStorage","_getServerReadTimestamp","_e2ee","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","pushRelease","releasePushRegistration","catch","console","warn","state","store","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","getFlushBoundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","DeviceEventEmitter","emit","pushSubscriptionService","reset","stopOmemo","clearOpenedFiles","clearRoomsRestCache","dispatch","setLogoutState","clearHeap","logout","clearPersistedState","AsyncStorage","multiRemove","secureUserStorage","remove","useLogout","useDispatch","useCallback","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,5 +6,5 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.ETHORA_CHAT_COMPONENT_VERSION = void 0;
7
7
  // Generated by scripts/sync-version.mjs on `npm version`.
8
8
  // Edit package.json's version instead of this file.
9
- const ETHORA_CHAT_COMPONENT_VERSION = exports.ETHORA_CHAT_COMPONENT_VERSION = '26.10.0';
9
+ const ETHORA_CHAT_COMPONENT_VERSION = exports.ETHORA_CHAT_COMPONENT_VERSION = '26.10.2';
10
10
  //# sourceMappingURL=version.js.map
@@ -50,7 +50,18 @@ const logoutService = {
50
50
  * AFTER all the disk work has actually landed.
51
51
  */
52
52
  performLogout: async () => {
53
- // 0. Flush lastViewedTimestamp to the server's private store BEFORE
53
+ // 0. Push. Release the device-token registration on the backend
54
+ // FIRST, while the access token is still valid (the token itself
55
+ // is kept so the next login re-registers it). It runs alongside
56
+ // the private-store flush below instead of after it: the flush
57
+ // can take up to 2s, and a host with a logout time budget could
58
+ // cut us off before the release went out, leaving the device
59
+ // receiving pushes for the logged-out user.
60
+ const pushRelease = releasePushRegistration().catch(e => {
61
+ console.warn('logoutService: push release failed', e);
62
+ });
63
+
64
+ // 0a. Flush lastViewedTimestamp to the server's private store BEFORE
54
65
  // we close XMPP. Only rooms with no outstanding unread (plus the
55
66
  // visible room) get their entries updated — rooms with unread
56
67
  // keep their old marker so the next login still surfaces those
@@ -86,15 +97,9 @@ const logoutService = {
86
97
  /* non-fatal */
87
98
  }
88
99
 
89
- // 2. Push. Release the device-token registration on the backend
90
- // while the access token is still valid (the token itself is kept
91
- // so the next login re-registers it), then clear the local MucSub
92
- // room cache.
93
- try {
94
- await releasePushRegistration();
95
- } catch (e) {
96
- console.warn('logoutService: push release failed', e);
97
- }
100
+ // 2. Push. Wait for the release started in step 0, then clear the
101
+ // local MucSub room cache.
102
+ await pushRelease;
98
103
  try {
99
104
  await pushSubscriptionService.reset();
100
105
  } catch (e) {
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","releasePushRegistration","clearRoomsRestCache","clearPersistedState","secureUserStorage","getFlushBoundaryTs","stopOmemo","LIBRARY_STRAY_KEYS","logoutService","performLogout","state","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","e","console","warn","emit","reset","clearOpenedFiles","require","dispatch","multiRemove","remove","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","releasePushRegistration","clearRoomsRestCache","clearPersistedState","secureUserStorage","getFlushBoundaryTs","stopOmemo","LIBRARY_STRAY_KEYS","logoutService","performLogout","pushRelease","catch","e","console","warn","state","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","emit","reset","clearOpenedFiles","require","dispatch","multiRemove","remove","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,5 +2,5 @@
2
2
 
3
3
  // Generated by scripts/sync-version.mjs on `npm version`.
4
4
  // Edit package.json's version instead of this file.
5
- export const ETHORA_CHAT_COMPONENT_VERSION = '26.10.0';
5
+ export const ETHORA_CHAT_COMPONENT_VERSION = '26.10.2';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLogout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLogout.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,aAAa;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;yBACsB,OAAO,CAAC,IAAI,CAAC;CAuHvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,QAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAahD,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"useLogout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLogout.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,aAAa;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;yBACsB,OAAO,CAAC,IAAI,CAAC;CA4HvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,QAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAahD,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const ETHORA_CHAT_COMPONENT_VERSION = "26.10.0";
1
+ export declare const ETHORA_CHAT_COMPONENT_VERSION = "26.10.2";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethora/chat-component-rn",
3
- "version": "26.10.1",
3
+ "version": "26.10.2",
4
4
  "description": "Drop-in XMPP chat component for React Native / Expo. <Chat config={...}/> and you're done.",
5
5
  "main": "index.js",
6
6
  "module": "lib/module/main.js",
@@ -50,7 +50,18 @@ const logoutService = {
50
50
  * AFTER all the disk work has actually landed.
51
51
  */
52
52
  performLogout: async (): Promise<void> => {
53
- // 0. Flush lastViewedTimestamp to the server's private store BEFORE
53
+ // 0. Push. Release the device-token registration on the backend
54
+ // FIRST, while the access token is still valid (the token itself
55
+ // is kept so the next login re-registers it). It runs alongside
56
+ // the private-store flush below instead of after it: the flush
57
+ // can take up to 2s, and a host with a logout time budget could
58
+ // cut us off before the release went out, leaving the device
59
+ // receiving pushes for the logged-out user.
60
+ const pushRelease = releasePushRegistration().catch((e) => {
61
+ console.warn('logoutService: push release failed', e);
62
+ });
63
+
64
+ // 0a. Flush lastViewedTimestamp to the server's private store BEFORE
54
65
  // we close XMPP. Only rooms with no outstanding unread (plus the
55
66
  // visible room) get their entries updated — rooms with unread
56
67
  // keep their old marker so the next login still surfaces those
@@ -95,15 +106,9 @@ const logoutService = {
95
106
  /* non-fatal */
96
107
  }
97
108
 
98
- // 2. Push. Release the device-token registration on the backend
99
- // while the access token is still valid (the token itself is kept
100
- // so the next login re-registers it), then clear the local MucSub
101
- // room cache.
102
- try {
103
- await releasePushRegistration();
104
- } catch (e) {
105
- console.warn('logoutService: push release failed', e);
106
- }
109
+ // 2. Push. Wait for the release started in step 0, then clear the
110
+ // local MucSub room cache.
111
+ await pushRelease;
107
112
  try {
108
113
  await pushSubscriptionService.reset();
109
114
  } catch (e) {
package/src/version.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/sync-version.mjs on `npm version`.
2
2
  // Edit package.json's version instead of this file.
3
- export const ETHORA_CHAT_COMPONENT_VERSION = '26.10.0';
3
+ export const ETHORA_CHAT_COMPONENT_VERSION = '26.10.2';