@repzo/widget-react-native 1.4.0 → 1.5.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +36 -2
  3. package/lib/commonjs/api/client.js +29 -5
  4. package/lib/commonjs/api/client.js.map +1 -1
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/state/user-update-queue.js +168 -0
  7. package/lib/commonjs/state/user-update-queue.js.map +1 -0
  8. package/lib/commonjs/state/widget-store.js +27 -4
  9. package/lib/commonjs/state/widget-store.js.map +1 -1
  10. package/lib/commonjs/types.js.map +1 -1
  11. package/lib/commonjs/ui/screens/chat/ChatView.js +14 -1
  12. package/lib/commonjs/ui/screens/chat/ChatView.js.map +1 -1
  13. package/lib/module/api/client.js +27 -4
  14. package/lib/module/api/client.js.map +1 -1
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/state/user-update-queue.js +163 -0
  17. package/lib/module/state/user-update-queue.js.map +1 -0
  18. package/lib/module/state/widget-store.js +27 -4
  19. package/lib/module/state/widget-store.js.map +1 -1
  20. package/lib/module/types.js.map +1 -1
  21. package/lib/module/ui/screens/chat/ChatView.js +14 -1
  22. package/lib/module/ui/screens/chat/ChatView.js.map +1 -1
  23. package/lib/typescript/commonjs/api/client.d.ts +8 -2
  24. package/lib/typescript/commonjs/api/client.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/index.d.ts +5 -0
  26. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/state/user-update-queue.d.ts +62 -0
  28. package/lib/typescript/commonjs/state/user-update-queue.d.ts.map +1 -0
  29. package/lib/typescript/commonjs/state/widget-store.d.ts +4 -0
  30. package/lib/typescript/commonjs/state/widget-store.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/types.d.ts +12 -0
  32. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts.map +1 -1
  34. package/lib/typescript/module/api/client.d.ts +8 -2
  35. package/lib/typescript/module/api/client.d.ts.map +1 -1
  36. package/lib/typescript/module/index.d.ts +5 -0
  37. package/lib/typescript/module/index.d.ts.map +1 -1
  38. package/lib/typescript/module/state/user-update-queue.d.ts +62 -0
  39. package/lib/typescript/module/state/user-update-queue.d.ts.map +1 -0
  40. package/lib/typescript/module/state/widget-store.d.ts +4 -0
  41. package/lib/typescript/module/state/widget-store.d.ts.map +1 -1
  42. package/lib/typescript/module/types.d.ts +12 -0
  43. package/lib/typescript/module/types.d.ts.map +1 -1
  44. package/lib/typescript/module/ui/screens/chat/ChatView.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/api/client.ts +33 -4
  47. package/src/index.tsx +5 -0
  48. package/src/state/user-update-queue.ts +178 -0
  49. package/src/state/widget-store.ts +25 -2
  50. package/src/types.ts +12 -0
  51. package/src/ui/screens/chat/ChatView.tsx +14 -1
package/CHANGELOG.md CHANGED
@@ -12,6 +12,42 @@ All notable changes to `@repzo/widget-react-native`, newest first.
12
12
 
13
13
  ## Unreleased
14
14
 
