@blotoutio/edgetag-sdk-browser 0.3.0 → 0.4.2

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 ADDED
@@ -0,0 +1 @@
1
+ !function(){"use strict";function e(e,t,n,o){return new(n||(n=Promise))((function(s,r){function a(e){try{i(o.next(e))}catch(e){r(e)}}function c(e){try{i(o.throw(e))}catch(e){r(e)}}function i(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}i((o=o.apply(e,t||[])).next())}))}const t="edgeTag",n="consent",o="providers",s="_workerStore",r=(e,t,n,o)=>{const s=l(e);s.data||(s.data={}),s.data[t]||(s.data[t]={}),s.data[t][o]=n,i(e,s)},a=(e,t,n,o)=>{const s=l(e);s[t]||(s[t]={}),s[t][o]=n,i(e,s)},c=(e,t,n)=>{const o=l(e);if(o[t])return o[t][n]},i=(e,t,n=s)=>{"session"!==e?d(t,n):f(t,n)},l=(e,t=s)=>"session"===e?h(t):g(t),u=e=>{let t=l("session");t||(t={}),t.data||(t.data={}),t.data=Object.assign(Object.assign({},t.data),e),i("session",t)},d=(e,t)=>{localStorage.setItem(t,JSON.stringify(e))},g=e=>{const t=localStorage.getItem(e);return t&&JSON.parse(t)||{}},f=(e,t)=>{sessionStorage.setItem(t,JSON.stringify(e))},h=e=>{const t=sessionStorage.getItem(e);return t&&JSON.parse(t)||{}};let y="";const v=e=>{const t=p();return t?`${t}${e}`:(console.log("URL is not valid"),"")},p=()=>y;let b=!1;const m=e=>{return!!e&&(e.edgeURL?(b=!!e.disableConsentCheck,null!=(t=e.edgeURL)&&(y=t),!0):(console.error("Please provide URL for EdgeTag"),!1));var t},w=()=>{const e=navigator;let t=e.userAgent;return t+=e.brave?`${t} Brave`:"",t},j=e=>{const s=c("local",t,n);if(b)return!0;if(!s)return!1;if(s.all)return!0;if(!e)return Object.values(s).find((e=>e))||!1;const r=c("local",t,o)||[];for(const t of r){const n=e[t];if((n||!0===e.all&&void 0===n||!1===e.all&&!0===n)&&s[t])return!0}return!1},O=(e,t)=>{let n;return t&&(n=new Blob([JSON.stringify(t)],{type:"application/json"})),navigator.sendBeacon(e,n)},k=(t,n,o)=>e(void 0,void 0,void 0,(function*(){return yield fetch(n,{method:t,headers:{"Content-type":"application/json; charset=utf-8",Accept:"application/json; charset=utf-8"},body:JSON.stringify(o),credentials:"include"}).then((e=>e.json().then((t=>({status:e.status,body:t}))))).then((e=>e.status<200||e.status>=300?Promise.reject(new Error(JSON.stringify(e.body))):Promise.resolve(e.body))).catch((e=>Promise.reject(new Error(e))))}));function S(t,n,o){return e(this,void 0,void 0,(function*(){if(!t)return Promise.reject(new Error("URL is empty"));const e=(e=>{const t=Object.assign({pageUrl:window.location.href,userAgent:w()},e||{});let n={};const o=l("session");o&&(n=Object.assign(Object.assign({},n),o));const s=l("local");return s&&(n=Object.assign(Object.assign({},n),s)),t.storage=n,t})(n);return o&&"beacon"===o.method?Promise.resolve(O(t,e)):yield k("POST",t,e)}))}function P(t,n){return e(this,void 0,void 0,(function*(){return t?n&&"beacon"===n.method?{result:Promise.resolve(O(t))}:yield k("GET",t):Promise.reject(new Error("URL is empty"))}))}const I=e=>{},E=e=>{a("local",t,e,n)},U=e=>{const t={consentString:e};E(e),S(v("/consent"),t).catch(I)},A=(e,t,n)=>{const o={eventName:e};t&&(o.data=t),n&&(o.providers=n),j(n)?S(v("/tag"),o).catch(I):console.log("No consent")},N=(e,t,n,o)=>{let s;switch(o){case"cookie":s=(e=>{const t=`${e}=`,n=decodeURIComponent(document.cookie).split(";");for(let e=0;e<n.length;e++){let o=n[e];for(;" "===o.charAt(0);)o=o.substring(1);if(0===o.indexOf(t))return o.substring(t.length,o.length)}return""})(t);break;case"local":s=sessionStorage.getItem(t);break;case"session":s=localStorage.getItem(t)}s&&r(n,e,s,t)},R=(e,t)=>{t.forEach((t=>{switch(t.type){case"query":((e,t,n)=>{const o=new URLSearchParams(window.location.search);o&&o.get(t)&&r(n,e,o.get(t),t)})(e,t.key,t.persist);break;case"storage":N(e,t.key,t.persist,t.location)}}))},C=e=>{if(!m(e))return;let n=`${v("/init")}`;e.disableConsentCheck&&(n=`${n}?consentDisabled=true`,E({all:!0})),P(n).then((e=>{e?(e=>{const n=[];e.forEach((e=>{n.push(e.package),Object.entries(e.rules).forEach((([t,n])=>{"capture"!==t||R(e.package,n)}))})),a("local",t,n,o)})(e.result):console.log("init failed")})).catch(I)},J=(e,t)=>{e&&t?(u({[e]:t}),S(v("/user"),{key:e,value:t}).catch(I)):console.error("Key or Value is missing in user API.")},L=e=>{e&&0!==Object.keys(e).length?(u(e),S(v("/data"),{data:e}).catch(I)):console.error("Provide data for data API.")},$=(e,t)=>{e&&0!==e.length?P((e=>v(`/data?keys=${encodeURIComponent(e.join(","))}`))(e)).then((e=>{t((null==e?void 0:e.result)||{})})).catch(I):console.error("Provide keys for get data API.")},T=e=>{P(v("/keys")).then((t=>{e((null==t?void 0:t.result)||[])})).catch(I)};var x=new class{init(e){(e=>{C(e)})(e)}tag(e,t,n){((e,t,n)=>{A(e,t,n)})(e,t,n)}consent(e){(e=>{U(e)})(e)}user(e,t){((e,t)=>{J(e,t)})(e,t)}data(e){(e=>{L(e)})(e)}getData(e,t){((e,t)=>{$(e,t)})(e,t)}keys(e){(e=>{T(e)})(e)}};!function(){const e=e=>{const n=[].slice.call(e);if(Array.isArray(n))try{return t[n[0]](...n.slice(1))}catch(e){console.error(e)}},t=x;let n=[];window.edgetag&&(n=window.edgetag.stubs||[]),window.edgetag=function(){return e(arguments)},n.forEach(e)}()}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blotoutio/edgetag-sdk-browser",
3
- "version": "0.3.0",
3
+ "version": "0.4.2",
4
4
  "description": "Browser SDK for EdgeTag",
