@blotoutio/edgetag-sdk-js 0.6.1 → 0.6.3

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
@@ -165,8 +165,9 @@ const getKeysURL = () => {
165
165
  };
166
166
 
167
167
  let consentDisabled = false;
168
- let providers = [];
168
+ const providers = {};
169
169
  const setPreferences = (preferences) => {
170
+ var _a;
170
171
  if (!preferences) {
171
172
  return false;
172
173
  }
@@ -175,9 +176,19 @@ const setPreferences = (preferences) => {
175
176
  return false;
176
177
  }
177
178
  consentDisabled = !!preferences.disableConsentCheck;
178
- providers = preferences.providers || [];
179
- if (window && window.edgetagPackages) {
180
- providers = [...window.edgetagPackages, ...providers];
179
+ (_a = preferences.providers) === null || _a === void 0 ? void 0 : _a.forEach((provider) => {
180
+ if (!provider.name) {
181
+ return;
182
+ }
183
+ providers[provider.name] = provider;
184
+ });
185
+ if (window && Array.isArray(window.edgetagProviders)) {
186
+ window.edgetagProviders.forEach((provider) => {
187
+ if (!provider.name) {
188
+ return;
189
+ }
190
+ providers[provider.name] = provider;
191
+ });
181
192
  }
182
193
  setUrl(preferences.edgeURL);
183
194
  return true;
@@ -220,6 +231,14 @@ const allowTag = (providers) => {
220
231
  return false;
221
232
  };
222
233
  const allowProvider = (providers, providerId) => {
234
+ if (providers) {
235
+ const tagProvider = providers[providerId];
236
+ if (!(tagProvider ||
237
+ (providers['all'] === true && tagProvider === undefined) ||
238
+ (providers['all'] === false && tagProvider === true))) {
239
+ return false;
240
+ }
241
+ }
223
242
  const consent = getDataPerKey('local', tagStorage, consentKey);
224
243
  if (isConsentDisabled()) {
225
244
  return true;
@@ -230,18 +249,7 @@ const allowProvider = (providers, providerId) => {
230
249
  if (consent['all']) {
231
250
  return true;
232
251
  }
233
- if (!providers) {
234
- return consent[providerId];
235
- }
236
- const tagProvider = providers[providerId];
237
- if (tagProvider ||
238
- (providers['all'] === true && tagProvider === undefined) ||
239
- (providers['all'] === false && tagProvider === true)) {
240
- if (consent[providerId]) {
241
- return true;
242
- }
243
- }
244
- return false;
252
+ return consent[providerId];
245
253
  };
246
254
 
247
255
  const beacon = (url, payload) => {
@@ -376,7 +384,7 @@ const handleTag = (eventName, data = {}, providers, options) => {
376
384
  const userId = handleGetUserId();
377
385
  const providerData = {};
378
386
  if (providerPackages) {
379
- providerPackages.forEach((pkg) => {
387
+ Object.values(providerPackages).forEach((pkg) => {
380
388
  if (!allowProvider(providers, pkg.name)) {
381
389
  return;
382
390
  }
@@ -469,7 +477,7 @@ const handleManifest = (manifest) => {
469
477
  });
470
478
  }
471
479
  if (providerPackages) {
472
- const pkg = providerPackages.find((pkg) => pkg.name === provider.package);
480
+ const pkg = providerPackages[provider.package];
473
481
  if (pkg && pkg.init) {
474
482
  pkg.init({ userId, manifest: provider, sendTag });
475
483
  }
package/index.d.ts CHANGED
@@ -75,7 +75,12 @@ type InitPreferences = {
75
75
 
76
76
  export declare const init: (preferences: InitPreferences) => void
77
77
 
78
- export declare const tag: (name: string, data?: Data) => void
78
+ export declare const tag: (
79
+ name: string,
80
+ data?: Data,
81
+ providers?: Data,
82
+ options?: EventOptions
83
+ ) => void
79
84
 
80
85
  export declare const consent: (consent: Data) => void
81
86
 
package/index.esm.js CHANGED
@@ -161,8 +161,9 @@ const getKeysURL = () => {
161
161
  };
162
162
 
163
163
  let consentDisabled = false;
164
- let providers = [];
164
+ const providers = {};
165
165
  const setPreferences = (preferences) => {
166
+ var _a;
166
167
  if (!preferences) {
167
168
  return false;
168
169
  }
@@ -171,9 +172,19 @@ const setPreferences = (preferences) => {
171
172
  return false;
172
173
  }
173
174
  consentDisabled = !!preferences.disableConsentCheck;
174
- providers = preferences.providers || [];
175
- if (window && window.edgetagPackages) {
176
- providers = [...window.edgetagPackages, ...providers];
175
+ (_a = preferences.providers) === null || _a === void 0 ? void 0 : _a.forEach((provider) => {
176
+ if (!provider.name) {
177
+ return;
178
+ }
179
+ providers[provider.name] = provider;
180
+ });
181
+ if (window && Array.isArray(window.edgetagProviders)) {
182
+ window.edgetagProviders.forEach((provider) => {
183
+ if (!provider.name) {
184
+ return;
185
+ }
186
+ providers[provider.name] = provider;
187
+ });
177
188
  }
178
189
  setUrl(preferences.edgeURL);
179
190
  return true;
@@ -216,6 +227,14 @@ const allowTag = (providers) => {
216
227
  return false;
217
228
  };
218
229
  const allowProvider = (providers, providerId) => {
230
+ if (providers) {
231
+ const tagProvider = providers[providerId];
232
+ if (!(tagProvider ||
233
+ (providers['all'] === true && tagProvider === undefined) ||
234
+ (providers['all'] === false && tagProvider === true))) {
235
+ return false;
236
+ }
237
+ }
219
238
  const consent = getDataPerKey('local', tagStorage, consentKey);
220
239
  if (isConsentDisabled()) {
221
240
  return true;
@@ -226,18 +245,7 @@ const allowProvider = (providers, providerId) => {
226
245
  if (consent['all']) {
227
246
  return true;
228
247
  }
229
- if (!providers) {
230
- return consent[providerId];
231
- }
232
- const tagProvider = providers[providerId];
233
- if (tagProvider ||
234
- (providers['all'] === true && tagProvider === undefined) ||
235
- (providers['all'] === false && tagProvider === true)) {
236
- if (consent[providerId]) {
237
- return true;
238
- }
239
- }
240
- return false;
248
+ return consent[providerId];
241
249
  };
242
250
 
243
251
  const beacon = (url, payload) => {
@@ -372,7 +380,7 @@ const handleTag = (eventName, data = {}, providers, options) => {
372
380
  const userId = handleGetUserId();
373
381
  const providerData = {};
374
382
  if (providerPackages) {
375
- providerPackages.forEach((pkg) => {
383
+ Object.values(providerPackages).forEach((pkg) => {
376
384
  if (!allowProvider(providers, pkg.name)) {
377
385
  return;
378
386
  }
@@ -465,7 +473,7 @@ const handleManifest = (manifest) => {
465
473
  });
466
474
  }
467
475
  if (providerPackages) {
468
- const pkg = providerPackages.find((pkg) => pkg.name === provider.package);
476
+ const pkg = providerPackages[provider.package];
469
477
  if (pkg && pkg.init) {
470
478
  pkg.init({ userId, manifest: provider, sendTag });
471
479
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blotoutio/edgetag-sdk-js",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "JS SDK for EdgeTag",
5
5
  "author": "Blotout",
6
6
  "license": "MIT",