@zaplier/sdk 1.6.5 → 1.6.6

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.
package/dist/sdk.js CHANGED
@@ -19786,7 +19786,7 @@
19786
19786
  .map(b => b.toString(16).padStart(2, '0'))
19787
19787
  .join('') + "_" + Date.now().toString(36);
19788
19788
  }
19789
- createCamouflageData(visitorId, sessionId, stableCoreHash) {
19789
+ createCamouflageData(visitorId, sessionId, stableCoreHash, fromBackend = false) {
19790
19790
  return {
19791
19791
  theme: "auto",
19792
19792
  lang: (navigator.language || "en-US").substring(0, 2),
@@ -19796,13 +19796,16 @@
19796
19796
  _v: visitorId, // Hidden visitor ID
19797
19797
  _s: sessionId, // Hidden session ID
19798
19798
  _sc: stableCoreHash, // Hidden stable core
19799
+ _vb: fromBackend ? true : undefined, // Flag: visitor ID from backend (v1.7.0+)
19799
19800
  ts: Date.now(),
19800
19801
  };
19801
19802
  }
19802
19803
  extractFromCamouflage(data) {
19803
19804
  try {
19804
19805
  const parsed = JSON.parse(data);
19805
- if (parsed._v && parsed._s && parsed._sc) {
19806
+ // CRITICAL: Only return visitor ID if it came from backend (v1.7.0+)
19807
+ // This invalidates visitor IDs generated by previous SDK versions
19808
+ if (parsed._v && parsed._s && parsed._sc && parsed._vb === true) {
19806
19809
  return {
19807
19810
  visitorId: parsed._v,
19808
19811
  sessionId: parsed._s,
@@ -19814,6 +19817,11 @@
19814
19817
  reused: true,
19815
19818
  };
19816
19819
  }
19820
+ // If visitor ID exists but doesn't have backend flag, ignore it
19821
+ if (parsed._v && !parsed._vb) {
19822
+ console.log("[VisitorIdentityManager] Ignoring visitor ID from previous SDK version (no backend flag)");
19823
+ return null;
19824
+ }
19817
19825
  }
19818
19826
  catch (e) {
19819
19827
  // Invalid data
@@ -19866,7 +19874,8 @@
19866
19874
  try {
19867
19875
  // Create or update camouflaged data with backend visitor ID
19868
19876
  const currentSessionId = sessionId || this.getCurrentSessionId() || this.generateSessionId();
19869
- const camouflageData = this.createCamouflageData(visitorId, currentSessionId, stableCoreHash);
19877
+ const camouflageData = this.createCamouflageData(visitorId, currentSessionId, stableCoreHash, true // Mark as coming from backend
19878
+ );
19870
19879
  const { success, method } = PersistenceManager.set(STORAGE_KEYS.prefs, JSON.stringify(camouflageData));
19871
19880
  if (success) {
19872
19881
  // Also update device fingerprint cache
@@ -20509,8 +20518,9 @@
20509
20518
  try {
20510
20519
  const payload = {
20511
20520
  // workspaceId moved to query parameter
20512
- // CHANGED: Only send visitor ID if it came from backend (not locally generated)
20513
- visitorId: this.backendVisitorId || this.getVisitorId(),
20521
+ // CRITICAL: Only send visitor ID if it definitively came from backend
20522
+ // Never send locally generated visitor IDs from previous SDK versions
20523
+ visitorId: this.backendVisitorId || null,
20514
20524
  // Session ID (gerado por sessão)
20515
20525
  sessionId: this.sessionId,
20516
20526
  fingerprintHash: this.fingerprint?.hash,