5
5
  "author": "Blotout",
6
6
  "license": "MIT",
@@ -13,12 +13,18 @@
13
13
  "url": "git+https://github.com/blotoutio/edgetag-sdk.git"
14
14
  },
15
15
  "files": [
16
- "index.esm.js",
17
- "index.umd.js",
16
+ "index.js",
17
+ "index.cjs",
18
18
  "package.json",
19
19
  "README.md"
20
20
  ],
21
- "main": "./index.umd.js",
22
- "module": "./index.esm.js",
23
- "typings": "./index.d.ts"
21
+ "main": "./index.cjs",
22
+ "type": "commonjs",
23
+ "types": "./index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./index.d.ts",
27
+ "require": "./index.cjs"
28
+ }
29
+ }
24
30
  }
package/index.esm.js DELETED
@@ -1 +0,0 @@
1
- function e(e,t,n,o){return new(n||(n=Promise))((function(r,s){function a(e){try{i(o.next(e))}catch(e){s(e)}}function c(e){try{i(o.throw(e))}catch(e){s(e)}}function i(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}i((o=o.apply(e,t||[])).next())}))}const t=(e,t,n,o)=>{const a=s(e);a.data||(a.data={}),a.data[t]||(a.data[t]={}),a.data[t][o]=n,r(e,a)},n=(e,t,n,o)=>{const a=s(e);a[t]||(a[t]={}),a[t][o]=n,r(e,a)},o=(e,t,n)=>{const o=s(e);if(o[t])return o[t][n]},r=(e,t,n="_workerStore")=>{"session"!==e?a(t,n):i(t,n)},s=(e,t="_workerStore")=>"session"===e?l(t):c(t),a=(e,t)=>{localStorage.setItem(t,JSON.stringify(e))},c=e=>{const t=localStorage.getItem(e);return t&&JSON.parse(t)||{}},i=(e,t)=>{sessionStorage.setItem(t,JSON.stringify(e))},l=e=>{const t=sessionStorage.getItem(e);return t&&JSON.parse(t)||{}};let u="";const g=e=>{const t=d();return t?`${t}${e}`:(console.log("URL is not valid"),"")},d=()=>u;let f=!1;const h=e=>{return!!e&&(e.edgeURL?(f=!!e.disableConsentCheck,null!=(t=e.edgeURL)&&(u=t),!0):(console.error("Please provide URL for EdgeTag"),!1));var t},v=()=>{const e=navigator;let t=e.userAgent;return t+=e.brave?`${t} Brave`:"",t},p=e=>{const t=o("local","edgeTag","consent");if(f)return!0;if(!t)return!1;if(t.all)return!0;if(!e)return Object.values(t).find((e=>e))||!1;const n=o("local","edgeTag","providers")||[];for(const o of n){const n=e[o];if((n||!0===e.all&&void 0===n||!1===e.all&&!0===n)&&t[o])return!0}return!1},y=(e,t)=>{let n;return t&&(n=new Blob([JSON.stringify(t)],{type:"application/json"})),navigator.sendBeacon(e,n)},b=(t,n,o)=>e(void 0,void 0,void 0,(function*(){return yield fetch(n,{method:t,headers:{"Content-type":"application/json; charset=utf-8",Accept:"application/json; charset=utf-8"},body:JSON.stringify(o),credentials:"include"}).then((e=>e.json().then((t=>({status:e.status,body:t}))))).then((e=>e.status<200||e.status>=300?Promise.reject(new Error(JSON.stringify(e.body))):Promise.resolve(e.body))).catch((e=>Promise.reject(new Error(e))))}));function m(t,n,o){return e(this,void 0,void 0,(function*(){if(!t)return Promise.reject(new Error("URL is empty"));const e=(e=>{const t=Object.assign({pageUrl:window.location.href,userAgent:v()},e||{});let n={};const o=s("session");o&&(n=Object.assign(Object.assign({},n),o));const r=s("local");return r&&(n=Object.assign(Object.assign({},n),r)),t.storage=n,t})(n);return o&&"beacon"===o.method&&navigator.sendBeacon?Promise.resolve(y(t,e)):yield b("POST",t,e)}))}const w=e=>{},S=e=>{n("local","edgeTag",e,"consent")},O=e=>{const t={consentString:e};S(e),m(g("/consent"),t).catch(w)},j=(e,t,n)=>{const o={eventName:e};t&&(o.data=t),n&&(o.providers=n),p(n)?m(g("/tag"),o).catch(w):console.log("No consent")},k=(e,n,o,r)=>{let s;switch(r){case"cookie":s=(e=>{const t=`${e}=`,n=decodeURIComponent(document.cookie).split(";");for(let e=0;e<n.length;e++){let o=n[e];for(;" "===o.charAt(0);)o=o.substring(1);if(0===o.indexOf(t))return o.substring(t.length,o.length)}return""})(n);break;case"local":s=sessionStorage.getItem(n);break;case"session":s=localStorage.getItem(n)}s&&t(o,e,s,n)},P=(e,n)=>{n.forEach((n=>{switch(n.type){case"query":((e,n,o)=>{const r=new URLSearchParams(window.location.search);r&&r.get(n)&&t(o,e,r.get(n),n)})(e,n.key,n.persist);break;case"storage":k(e,n.key,n.persist,n.location)}}))},E=t=>{if(!h(t))return;let o=`${g("/init")}`;t.disableConsentCheck&&(o=`${o}?consentDisabled=true`,S({all:!0})),function(t,n){return e(this,void 0,void 0,(function*(){return t?n&&"beacon"===n.method&&navigator.sendBeacon?{result:Promise.resolve(y(t))}:yield b("GET",t):Promise.reject(new Error("URL is empty"))}))}(o).then((e=>{e?(e=>{const t=[];e.forEach((e=>{t.push(e.package),Object.entries(e.rules).forEach((([t,n])=>{"capture"!==t||P(e.package,n)}))})),n("local","edgeTag",t,"providers")})(e.result):console.log("init failed")})).catch(w)},N=(e,t)=>{if(!e||!t)return void console.error("Key or Value is missing in user api.");const n={key:e,value:t};m(g("/user"),n).catch(w)};var U=new class{init(e){(e=>{E(e)})(e)}tag(e,t,n){((e,t,n)=>{j(e,t,n)})(e,t,n)}consent(e){(e=>{O(e)})(e)}user(e,t){((e,t)=>{N(e,t)})(e,t)}};!function(){const e=e=>{const n=[].slice.call(e);if(Array.isArray(n))try{return t[n[0]](...n.slice(1))}catch(e){console.error(e)}},t=U;let n=[];window.edgetag&&(n=window.edgetag.stubs||[]),window.edgetag=function(){return e(arguments)},n.forEach(e)}();
package/index.umd.js DELETED
@@ -1 +0,0 @@
1
- !function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";function e(e,t,n,o){return new(n||(n=Promise))((function(r,s){function c(e){try{a(o.next(e))}catch(e){s(e)}}function i(e){try{a(o.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(c,i)}a((o=o.apply(e,t||[])).next())}))}const t="edgeTag",n="consent",o="providers",r="_workerStore",s=(e,t,n,o)=>{const r=l(e);r.data||(r.data={}),r.data[t]||(r.data[t]={}),r.data[t][o]=n,a(e,r)},c=(e,t,n,o)=>{const r=l(e);r[t]||(r[t]={}),r[t][o]=n,a(e,r)},i=(e,t,n)=>{const o=l(e);if(o[t])return o[t][n]},a=(e,t,n=r)=>{"session"!==e?u(t,n):g(t,n)},l=(e,t=r)=>"session"===e?f(t):d(t),u=(e,t)=>{localStorage.setItem(t,JSON.stringify(e))},d=e=>{const t=localStorage.getItem(e);return t&&JSON.parse(t)||{}},g=(e,t)=>{sessionStorage.setItem(t,JSON.stringify(e))},f=e=>{const t=sessionStorage.getItem(e);return t&&JSON.parse(t)||{}};let h="";const p=e=>{const t=v();return t?`${t}${e}`:(console.log("URL is not valid"),"")},v=()=>h;let y=!1;const m=e=>{return!!e&&(e.edgeURL?(y=!!e.disableConsentCheck,null!=(t=e.edgeURL)&&(h=t),!0):(console.error("Please provide URL for EdgeTag"),!1));var t},b=()=>{const e=navigator;let t=e.userAgent;return t+=e.brave?`${t} Brave`:"",t},w=e=>{const r=i("local",t,n);if(y)return!0;if(!r)return!1;if(r.all)return!0;if(!e)return Object.values(r).find((e=>e))||!1;const s=i("local",t,o)||[];for(const t of s){const n=e[t];if((n||!0===e.all&&void 0===n||!1===e.all&&!0===n)&&r[t])return!0}return!1},S=(e,t)=>{let n;return t&&(n=new Blob([JSON.stringify(t)],{type:"application/json"})),navigator.sendBeacon(e,n)},O=(t,n,o)=>e(void 0,void 0,void 0,(function*(){return yield fetch(n,{method:t,headers:{"Content-type":"application/json; charset=utf-8",Accept:"application/json; charset=utf-8"},body:JSON.stringify(o),credentials:"include"}).then((e=>e.json().then((t=>({status:e.status,body:t}))))).then((e=>e.status<200||e.status>=300?Promise.reject(new Error(JSON.stringify(e.body))):Promise.resolve(e.body))).catch((e=>Promise.reject(new Error(e))))}));function j(t,n,o){return e(this,void 0,void 0,(function*(){if(!t)return Promise.reject(new Error("URL is empty"));const e=(e=>{const t=Object.assign({pageUrl:window.location.href,userAgent:b()},e||{});let n={};const o=l("session");o&&(n=Object.assign(Object.assign({},n),o));const r=l("local");return r&&(n=Object.assign(Object.assign({},n),r)),t.storage=n,t})(n);return o&&"beacon"===o.method&&navigator.sendBeacon?Promise.resolve(S(t,e)):yield O("POST",t,e)}))}const k=e=>{},P=e=>{c("local",t,e,n)},E=e=>{const t={consentString:e};P(e),j(p("/consent"),t).catch(k)},N=(e,t,n)=>{const o={eventName:e};t&&(o.data=t),n&&(o.providers=n),w(n)?j(p("/tag"),o).catch(k):console.log("No consent")},U=(e,t,n,o)=>{let r;switch(o){case"cookie":r=(e=>{const t=`${e}=`,n=decodeURIComponent(document.cookie).split(";");for(let e=0;e<n.length;e++){let o=n[e];for(;" "===o.charAt(0);)o=o.substring(1);if(0===o.indexOf(t))return o.substring(t.length,o.length)}return""})(t);break;case"local":r=sessionStorage.getItem(t);break;case"session":r=localStorage.getItem(t)}r&&s(n,e,r,t)},R=(e,t)=>{t.forEach((t=>{switch(t.type){case"query":((e,t,n)=>{const o=new URLSearchParams(window.location.search);o&&o.get(t)&&s(n,e,o.get(t),t)})(e,t.key,t.persist);break;case"storage":U(e,t.key,t.persist,t.location)}}))},I=n=>{if(!m(n))return;let r=`${p("/init")}`;n.disableConsentCheck&&(r=`${r}?consentDisabled=true`,P({all:!0})),function(t,n){return e(this,void 0,void 0,(function*(){return t?n&&"beacon"===n.method&&navigator.sendBeacon?{result:Promise.resolve(S(t))}:yield O("GET",t):Promise.reject(new Error("URL is empty"))}))}(r).then((e=>{e?(e=>{const n=[];e.forEach((e=>{n.push(e.package),Object.entries(e.rules).forEach((([t,n])=>{"capture"!==t||R(e.package,n)}))})),c("local",t,n,o)})(e.result):console.log("init failed")})).catch(k)},J=(e,t)=>{if(!e||!t)return void console.error("Key or Value is missing in user api.");const n={key:e,value:t};j(p("/user"),n).catch(k)};var L=new class{init(e){(e=>{I(e)})(e)}tag(e,t,n){((e,t,n)=>{N(e,t,n)})(e,t,n)}consent(e){(e=>{E(e)})(e)}user(e,t){((e,t)=>{J(e,t)})(e,t)}};!function(){const e=e=>{const n=[].slice.call(e);if(Array.isArray(n))try{return t[n[0]](...n.slice(1))}catch(e){console.error(e)}},t=L;let n=[];window.edgetag&&(n=window.edgetag.stubs||[]),window.edgetag=function(){return e(arguments)},n.forEach(e)}()}));