15
+ ## 1.5.0 — 2026-11-06
16
+
17
+ ### Added
18
+
19
+ - **`updateUser()` is paced, like other messengers' SDKs.** An app that calls
20
+ it on a timer or on every location fix no longer sends every call. Values
21
+ Workstation already has aren't sent again. Up to 20 updates go out at once,
22
+ then one every 90 seconds (20 per 30 minutes). Calls in between are merged,
23
+ newest value per key, and sent on the next allowed update, so the latest
24
+ value of every attribute still arrives. If Workstation answers that it's
25
+ busy (HTTP 429), the SDK waits as long as it asks and sends again; after a
26
+ failed connection or a server error it tries again a minute later. New
27
+ `boot({ throttleUpdateUser })` option (default `true`). See **Upgrading**.
28
+ - **`RepzoWidgetError.retryAfter`.** On an HTTP 429, the seconds Workstation
29
+ asked to wait, when it said.
30
+
31
+ ### Fixed
32
+
33
+ - **A message goes out once, however many times Send is tapped.** On a slow
34
+ or busy phone the chat could take a moment to react to Send. Every extra tap
35
+ in that moment sent the message again, so your team got it several times.
36
+ Now only the first tap sends it. Nothing to set up.
37
+
38
+ ### Upgrading
39
+
40
+ - **`updateUser()` calls may be merged and sent later.** A call that's held
41
+ back resolves right away instead of waiting for, or failing on, the
42
+ request. A call that's sent straight away still rejects when the request
43
+ fails, except for a 429, which the SDK now retries itself. If your app
44
+ calls `updateUser()` often, you can drop your own retry logic. To send
45
+ every call straight away, as before:
46
+
47
+ ```ts
48
+ await RepzoWidget.boot({ channelAccountId: '<widget id>', throttleUpdateUser: false });
49
+ ```
50
+
15
51
  ## 1.4.0 — 2026-11-02
16
52
 
17
53
  ### Added
package/README.md CHANGED
@@ -461,6 +461,39 @@ get a plain message and no Retry.
461
461
  Expired or revoked tokens (401) are handled silently: the SDK re-inits once
462
462
  (shared by all concurrent requests) and retries.
463
463
 
464
+ *1.5.0+.* When Workstation answers that it's busy (HTTP 429), the error's
465
+ `retryAfter` holds the seconds it asked to wait, when it said.
466
+
467
+ ## Custom attributes
468
+
469
+ `updateUser()` saves attributes on the visitor so agents see them on the
470
+ conversation, for example a plan, a role or which part of your app they're in:
471
+
472
+ ```ts
473
+ await RepzoWidget.updateUser({ plan: 'pro', role: 'manager' });
474
+ ```
475
+
476
+ Up to 30 keys, keys up to 64 characters, values (text, numbers or true/false)
477
+ up to 512 characters. Each call only changes the keys it sends; the others
478
+ keep their saved values.
479
+
480
+ *1.5.0+.* Calls are paced so an app can't flood Workstation:
481
+
482
+ - Values Workstation already has aren't sent again.
483
+ - Up to 20 updates go out at once, then one every 90 seconds (20 per 30
484
+ minutes).
485
+ - Calls in between are merged, newest value per key, and sent on the next
486
+ allowed update. They resolve right away. The latest value of every
487
+ attribute still arrives.
488
+ - When Workstation answers that it's busy, the SDK waits as long as it asks
489
+ and sends again. After a failed connection or a server error it tries again
490
+ a minute later, and the call that failed still rejects.
491
+
492
+ Send what agents need to see, not live data. A value that changes every few
493
+ seconds, such as a GPS position, only arrives about every 90 seconds once the
494
+ first 20 updates are used. `boot({ throttleUpdateUser: false })` sends every
495
+ call straight away, as before 1.5.0.
496
+
464
497
  ## Conversation list
465
498
 
466
499
  *1.4.0+.* On Home and in Messages, each conversation shows its newest
@@ -745,10 +778,10 @@ sub.remove();
745
778
 
746
779
  | Method | Notes |
747
780
  | --- | --- |
748
- | `boot({ channelAccountId, baseUrl?, user?, push?, onOpenUrl?, attachments?, inAppNotifications?, posts?, photoAlbums?, youPrefix? })` | Mints/resumes the session and connects the live stream. Idempotent; safe to call repeatedly. |
781
+ | `boot({ channelAccountId, baseUrl?, user?, push?, onOpenUrl?, attachments?, inAppNotifications?, posts?, photoAlbums?, youPrefix?, throttleUpdateUser? })` | Mints/resumes the session and connects the live stream. Idempotent; safe to call repeatedly. |
749
782
  | `loginUserWithUserAttributes({ userId?, email?, name?, phone?, userHash?, account?, signedUpAt? })` | Identifies the visitor; moves anonymous history over. `account: { id, name?, website? }` links them to a CRM account matched by `id`; `signedUpAt` (Date, unix seconds or ISO) shows as "Signed up". A different stored user is signed out first. |
