oneskies-live-chat-widget 0.1.6 → 0.1.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAmFF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAc,EAAE,EAAE,wBAAwB,2CA4EhG;AA8ID,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAA4B,EAC5B,YAA+B,GAChC,EAAE,mBAAmB,2CAqwCrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAiHF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAc,EAAE,EAAE,wBAAwB,2CA4EhG;AAuLD,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAA4B,EAC5B,YAA+B,GAChC,EAAE,mBAAmB,2CA06CrB"}
package/dist/index.js CHANGED
@@ -10,6 +10,13 @@ const WS_RECONNECT_BASE_DELAY_MS = 650;
10
10
  const WS_RECONNECT_MAX_DELAY_MS = 12000;
11
11
  const WS_MAX_MESSAGE_CHARS = 128 * 1024;
12
12
  const LIVE_CHAT_BLOCKED_STATUS = 423;
13
+ const VISITOR_EVENT_QUEUE_LIMIT = 40;
14
+ const FIELD_VALUE_CACHE_LIMIT = 80;
15
+ const PAGE_URL_CACHE_LIMIT = 80;
16
+ const TOUCHED_FIELD_CACHE_LIMIT = 160;
17
+ const PAGE_URL_FALLBACK_POLL_MS = 2500;
18
+ const FIELD_VALUE_INPUT_DEBOUNCE_MS = 900;
19
+ const LIVE_CHAT_FIELD_INPUT_EVENT = "oneskies-live-chat:field-input";
13
20
  function toTitleCase(name) {
14
21
  return name.replace(/\S+/g, (word) => word
15
22
  .split(/(['-])/)
@@ -156,6 +163,52 @@ function liveChatTrackedFieldKey(element) {
156
163
  const fieldKey = element.name || element.id || element.getAttribute("aria-label") || placeholder || element.type || element.tagName;
157
164
  return `${formKey}:${fieldKey}`.slice(0, 220);
158
165
  }
166
+ function liveChatFieldLabel(element) {
167
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement))
168
+ return "Field";
169
+ const escapedId = element.id && typeof CSS !== "undefined" && "escape" in CSS ? CSS.escape(element.id) : "";
170
+ const explicitLabel = escapedId ? document.querySelector(`label[for="${escapedId}"]`)?.textContent?.trim() : "";
171
+ const wrappedLabel = element.closest("label")?.textContent?.trim() ?? "";
172
+ const placeholder = element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement ? element.placeholder : "";
173
+ return (explicitLabel || wrappedLabel || element.getAttribute("aria-label") || placeholder || element.name || element.id || "Field").replace(/\s+/g, " ").slice(0, 160);
174
+ }
175
+ function liveChatFieldValuePreview(element) {
176
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement))
177
+ return "";
178
+ const key = `${element.name} ${element.id} ${element.getAttribute("aria-label") ?? ""} ${element instanceof HTMLInputElement ? element.placeholder : ""}`.toLowerCase();
179
+ if (/(password|passcode|card|cc|cvv|cvc|security|ssn|social|secret|token)/.test(key))
180
+ return "[redacted]";
181
+ if (element instanceof HTMLInputElement && ["checkbox", "radio"].includes(element.type))
182
+ return element.checked ? "selected" : "cleared";
183
+ if (element instanceof HTMLSelectElement)
184
+ return element.selectedOptions[0]?.textContent?.trim().slice(0, 160) || element.value.slice(0, 160);
185
+ return element.value.trim().replace(/\s+/g, " ").slice(0, 160);
186
+ }
187
+ function rememberLatestFieldValue(cache, key, value) {
188
+ if (cache.get(key) === value)
189
+ return false;
190
+ cache.delete(key);
191
+ cache.set(key, value);
192
+ while (cache.size > FIELD_VALUE_CACHE_LIMIT) {
193
+ const oldest = cache.keys().next().value;
194
+ if (!oldest)
195
+ break;
196
+ cache.delete(oldest);
197
+ }
198
+ return true;
199
+ }
200
+ function rememberSetValue(cache, value, limit) {
201
+ if (!value)
202
+ return;
203
+ cache.delete(value);
204
+ cache.add(value);
205
+ while (cache.size > limit) {
206
+ const oldest = cache.values().next().value;
207
+ if (!oldest)
208
+ break;
209
+ cache.delete(oldest);
210
+ }
211
+ }
159
212
  function messageTime(value) {
160
213
  const date = new Date(value);
161
214
  if (Number.isNaN(date.getTime()))
@@ -267,6 +320,10 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
267
320
  const unreadPreviewTimeoutRef = useRef(null);
268
321
  const pageUrlsRef = useRef(new Set());
269
322
  const touchedFieldsRef = useRef(new Set());
323
+ const lastSentFieldValueRef = useRef(new Map());
324
+ const pendingFieldValueElementRef = useRef(null);
325
+ const fieldValueFlushTimeoutRef = useRef(null);
326
+ const pendingVisitorEventsRef = useRef([]);
270
327
  const stateBroadcastTimeoutRef = useRef(null);
271
328
  const banReloadedRef = useRef(false);
272
329
  const baseUrl = useMemo(() => normalizedBaseUrl(apiBaseUrl), [apiBaseUrl]);
@@ -283,6 +340,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
283
340
  type: "state",
284
341
  open: openRef.current,
285
342
  page_url: currentUrl,
343
+ page_title: document.title || "",
286
344
  referrer_url: document.referrer || "",
287
345
  utm_source: liveChatQueryParam("utm_source"),
288
346
  utm_medium: liveChatQueryParam("utm_medium"),
@@ -291,6 +349,38 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
291
349
  fields_touched_count: touchedFieldsRef.current.size,
292
350
  };
293
351
  }
