@blotoutio/edgetag-sdk-js 0.6.6 → 0.6.8
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 +52 -13
- package/index.esm.js +52 -13
- package/package.json +1 -1
package/index.cjs
CHANGED
|
@@ -43,7 +43,6 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
43
43
|
|
|
44
44
|
const tagStorage = 'edgeTag';
|
|
45
45
|
const consentKey = 'consent';
|
|
46
|
-
const providersKey = 'providers';
|
|
47
46
|
const keyPrefix = `_worker`;
|
|
48
47
|
|
|
49
48
|
const initKey = `${keyPrefix}Store`;
|
|
@@ -208,9 +207,10 @@ const getKeysURL = () => {
|
|
|
208
207
|
return generateUrl(`/keys`);
|
|
209
208
|
};
|
|
210
209
|
|
|
210
|
+
let allowedProvider = [];
|
|
211
211
|
let initialized = false;
|
|
212
212
|
let consentDisabled = false;
|
|
213
|
-
const
|
|
213
|
+
const providersPackages = {};
|
|
214
214
|
const setPreferences = (preferences) => {
|
|
215
215
|
var _a;
|
|
216
216
|
if (!preferences) {
|
|
@@ -225,25 +225,29 @@ const setPreferences = (preferences) => {
|
|
|
225
225
|
if (!provider.name) {
|
|
226
226
|
return;
|
|
227
227
|
}
|
|
228
|
-
|
|
228
|
+
providersPackages[provider.name] = provider;
|
|
229
229
|
});
|
|
230
230
|
if (window && Array.isArray(window.edgetagProviders)) {
|
|
231
231
|
window.edgetagProviders.forEach((provider) => {
|
|
232
232
|
if (!provider.name) {
|
|
233
233
|
return;
|
|
234
234
|
}
|
|
235
|
-
|
|
235
|
+
providersPackages[provider.name] = provider;
|
|
236
236
|
});
|
|
237
237
|
}
|
|
238
238
|
setUrl(preferences.edgeURL);
|
|
239
239
|
return true;
|
|
240
240
|
};
|
|
241
241
|
const isConsentDisabled = () => consentDisabled;
|
|
242
|
-
const getProvidersPackage = () =>
|
|
242
|
+
const getProvidersPackage = () => providersPackages;
|
|
243
243
|
const isInitialized = () => initialized;
|
|
244
244
|
const setInitialized = () => {
|
|
245
245
|
initialized = true;
|
|
246
246
|
};
|
|
247
|
+
const getAllowedProviders = () => allowedProvider;
|
|
248
|
+
const setAllowedProviders = (providers) => {
|
|
249
|
+
allowedProvider = providers;
|
|
250
|
+
};
|
|
247
251
|
|
|
248
252
|
const getUserAgent = () => {
|
|
249
253
|
const nav = navigator;
|
|
@@ -252,6 +256,9 @@ const getUserAgent = () => {
|
|
|
252
256
|
return ua;
|
|
253
257
|
};
|
|
254
258
|
const allowTag = (providers) => {
|
|
259
|
+
if (!allowProviders(providers)) {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
255
262
|
const consent = getDataPerKey('local', tagStorage, consentKey);
|
|
256
263
|
if (isConsentDisabled()) {
|
|
257
264
|
return true;
|
|
@@ -265,8 +272,7 @@ const allowTag = (providers) => {
|
|
|
265
272
|
if (!providers) {
|
|
266
273
|
return (Object.values(consent).find((isAllowed) => isAllowed) || false);
|
|
267
274
|
}
|
|
268
|
-
const allProviders = (
|
|
269
|
-
[]);
|
|
275
|
+
const allProviders = getAllowedProviders();
|
|
270
276
|
for (const provider of allProviders) {
|
|
271
277
|
const tagProviderSetting = providers[provider];
|
|
272
278
|
if (tagProviderSetting ||
|
|
@@ -279,7 +285,39 @@ const allowTag = (providers) => {
|
|
|
279
285
|
}
|
|
280
286
|
return false;
|
|
281
287
|
};
|
|
282
|
-
const
|
|
288
|
+
const allowProviders = (providers) => {
|
|
289
|
+
if (!providers || Object.keys(providers).length === 0) {
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
const allowedProvider = getAllowedProviders();
|
|
293
|
+
if (allowedProvider && allowedProvider.length > 0) {
|
|
294
|
+
let found = false;
|
|
295
|
+
Object.entries(providers).forEach(([key, value]) => {
|
|
296
|
+
if (!value) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
if (allowedProvider.includes(key)) {
|
|
300
|
+
found = true;
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
return found;
|
|
304
|
+
}
|
|
305
|
+
return true;
|
|
306
|
+
};
|
|
307
|
+
const allowProvider = (providerId) => {
|
|
308
|
+
if (!providerId) {
|
|
309
|
+
return true;
|
|
310
|
+
}
|
|
311
|
+
const allowedProvider = getAllowedProviders();
|
|
312
|
+
if (allowedProvider && allowedProvider.length > 0) {
|
|
313
|
+
return allowedProvider.includes(providerId);
|
|
314
|
+
}
|
|
315
|
+
return true;
|
|
316
|
+
};
|
|
317
|
+
const allowProviderWithConsent = (providers, providerId) => {
|
|
318
|
+
if (!allowProvider(providerId)) {
|
|
319
|
+
return false;
|
|
320
|
+
}
|
|
283
321
|
if (providers && Object.keys(providers).length) {
|
|
284
322
|
const tagProvider = providers[providerId];
|
|
285
323
|
if (!(tagProvider ||
|
|
@@ -426,6 +464,9 @@ const processStubs = () => {
|
|
|
426
464
|
};
|
|
427
465
|
|
|
428
466
|
const sendTag = ({ eventName, eventId, data, providerData, providers, options, }) => {
|
|
467
|
+
if (!allowProviders(providers)) {
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
429
470
|
const payload = {
|
|
430
471
|
eventName,
|
|
431
472
|
eventId,
|
|
@@ -459,7 +500,7 @@ const handleTag = (eventName, data = {}, providers, options) => {
|
|
|
459
500
|
const providerData = {};
|
|
460
501
|
if (providerPackages) {
|
|
461
502
|
Object.values(providerPackages).forEach((pkg) => {
|
|
462
|
-
if (!pkg || !pkg.tag || !
|
|
503
|
+
if (!pkg || !pkg.tag || !allowProviderWithConsent(providers, pkg.name)) {
|
|
463
504
|
return;
|
|
464
505
|
}
|
|
465
506
|
const result = pkg.tag({
|
|
@@ -567,11 +608,10 @@ const handleCapture = (provider, params) => {
|
|
|
567
608
|
};
|
|
568
609
|
|
|
569
610
|
const handleManifest = (manifest) => {
|
|
570
|
-
const providers = [];
|
|
571
611
|
const providerPackages = getProvidersPackage();
|
|
572
612
|
const userId = handleGetUserId();
|
|
613
|
+
setAllowedProviders(manifest.map((provider) => provider.package));
|
|
573
614
|
manifest.forEach((provider) => {
|
|
574
|
-
providers.push(provider.package);
|
|
575
615
|
addProviderVariable(provider.package, provider.variables);
|
|
576
616
|
if (provider.rules) {
|
|
577
617
|
Object.entries(provider.rules).forEach(([name, recipe]) => {
|
|
@@ -585,14 +625,13 @@ const handleManifest = (manifest) => {
|
|
|
585
625
|
}
|
|
586
626
|
if (providerPackages) {
|
|
587
627
|
const pkg = providerPackages[provider.package];
|
|
588
|
-
if (pkg && pkg.init) {
|
|
628
|
+
if (pkg && pkg.init && allowProvider(pkg.name)) {
|
|
589
629
|
pkg.init({ userId, manifest: provider, sendTag });
|
|
590
630
|
}
|
|
591
631
|
}
|
|
592
632
|
});
|
|
593
633
|
setInitialized();
|
|
594
634
|
processStubs();
|
|
595
|
-
savePerKey('local', tagStorage, providers, providersKey);
|
|
596
635
|
};
|
|
597
636
|
|
|
598
637
|
const handleInit = (preferences) => {
|
package/index.esm.js
CHANGED
|
@@ -39,7 +39,6 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
39
39
|
|
|
40
40
|
const tagStorage = 'edgeTag';
|
|
41
41
|
const consentKey = 'consent';
|
|
42
|
-
const providersKey = 'providers';
|
|
43
42
|
const keyPrefix = `_worker`;
|
|
44
43
|
|
|
45
44
|
const initKey = `${keyPrefix}Store`;
|
|
@@ -204,9 +203,10 @@ const getKeysURL = () => {
|
|
|
204
203
|
return generateUrl(`/keys`);
|
|
205
204
|
};
|
|
206
205
|
|
|
206
|
+
let allowedProvider = [];
|
|
207
207
|
let initialized = false;
|
|
208
208
|
let consentDisabled = false;
|
|
209
|
-
const
|
|
209
|
+
const providersPackages = {};
|
|
210
210
|
const setPreferences = (preferences) => {
|
|
211
211
|
var _a;
|
|
212
212
|
if (!preferences) {
|
|
@@ -221,25 +221,29 @@ const setPreferences = (preferences) => {
|
|
|
221
221
|
if (!provider.name) {
|
|
222
222
|
return;
|
|
223
223
|
}
|
|
224
|
-
|
|
224
|
+
providersPackages[provider.name] = provider;
|
|
225
225
|
});
|
|
226
226
|
if (window && Array.isArray(window.edgetagProviders)) {
|
|
227
227
|
window.edgetagProviders.forEach((provider) => {
|
|
228
228
|
if (!provider.name) {
|
|
229
229
|
return;
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
providersPackages[provider.name] = provider;
|
|
232
232
|
});
|
|
233
233
|
}
|
|
234
234
|
setUrl(preferences.edgeURL);
|
|
235
235
|
return true;
|
|
236
236
|
};
|
|
237
237
|
const isConsentDisabled = () => consentDisabled;
|
|
238
|
-
const getProvidersPackage = () =>
|
|
238
|
+
const getProvidersPackage = () => providersPackages;
|
|
239
239
|
const isInitialized = () => initialized;
|
|
240
240
|
const setInitialized = () => {
|
|
241
241
|
initialized = true;
|
|
242
242
|
};
|
|
243
|
+
const getAllowedProviders = () => allowedProvider;
|
|
244
|
+
const setAllowedProviders = (providers) => {
|
|
245
|
+
allowedProvider = providers;
|
|
246
|
+
};
|
|
243
247
|
|
|
244
248
|
const getUserAgent = () => {
|
|
245
249
|
const nav = navigator;
|
|
@@ -248,6 +252,9 @@ const getUserAgent = () => {
|
|
|
248
252
|
return ua;
|
|
249
253
|
};
|
|
250
254
|
const allowTag = (providers) => {
|
|
255
|
+
if (!allowProviders(providers)) {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
251
258
|
const consent = getDataPerKey('local', tagStorage, consentKey);
|
|
252
259
|
if (isConsentDisabled()) {
|
|
253
260
|
return true;
|
|
@@ -261,8 +268,7 @@ const allowTag = (providers) => {
|
|
|
261
268
|
if (!providers) {
|
|
262
269
|
return (Object.values(consent).find((isAllowed) => isAllowed) || false);
|
|
263
270
|
}
|
|
264
|
-
const allProviders = (
|
|
265
|
-
[]);
|
|
271
|
+
const allProviders = getAllowedProviders();
|
|
266
272
|
for (const provider of allProviders) {
|
|
267
273
|
const tagProviderSetting = providers[provider];
|
|
268
274
|
if (tagProviderSetting ||
|
|
@@ -275,7 +281,39 @@ const allowTag = (providers) => {
|
|
|
275
281
|
}
|
|
276
282
|
return false;
|
|
277
283
|
};
|
|
278
|
-
const
|
|
284
|
+
const allowProviders = (providers) => {
|
|
285
|
+
if (!providers || Object.keys(providers).length === 0) {
|
|
286
|
+
return true;
|
|
287
|
+
}
|
|
288
|
+
const allowedProvider = getAllowedProviders();
|
|
289
|
+
if (allowedProvider && allowedProvider.length > 0) {
|
|
290
|
+
let found = false;
|
|
291
|
+
Object.entries(providers).forEach(([key, value]) => {
|
|
292
|
+
if (!value) {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (allowedProvider.includes(key)) {
|
|
296
|
+
found = true;
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
return found;
|
|
300
|
+
}
|
|
301
|
+
return true;
|
|
302
|
+
};
|
|
303
|
+
const allowProvider = (providerId) => {
|
|
304
|
+
if (!providerId) {
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
const allowedProvider = getAllowedProviders();
|
|
308
|
+
if (allowedProvider && allowedProvider.length > 0) {
|
|
309
|
+
return allowedProvider.includes(providerId);
|
|
310
|
+
}
|
|
311
|
+
return true;
|
|
312
|
+
};
|
|
313
|
+
const allowProviderWithConsent = (providers, providerId) => {
|
|
314
|
+
if (!allowProvider(providerId)) {
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
279
317
|
if (providers && Object.keys(providers).length) {
|
|
280
318
|
const tagProvider = providers[providerId];
|
|
281
319
|
if (!(tagProvider ||
|
|
@@ -422,6 +460,9 @@ const processStubs = () => {
|
|
|
422
460
|
};
|
|
423
461
|
|
|
424
462
|
const sendTag = ({ eventName, eventId, data, providerData, providers, options, }) => {
|
|
463
|
+
if (!allowProviders(providers)) {
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
425
466
|
const payload = {
|
|
426
467
|
eventName,
|
|
427
468
|
eventId,
|
|
@@ -455,7 +496,7 @@ const handleTag = (eventName, data = {}, providers, options) => {
|
|
|
455
496
|
const providerData = {};
|
|
456
497
|
if (providerPackages) {
|
|
457
498
|
Object.values(providerPackages).forEach((pkg) => {
|
|
458
|
-
if (!pkg || !pkg.tag || !
|
|
499
|
+
if (!pkg || !pkg.tag || !allowProviderWithConsent(providers, pkg.name)) {
|
|
459
500
|
return;
|
|
460
501
|
}
|
|
461
502
|
const result = pkg.tag({
|
|
@@ -563,11 +604,10 @@ const handleCapture = (provider, params) => {
|
|
|
563
604
|
};
|
|
564
605
|
|
|
565
606
|
const handleManifest = (manifest) => {
|
|
566
|
-
const providers = [];
|
|
567
607
|
const providerPackages = getProvidersPackage();
|
|
568
608
|
const userId = handleGetUserId();
|
|
609
|
+
setAllowedProviders(manifest.map((provider) => provider.package));
|
|
569
610
|
manifest.forEach((provider) => {
|
|
570
|
-
providers.push(provider.package);
|
|
571
611
|
addProviderVariable(provider.package, provider.variables);
|
|
572
612
|
if (provider.rules) {
|
|
573
613
|
Object.entries(provider.rules).forEach(([name, recipe]) => {
|
|
@@ -581,14 +621,13 @@ const handleManifest = (manifest) => {
|
|
|
581
621
|
}
|
|
582
622
|
if (providerPackages) {
|
|
583
623
|
const pkg = providerPackages[provider.package];
|
|
584
|
-
if (pkg && pkg.init) {
|
|
624
|
+
if (pkg && pkg.init && allowProvider(pkg.name)) {
|
|
585
625
|
pkg.init({ userId, manifest: provider, sendTag });
|
|
586
626
|
}
|
|
587
627
|
}
|
|
588
628
|
});
|
|
589
629
|
setInitialized();
|
|
590
630
|
processStubs();
|
|
591
|
-
savePerKey('local', tagStorage, providers, providersKey);
|
|
592
631
|
};
|
|
593
632
|
|
|
594
633
|
const handleInit = (preferences) => {
|