@zaplier/sdk 1.6.5 → 1.6.7
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/index.cjs +18 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +18 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/sdk.js +18 -7
- package/dist/sdk.js.map +1 -1
- package/dist/sdk.min.js +1 -1
- package/dist/src/modules/visitor-persistence.d.ts.map +1 -1
- package/dist/src/sdk.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -19784,7 +19784,7 @@ class VisitorIdentityManager {
|
|
|
19784
19784
|
.map(b => b.toString(16).padStart(2, '0'))
|
|
19785
19785
|
.join('') + "_" + Date.now().toString(36);
|
|
19786
19786
|
}
|
|
19787
|
-
createCamouflageData(visitorId, sessionId, stableCoreHash) {
|
|
19787
|
+
createCamouflageData(visitorId, sessionId, stableCoreHash, fromBackend = false) {
|
|
19788
19788
|
return {
|
|
19789
19789
|
theme: "auto",
|
|
19790
19790
|
lang: (navigator.language || "en-US").substring(0, 2),
|
|
@@ -19794,13 +19794,16 @@ class VisitorIdentityManager {
|
|
|
19794
19794
|
_v: visitorId, // Hidden visitor ID
|
|
19795
19795
|
_s: sessionId, // Hidden session ID
|
|
19796
19796
|
_sc: stableCoreHash, // Hidden stable core
|
|
19797
|
+
_vb: fromBackend ? true : undefined, // Flag: visitor ID from backend (v1.7.0+)
|
|
19797
19798
|
ts: Date.now(),
|
|
19798
19799
|
};
|
|
19799
19800
|
}
|
|
19800
19801
|
extractFromCamouflage(data) {
|
|
19801
19802
|
try {
|
|
19802
19803
|
const parsed = JSON.parse(data);
|
|
19803
|
-
if
|
|
19804
|
+
// CRITICAL: Only return visitor ID if it came from backend (v1.7.0+)
|
|
19805
|
+
// This invalidates visitor IDs generated by previous SDK versions
|
|
19806
|
+
if (parsed._v && parsed._s && parsed._sc && parsed._vb === true) {
|
|
19804
19807
|
return {
|
|
19805
19808
|
visitorId: parsed._v,
|
|
19806
19809
|
sessionId: parsed._s,
|
|
@@ -19812,6 +19815,11 @@ class VisitorIdentityManager {
|
|
|
19812
19815
|
reused: true,
|
|
19813
19816
|
};
|
|
19814
19817
|
}
|
|
19818
|
+
// If visitor ID exists but doesn't have backend flag, ignore it
|
|
19819
|
+
if (parsed._v && !parsed._vb) {
|
|
19820
|
+
console.log("[VisitorIdentityManager] Ignoring visitor ID from previous SDK version (no backend flag)");
|
|
19821
|
+
return null;
|
|
19822
|
+
}
|
|
19815
19823
|
}
|
|
19816
19824
|
catch (e) {
|
|
19817
19825
|
// Invalid data
|
|
@@ -19864,7 +19872,8 @@ class VisitorIdentityManager {
|
|
|
19864
19872
|
try {
|
|
19865
19873
|
// Create or update camouflaged data with backend visitor ID
|
|
19866
19874
|
const currentSessionId = sessionId || this.getCurrentSessionId() || this.generateSessionId();
|
|
19867
|
-
const camouflageData = this.createCamouflageData(visitorId, currentSessionId, stableCoreHash
|
|
19875
|
+
const camouflageData = this.createCamouflageData(visitorId, currentSessionId, stableCoreHash, true // Mark as coming from backend
|
|
19876
|
+
);
|
|
19868
19877
|
const { success, method } = PersistenceManager.set(STORAGE_KEYS.prefs, JSON.stringify(camouflageData));
|
|
19869
19878
|
if (success) {
|
|
19870
19879
|
// Also update device fingerprint cache
|
|
@@ -19948,7 +19957,7 @@ const DEFAULT_CONFIG = {
|
|
|
19948
19957
|
*/
|
|
19949
19958
|
class ZaplierSDK {
|
|
19950
19959
|
constructor(userConfig) {
|
|
19951
|
-
this.version = "1.7.
|
|
19960
|
+
this.version = "1.7.1";
|
|
19952
19961
|
this.isInitialized = false;
|
|
19953
19962
|
this.eventQueue = [];
|
|
19954
19963
|
/**
|
|
@@ -20380,7 +20389,8 @@ class ZaplierSDK {
|
|
|
20380
20389
|
const visitorIdentity = await this.visitorIdentityManager.getOrCreateVisitorIdentity({
|
|
20381
20390
|
fingerprintHash: result.data.hash,
|
|
20382
20391
|
stableCoreHash: result.data.stableCoreHash,
|
|
20383
|
-
|
|
20392
|
+
// CRITICAL: Use stableCoreHash as deviceFingerprint for consistency with backend
|
|
20393
|
+
deviceFingerprint: result.data.stableCoreHash || result.data.hash,
|
|
20384
20394
|
sessionId: this.sessionId,
|
|
20385
20395
|
userAgent: navigator.userAgent,
|
|
20386
20396
|
ipAddress: undefined, // Will be determined server-side
|
|
@@ -20507,8 +20517,9 @@ class ZaplierSDK {
|
|
|
20507
20517
|
try {
|
|
20508
20518
|
const payload = {
|
|
20509
20519
|
// workspaceId moved to query parameter
|
|
20510
|
-
//
|
|
20511
|
-
|
|
20520
|
+
// CRITICAL: Only send visitor ID if it definitively came from backend
|
|
20521
|
+
// Never send locally generated visitor IDs from previous SDK versions
|
|
20522
|
+
visitorId: this.backendVisitorId || null,
|
|
20512
20523
|
// Session ID (gerado por sessão)
|
|
20513
20524
|
sessionId: this.sessionId,
|
|
20514
20525
|
fingerprintHash: this.fingerprint?.hash,
|