@zaplier/sdk 1.1.9 → 1.2.1

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 CHANGED
@@ -6217,18 +6217,16 @@ class ResourceSpoofTransport {
6217
6217
  * Elysia WebSocket Transport (Native WebSocket for anti-adblock)
6218
6218
  */
6219
6219
  class ElysiaWebSocketTransport {
6220
- constructor(baseUrl) {
6220
+ constructor(baseUrl, token) {
6221
6221
  this.name = 'elysia-websocket';
6222
6222
  this.available = typeof WebSocket !== 'undefined';
6223
6223
  this.connected = false;
6224
- this.token = '';
6225
6224
  this.baseUrl = baseUrl;
6225
+ this.token = token;
6226
6226
  }
6227
6227
  async send(data, endpoint) {
6228
6228
  const start = Date.now();
6229
6229
  try {
6230
- // Extract token from data (passed from SDK)
6231
- this.token = data.token || '';
6232
6230
  if (!this.token) {
6233
6231
  throw new Error('Missing token for WebSocket connection');
6234
6232
  }
@@ -6253,15 +6251,22 @@ class ElysiaWebSocketTransport {
6253
6251
  }
6254
6252
  };
6255
6253
  this.ws?.addEventListener('message', messageHandler);
6256
- // Send the tracking data
6254
+ // Send the complete tracking data payload (includes fingerprintHash, stableCoreHash, etc.)
6257
6255
  this.ws?.send(JSON.stringify({
6256
+ // Include all data from the SDK payload
6257
+ ...data,
6258
+ // Override/ensure essential fields for WebSocket transport
6258
6259
  eventId: data.eventId || crypto.randomUUID(),
6259
6260
  sessionId: data.sessionId || data.s,
6260
6261
  eventType: data.eventType || data.type || 'websocket_event',
6261
6262
  eventName: data.eventName || data.name,
6262
6263
  url: data.url,
6263
6264
  userAgent: data.userAgent || navigator.userAgent,
6264
- timestamp: new Date().toISOString()
6265
+ timestamp: new Date().toISOString(),
6266
+ // Ensure these critical fields are included for identity resolution
6267
+ fingerprintHash: data.fingerprintHash,
6268
+ stableCoreHash: data.stableCoreHash,
6269
+ stableCoreVector: data.stableCoreVector
6265
6270
  }));
6266
6271
  // Timeout after 5 seconds
6267
6272
  setTimeout(() => {
@@ -6294,7 +6299,7 @@ class ElysiaWebSocketTransport {
6294
6299
  this.connected = true;
6295
6300
  resolve();
6296
6301
  };
6297
- this.ws.onerror = (error) => {
6302
+ this.ws.onerror = () => {
6298
6303
  this.connected = false;
6299
6304
  reject(new Error('WebSocket connection failed'));
6300
6305
  };
@@ -6331,7 +6336,7 @@ class SocketIOTransport {
6331
6336
  this.connected = false;
6332
6337
  this.baseUrl = baseUrl;
6333
6338
  }
6334
- async send(data, endpoint) {
6339
+ async send(data, _endpoint) {
6335
6340
  const start = Date.now();
6336
6341
  if (!this.available) {
6337
6342
  return { success: false, method: this.name, error: 'WebRTC not available' };
@@ -6424,7 +6429,7 @@ class WebRTCTransport {
6424
6429
  this.available = typeof globalThis.RTCPeerConnection !== 'undefined';
6425
6430
  this.connected = false;
6426
6431
  }
6427
- async send(data, endpoint) {
6432
+ async send(data, _endpoint) {
6428
6433
  const start = Date.now();
6429
6434
  if (!this.available) {
6430
6435
  return { success: false, method: this.name, error: 'WebRTC not available' };
@@ -6496,7 +6501,7 @@ class WebRTCTransport {
6496
6501
  * Main Anti-Adblock Manager
6497
6502
  */
6498
6503
  class AntiAdblockManager {
6499
- constructor(baseUrl, config = {}) {
6504
+ constructor(baseUrl, token, config = {}) {
6500
6505
  this.transports = [];
6501
6506
  this.stats = {
6502
6507
  totalRequests: 0,
@@ -6505,6 +6510,7 @@ class AntiAdblockManager {
6505
6510
  methodFailures: new Map()
6506
6511
  };
6507
6512
  this.baseUrl = baseUrl;
6513
+ this.token = token;
6508
6514
  this.config = {
6509
6515
  enabled: true,
6510
6516
  methods: ['elysia-websocket', 'fetch', 'resource'], // Elysia WebSocket as primary
@@ -6517,7 +6523,7 @@ class AntiAdblockManager {
6517
6523
  }
6518
6524
  initializeTransports() {
6519
6525
  const transportMap = {
6520
- 'elysia-websocket': () => new ElysiaWebSocketTransport(this.baseUrl),
6526
+ 'elysia-websocket': () => new ElysiaWebSocketTransport(this.baseUrl, this.token),
6521
6527
  socketio: () => new SocketIOTransport(this.baseUrl),
6522
6528
  fetch: () => new FetchTransport(),
6523
6529
  resource: () => new ResourceSpoofTransport(this.baseUrl),
@@ -7763,7 +7769,8 @@ class ZaplierSDK {
7763
7769
  */
7764
7770
  initializeAntiAdblock() {
7765
7771
  try {
7766
- this.antiAdblockManager = new AntiAdblockManager(this.config.apiEndpoint, {
7772
+ this.antiAdblockManager = new AntiAdblockManager(this.config.apiEndpoint, this.config.token, // Pass token to anti-adblock manager
7773
+ {
7767
7774
  enabled: true,
7768
7775
  methods: ["elysia-websocket", "fetch", "resource"], // Elysia WebSocket as primary
7769
7776
  fallbackDelay: 100,