@blotoutio/edgetag-sdk-js 0.6.3 → 0.6.5

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/index.cjs CHANGED
@@ -104,24 +104,56 @@ const saveKV = (data) => {
104
104
  saveData('session', currentSession);
105
105
  };
106
106
  const saveLocal = (value, key) => {
107
- localStorage.setItem(key, JSON.stringify(value));
107
+ try {
108
+ if (!localStorage) {
109
+ return;
110
+ }
111
+ localStorage.setItem(key, JSON.stringify(value));
112
+ }
113
+ catch (_a) {
114
+ console.log('Local storage not supported');
115
+ }
108
116
  };
109
117
  const getLocal = (key) => {
110
- const data = localStorage.getItem(key);
111
- if (!data) {
118
+ try {
119
+ if (!localStorage) {
120
+ return {};
121
+ }
122
+ const data = localStorage.getItem(key);
123
+ if (!data) {
124
+ return {};
125
+ }
126
+ return JSON.parse(data) || {};
127
+ }
128
+ catch (_a) {
112
129
  return {};
113
130
  }
114
- return JSON.parse(data) || {};
115
131
  };
116
132
  const saveSession = (value, key) => {
117
- sessionStorage.setItem(key, JSON.stringify(value));
133
+ try {
134
+ if (!sessionStorage) {
135
+ return;
136
+ }
137
+ sessionStorage.setItem(key, JSON.stringify(value));
138
+ }
139
+ catch (_a) {
140
+ console.log('Session storage not supported');
141
+ }
118
142
  };
119
143
  const getSession = (key) => {
120
- const data = sessionStorage.getItem(key);
121
- if (!data) {
144
+ try {
145
+ if (!sessionStorage) {
146
+ return {};
147
+ }
148
+ const data = sessionStorage.getItem(key);
149
+ if (!data) {
150
+ return {};
151
+ }
152
+ return JSON.parse(data) || {};
153
+ }
154
+ catch (_a) {
122
155
  return {};
123
156
  }
124
- return JSON.parse(data) || {};
125
157
  };
126
158
 
127
159
  let endpointUrl = '';
@@ -231,7 +263,7 @@ const allowTag = (providers) => {
231
263
  return false;
232
264
  };
233
265
  const allowProvider = (providers, providerId) => {
234
- if (providers) {
266
+ if (providers && Object.keys(providers).length) {
235
267
  const tagProvider = providers[providerId];
236
268
  if (!(tagProvider ||
237
269
  (providers['all'] === true && tagProvider === undefined) ||
@@ -385,21 +417,19 @@ const handleTag = (eventName, data = {}, providers, options) => {
385
417
  const providerData = {};
386
418
  if (providerPackages) {
387
419
  Object.values(providerPackages).forEach((pkg) => {
388
- if (!allowProvider(providers, pkg.name)) {
420
+ if (!pkg || !pkg.tag || !allowProvider(providers, pkg.name)) {
389
421
  return;
390
422
  }
391
- if (pkg && pkg.tag) {
392
- const result = pkg.tag({
393
- userId,
394
- eventName,
395
- eventId,
396
- data,
397
- sendTag,
398
- manifestVariables: getProviderVariables(pkg.name),
399
- });
400
- if (result) {
401
- providerData[pkg.name] = result;
402
- }
423
+ const result = pkg.tag({
424
+ userId,
425
+ eventName,
426
+ eventId,
427
+ data,
428
+ sendTag,
429
+ manifestVariables: getProviderVariables(pkg.name),
430
+ });
431
+ if (result) {
432
+ providerData[pkg.name] = result;
403
433
  }
404
434
  });
405
435
  }
@@ -413,6 +443,30 @@ const handleTag = (eventName, data = {}, providers, options) => {
413
443
  });
414
444
  };
415
445
 
446
+ const handleData = (data, options) => {
447
+ if (!data || Object.keys(data).length === 0) {
448
+ console.error('Provide data for data API.');
449
+ return;
450
+ }
451
+ saveKV(data);
452
+ postRequest(getDataURL(), { data }, options).catch(info);
453
+ };
454
+
455
+ const saveDataToEdge = (key, value, provider) => {
456
+ if (!value) {
457
+ return;
458
+ }
459
+ if (typeof value !== 'string') {
460
+ try {
461
+ value = JSON.stringify(value);
462
+ }
463
+ catch (_a) {
464
+ console.log('Error stringify value');
465
+ return;
466
+ }
467
+ }
468
+ handleData({ [`${provider}::${key}`]: value });
469
+ };
416
470
  const handleCaptureQuery = (provider, key, persistType) => {
417
471
  if (!window) {
418
472
  return;
@@ -421,7 +475,15 @@ const handleCaptureQuery = (provider, key, persistType) => {
421
475
  if (!params || !params.get(key)) {
422
476
  return;
423
477
  }
424
- saveDataPerKey(persistType, provider, params.get(key), key);
478
+ const data = params.get(key);
479
+ if (!data) {
480
+ return;
481
+ }
482
+ if (persistType === 'edge') {
483
+ saveDataToEdge(key, data, provider);
484
+ return;
485
+ }
486
+ saveDataPerKey(persistType, provider, data, key);
425
487
  };
426
488
  const handleCaptureStorage = (provider, key, persistType, location) => {
427
489
  let data;
@@ -431,17 +493,20 @@ const handleCaptureStorage = (provider, key, persistType, location) => {
431
493
  break;
432
494
  }
433
495
  case 'local': {
434
- data = sessionStorage && sessionStorage.getItem(key);
496
+ data = getData$1('local', key);
435
497
  break;
436
498
  }
437
499
  case 'session': {
438
- data = localStorage && localStorage.getItem(key);
439
- break;
500
+ data = getData$1('session', key);
440
501
  }
441
502
  }
442
503
  if (!data) {
443
504
  return;
444
505
  }
506
+ if (persistType === 'edge') {
507
+ saveDataToEdge(key, data, provider);
508
+ return;
509
+ }
445
510
  saveDataPerKey(persistType, provider, data, key);
446
511
  };
447
512
  const handleCapture = (provider, params) => {
@@ -524,15 +589,6 @@ const handleUser = (key, value, options) => {
524
589
  }, options).catch(info);
525
590
  };
526
591
 
527
- const handleData = (data, options) => {
528
- if (!data || Object.keys(data).length === 0) {
529
- console.error('Provide data for data API.');
530
- return;
531
- }
532
- saveKV(data);
533
- postRequest(getDataURL(), { data }, options).catch(info);
534
- };
535
-
536
592
  const handleGetData = (keys, callback) => {
537
593
  if (!keys || keys.length === 0) {
538
594
  console.error('Provide keys for get data API.');
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  // TODO this all located in '@blotoutio/shared/utility-sdk'
2
2
 
3
- type PersistType = 'local' | 'session'
3
+ type PersistType = 'local' | 'session' | 'edge'
4
4
 
5
5
  type EventOptions = {
6
6
  method?: 'beacon'
package/index.esm.js CHANGED
@@ -100,24 +100,56 @@ const saveKV = (data) => {
100
100
  saveData('session', currentSession);
101
101
  };
102
102
  const saveLocal = (value, key) => {
103
- localStorage.setItem(key, JSON.stringify(value));
103
+ try {
104
+ if (!localStorage) {
105
+ return;
106
+ }
107
+ localStorage.setItem(key, JSON.stringify(value));
108
+ }
109
+ catch (_a) {
110
+ console.log('Local storage not supported');
111
+ }
104
112
  };
105
113
  const getLocal = (key) => {
106
- const data = localStorage.getItem(key);
107
- if (!data) {
114
+ try {
115
+ if (!localStorage) {
116
+ return {};
117
+ }
118
+ const data = localStorage.getItem(key);
119
+ if (!data) {
120
+ return {};
121
+ }
122
+ return JSON.parse(data) || {};
123
+ }
124
+ catch (_a) {
108
125
  return {};
109
126
  }
110
- return JSON.parse(data) || {};
111
127
  };
112
128
  const saveSession = (value, key) => {
113
- sessionStorage.setItem(key, JSON.stringify(value));
129
+ try {
130
+ if (!sessionStorage) {
131
+ return;
132
+ }
133
+ sessionStorage.setItem(key, JSON.stringify(value));
134
+ }
135
+ catch (_a) {
136
+ console.log('Session storage not supported');
137
+ }
114
138
  };
115
139
  const getSession = (key) => {
116
- const data = sessionStorage.getItem(key);
117
- if (!data) {
140
+ try {
141
+ if (!sessionStorage) {
142
+ return {};
143
+ }
144
+ const data = sessionStorage.getItem(key);
145
+ if (!data) {
146
+ return {};
147
+ }
148
+ return JSON.parse(data) || {};
149
+ }
150
+ catch (_a) {
118
151
  return {};
119
152
  }
120
- return JSON.parse(data) || {};
121
153
  };
122
154
 
123
155
  let endpointUrl = '';
@@ -227,7 +259,7 @@ const allowTag = (providers) => {
227
259
  return false;
228
260
  };
229
261
  const allowProvider = (providers, providerId) => {
230
- if (providers) {
262
+ if (providers && Object.keys(providers).length) {
231
263
  const tagProvider = providers[providerId];
232
264
  if (!(tagProvider ||
233
265
  (providers['all'] === true && tagProvider === undefined) ||
@@ -381,21 +413,19 @@ const handleTag = (eventName, data = {}, providers, options) => {
381
413
  const providerData = {};
382
414
  if (providerPackages) {
383
415
  Object.values(providerPackages).forEach((pkg) => {
384
- if (!allowProvider(providers, pkg.name)) {
416
+ if (!pkg || !pkg.tag || !allowProvider(providers, pkg.name)) {
385
417
  return;
386
418
  }
387
- if (pkg && pkg.tag) {
388
- const result = pkg.tag({
389
- userId,
390
- eventName,
391
- eventId,
392
- data,
393
- sendTag,
394
- manifestVariables: getProviderVariables(pkg.name),
395
- });
396
- if (result) {
397
- providerData[pkg.name] = result;
398
- }
419
+ const result = pkg.tag({
420
+ userId,
421
+ eventName,
422
+ eventId,
423
+ data,
424
+ sendTag,
425
+ manifestVariables: getProviderVariables(pkg.name),
426
+ });
427
+ if (result) {
428
+ providerData[pkg.name] = result;
399
429
  }
400
430
  });
401
431
  }
@@ -409,6 +439,30 @@ const handleTag = (eventName, data = {}, providers, options) => {
409
439
  });
410
440
  };
411
441
 
442
+ const handleData = (data, options) => {
443
+ if (!data || Object.keys(data).length === 0) {
444
+ console.error('Provide data for data API.');
445
+ return;
446
+ }
447
+ saveKV(data);
448
+ postRequest(getDataURL(), { data }, options).catch(info);
449
+ };
450
+
451
+ const saveDataToEdge = (key, value, provider) => {
452
+ if (!value) {
453
+ return;
454
+ }
455
+ if (typeof value !== 'string') {
456
+ try {
457
+ value = JSON.stringify(value);
458
+ }
459
+ catch (_a) {
460
+ console.log('Error stringify value');
461
+ return;
462
+ }
463
+ }
464
+ handleData({ [`${provider}::${key}`]: value });
465
+ };
412
466
  const handleCaptureQuery = (provider, key, persistType) => {
413
467
  if (!window) {
414
468
  return;
@@ -417,7 +471,15 @@ const handleCaptureQuery = (provider, key, persistType) => {
417
471
  if (!params || !params.get(key)) {
418
472
  return;
419
473
  }
420
- saveDataPerKey(persistType, provider, params.get(key), key);
474
+ const data = params.get(key);
475
+ if (!data) {
476
+ return;
477
+ }
478
+ if (persistType === 'edge') {
479
+ saveDataToEdge(key, data, provider);
480
+ return;
481
+ }
482
+ saveDataPerKey(persistType, provider, data, key);
421
483
  };
422
484
  const handleCaptureStorage = (provider, key, persistType, location) => {
423
485
  let data;
@@ -427,17 +489,20 @@ const handleCaptureStorage = (provider, key, persistType, location) => {
427
489
  break;
428
490
  }
429
491
  case 'local': {
430
- data = sessionStorage && sessionStorage.getItem(key);
492
+ data = getData$1('local', key);
431
493
  break;
432
494
  }
433
495
  case 'session': {
434
- data = localStorage && localStorage.getItem(key);
435
- break;
496
+ data = getData$1('session', key);
436
497
  }
437
498
  }
438
499
  if (!data) {
439
500
  return;
440
501
  }
502
+ if (persistType === 'edge') {
503
+ saveDataToEdge(key, data, provider);
504
+ return;
505
+ }
441
506
  saveDataPerKey(persistType, provider, data, key);
442
507
  };
443
508
  const handleCapture = (provider, params) => {
@@ -520,15 +585,6 @@ const handleUser = (key, value, options) => {
520
585
  }, options).catch(info);
521
586
  };
522
587
 
523
- const handleData = (data, options) => {
524
- if (!data || Object.keys(data).length === 0) {
525
- console.error('Provide data for data API.');
526
- return;
527
- }
528
- saveKV(data);
529
- postRequest(getDataURL(), { data }, options).catch(info);
530
- };
531
-
532
588
  const handleGetData = (keys, callback) => {
533
589
  if (!keys || keys.length === 0) {
534
590
  console.error('Provide keys for get data API.');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blotoutio/edgetag-sdk-js",
3
- "version": "0.6.3",
3
+ "version": "0.6.5",
4
4
  "description": "JS SDK for EdgeTag",
5
5
  "author": "Blotout",
6
6
  "license": "MIT",
@@ -8,9 +8,9 @@
8
8
  "publishConfig": {
9
9
  "access": "public"
10
10
  },
11
- "main": "./index.esm.js",
12
- "peerDependencies": {
13
- "uuid": "*"
11
+ "main": "./index.cjs",
12
+ "dependencies": {
13
+ "uuid": "^9.0.0"
14
14
  },
15
15
  "repository": {
16
16
  "type": "git",