352
+ function buildVisitorEventPayload(payload) {
353
+ return {
354
+ type: "event",
355
+ page_url: payload.page_url ?? liveChatCurrentUrl(),
356
+ page_title: payload.page_title ?? document.title ?? "",
357
+ referrer_url: payload.referrer_url ?? document.referrer ?? "",
358
+ utm_source: liveChatQueryParam("utm_source"),
359
+ utm_medium: liveChatQueryParam("utm_medium"),
360
+ utm_campaign: liveChatQueryParam("utm_campaign"),
361
+ fields_touched_count: touchedFieldsRef.current.size,
362
+ page_view_count: Math.max(1, pageUrlsRef.current.size),
363
+ ...payload,
364
+ };
365
+ }
366
+ function flushVisitorEvents() {
367
+ const socket = wsRef.current;
368
+ if (socket?.readyState !== WebSocket.OPEN)
369
+ return;
370
+ const pending = pendingVisitorEventsRef.current.splice(0, 80);
371
+ for (const event of pending) {
372
+ socket.send(JSON.stringify(event));
373
+ }
374
+ }
375
+ function sendVisitorEvent(payload) {
376
+ const event = buildVisitorEventPayload(payload);
377
+ const socket = wsRef.current;
378
+ if (socket?.readyState !== WebSocket.OPEN) {
379
+ pendingVisitorEventsRef.current = [...pendingVisitorEventsRef.current.slice(-(VISITOR_EVENT_QUEUE_LIMIT - 1)), event];
380
+ return;
381
+ }
382
+ socket.send(JSON.stringify(event));
383
+ }
294
384
  function sendStateNow() {
295
385
  const socket = wsRef.current;
296
386
  if (socket?.readyState !== WebSocket.OPEN)
@@ -419,44 +509,148 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
419
509
  useEffect(() => {
420
510
  if (!session)
421
511
  return;
422
- pageUrlsRef.current.add(liveChatCurrentUrl());
512
+ pendingVisitorEventsRef.current = [];
513
+ lastSentFieldValueRef.current.clear();
514
+ rememberSetValue(pageUrlsRef.current, liveChatCurrentUrl(), PAGE_URL_CACHE_LIMIT);
423
515
  let lastUrl = liveChatCurrentUrl();
424
516
  function recordPageView() {
425
517
  const currentUrl = liveChatCurrentUrl();
426
518
  if (!currentUrl || currentUrl === lastUrl)
427
519
  return;
520
+ flushCurrentFieldValues();
428
521
  lastUrl = currentUrl;
429
- pageUrlsRef.current.add(currentUrl);
522
+ rememberSetValue(pageUrlsRef.current, currentUrl, PAGE_URL_CACHE_LIMIT);
523
+ sendVisitorEvent({ event_type: "page_view", page_url: currentUrl });
430
524
  scheduleStateBroadcast(120);
431
525
  }
432
- function recordFieldTouch(event) {
526
+ function recordFieldTouched(event) {
433
527
  const target = event.target;
434
528
  if (!(target instanceof Element))
435
529
  return;
436
530
  const key = liveChatTrackedFieldKey(target);
437
- if (!key || touchedFieldsRef.current.has(key))
531
+ if (!key)
532
+ return;
533
+ const firstTouch = !touchedFieldsRef.current.has(key);
534
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
535
+ if (firstTouch)
536
+ scheduleStateBroadcast(220);
537
+ }
538
+ function clearScheduledFieldValueFlush() {
539
+ if (!fieldValueFlushTimeoutRef.current)
540
+ return;
541
+ window.clearTimeout(fieldValueFlushTimeoutRef.current);
542
+ fieldValueFlushTimeoutRef.current = null;
543
+ }
544
+ function recordFieldValue(target) {
545
+ if (!(target instanceof Element))
546
+ return;
547
+ const key = liveChatTrackedFieldKey(target);
548
+ if (!key)
549
+ return;
550
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
551
+ const valuePreview = liveChatFieldValuePreview(target);
552
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
553
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
554
+ scheduleStateBroadcast(220);
438
555
  return;
439
- touchedFieldsRef.current.add(key);
556
+ }
557
+ sendVisitorEvent({
558
+ event_type: "field_input",
559
+ field_key: key,
560
+ field_label: liveChatFieldLabel(target),
561
+ value_preview: valuePreview,
562
+ });
440
563
  scheduleStateBroadcast(220);
441
564
  }
565
+ function flushPendingFieldValue() {
566
+ const target = pendingFieldValueElementRef.current;
567
+ pendingFieldValueElementRef.current = null;
568
+ clearScheduledFieldValueFlush();
569
+ recordFieldValue(target);
570
+ }
571
+ function scheduleFieldValueFlush(target) {
572
+ if (!(target instanceof Element))
573
+ return;
574
+ if (!liveChatTrackedFieldKey(target))
575
+ return;
576
+ pendingFieldValueElementRef.current = target;
577
+ clearScheduledFieldValueFlush();
578
+ fieldValueFlushTimeoutRef.current = window.setTimeout(() => {
579
+ fieldValueFlushTimeoutRef.current = null;
580
+ flushPendingFieldValue();
581
+ }, FIELD_VALUE_INPUT_DEBOUNCE_MS);
582
+ }
583
+ function recordFieldInputEvent(event) {
584
+ recordFieldTouched(event);
585
+ scheduleFieldValueFlush(event.target);
586
+ }
587
+ function recordFieldValueEvent(event) {
588
+ clearScheduledFieldValueFlush();
589
+ pendingFieldValueElementRef.current = null;
590
+ recordFieldValue(event.target);
591
+ }
592
+ function recordCustomFieldValue(event) {
593
+ if (!(event instanceof CustomEvent))
594
+ return;
595
+ const detail = event.detail;
596
+ const key = String(detail?.key ?? "").trim();
597
+ if (!key)
598
+ return;
599
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
600
+ const valuePreview = String(detail?.value ?? "").trim().replace(/\s+/g, " ").slice(0, 160);
601
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
602
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
603
+ scheduleStateBroadcast(220);
604
+ return;
605
+ }
606
+ sendVisitorEvent({
607
+ event_type: "field_input",
608
+ field_key: key,
609
+ field_label: String(detail?.label ?? "").trim() || "Field",
610
+ value_preview: valuePreview,
611
+ });
612
+ scheduleStateBroadcast(220);
613
+ }
614
+ function flushFocusedField() {
615
+ recordFieldValue(document.activeElement);
616
+ }
617
+ function flushCurrentFieldValues() {
618
+ flushPendingFieldValue();
619
+ flushFocusedField();
620
+ }
621
+ function flushSubmittedForm(event) {
622
+ flushPendingFieldValue();
623
+ if (event.target instanceof HTMLFormElement) {
624
+ Array.from(event.target.elements).forEach((element) => recordFieldValue(element));
625
+ return;
626
+ }
627
+ flushFocusedField();
628
+ }
442
629
  const originalPushState = window.history.pushState;
443
630
  const originalReplaceState = window.history.replaceState;
444
631
  window.history.pushState = function patchedPushState(...args) {
632
+ flushCurrentFieldValues();
445
633
  const result = originalPushState.apply(this, args);
446
634
  window.setTimeout(recordPageView, 0);
447
635
  return result;
448
636
  };
449
637
  window.history.replaceState = function patchedReplaceState(...args) {
638
+ flushCurrentFieldValues();
450
639
  const result = originalReplaceState.apply(this, args);
451
640
  window.setTimeout(recordPageView, 0);
452
641
  return result;
453
642
  };
454
- const interval = window.setInterval(recordPageView, 1000);
643
+ const interval = window.setInterval(recordPageView, PAGE_URL_FALLBACK_POLL_MS);
455
644
  window.addEventListener("popstate", recordPageView);
456
645
  window.addEventListener("hashchange", recordPageView);
457
- document.addEventListener("focusin", recordFieldTouch, true);
458
- document.addEventListener("input", recordFieldTouch, true);
459
- document.addEventListener("change", recordFieldTouch, true);
646
+ window.addEventListener("pagehide", flushCurrentFieldValues);
647
+ window.addEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
648
+ document.addEventListener("submit", flushSubmittedForm, true);
649
+ document.addEventListener("focusin", recordFieldTouched, true);
650
+ document.addEventListener("input", recordFieldInputEvent, true);
651
+ document.addEventListener("change", recordFieldValueEvent, true);
652
+ document.addEventListener("focusout", recordFieldValueEvent, true);
653
+ sendVisitorEvent({ event_type: "page_view", page_url: liveChatCurrentUrl() });
460
654
  scheduleStateBroadcast(350);
461
655
  return () => {
462
656
  window.history.pushState = originalPushState;
@@ -464,15 +658,29 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
464
658
  window.clearInterval(interval);
465
659
  window.removeEventListener("popstate", recordPageView);
466
660
  window.removeEventListener("hashchange", recordPageView);
467
- document.removeEventListener("focusin", recordFieldTouch, true);
468
- document.removeEventListener("input", recordFieldTouch, true);
469
- document.removeEventListener("change", recordFieldTouch, true);
661
+ window.removeEventListener("pagehide", flushCurrentFieldValues);
662
+ window.removeEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
663
+ document.removeEventListener("submit", flushSubmittedForm, true);
664
+ document.removeEventListener("focusin", recordFieldTouched, true);
665
+ document.removeEventListener("input", recordFieldInputEvent, true);
666
+ document.removeEventListener("change", recordFieldValueEvent, true);
667
+ document.removeEventListener("focusout", recordFieldValueEvent, true);
668
+ clearScheduledFieldValueFlush();
669
+ pendingFieldValueElementRef.current = null;
470
670
  if (stateBroadcastTimeoutRef.current) {
471
671
  window.clearTimeout(stateBroadcastTimeoutRef.current);
472
672
  stateBroadcastTimeoutRef.current = null;
473
673
  }
474
674
  };
475
675
  }, [session]);