750
783
  | `loginUnidentifiedUser()` | Drops the identity (signing out a stored user), fresh anonymous session. |
751
- | `updateUser(attributes)` | Custom attributes agents see on the conversation (≤30 keys, 64-char keys, 512-char values). |
784
+ | `updateUser(attributes)` | Custom attributes agents see on the conversation (≤30 keys, 64-char keys, 512-char values). *1.5.0+:* paced, see "Custom attributes". |
752
785
  | `logout()` | Revokes the token, removes the push registration, wipes visitor data, rotates the device id, resets the UI. Await it on sign-out. |
753
786
  | `present()` / `presentSpace('home' \| 'messages')` / `presentConversation(id)` / `hide()` | UI commands. |
754
787
  | `getUnreadConversationCount()` | Number of conversations with at least one unread reply. |
@@ -792,6 +825,7 @@ action from you:
792
825
  | 1.1.0 or older | Posts from Workstation now show over the app by default, once one is set live for Mobile (`posts: false` turns them off). They need `<RepzoWidgetProvider>` mounted at the root. |
793
826
  | 1.2.2 or older | Nothing required. In apps with Expo modules, the SDK now includes a small native voice player, so build the app again (development or store build) to get it; `expo-audio` can be removed if nothing else in your app uses it. If your `runtimeVersion` uses the `fingerprint` policy, it changes with this update. |
794
827
  | 1.3.1 or older | Nothing required. With a Workstation that takes uploads, a picked file now starts uploading right away, before the visitor taps Send (`attachments: { uploadOnPick: false }` uploads on Send instead). Several photos in one message now show as an album (`photoAlbums: false` shows each on its own, as before). Home and Messages put "You:" before the visitor's own last message (`youPrefix: false` turns it off). |
828
+ | 1.4.0 or older | Nothing required. `updateUser()` is now paced: unchanged values are skipped, and past 20 updates in 30 minutes calls are merged and sent later (`throttleUpdateUser: false` sends every call, as before). See "Custom attributes". |
795
829
 
796
830
  ## Troubleshooting
797
831
 
@@ -24,24 +24,48 @@ function isTerminalErrorCode(code) {
24
24
  return !!code && TERMINAL_CODES.has(code);
25
25
  }
