@blotoutio/edgetag-sdk-browser 0.4.0 → 0.4.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.
Files changed (2) hide show
  1. package/index.cjs +1 -0
  2. package/package.json +2 -2
package/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "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=(e,t,n,o)=>{const a=r(e);a.data||(a.data={}),a.data[t]||(a.data[t]={}),a.data[t][o]=n,s(e,a)},n=(e,t,n,o)=>{const a=r(e);a[t]||(a[t]={}),a[t][o]=n,s(e,a)},o=(e,t,n)=>{const o=r(e);if(o[t])return o[t][n]},s=(e,t,n="_workerStore")=>{"session"!==e?c(t,n):l(t,n)},r=(e,t="_workerStore")=>"session"===e?d(t):i(t),a=e=>{let t=r("session");t||(t={}),t.data||(t.data={}),t.data=Object.assign(Object.assign({},t.data),e),s("session",t)},c=(e,t)=>{localStorage.setItem(t,JSON.stringify(e))},i=e=>{const t=localStorage.getItem(e);return t&&JSON.parse(t)||{}},l=(e,t)=>{sessionStorage.setItem(t,JSON.stringify(e))},d=e=>{const t=sessionStorage.getItem(e);return t&&JSON.parse(t)||{}};let u="";const g=e=>{const t=f();return t?`${t}${e}`:(console.log("URL is not valid"),"")},f=()=>u;let h=!1;const y=e=>{return!!e&&(e.edgeURL?(h=!!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(h)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},b=(e,t)=>{let n;return t&&(n=new Blob([JSON.stringify(t)],{type:"application/json"})),navigator.sendBeacon(e,n)},m=(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 w(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=r("session");o&&(n=Object.assign(Object.assign({},n),o));const s=r("local");return s&&(n=Object.assign(Object.assign({},n),s)),t.storage=n,t})(n);return o&&"beacon"===o.method?Promise.resolve(b(t,e)):yield m("POST",t,e)}))}function j(t,n){return e(this,void 0,void 0,(function*(){return t?n&&"beacon"===n.method?{result:Promise.resolve(b(t))}:yield m("GET",t):Promise.reject(new Error("URL is empty"))}))}const k=e=>{},O=e=>{n("local","edgeTag",e,"consent")},S=e=>{const t={consentString:e};O(e),w(g("/consent"),t).catch(k)},P=(e,t,n)=>{const o={eventName:e};t&&(o.data=t),n&&(o.providers=n),p(n)?w(g("/tag"),o).catch(k):console.log("No consent")},I=(e,n,o,s)=>{let r;switch(s){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""})(n);break;case"local":r=sessionStorage.getItem(n);break;case"session":r=localStorage.getItem(n)}r&&t(o,e,r,n)},E=(e,n)=>{n.forEach((n=>{switch(n.type){case"query":((e,n,o)=>{const s=new URLSearchParams(window.location.search);s&&s.get(n)&&t(o,e,s.get(n),n)})(e,n.key,n.persist);break;case"storage":I(e,n.key,n.persist,n.location)}}))},U=e=>{if(!y(e))return;let t=`${g("/init")}`;e.disableConsentCheck&&(t=`${t}?consentDisabled=true`,O({all:!0})),j(t).then((e=>{e?(e=>{const t=[];e.forEach((e=>{t.push(e.package),Object.entries(e.rules).forEach((([t,n])=>{"capture"!==t||E(e.package,n)}))})),n("local","edgeTag",t,"providers")})(e.result):console.log("init failed")})).catch(k)},A=(e,t)=>{e&&t?(a({[e]:t}),w(g("/user"),{key:e,value:t}).catch(k)):console.error("Key or Value is missing in user API.")},N=e=>{e&&0!==Object.keys(e).length?(a(e),w(g("/data"),{data:e}).catch(k)):console.error("Provide data for data API.")},R=(e,t)=>{e&&0!==e.length?j((e=>g(`/data?keys=${encodeURIComponent(e.join(","))}`))(e)).then((e=>{t((null==e?void 0:e.result)||{})})).catch(k):console.error("Provide keys for get data API.")},C=e=>{j(g("/keys")).then((t=>{e((null==t?void 0:t.result)||[])})).catch(k)};var J=new class{init(e){(e=>{U(e)})(e)}tag(e,t,n){((e,t,n)=>{P(e,t,n)})(e,t,n)}consent(e){(e=>{S(e)})(e)}user(e,t){((e,t)=>{A(e,t)})(e,t)}data(e){(e=>{N(e)})(e)}getData(e,t){((e,t)=>{R(e,t)})(e,t)}keys(e){(e=>{C(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=J;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.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Browser SDK for EdgeTag",
5
5
  "author": "Blotout",
6
6
  "license": "MIT",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "files": [
16
16
  "index.js",
17
- "index.cjs.js",
17
+ "index.cjs",
18
18
  "package.json",
19
19
  "README.md"
20
20
  ],