676
+ useEffect(() => {
677
+ if (session)
678
+ return;
679
+ pendingVisitorEventsRef.current = [];
680
+ lastSentFieldValueRef.current.clear();
681
+ touchedFieldsRef.current.clear();
682
+ pageUrlsRef.current.clear();
683
+ }, [session]);
476
684
  useEffect(() => {
477
685
  if (!profileReady || session || !profile)
478
686
  return;
@@ -586,6 +794,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
586
794
  return;
587
795
  reconnectAttempts = 0;
588
796
  sendStateNow();
797
+ flushVisitorEvents();
589
798
  };
590
799
  socket.onmessage = (event) => {
591
800
  if (cancelled || activeSocket !== socket)
@@ -666,7 +875,12 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
666
875
  api_key: apiKey,
667
876
  client_id: clientId,
668
877
  }).toString()}`;
669
- const body = JSON.stringify({ client_id: clientId });
878
+ const body = JSON.stringify({
879
+ client_id: clientId,
880
+ page_url: liveChatCurrentUrl(),
881
+ page_title: document.title || "",
882
+ referrer_url: document.referrer || "",
883
+ });
670
884
  if (typeof navigator !== "undefined" && "sendBeacon" in navigator) {
671
885
  const blob = new Blob([body], { type: "application/json" });
672
886
  navigator.sendBeacon(url, blob);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oneskies-live-chat-widget",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/src/index.tsx CHANGED
@@ -61,6 +61,7 @@ type LiveChatStatePayload = {
61
61
  type: "state";
62
62
  open: boolean;
63
63
  page_url: string;
64
+ page_title: string;
64
65
  referrer_url: string;
65
66
  utm_source: string;
66
67
  utm_medium: string;
@@ -69,6 +70,28 @@ type LiveChatStatePayload = {
69
70
  fields_touched_count: number;
70
71
  };
71
72
 
73
+ type LiveChatVisitorEventPayload = {
74
+ type: "event";
75
+ event_type: "page_view" | "field_input" | "session_end";
76
+ page_url: string;
77
+ page_title: string;
78
+ referrer_url: string;
79
+ utm_source: string;
80
+ utm_medium: string;
81
+ utm_campaign: string;
82
+ field_key?: string;
83
+ field_label?: string;
84
+ value_preview?: string;
85
+ fields_touched_count: number;
86
+ page_view_count: number;
87
+ };
88
+
89
+ type LiveChatTrackedFieldInput = {
90
+ key: string;
91
+ label: string;
92
+ value: string;
93
+ };
94
+
72
95
  type StoredProfile = {
73
96
  name: string;
74
97
  visitorId: string;
@@ -82,6 +105,13 @@ const WS_RECONNECT_BASE_DELAY_MS = 650;
82
105
  const WS_RECONNECT_MAX_DELAY_MS = 12_000;
83
106
  const WS_MAX_MESSAGE_CHARS = 128 * 1024;
84
107
  const LIVE_CHAT_BLOCKED_STATUS = 423;
108
+ const VISITOR_EVENT_QUEUE_LIMIT = 40;
109
+ const FIELD_VALUE_CACHE_LIMIT = 80;
110
+ const PAGE_URL_CACHE_LIMIT = 80;
111
+ const TOUCHED_FIELD_CACHE_LIMIT = 160;
112
+ const PAGE_URL_FALLBACK_POLL_MS = 2500;
113
+ const FIELD_VALUE_INPUT_DEBOUNCE_MS = 900;
114
+ const LIVE_CHAT_FIELD_INPUT_EVENT = "oneskies-live-chat:field-input";
85
115
 
86
116
  function toTitleCase(name: string): string {
87
117
  return name.replace(/\S+/g, (word) =>
@@ -250,6 +280,47 @@ function liveChatTrackedFieldKey(element: Element): string {
250
280
  return `${formKey}:${fieldKey}`.slice(0, 220);
251
281
  }
252
282
 
283
+ function liveChatFieldLabel(element: Element): string {
284
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement)) return "Field";
285
+ const escapedId = element.id && typeof CSS !== "undefined" && "escape" in CSS ? CSS.escape(element.id) : "";
286
+ const explicitLabel = escapedId ? document.querySelector(`label[for="${escapedId}"]`)?.textContent?.trim() : "";
287
+ const wrappedLabel = element.closest("label")?.textContent?.trim() ?? "";
288
+ const placeholder = element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement ? element.placeholder : "";
289
+ return (explicitLabel || wrappedLabel || element.getAttribute("aria-label") || placeholder || element.name || element.id || "Field").replace(/\s+/g, " ").slice(0, 160);
290
+ }
291
+
292
+ function liveChatFieldValuePreview(element: Element): string {
293
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement)) return "";
294
+ const key = `${element.name} ${element.id} ${element.getAttribute("aria-label") ?? ""} ${element instanceof HTMLInputElement ? element.placeholder : ""}`.toLowerCase();
295
+ if (/(password|passcode|card|cc|cvv|cvc|security|ssn|social|secret|token)/.test(key)) return "[redacted]";
296
+ if (element instanceof HTMLInputElement && ["checkbox", "radio"].includes(element.type)) return element.checked ? "selected" : "cleared";
297
+ if (element instanceof HTMLSelectElement) return element.selectedOptions[0]?.textContent?.trim().slice(0, 160) || element.value.slice(0, 160);
298
+ return element.value.trim().replace(/\s+/g, " ").slice(0, 160);
299
+ }
300
+
301
+ function rememberLatestFieldValue(cache: Map<string, string>, key: string, value: string): boolean {
302
+ if (cache.get(key) === value) return false;
303
+ cache.delete(key);
304
+ cache.set(key, value);
305
+ while (cache.size > FIELD_VALUE_CACHE_LIMIT) {
306
+ const oldest = cache.keys().next().value;
307
+ if (!oldest) break;
308
+ cache.delete(oldest);
309
+ }
310
+ return true;
311
+ }
312
+
313
+ function rememberSetValue(cache: Set<string>, value: string, limit: number) {
314
+ if (!value) return;
315
+ cache.delete(value);
316
+ cache.add(value);
317
+ while (cache.size > limit) {
318
+ const oldest = cache.values().next().value;
319
+ if (!oldest) break;
320
+ cache.delete(oldest);
321
+ }
322
+ }
323
+
253
324
  function messageTime(value: string): string {
254
325
  const date = new Date(value);
255
326
  if (Number.isNaN(date.getTime())) return "";
@@ -369,6 +440,10 @@ export function LiveChatWidget({
369
440
  const unreadPreviewTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
370
441
  const pageUrlsRef = useRef<Set<string>>(new Set());
371
442
  const touchedFieldsRef = useRef<Set<string>>(new Set());
443
+ const lastSentFieldValueRef = useRef<Map<string, string>>(new Map());
444
+ const pendingFieldValueElementRef = useRef<Element | null>(null);
445
+ const fieldValueFlushTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
446
+ const pendingVisitorEventsRef = useRef<LiveChatVisitorEventPayload[]>([]);
372
447
  const stateBroadcastTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
373
448
  const banReloadedRef = useRef(false);
374
449
 
@@ -386,6 +461,7 @@ export function LiveChatWidget({
386
461
  type: "state",
387
462
  open: openRef.current,
388
463
  page_url: currentUrl,
464
+ page_title: document.title || "",
389
465
  referrer_url: document.referrer || "",
390
466
  utm_source: liveChatQueryParam("utm_source"),
391
467
  utm_medium: liveChatQueryParam("utm_medium"),
@@ -395,6 +471,40 @@ export function LiveChatWidget({
395
471
  };
396
472
  }
397
473
 
474
+ function buildVisitorEventPayload(payload: Omit<LiveChatVisitorEventPayload, "type" | "page_url" | "page_title" | "referrer_url" | "utm_source" | "utm_medium" | "utm_campaign" | "fields_touched_count" | "page_view_count"> & Partial<Pick<LiveChatVisitorEventPayload, "page_url" | "page_title" | "referrer_url">>): LiveChatVisitorEventPayload {
475
+ return {
476
+ type: "event",
477
+ page_url: payload.page_url ?? liveChatCurrentUrl(),
478
+ page_title: payload.page_title ?? document.title ?? "",
479
+ referrer_url: payload.referrer_url ?? document.referrer ?? "",
480
+ utm_source: liveChatQueryParam("utm_source"),
481
+ utm_medium: liveChatQueryParam("utm_medium"),
482
+ utm_campaign: liveChatQueryParam("utm_campaign"),
483
+ fields_touched_count: touchedFieldsRef.current.size,
484
+ page_view_count: Math.max(1, pageUrlsRef.current.size),
485
+ ...payload,
486
+ };
487
+ }
488
+
489
+ function flushVisitorEvents() {
490
+ const socket = wsRef.current;
491
+ if (socket?.readyState !== WebSocket.OPEN) return;
492
+ const pending = pendingVisitorEventsRef.current.splice(0, 80);
493
+ for (const event of pending) {
494
+ socket.send(JSON.stringify(event));
495
+ }
496
+ }
497
+
498
+ function sendVisitorEvent(payload: Parameters<typeof buildVisitorEventPayload>[0]) {
499
+ const event = buildVisitorEventPayload(payload);
500
+ const socket = wsRef.current;
501
+ if (socket?.readyState !== WebSocket.OPEN) {
502
+ pendingVisitorEventsRef.current = [...pendingVisitorEventsRef.current.slice(-(VISITOR_EVENT_QUEUE_LIMIT - 1)), event];
503
+ return;
504
+ }
505
+ socket.send(JSON.stringify(event));
506
+ }
507
+
398
508
  function sendStateNow() {
399
509
  const socket = wsRef.current;
400
510
  if (socket?.readyState !== WebSocket.OPEN) return;
@@ -518,44 +628,150 @@ export function LiveChatWidget({
518
628
 
519
629
  useEffect(() => {
520
630
  if (!session) return;
521
- pageUrlsRef.current.add(liveChatCurrentUrl());
631
+ pendingVisitorEventsRef.current = [];
632
+ lastSentFieldValueRef.current.clear();
633
+ rememberSetValue(pageUrlsRef.current, liveChatCurrentUrl(), PAGE_URL_CACHE_LIMIT);
522
634
  let lastUrl = liveChatCurrentUrl();
523
635
 
524
636
  function recordPageView() {
525
637
  const currentUrl = liveChatCurrentUrl();
526
638
  if (!currentUrl || currentUrl === lastUrl) return;
639
+ flushCurrentFieldValues();
527
640
  lastUrl = currentUrl;
528
- pageUrlsRef.current.add(currentUrl);
641
+ rememberSetValue(pageUrlsRef.current, currentUrl, PAGE_URL_CACHE_LIMIT);
642
+ sendVisitorEvent({ event_type: "page_view", page_url: currentUrl });
529
643
  scheduleStateBroadcast(120);
530
644
  }
531
645
 
532
- function recordFieldTouch(event: Event) {
646
+ function recordFieldTouched(event: Event) {
533
647
  const target = event.target;
534
648
  if (!(target instanceof Element)) return;
535
649
  const key = liveChatTrackedFieldKey(target);
536
- if (!key || touchedFieldsRef.current.has(key)) return;
537
- touchedFieldsRef.current.add(key);
650
+ if (!key) return;
651
+ const firstTouch = !touchedFieldsRef.current.has(key);
652
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
653
+ if (firstTouch) scheduleStateBroadcast(220);
654
+ }
655
+
656
+ function clearScheduledFieldValueFlush() {
657
+ if (!fieldValueFlushTimeoutRef.current) return;
658
+ window.clearTimeout(fieldValueFlushTimeoutRef.current);
659
+ fieldValueFlushTimeoutRef.current = null;
660
+ }
661
+
662
+ function recordFieldValue(target: EventTarget | null) {
663
+ if (!(target instanceof Element)) return;
664
+ const key = liveChatTrackedFieldKey(target);
665
+ if (!key) return;
666
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
667
+ const valuePreview = liveChatFieldValuePreview(target);
668
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
669
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
670
+ scheduleStateBroadcast(220);
671
+ return;
672
+ }
673
+ sendVisitorEvent({
674
+ event_type: "field_input",
675
+ field_key: key,
676
+ field_label: liveChatFieldLabel(target),
677
+ value_preview: valuePreview,
678
+ });
679
+ scheduleStateBroadcast(220);
680
+ }
681
+
682
+ function flushPendingFieldValue() {
683
+ const target = pendingFieldValueElementRef.current;
684
+ pendingFieldValueElementRef.current = null;
685
+ clearScheduledFieldValueFlush();
686
+ recordFieldValue(target);
687
+ }
688
+
689
+ function scheduleFieldValueFlush(target: EventTarget | null) {
690
+ if (!(target instanceof Element)) return;
691
+ if (!liveChatTrackedFieldKey(target)) return;
692
+ pendingFieldValueElementRef.current = target;
693
+ clearScheduledFieldValueFlush();
694
+ fieldValueFlushTimeoutRef.current = window.setTimeout(() => {
695
+ fieldValueFlushTimeoutRef.current = null;
696
+ flushPendingFieldValue();
697
+ }, FIELD_VALUE_INPUT_DEBOUNCE_MS);
698
+ }
699
+
700
+ function recordFieldInputEvent(event: Event) {
701
+ recordFieldTouched(event);
702
+ scheduleFieldValueFlush(event.target);
703
+ }
704
+
705
+ function recordFieldValueEvent(event: Event) {
706
+ clearScheduledFieldValueFlush();
707
+ pendingFieldValueElementRef.current = null;
708
+ recordFieldValue(event.target);
709
+ }
710
+
711
+ function recordCustomFieldValue(event: Event) {
712
+ if (!(event instanceof CustomEvent)) return;
713
+ const detail = event.detail as Partial<LiveChatTrackedFieldInput> | undefined;
714
+ const key = String(detail?.key ?? "").trim();
715
+ if (!key) return;
716
+ rememberSetValue(touchedFieldsRef.current, key, TOUCHED_FIELD_CACHE_LIMIT);
717
+ const valuePreview = String(detail?.value ?? "").trim().replace(/\s+/g, " ").slice(0, 160);
718
+ const dedupeValue = `${liveChatCurrentUrl()}|${valuePreview}`;
719
+ if (!rememberLatestFieldValue(lastSentFieldValueRef.current, key, dedupeValue)) {
720
+ scheduleStateBroadcast(220);
721
+ return;
722
+ }
723
+ sendVisitorEvent({
724
+ event_type: "field_input",
725
+ field_key: key,
726
+ field_label: String(detail?.label ?? "").trim() || "Field",
727
+ value_preview: valuePreview,
728
+ });
538
729
  scheduleStateBroadcast(220);
539
730
  }
540
731
 
732
+ function flushFocusedField() {
733
+ recordFieldValue(document.activeElement);
734
+ }
735
+
736
+ function flushCurrentFieldValues() {
737
+ flushPendingFieldValue();
738
+ flushFocusedField();
739
+ }
740
+
741
+ function flushSubmittedForm(event: Event) {
742
+ flushPendingFieldValue();
743
+ if (event.target instanceof HTMLFormElement) {
744
+ Array.from(event.target.elements).forEach((element) => recordFieldValue(element));
745
+ return;
746
+ }
747
+ flushFocusedField();
748
+ }
749
+
541
750
  const originalPushState = window.history.pushState;
542
751
  const originalReplaceState = window.history.replaceState;
543
752
  window.history.pushState = function patchedPushState(...args) {
753
+ flushCurrentFieldValues();
544
754
  const result = originalPushState.apply(this, args);
545
755
  window.setTimeout(recordPageView, 0);
546
756
  return result;
547
757
  };
548
758
  window.history.replaceState = function patchedReplaceState(...args) {
759
+ flushCurrentFieldValues();
549
760
  const result = originalReplaceState.apply(this, args);
550
761
  window.setTimeout(recordPageView, 0);
551
762
  return result;
552
763
  };
553
- const interval = window.setInterval(recordPageView, 1000);
764
+ const interval = window.setInterval(recordPageView, PAGE_URL_FALLBACK_POLL_MS);
554
765
  window.addEventListener("popstate", recordPageView);
555
766
  window.addEventListener("hashchange", recordPageView);
556
- document.addEventListener("focusin", recordFieldTouch, true);
557
- document.addEventListener("input", recordFieldTouch, true);
558
- document.addEventListener("change", recordFieldTouch, true);
767
+ window.addEventListener("pagehide", flushCurrentFieldValues);
768
+ window.addEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
769
+ document.addEventListener("submit", flushSubmittedForm, true);
770
+ document.addEventListener("focusin", recordFieldTouched, true);
771
+ document.addEventListener("input", recordFieldInputEvent, true);
772
+ document.addEventListener("change", recordFieldValueEvent, true);
773
+ document.addEventListener("focusout", recordFieldValueEvent, true);
774
+ sendVisitorEvent({ event_type: "page_view", page_url: liveChatCurrentUrl() });
559
775
  scheduleStateBroadcast(350);
560
776
  return () => {
561
777
  window.history.pushState = originalPushState;
@@ -563,9 +779,15 @@ export function LiveChatWidget({
563
779
  window.clearInterval(interval);
564
780
  window.removeEventListener("popstate", recordPageView);
565
781
  window.removeEventListener("hashchange", recordPageView);
566
- document.removeEventListener("focusin", recordFieldTouch, true);
567
- document.removeEventListener("input", recordFieldTouch, true);
568
- document.removeEventListener("change", recordFieldTouch, true);
782
+ window.removeEventListener("pagehide", flushCurrentFieldValues);
783
+ window.removeEventListener(LIVE_CHAT_FIELD_INPUT_EVENT, recordCustomFieldValue);
784
+ document.removeEventListener("submit", flushSubmittedForm, true);
785
+ document.removeEventListener("focusin", recordFieldTouched, true);
786
+ document.removeEventListener("input", recordFieldInputEvent, true);
787
+ document.removeEventListener("change", recordFieldValueEvent, true);
788
+ document.removeEventListener("focusout", recordFieldValueEvent, true);
789
+ clearScheduledFieldValueFlush();
790
+ pendingFieldValueElementRef.current = null;
569
791
  if (stateBroadcastTimeoutRef.current) {
570
792
  window.clearTimeout(stateBroadcastTimeoutRef.current);
571
793
  stateBroadcastTimeoutRef.current = null;
@@ -573,6 +795,14 @@ export function LiveChatWidget({
573
795
  };
574
796
  }, [session]);
575
797
 
798
+ useEffect(() => {
799
+ if (session) return;
800
+ pendingVisitorEventsRef.current = [];
801
+ lastSentFieldValueRef.current.clear();
802
+ touchedFieldsRef.current.clear();
803
+ pageUrlsRef.current.clear();
804
+ }, [session]);
805
+
576
806
  useEffect(() => {
577
807
  if (!profileReady || session || !profile) return;
578
808
  if (startSessionRef.current) return;
@@ -673,6 +903,7 @@ export function LiveChatWidget({
673
903
  if (cancelled || activeSocket !== socket) return;
674
904
  reconnectAttempts = 0;
675
905
  sendStateNow();
906
+ flushVisitorEvents();
676
907
  };
677
908
  socket.onmessage = (event) => {
678
909
  if (cancelled || activeSocket !== socket) return;
@@ -745,7 +976,12 @@ export function LiveChatWidget({
745
976
  api_key: apiKey,
746
977
  client_id: clientId,
747
978
  }).toString()}`;
748
- const body = JSON.stringify({ client_id: clientId });
979
+ const body = JSON.stringify({
980
+ client_id: clientId,
981
+ page_url: liveChatCurrentUrl(),
982
+ page_title: document.title || "",
983
+ referrer_url: document.referrer || "",
984
+ });
749
985
  if (typeof navigator !== "undefined" && "sendBeacon" in navigator) {
750
986
  const blob = new Blob([body], { type: "application/json" });
751
987
  navigator.sendBeacon(url, blob);