26
26
  class RepzoWidgetError extends Error {
27
- constructor(message, status, code = 'http') {
27
+ /**
28
+ * Seconds Workstation asked to wait before trying again, on a 429
29
+ * (`Retry-After`). Undefined when it didn't say.
30
+ * @since 1.5.0
31
+ */
32
+
33
+ constructor(message, status, code = 'http', retryAfter) {
28
34
  super(message);
29
35
  this.name = 'RepzoWidgetError';
30
36
  this.status = status;
31
37
  this.code = code;
38
+ if (retryAfter !== undefined) this.retryAfter = retryAfter;
32
39
  }
33
40
 
34
41
  /** Builds the error for a non-2xx `{ message, code }` body. */
35
- static fromResponse(status, body) {
42
+ static fromResponse(status, body, retryAfterHeader) {
36
43
  const payload = body && typeof body === 'object' ? body : {};
37
44
  const message = typeof payload.message === 'string' && payload.message ? payload.message : null;
38
45
  const code = status === 403 && typeof payload.code === 'string' && isTerminalErrorCode(payload.code) ? payload.code : 'http';
39
- return new RepzoWidgetError(message || `HTTP ${status}`, status, code);
46
+ const retryAfter = status === 429 ? parseRetryAfter(retryAfterHeader, payload.retryAfter) : undefined;
47
+ return new RepzoWidgetError(message || `HTTP ${status}`, status, code, retryAfter);
40
48
  }
41
49
  }
42
50
 
43
- /** A Send message part asked for on its own, which may share one request with others. */
51
+ /**
52
+ * Seconds from a `Retry-After` header (seconds or an HTTP date), falling back
53
+ * to the `retryAfter` seconds Workstation also puts in the 429 body.
54
+ */
44
55
  exports.RepzoWidgetError = RepzoWidgetError;
56
+ function parseRetryAfter(header, bodyValue) {
57
+ const value = header?.trim();
58
+ if (value) {
59
+ if (/^\d+(\.\d+)?$/.test(value)) return Number(value);
60
+ const at = Date.parse(value);
61
+ if (Number.isFinite(at)) return Math.max(0, (at - Date.now()) / 1000);
62
+ }
63
+ if (typeof bodyValue === 'number' && Number.isFinite(bodyValue) && bodyValue >= 0) return bodyValue;
64
+ return undefined;
65
+ }
66
+
67
+ /** A Send message part asked for on its own, which may share one request with others. */
68
+
45
69
  /**
46
70
  * Sends a local file as the request body straight from disk and resolves the
47
71
  * HTTP status. React Native streams a `{ uri }` body natively; `fetch` would
@@ -172,7 +196,7 @@ class WidgetApiClient {
172
196
  }
173
197
  if (!response.ok) {
174
198
  const body = await response.json().catch(() => null);
175
- const error = RepzoWidgetError.fromResponse(response.status, body);
199
+ const error = RepzoWidgetError.fromResponse(response.status, body, response.headers?.get?.('Retry-After'));
176
200
  // skipReauth calls (init, logout-time) are handled by their caller,
177
201
  // which knows whether the result is still current.
178
202
  if (isTerminalErrorCode(error.code) && !options.skipReauth) this.onTerminalError?.(error);
@@ -1 +1 @@
1
- {"version":3,"names":["_fileSize","require","_storage","_safeUrl","TERMINAL_CODES","Set","isTerminalErrorCode","code","has","RepzoWidgetError","Error","constructor","message","status","name","fromResponse","body","payload","exports","sendFileFromDisk","url","method","headers","file","signal","Promise","resolve","reject","xhr","XMLHttpRequest","cancel","abort","settle","finish","removeEventListener","onload","onerror","ontimeout","onabort","open","Object","entries","forEach","value","setRequestHeader","keys","some","toLowerCase","contentType","addEventListener","send","uri","UPLOAD_LIFETIME_MS","uploadExpiry","expiresAt","now","at","Date","parse","NaN","WidgetApiClient","baseUrl","channelAccountId","token","tokenLoaded","reauthorize","onTerminalError","sendPartBatch","configure","replace","getBaseUrl","getChannelAccountId","getToken","SecureStorage","getItem","TOKEN_KEY","setToken","setItem","clearToken","removeItem","resolveUrl","trimmed","trim","isHttpUrl","urlScheme","resolved","startsWith","request","path","options","sentToken","authToken","undefined","Authorization","fetch","JSON","stringify","error","response","skipReauth","refreshed","ok","json","catch","getConfig","platform","query","encodeURIComponent","getOutboundMessage","askSendPart","getPost","part","own","setTimeout","flushSendParts","push","asks","parts","Array","from","map","ask","answer","length","join","then","sendPostInteraction","campaignId","kind","init","params","visitorToken","resumeToken","user","email","phone","userId","user_id","userHash","user_hash","account","id","signedUpAt","signed_up_at","toISOString","trackingVisitorId","sdkVersion","logout","sendMessage","data","uploadAttachment","stopIfCancelled","aborted","streamedSize","measureFileSize","blob","target","fileName","size","uploadUrl","uploadToken","listConversations","listMessages","conversationId","cursor","markConversationRead","rateConversation","ratingId","identify","sendTyping","isTyping","trackEvent","registerPushToken","reportPushOpened","deliveryId","removePushToken","auth"],"sourceRoot":"../../../src","sources":["api/client.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fileSize","require","_storage","_safeUrl","TERMINAL_CODES","Set","isTerminalErrorCode","code","has","RepzoWidgetError","Error","constructor","message","status","retryAfter","name","undefined","fromResponse","body","retryAfterHeader","payload","parseRetryAfter","exports","header","bodyValue","value","trim","test","Number","at","Date","parse","isFinite","Math","max","now","sendFileFromDisk","url","method","headers","file","signal","Promise","resolve","reject","xhr","XMLHttpRequest","cancel","abort","settle","finish","removeEventListener","onload","onerror","ontimeout","onabort","open","Object","entries","forEach","setRequestHeader","keys","some","toLowerCase","contentType","addEventListener","send","uri","UPLOAD_LIFETIME_MS","uploadExpiry","expiresAt","NaN","WidgetApiClient","baseUrl","channelAccountId","token","tokenLoaded","reauthorize","onTerminalError","sendPartBatch","configure","replace","getBaseUrl","getChannelAccountId","getToken","SecureStorage","getItem","TOKEN_KEY","setToken","setItem","clearToken","removeItem","resolveUrl","trimmed","isHttpUrl","urlScheme","resolved","startsWith","request","path","options","sentToken","authToken","Authorization","fetch","JSON","stringify","error","response","skipReauth","refreshed","ok","json","catch","get","getConfig","platform","query","encodeURIComponent","getOutboundMessage","askSendPart","getPost","part","own","setTimeout","flushSendParts","push","asks","parts","Array","from","map","ask","answer","length","join","then","sendPostInteraction","campaignId","kind","init","params","visitorToken","resumeToken","user","email","phone","userId","user_id","userHash","user_hash","account","id","signedUpAt","signed_up_at","toISOString","trackingVisitorId","sdkVersion","logout","sendMessage","data","uploadAttachment","stopIfCancelled","aborted","streamedSize","measureFileSize","blob","target","fileName","size","uploadUrl","uploadToken","listConversations","listMessages","conversationId","cursor","markConversationRead","rateConversation","ratingId","identify","sendTyping","isTyping","trackEvent","registerPushToken","reportPushOpened","deliveryId","removePushToken","auth"],"sourceRoot":"../../../src","sources":["api/client.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_controller","require","_events","_storage","_WidgetProvider","_Launcher","_client","_types","_useWidgetState","Space","exports","RepzoWidget","boot","options","controller","store","loginUnidentifiedUser","loginUserWithUserAttributes","user","updateUser","attributes","logout","present","presentSpace","space","presentConversation","conversationId","openConversation","hide","getUnreadConversationCount","Object","values","getState","unreadByConversation","filter","count","length","getUnreadMessageCount","unreadCount","logEvent","eventName","metadata","track","setLocale","locale","addEventListener","event","listener","events","addListener","setStorageAdapter","adapter","setSecureStorageAdapter","setPushToken","push","setManualToken","handlePushNotification","message","handleNotification","_default","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_controller","require","_events","_storage","_WidgetProvider","_Launcher","_client","_types","_useWidgetState","Space","exports","RepzoWidget","boot","options","controller","store","loginUnidentifiedUser","loginUserWithUserAttributes","user","updateUser","attributes","logout","present","presentSpace","space","presentConversation","conversationId","openConversation","hide","getUnreadConversationCount","Object","values","getState","unreadByConversation","filter","count","length","getUnreadMessageCount","unreadCount","logEvent","eventName","metadata","track","setLocale","locale","addEventListener","event","listener","events","addListener","setStorageAdapter","adapter","setSecureStorageAdapter","setPushToken","push","setManualToken","handlePushNotification","message","handleNotification","_default","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UserUpdateQueue = exports.USER_UPDATE_WINDOW_MS = exports.USER_UPDATE_BURST = void 0;
7
+ var _client = require("../api/client.js");
8
+ /**
9
+ * Paces `updateUser()` the way Intercom paces its web `update` (20 calls per
10
+ * 30 minutes), so a host that calls it on a timer or on every GPS fix can't
11
+ * flood Workstation.
12
+ *
13
+ * - Values that match what Workstation already has are not sent again.
14
+ * - Up to `burst` sends go out straight away; after that one more is allowed
15
+ * every `windowMs / burst` (90 s by default).
16
+ * - While a send is in flight, rate limited or out of budget, new values wait
17
+ * and merge into one bag, newest value per key. Nothing is lost: the latest
18
+ * of every key goes out on the next allowed send. Workstation merges the bag
19
+ * into the saved attributes per key, so sending only what changed is enough.
20
+ * - A 429 holds sends until its `Retry-After`. A failed connection or a 5xx
21
+ * keeps the values and tries again later.
22
+ */
23
+
24
+ const USER_UPDATE_BURST = exports.USER_UPDATE_BURST = 20;
25
+ const USER_UPDATE_WINDOW_MS = exports.USER_UPDATE_WINDOW_MS = 30 * 60 * 1000;
26
+ /** Wait after a 429 without a usable `Retry-After`, or after a failed connection / 5xx. */
27
+ const DEFAULT_HOLD_MS = 60 * 1000;
28
+ class UserUpdateQueue {
29
+ /** Values Workstation accepted for the current identity. */
30
+ sent = {};
31
+ /** Values waiting for the next allowed send. */
32
+ pending = null;
33
+ inFlight = false;
34
+ holdUntil = 0;
35
+ timer = null;
36
+ /** Bumped by reset(): a send that settles after it writes nothing back. */
37
+ generation = 0;
38
+ constructor(send, options = {}) {
39
+ this.send = send;
40
+ this.burst = Math.max(1, options.burst ?? USER_UPDATE_BURST);
41
+ this.refillMs = (options.windowMs ?? USER_UPDATE_WINDOW_MS) / this.burst;
42
+ this.now = options.now ?? Date.now;
43
+ this.tokens = this.burst;
44
+ this.refilledAt = this.now();
45
+ }
46
+
47
+ /**
48
+ * Resolves once the values are sent, or straight away when nothing changed
49
+ * or they were held for a later send. Rejects only when a send made right
50
+ * now fails with something other than a 429, as `updateUser()` always has.
51
+ */
52
+ update(attributes) {
53
+ const changes = {};
54
+ for (const [key, value] of Object.entries(attributes)) {
55
+ const known = this.pending && key in this.pending ? this.pending[key] : this.sent[key];
56
+ if (known !== value) changes[key] = value;
57
+ }
58
+ if (Object.keys(changes).length === 0) return Promise.resolve();
59
+ this.pending = {
60
+ ...this.pending,
61
+ ...changes
62
+ };
63
+ if (this.inFlight || this.now() < this.holdUntil || !this.takeToken()) {
64
+ this.schedule();
65
+ return Promise.resolve();
66
+ }
67
+ return this.sendPending();
68
+ }
69
+
70
+ /** The visitor's identity changed (anonymous → signed in): Workstation may hold other values now. */
71
+ forgetSent() {
72
+ this.sent = {};
73
+ }
74
+
75
+ /** Sign-out or a different user: drop everything waiting so it can't reach the next visitor. */
76
+ reset() {
77
+ this.generation += 1;
78
+ this.clearTimer();
79
+ this.sent = {};
80
+ this.pending = null;
81
+ this.inFlight = false;
82
+ this.holdUntil = 0;
83
+ }
84
+ destroy() {
85
+ this.reset();
86
+ }
87
+
88
+ /** The send budget is per device, not per visitor, so reset() leaves it alone. */
89
+ takeToken() {
90
+ this.refill();
91
+ if (this.tokens < 1) return false;
92
+ this.tokens -= 1;
93
+ return true;
94
+ }
95
+ refill() {
96
+ const now = this.now();
97
+ if (this.tokens >= this.burst) {
98
+ this.refilledAt = now;
99
+ return;
100
+ }
101
+ const earned = Math.floor((now - this.refilledAt) / this.refillMs);
102
+ if (earned <= 0) return;
103
+ this.tokens = Math.min(this.burst, this.tokens + earned);
104
+ this.refilledAt = this.tokens === this.burst ? now : this.refilledAt + earned * this.refillMs;
105
+ }
106
+ async sendPending() {
107
+ const attributes = this.pending ?? {};
108
+ const generation = this.generation;
109
+ this.pending = null;
110
+ this.inFlight = true;
111
+ try {
112
+ await this.send(attributes);
113
+ if (generation !== this.generation) return;
114
+ this.sent = {
115
+ ...this.sent,
116
+ ...attributes
117
+ };
118
+ } catch (error) {
119
+ if (generation !== this.generation) throw error;
120
+ const status = error instanceof _client.RepzoWidgetError ? error.status : 0;
121
+ const retryable = status === 429 || status === 0 || status >= 500;
122
+ if (retryable) {
123
+ // Newer values that arrived meanwhile win over the ones that failed.
124
+ this.pending = {
125
+ ...attributes,
126
+ ...(this.pending ?? {})
127
+ };
128
+ const retryAfter = error instanceof _client.RepzoWidgetError ? error.retryAfter : undefined;
129
+ const holdMs = status === 429 && retryAfter && retryAfter > 0 ? retryAfter * 1000 : DEFAULT_HOLD_MS;
130
+ this.holdUntil = Math.max(this.holdUntil, this.now() + holdMs);
131
+ }
132
+ // Rate limited: the values are kept and go out later, so the call succeeded.
133
+ if (status !== 429) throw error;
134
+ } finally {
135
+ if (generation === this.generation) {
136
+ this.inFlight = false;
137
+ if (this.pending) this.schedule();
138
+ }
139
+ }
140
+ }
141
+ schedule() {
142
+ if (this.timer || this.inFlight || !this.pending) return;
143
+ this.refill();
144
+ const now = this.now();
145
+ const tokenAt = this.tokens >= 1 ? now : this.refilledAt + this.refillMs;
146
+ const delay = Math.max(0, this.holdUntil - now, tokenAt - now);
147
+ this.timer = setTimeout(() => {
148
+ this.timer = null;
149
+ this.flush();
150
+ }, delay);
151
+ }
152
+ flush() {
153
+ if (this.inFlight || !this.pending) return;
154
+ if (this.now() < this.holdUntil || !this.takeToken()) {
155
+ this.schedule();
156
+ return;
157
+ }
158
+ this.sendPending().catch(error => {
159
+ console.warn('[repzo-widget] updateUser failed', error);
160
+ });
161
+ }
162
+ clearTimer() {
163
+ if (this.timer) clearTimeout(this.timer);
164
+ this.timer = null;
165
+ }
166
+ }
167
+ exports.UserUpdateQueue = UserUpdateQueue;
168
+ //# sourceMappingURL=user-update-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_client","require","USER_UPDATE_BURST","exports","USER_UPDATE_WINDOW_MS","DEFAULT_HOLD_MS","UserUpdateQueue","sent","pending","inFlight","holdUntil","timer","generation","constructor","send","options","burst","Math","max","refillMs","windowMs","now","Date","tokens","refilledAt","update","attributes","changes","key","value","Object","entries","known","keys","length","Promise","resolve","takeToken","schedule","sendPending","forgetSent","reset","clearTimer","destroy","refill","earned","floor","min","error","status","RepzoWidgetError","retryable","retryAfter","undefined","holdMs","tokenAt","delay","setTimeout","flush","catch","console","warn","clearTimeout"],"sourceRoot":"../../../src","sources":["state/user-update-queue.ts"],"mappings":"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","ignoreList":[]}
@@ -18,6 +18,7 @@ var _useRetainedState = require("../ui/hooks/use-retained-state.js");
18
18
  var _conversations = require("../ui/utils/conversations.js");
19
19
  var _html = require("../ui/utils/html.js");
20
20
  var _safeUrl = require("../ui/utils/safe-url.js");
21
+ var _userUpdateQueue = require("./user-update-queue.js");
21
22
  /**
22
23
  * The widget's single source of truth.
23
24
  *
@@ -29,7 +30,7 @@ var _safeUrl = require("../ui/utils/safe-url.js");
29
30
  */
30
31
 
31
32
  /** Sent on every init; must match `package.json` (tests/version.test.js checks). */
32
- const SDK_VERSION = '@repzo/widget-react-native@1.4.0';
33
+ const SDK_VERSION = '@repzo/widget-react-native@1.5.0';
33
34
 
34
35
  /** The platform this session reports — mobile sessions get the Mobile SDKs overrides. */
35
36
  function sessionPlatform() {
@@ -127,6 +128,11 @@ const USER_SCOPED_STATE = {
127
128
  };
128
129
  class WidgetStore {
129
130
  client = new _client.WidgetApiClient();
131
+
132
+ /** Paces `updateUser()` — see `boot({ throttleUpdateUser })`. */
133
+ userUpdates = new _userUpdateQueue.UserUpdateQueue(customAttributes => this.client.identify({
134
+ customAttributes
135
+ }));
130
136
  events = new _events.EventEmitter();
131
137
  push = new _pushNotifications.PushManager(this.client, conversationId => {
132
138
  void this.openConversation(conversationId);
@@ -147,6 +153,8 @@ class WidgetStore {
147
153
  photoAlbumsEnabled = true;
148
154
  /** `boot({ youPrefix })` — "You:" before the visitor's own newest message in the lists. */
149
155
  youPrefixEnabled = true;
156
+ /** `boot({ throttleUpdateUser })` — skip unchanged `updateUser()` values and pace the rest. */
157
+ throttleUpdateUserEnabled = true;
150
158
 
151
159
  /** Posts whose view was reported this session (the server also dedupes per day). */
152
160
  viewedPostIds = new Set();
@@ -359,6 +367,9 @@ class WidgetStore {
359
367
  }
360
368
  if (options.photoAlbums !== undefined) this.photoAlbumsEnabled = options.photoAlbums !== false;
361
369
  if (options.youPrefix !== undefined) this.youPrefixEnabled = options.youPrefix !== false;
370
+ if (options.throttleUpdateUser !== undefined) {
371
+ this.throttleUpdateUserEnabled = options.throttleUpdateUser !== false;
372
+ }
362
373
  if (options.posts !== undefined) {
363
374
  const wasEnabled = this.postsEnabled;
364
375
  this.postsEnabled = options.posts !== false;
@@ -529,6 +540,10 @@ class WidgetStore {
529
540
  const onScreenId = this.state.activeConversationId;
530
541
  if (onScreenId && this.isThreadOnScreen(onScreenId)) delete unreadByConversation[onScreenId];
531
542
  this.persistUnread(unreadByConversation);
543
+
544
+ // A new identity (anonymous → signed in) may hold other attributes, so
545
+ // nothing is skipped as "already sent" for it.
546
+ if (result.identityId !== this.state.identityId) this.userUpdates.forgetSent();
532
547
  this.setState(current => ({
533
548
  booted: true,
534
549
  loading: false,
@@ -757,9 +772,13 @@ class WidgetStore {
757
772
  if (!this.state.booted) await this.bootPromise;
758
773
  const customAttributes = sanitizeAttributes(attributes);
759
774
  if (Object.keys(customAttributes).length === 0) return;
760
- await this.client.identify({
761
- customAttributes
762
- });
775
+ if (!this.throttleUpdateUserEnabled) {
776
+ await this.client.identify({
777
+ customAttributes
778
+ });
779
+ return;
780
+ }
781
+ await this.userUpdates.update(customAttributes);
763
782
  }
764
783
 
765
784
  /**
@@ -771,6 +790,7 @@ class WidgetStore {
771
790
  this.loggedOut = true;
772
791
  this.currentUser = null;
773
792
  this.pendingConversationId = null;
793
+ this.userUpdates.reset();
774
794
  this.realtime.close();
775
795
  this.clearTypingTimer();
776
796
  this.resetThreadTracking();
@@ -802,6 +822,8 @@ class WidgetStore {
802
822
  }
803
823
  async wipeSessionUnguarded() {
804
824
  this.realtime.close();
825
+ // Attributes waiting for the old visitor must never reach the next one.
826
+ this.userUpdates.reset();
805
827
  this.clearTypingTimer();
806
828
  this.resetThreadTracking();
807
829
  this.appStateSubscription?.remove();
@@ -2612,6 +2634,7 @@ class WidgetStore {
2612
2634
  // ─── Teardown (tests / hot reload) ──────────────────────────────────────
2613
2635
 
2614
2636
  destroy() {
2637
+ this.userUpdates.destroy();
2615
2638
  this.clearPostRecheck();
2616
2639
  this.clearPostThanks();
2617
2640
  this.realtime.close();