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