@bringweb3/chrome-extension-kit 1.1.6 → 1.1.7

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/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var w=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var Q=(e,t)=>{for(var n in t)w(e,n,{get:t[n],enumerable:!0})},G=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of B(t))!J.call(e,s)&&s!==n&&w(e,s,{get:()=>t[s],enumerable:!(r=K(t,s))||r.enumerable});return e};var H=e=>G(w({},"__esModule",{value:!0}),e);var we={};Q(we,{bringInitBackground:()=>V,bringInitContentScript:()=>O});module.exports=H(we);var Y=e=>{let t=new URLSearchParams,{query:n,prefix:r}=e;return Object.entries(n).forEach(([s,i])=>{i&&(r&&(s=`${r}_${s}`),s==="url"?t.append(s,encodeURIComponent(i)):t.append(s,i))}),t.toString()},E=Y;var k={name:"@bringweb3/chrome-extension-kit",version:"1.1.6",description:"Crypto cashback integration kit for crypto outlets extension",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",license:"MIT",private:!1,publishConfig:{access:"public"},scripts:{watch:"tsup index.ts --env.IFRAME_URL=http://localhost:5173 --format cjs,esm --dts --watch",build:"tsup index.ts --format cjs,esm --dts --minify",lint:"tsc",test:"vitest --coverage",release:"yarn build && changeset publish"},files:["dist","README.md"],devDependencies:{"@changesets/cli":"^2.27.7","@types/chrome":"^0.0.268","@vitest/coverage-v8":"^2.0.5",tsup:"^8.2.1",typescript:"^5.5.3",vitest:"^2.0.5"},dependencies:{}};var X=()=>k.version,D=X;var Z=({query:e,theme:t,themeMode:n,text:r,iframeUrl:s})=>{let i=chrome.runtime.id,o=`bringweb3-iframe-${i}`,a=document.getElementById(o);if(a)return a;let d=E({query:{...e,extensionId:i,v:D(),themeMode:n,textMode:r}}),m=t?`&${E({query:t,prefix:"t"})}`:"",c=document.createElement("iframe");return c.id=o,c.src=`${process.env.IFRAME_URL||s}?${d}${m}`,c.setAttribute("sandbox","allow-popups allow-scripts allow-same-origin allow-top-navigation-by-user-activation"),c.style.position="fixed",c.scrolling="no",c.style.overflow="hidden",c.style.width="1px",c.style.height="1px",c.style.right="8px",c.style.borderRadius="10px",c.style.border="none",c.style.cssText+="z-index: 99999999999999 !important;",t?.popupShadow&&(c.style.boxShadow=t.popupShadow),document.documentElement.appendChild(c),c},P=Z;var ee=(e,t)=>{!e||!t||!Object.keys(t).length||Object.entries(t).forEach(([n,r])=>{n in e.style&&(e.style[n]=r)})},C=ee;var te=e=>{if(!e||!e.length)return;let t=document.createElement("style");document.head.appendChild(t);let n=t.sheet;n?e.forEach(({name:r,rules:s})=>{n.insertRule(`@keyframes ${r} { ${s} }`,n.cssRules.length)}):console.error("Failed to create stylesheet")},S=te;var p={OPEN:"OPEN",CLOSE:"CLOSE",ACTIVATE:"ACTIVATE",PROMPT_LOGIN:"PROMPT_LOGIN",OPT_OUT:"OPT_OUT",ADD_KEYFRAMES:"ADD_KEYFRAMES"},ne=[p.ACTIVATE],re=({event:e,iframeEl:t,promptLogin:n})=>{let{data:r}=e,{from:s,action:i,style:o,keyFrames:a,time:d,extensionId:m}=r;if(s==="bringweb3"&&!(m!==chrome.runtime.id&&!ne.includes(i)))switch(i){case p.OPEN:C(t,o);break;case p.CLOSE:t&&t.parentNode?.removeChild(t),d&&chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case p.PROMPT_LOGIN:n();break;case p.ACTIVATE:chrome.runtime.sendMessage({action:i,from:"bringweb3"});break;case p.OPT_OUT:chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case p.ADD_KEYFRAMES:S(a);break;default:break}},R=re;var M=async({iframeEl:e,getWalletAddress:t})=>{if(!e&&(e=document.querySelector(`#bringweb3-iframe-${chrome.runtime.id}`),!e)||!e.contentWindow)return;let n=await t();e.contentWindow.postMessage({action:"WALLET_ADDRESS_UPDATE",walletAddress:n},"*"),chrome.runtime.sendMessage({action:"WALLET_ADDRESS_UPDATE",from:"bringweb3",walletAddress:n})},se=({walletAddressListeners:e,walletAddressUpdateCallback:t,getWalletAddress:n,iframeEl:r})=>{if(t)t(()=>M({iframeEl:r,getWalletAddress:n}));else if(e)for(let s=0;s<e.length;s++){let i=e[s];i&&window.addEventListener(i,async()=>M({iframeEl:r,getWalletAddress:n}))}},I=se;var y=null,L=!1,ie=async({getWalletAddress:e,promptLogin:t,walletAddressListeners:n,walletAddressUpdateCallback:r,lightTheme:s,darkTheme:i,theme:o,text:a})=>{if(!e||!t||!n?.length&&typeof r!="function")throw new Error("Missing configuration");I({walletAddressListeners:n,walletAddressUpdateCallback:r,getWalletAddress:e,iframeEl:y}),window.addEventListener("message",d=>R({event:d,iframeEl:y,promptLogin:t})),chrome.runtime.onMessage.addListener((d,m,c)=>{if(d?.from!=="bringweb3")return;let{action:f}=d;switch(f){case"GET_WALLET_ADDRESS":return e().then(x=>c({status:"success",walletAddress:x})).catch(x=>c({status:"success",walletAddress:void 0})),!0;case"INJECT":if(L)return;let{token:g,iframeUrl:h}=d;return console.log({iframeUrl:h}),y=P({query:{token:g},iframeUrl:h,theme:o==="dark"?i:s,themeMode:o||"light",text:a}),L=!0,c({status:"success"}),!0;default:console.error(`Unknown action: ${f}`);break}})},O=ie;var u=class e{static instance=null;apiEndpoint="";constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}setApiEndpoint(t){this.apiEndpoint=t==="prod"?"https://api.bringweb3.io/v1/extension":"https://sandbox-api.bringweb3.io/v1/extension"}getApiEndpoint(){if(!this.apiEndpoint)throw new Error("API endpoint not set. Call setApiEndpoint first.");return this.apiEndpoint}};var oe=async e=>{let t=u.getInstance().getApiEndpoint();return await(await fetch(`${t}/domains`,{headers:{"x-api-key":e}})).json()},_=oe;var ae=async({apiKey:e,body:t})=>{let n=u.getInstance().getApiEndpoint();return await(await fetch(`${n}/check/popup`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(t)})).json()},U=ae;var ce=async({apiKey:e,walletAddress:t,cashbackUrl:n})=>{let r=u.getInstance().getApiEndpoint(),s={walletAddress:t};return n&&(s.cashbackUrl=n),await(await fetch(`${r}/check/notification`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(s)})).json()},N=ce;var A="updateCache";var de=async(e,t)=>new Promise((n,r)=>{chrome.storage.local.set({[`bring_${e}`]:t},()=>{chrome.runtime.lastError?r(chrome.runtime.lastError):n()})}),le=async e=>new Promise((t,n)=>{chrome.storage.local.get([`bring_${e}`],r=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t(r[`bring_${e}`])})}),me=async e=>new Promise((t,n)=>{chrome.storage.local.remove([`bring_${e}`],()=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t()})}),l={set:de,get:le,remove:me};var j=30*60*1e3,q=async e=>{let t=await l.get("walletAddress");try{if(!e){let r=await chrome.tabs.query({active:!0,currentWindow:!0});if(!r||!r[0]||!r[0].id)return t;e=r[0].id}let n=await v(e,{action:"GET_WALLET_ADDRESS"});n?.walletAddress&&t!==n?.walletAddress&&(t=n?.walletAddress,await l.set("walletAddress",t))}catch{}return t},ue=e=>{let t=Date.now();return(e-t)/1e3/60},T=async e=>{let t=await _(e);l.set("relevantDomains",t.relevantDomains);let{nextUpdateTimestamp:n}=t,r=ue(n);return chrome.alarms.create(A,{delayInMinutes:r||60*24*2}),t.relevantDomains},pe=async(e,t,n,r)=>{let s={showNotification:!1,token:"",iframeUrl:""},i=await l.get("notificationCheck");if(i?.check&&Date.now()<i.check)return s;let o=await q(t);if(!o)return s;let a=await N({apiKey:e,walletAddress:o,cashbackUrl:n}),d={check:r?a.nextRequestTimestampActivated:a.nextRequestTimestampRegular,nextRequestTimestampActivated:a.nextRequestTimestampActivated,nextRequestTimestampRegular:a.nextRequestTimestampRegular};return l.set("notificationCheck",d),{showNotification:a.showNotification,token:a.token,iframeUrl:a.iframeUrl}},fe=e=>e.replace(/^(https?:\/\/)?(www\.)?/,""),W=async(e,t)=>{let n=await l.get("relevantDomains");if(n===void 0&&(n=await T(t)),!e||!n||!n.length)return"";let r=fe(e);for(let s of n)if(r.startsWith(s)){let i=await l.get("quietDomains");return i&&i[s]&&Date.now()<i[s]?"":s}return""},$=async(e,t)=>{t||(t=j);let n=await l.get("quietDomains");typeof n=="object"?n[e]=Date.now()+t:n={[e]:Date.now()+j},l.set("quietDomains",n)},ge=e=>e?chrome.runtime.getURL(e):void 0,v=(e,t)=>new Promise((s,i)=>{let o=a=>{chrome.tabs.get(e,d=>{if(chrome.runtime.lastError){i(new Error(chrome.runtime.lastError.message));return}chrome.tabs.sendMessage(e,{...t,from:"bringweb3"},m=>{chrome.runtime.lastError?a<4?setTimeout(()=>o(a+1),1e3*Math.pow(2,a)):i(new Error(chrome.runtime.lastError.message)):s(m)})})};o(0)}),F=async(e,t,n)=>{let r=await pe(e,t,ge(n));r.showNotification&&await v(t,{action:"INJECT",token:r.token,iframeUrl:r.iframeUrl})},b={},he=async({identifier:e,apiEndpoint:t,cashbackPagePath:n})=>{if(!e||!t)throw new Error("Missing configuration");if(!["prod","sandbox"].includes(t))throw new Error("unknown apiEndpoint");u.getInstance().setApiEndpoint(t),T(e),chrome.alarms.onAlarm.addListener(async r=>{let{name:s}=r;switch(s){case A:T(e);break;default:console.error("alarm with no use case:",s);break}}),chrome.runtime.onMessage.addListener(async(r,s)=>{if(r?.from!=="bringweb3")return;let{action:i}=r;switch(i){case"ACTIVATE":{let o=await l.get("notificationCheck");if(!o.check||!o.nextRequestTimestampActivated)break;o.check=o.nextRequestTimestampActivated,l.set("notificationCheck",o);break}case"OPT_OUT":{let{time:o}=r;l.set("optOut",Date.now()+o);break}case"CLOSE":{let{time:o}=r,a=await W(s.tab?.url||s.origin,e);if(!a)break;$(a,o);break}case"WALLET_ADDRESS_UPDATE":{let{walletAddress:o}=r;l.set("walletAddress",o);break}default:{console.warn(`Bring unknown action: ${i}`);break}}}),chrome.tabs.onUpdated.addListener(async(r,s,i)=>{let o=await l.get("optOut");if(o&&o>Date.now()){await F(e,r,n);return}if(!i.url)return;let a=i.url.replace("www.",""),d=b[r];if(s.status!=="complete"||a===d)return;b[r]=a;let m=await W(i.url,e);if(!m||!m.length){await F(e,r,n);return}let c=await q(r),{token:f,isValid:g,iframeUrl:h}=await U({apiKey:e,body:{domain:m,url:i.url,address:c}});if(!g){g===!1&&$(m);return}v(r,{action:"INJECT",token:f,domain:a,iframeUrl:h})}),chrome.tabs.onRemoved.addListener(r=>delete b[r])},V=he;0&&(module.exports={bringInitBackground,bringInitContentScript});
1
+ "use strict";var E=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var G=(e,t)=>{for(var n in t)E(e,n,{get:t[n],enumerable:!0})},H=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of J(t))!Q.call(e,s)&&s!==n&&E(e,s,{get:()=>t[s],enumerable:!(r=B(t,s))||r.enumerable});return e};var Y=e=>H(E({},"__esModule",{value:!0}),e);var ye={};G(ye,{bringInitBackground:()=>K,bringInitContentScript:()=>O});module.exports=Y(ye);var z=e=>{let t=new URLSearchParams,{query:n,prefix:r}=e;return Object.entries(n).forEach(([s,i])=>{i&&(r&&(s=`${r}_${s}`),s==="url"?t.append(s,encodeURIComponent(i)):t.append(s,i))}),t.toString()},y=z;var D={name:"@bringweb3/chrome-extension-kit",version:"1.1.7",description:"Crypto cashback integration kit for crypto outlets extension",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",license:"MIT",private:!1,publishConfig:{access:"public"},scripts:{watch:"tsup index.ts --env.IFRAME_URL=http://localhost:5173 --format cjs,esm --dts --watch",build:"tsup index.ts --format cjs,esm --dts --minify",lint:"tsc",test:"vitest --coverage",release:"yarn build && changeset publish"},files:["dist","README.md"],devDependencies:{"@changesets/cli":"^2.27.7","@types/chrome":"^0.0.268","@vitest/coverage-v8":"^2.0.5",tsup:"^8.2.1",typescript:"^5.5.3",vitest:"^2.0.5"},dependencies:{}};var Z=()=>D.version,P=Z;var ee=({query:e,theme:t,themeMode:n,text:r,iframeUrl:s,page:i})=>{let o=chrome.runtime.id,a=`bringweb3-iframe-${o}`,d=document.getElementById(a),l=process.env.IFRAME_URL?`${process.env.IFRAME_URL}${i?"/"+i:""}`:s;if(d)return d;let u=y({query:{...e,extensionId:o,v:P(),themeMode:n,textMode:r}}),g=t?`&${y({query:t,prefix:"t"})}`:"",c=document.createElement("iframe");return c.id=a,c.src=`${l}?${u}${g}`,c.setAttribute("sandbox","allow-popups allow-scripts allow-same-origin allow-top-navigation-by-user-activation"),c.style.position="fixed",c.scrolling="no",c.style.overflow="hidden",c.style.width="1px",c.style.height="1px",c.style.right="8px",c.style.borderRadius="10px",c.style.border="none",c.style.cssText+="z-index: 99999999999999 !important;",t?.popupShadow&&(c.style.boxShadow=t.popupShadow),document.documentElement.appendChild(c),c},C=ee;var te=(e,t)=>{!e||!t||!Object.keys(t).length||Object.entries(t).forEach(([n,r])=>{n in e.style&&(e.style[n]=r)})},R=te;var ne=e=>{if(!e||!e.length)return;let t=document.createElement("style");document.head.appendChild(t);let n=t.sheet;n?e.forEach(({name:r,rules:s})=>{n.insertRule(`@keyframes ${r} { ${s} }`,n.cssRules.length)}):console.error("Failed to create stylesheet")},S=ne;var f={OPEN:"OPEN",CLOSE:"CLOSE",ACTIVATE:"ACTIVATE",PROMPT_LOGIN:"PROMPT_LOGIN",OPT_OUT:"OPT_OUT",ADD_KEYFRAMES:"ADD_KEYFRAMES"},re=[f.ACTIVATE],se=({event:e,iframeEl:t,promptLogin:n})=>{let{data:r}=e,{from:s,action:i,style:o,keyFrames:a,time:d,extensionId:l}=r;if(s==="bringweb3"&&!(l!==chrome.runtime.id&&!re.includes(i)))switch(i){case f.OPEN:R(t,o);break;case f.CLOSE:t&&t.parentNode?.removeChild(t),d&&chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case f.PROMPT_LOGIN:n();break;case f.ACTIVATE:chrome.runtime.sendMessage({action:i,from:"bringweb3"});break;case f.OPT_OUT:chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case f.ADD_KEYFRAMES:S(a);break;default:break}},L=se;var M=async({iframeEl:e,getWalletAddress:t})=>{if(!e&&(e=document.querySelector(`#bringweb3-iframe-${chrome.runtime.id}`),!e)||!e.contentWindow)return;let n=await t();e.contentWindow.postMessage({action:"WALLET_ADDRESS_UPDATE",walletAddress:n},"*"),chrome.runtime.sendMessage({action:"WALLET_ADDRESS_UPDATE",from:"bringweb3",walletAddress:n})},ie=({walletAddressListeners:e,walletAddressUpdateCallback:t,getWalletAddress:n,iframeEl:r})=>{if(t)t(()=>M({iframeEl:r,getWalletAddress:n}));else if(e)for(let s=0;s<e.length;s++){let i=e[s];i&&window.addEventListener(i,async()=>M({iframeEl:r,getWalletAddress:n}))}},I=ie;var oe=["www.","www1.","www2."],ae=e=>{if(!e)return"";let t=new URL(e).host;for(let n of oe)t.startsWith(n)&&t.replace(n,"");return t},h=ae;var A=null,U=!1,ce=async({getWalletAddress:e,promptLogin:t,walletAddressListeners:n,walletAddressUpdateCallback:r,lightTheme:s,darkTheme:i,theme:o,text:a})=>{if(window.self===window.top){if(!e||!t||!n?.length&&typeof r!="function")throw new Error("Missing configuration");I({walletAddressListeners:n,walletAddressUpdateCallback:r,getWalletAddress:e,iframeEl:A}),window.addEventListener("message",d=>L({event:d,iframeEl:A,promptLogin:t})),chrome.runtime.onMessage.addListener((d,l,u)=>{if(d?.from!=="bringweb3")return;let{action:g}=d;switch(g){case"GET_WALLET_ADDRESS":return e().then(k=>u({status:"success",walletAddress:k})).catch(k=>u({status:"success",walletAddress:void 0})),!0;case"INJECT":if(d.domain!==h(location.href)||U)return;let{token:c,iframeUrl:w}=d;return A=C({query:{token:c},iframeUrl:w,theme:o==="dark"?i:s,themeMode:o||"light",text:a,page:d.page}),U=!0,u({status:"success"}),!0;default:console.error(`Unknown action: ${g}`);break}})}},O=ce;var p=class e{static instance=null;apiEndpoint="";constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}setApiEndpoint(t){this.apiEndpoint=t==="prod"?"https://api.bringweb3.io/v1/extension":"https://sandbox-api.bringweb3.io/v1/extension"}getApiEndpoint(){if(!this.apiEndpoint)throw new Error("API endpoint not set. Call setApiEndpoint first.");return this.apiEndpoint}};var de=async e=>{let t=p.getInstance().getApiEndpoint();return await(await fetch(`${t}/domains`,{headers:{"x-api-key":e}})).json()},_=de;var me=async({apiKey:e,body:t})=>{let n=p.getInstance().getApiEndpoint();return await(await fetch(`${n}/check/popup`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(t)})).json()},N=me;var le=async({apiKey:e,walletAddress:t,cashbackUrl:n})=>{let r=p.getInstance().getApiEndpoint(),s={walletAddress:t};return n&&(s.cashbackUrl=n),await(await fetch(`${r}/check/notification`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(s)})).json()},$=le;var b="updateCache";var pe=async(e,t)=>new Promise((n,r)=>{chrome.storage.local.set({[`bring_${e}`]:t},()=>{chrome.runtime.lastError?r(chrome.runtime.lastError):n()})}),ue=async e=>new Promise((t,n)=>{chrome.storage.local.get([`bring_${e}`],r=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t(r[`bring_${e}`])})}),fe=async e=>new Promise((t,n)=>{chrome.storage.local.remove([`bring_${e}`],()=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t()})}),m={set:pe,get:ue,remove:fe};var j=30*60*1e3,V=async e=>{let t=await m.get("walletAddress");try{if(!e){let r=await chrome.tabs.query({active:!0,currentWindow:!0});if(!r||!r[0]||!r[0].id)return t;e=r[0].id}let n=await x(e,{action:"GET_WALLET_ADDRESS"});n?.walletAddress&&t!==n?.walletAddress&&(t=n?.walletAddress,await m.set("walletAddress",t))}catch{}return t},ge=e=>{let t=Date.now();return(e-t)/1e3/60},T=async e=>{let t=await _(e);m.set("relevantDomains",t.relevantDomains);let{nextUpdateTimestamp:n}=t,r=ge(n);return chrome.alarms.create(b,{delayInMinutes:r||60*24*2}),t.relevantDomains},he=async(e,t,n,r)=>{let s={showNotification:!1,token:"",iframeUrl:""},i=await m.get("notificationCheck");if(i?.check&&Date.now()<i.check)return s;let o=await V(t);if(!o)return s;let a=await $({apiKey:e,walletAddress:o,cashbackUrl:n}),d={check:r?a.nextRequestTimestampActivated:a.nextRequestTimestampRegular,nextRequestTimestampActivated:a.nextRequestTimestampActivated,nextRequestTimestampRegular:a.nextRequestTimestampRegular};return m.set("notificationCheck",d),{showNotification:a.showNotification,token:a.token,iframeUrl:a.iframeUrl}},W=async(e,t)=>{let n=await m.get("relevantDomains");if(n===void 0&&(n=await T(t)),!e||!n||!n.length)return"";let r=h(e);for(let s of n)if(r.startsWith(s)){let i=await m.get("quietDomains");return i&&i[s]&&Date.now()<i[s]?"":s}return""},F=async(e,t)=>{t||(t=j);let n=await m.get("quietDomains");typeof n=="object"?n[e]=Date.now()+t:n={[e]:Date.now()+j},m.set("quietDomains",n)},we=e=>e?chrome.runtime.getURL(e):void 0,x=(e,t)=>new Promise((s,i)=>{let o=a=>{chrome.tabs.get(e,d=>{if(chrome.runtime.lastError){i(new Error(chrome.runtime.lastError.message));return}chrome.tabs.sendMessage(e,{...t,from:"bringweb3"},l=>{chrome.runtime.lastError?a<4?setTimeout(()=>o(a+1),1e3*Math.pow(2,a)):i(new Error(chrome.runtime.lastError.message)):s(l)})})};o(0)}),q=async(e,t,n)=>{let r=await he(e,t,we(n));r.showNotification&&await x(t,{action:"INJECT",page:"notification",token:r.token,iframeUrl:r.iframeUrl})},v={},Ee=async({identifier:e,apiEndpoint:t,cashbackPagePath:n})=>{if(!e||!t)throw new Error("Missing configuration");if(!["prod","sandbox"].includes(t))throw new Error("unknown apiEndpoint");p.getInstance().setApiEndpoint(t),T(e),chrome.alarms.onAlarm.addListener(async r=>{let{name:s}=r;switch(s){case b:T(e);break;default:console.error("alarm with no use case:",s);break}}),chrome.runtime.onMessage.addListener(async(r,s)=>{if(r?.from!=="bringweb3")return;let{action:i}=r;switch(i){case"ACTIVATE":{let o=await m.get("notificationCheck");if(!o.check||!o.nextRequestTimestampActivated)break;o.check=o.nextRequestTimestampActivated,m.set("notificationCheck",o);break}case"OPT_OUT":{let{time:o}=r;m.set("optOut",Date.now()+o);break}case"CLOSE":{let{time:o}=r,a=await W(s.tab?.url||s.origin,e);if(!a)break;F(a,o);break}case"WALLET_ADDRESS_UPDATE":{let{walletAddress:o}=r;m.set("walletAddress",o);break}default:{console.warn(`Bring unknown action: ${i}`);break}}}),chrome.tabs.onUpdated.addListener(async(r,s,i)=>{let o=await m.get("optOut");if(o&&o>Date.now()){await q(e,r,n);return}if(!i.url)return;let a=h(i.url),d=v[r];if(s.status!=="complete"||a===d)return;v[r]=a;let l=await W(i.url,e);if(!l||!l.length){await q(e,r,n);return}let u=await V(r),{token:g,isValid:c,iframeUrl:w}=await N({apiKey:e,body:{domain:l,url:i.url,address:u}});if(!c){c===!1&&F(l);return}x(r,{action:"INJECT",token:g,domain:a,iframeUrl:w})}),chrome.tabs.onRemoved.addListener(r=>delete v[r])},K=Ee;0&&(module.exports={bringInitBackground,bringInitContentScript});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var F=e=>{let t=new URLSearchParams,{query:n,prefix:r}=e;return Object.entries(n).forEach(([s,i])=>{i&&(r&&(s=`${r}_${s}`),s==="url"?t.append(s,encodeURIComponent(i)):t.append(s,i))}),t.toString()},w=F;var x={name:"@bringweb3/chrome-extension-kit",version:"1.1.6",description:"Crypto cashback integration kit for crypto outlets extension",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",license:"MIT",private:!1,publishConfig:{access:"public"},scripts:{watch:"tsup index.ts --env.IFRAME_URL=http://localhost:5173 --format cjs,esm --dts --watch",build:"tsup index.ts --format cjs,esm --dts --minify",lint:"tsc",test:"vitest --coverage",release:"yarn build && changeset publish"},files:["dist","README.md"],devDependencies:{"@changesets/cli":"^2.27.7","@types/chrome":"^0.0.268","@vitest/coverage-v8":"^2.0.5",tsup:"^8.2.1",typescript:"^5.5.3",vitest:"^2.0.5"},dependencies:{}};var V=()=>x.version,k=V;var K=({query:e,theme:t,themeMode:n,text:r,iframeUrl:s})=>{let i=chrome.runtime.id,o=`bringweb3-iframe-${i}`,a=document.getElementById(o);if(a)return a;let d=w({query:{...e,extensionId:i,v:k(),themeMode:n,textMode:r}}),m=t?`&${w({query:t,prefix:"t"})}`:"",c=document.createElement("iframe");return c.id=o,c.src=`${process.env.IFRAME_URL||s}?${d}${m}`,c.setAttribute("sandbox","allow-popups allow-scripts allow-same-origin allow-top-navigation-by-user-activation"),c.style.position="fixed",c.scrolling="no",c.style.overflow="hidden",c.style.width="1px",c.style.height="1px",c.style.right="8px",c.style.borderRadius="10px",c.style.border="none",c.style.cssText+="z-index: 99999999999999 !important;",t?.popupShadow&&(c.style.boxShadow=t.popupShadow),document.documentElement.appendChild(c),c},D=K;var B=(e,t)=>{!e||!t||!Object.keys(t).length||Object.entries(t).forEach(([n,r])=>{n in e.style&&(e.style[n]=r)})},P=B;var J=e=>{if(!e||!e.length)return;let t=document.createElement("style");document.head.appendChild(t);let n=t.sheet;n?e.forEach(({name:r,rules:s})=>{n.insertRule(`@keyframes ${r} { ${s} }`,n.cssRules.length)}):console.error("Failed to create stylesheet")},C=J;var p={OPEN:"OPEN",CLOSE:"CLOSE",ACTIVATE:"ACTIVATE",PROMPT_LOGIN:"PROMPT_LOGIN",OPT_OUT:"OPT_OUT",ADD_KEYFRAMES:"ADD_KEYFRAMES"},Q=[p.ACTIVATE],G=({event:e,iframeEl:t,promptLogin:n})=>{let{data:r}=e,{from:s,action:i,style:o,keyFrames:a,time:d,extensionId:m}=r;if(s==="bringweb3"&&!(m!==chrome.runtime.id&&!Q.includes(i)))switch(i){case p.OPEN:P(t,o);break;case p.CLOSE:t&&t.parentNode?.removeChild(t),d&&chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case p.PROMPT_LOGIN:n();break;case p.ACTIVATE:chrome.runtime.sendMessage({action:i,from:"bringweb3"});break;case p.OPT_OUT:chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case p.ADD_KEYFRAMES:C(a);break;default:break}},S=G;var R=async({iframeEl:e,getWalletAddress:t})=>{if(!e&&(e=document.querySelector(`#bringweb3-iframe-${chrome.runtime.id}`),!e)||!e.contentWindow)return;let n=await t();e.contentWindow.postMessage({action:"WALLET_ADDRESS_UPDATE",walletAddress:n},"*"),chrome.runtime.sendMessage({action:"WALLET_ADDRESS_UPDATE",from:"bringweb3",walletAddress:n})},H=({walletAddressListeners:e,walletAddressUpdateCallback:t,getWalletAddress:n,iframeEl:r})=>{if(t)t(()=>R({iframeEl:r,getWalletAddress:n}));else if(e)for(let s=0;s<e.length;s++){let i=e[s];i&&window.addEventListener(i,async()=>R({iframeEl:r,getWalletAddress:n}))}},M=H;var E=null,I=!1,Y=async({getWalletAddress:e,promptLogin:t,walletAddressListeners:n,walletAddressUpdateCallback:r,lightTheme:s,darkTheme:i,theme:o,text:a})=>{if(!e||!t||!n?.length&&typeof r!="function")throw new Error("Missing configuration");M({walletAddressListeners:n,walletAddressUpdateCallback:r,getWalletAddress:e,iframeEl:E}),window.addEventListener("message",d=>S({event:d,iframeEl:E,promptLogin:t})),chrome.runtime.onMessage.addListener((d,m,c)=>{if(d?.from!=="bringweb3")return;let{action:f}=d;switch(f){case"GET_WALLET_ADDRESS":return e().then(v=>c({status:"success",walletAddress:v})).catch(v=>c({status:"success",walletAddress:void 0})),!0;case"INJECT":if(I)return;let{token:g,iframeUrl:h}=d;return console.log({iframeUrl:h}),E=D({query:{token:g},iframeUrl:h,theme:o==="dark"?i:s,themeMode:o||"light",text:a}),I=!0,c({status:"success"}),!0;default:console.error(`Unknown action: ${f}`);break}})},z=Y;var u=class e{static instance=null;apiEndpoint="";constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}setApiEndpoint(t){this.apiEndpoint=t==="prod"?"https://api.bringweb3.io/v1/extension":"https://sandbox-api.bringweb3.io/v1/extension"}getApiEndpoint(){if(!this.apiEndpoint)throw new Error("API endpoint not set. Call setApiEndpoint first.");return this.apiEndpoint}};var X=async e=>{let t=u.getInstance().getApiEndpoint();return await(await fetch(`${t}/domains`,{headers:{"x-api-key":e}})).json()},L=X;var Z=async({apiKey:e,body:t})=>{let n=u.getInstance().getApiEndpoint();return await(await fetch(`${n}/check/popup`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(t)})).json()},O=Z;var ee=async({apiKey:e,walletAddress:t,cashbackUrl:n})=>{let r=u.getInstance().getApiEndpoint(),s={walletAddress:t};return n&&(s.cashbackUrl=n),await(await fetch(`${r}/check/notification`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(s)})).json()},_=ee;var y="updateCache";var te=async(e,t)=>new Promise((n,r)=>{chrome.storage.local.set({[`bring_${e}`]:t},()=>{chrome.runtime.lastError?r(chrome.runtime.lastError):n()})}),ne=async e=>new Promise((t,n)=>{chrome.storage.local.get([`bring_${e}`],r=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t(r[`bring_${e}`])})}),re=async e=>new Promise((t,n)=>{chrome.storage.local.remove([`bring_${e}`],()=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t()})}),l={set:te,get:ne,remove:re};var U=30*60*1e3,$=async e=>{let t=await l.get("walletAddress");try{if(!e){let r=await chrome.tabs.query({active:!0,currentWindow:!0});if(!r||!r[0]||!r[0].id)return t;e=r[0].id}let n=await T(e,{action:"GET_WALLET_ADDRESS"});n?.walletAddress&&t!==n?.walletAddress&&(t=n?.walletAddress,await l.set("walletAddress",t))}catch{}return t},se=e=>{let t=Date.now();return(e-t)/1e3/60},b=async e=>{let t=await L(e);l.set("relevantDomains",t.relevantDomains);let{nextUpdateTimestamp:n}=t,r=se(n);return chrome.alarms.create(y,{delayInMinutes:r||60*24*2}),t.relevantDomains},ie=async(e,t,n,r)=>{let s={showNotification:!1,token:"",iframeUrl:""},i=await l.get("notificationCheck");if(i?.check&&Date.now()<i.check)return s;let o=await $(t);if(!o)return s;let a=await _({apiKey:e,walletAddress:o,cashbackUrl:n}),d={check:r?a.nextRequestTimestampActivated:a.nextRequestTimestampRegular,nextRequestTimestampActivated:a.nextRequestTimestampActivated,nextRequestTimestampRegular:a.nextRequestTimestampRegular};return l.set("notificationCheck",d),{showNotification:a.showNotification,token:a.token,iframeUrl:a.iframeUrl}},oe=e=>e.replace(/^(https?:\/\/)?(www\.)?/,""),N=async(e,t)=>{let n=await l.get("relevantDomains");if(n===void 0&&(n=await b(t)),!e||!n||!n.length)return"";let r=oe(e);for(let s of n)if(r.startsWith(s)){let i=await l.get("quietDomains");return i&&i[s]&&Date.now()<i[s]?"":s}return""},j=async(e,t)=>{t||(t=U);let n=await l.get("quietDomains");typeof n=="object"?n[e]=Date.now()+t:n={[e]:Date.now()+U},l.set("quietDomains",n)},ae=e=>e?chrome.runtime.getURL(e):void 0,T=(e,t)=>new Promise((s,i)=>{let o=a=>{chrome.tabs.get(e,d=>{if(chrome.runtime.lastError){i(new Error(chrome.runtime.lastError.message));return}chrome.tabs.sendMessage(e,{...t,from:"bringweb3"},m=>{chrome.runtime.lastError?a<4?setTimeout(()=>o(a+1),1e3*Math.pow(2,a)):i(new Error(chrome.runtime.lastError.message)):s(m)})})};o(0)}),W=async(e,t,n)=>{let r=await ie(e,t,ae(n));r.showNotification&&await T(t,{action:"INJECT",token:r.token,iframeUrl:r.iframeUrl})},A={},ce=async({identifier:e,apiEndpoint:t,cashbackPagePath:n})=>{if(!e||!t)throw new Error("Missing configuration");if(!["prod","sandbox"].includes(t))throw new Error("unknown apiEndpoint");u.getInstance().setApiEndpoint(t),b(e),chrome.alarms.onAlarm.addListener(async r=>{let{name:s}=r;switch(s){case y:b(e);break;default:console.error("alarm with no use case:",s);break}}),chrome.runtime.onMessage.addListener(async(r,s)=>{if(r?.from!=="bringweb3")return;let{action:i}=r;switch(i){case"ACTIVATE":{let o=await l.get("notificationCheck");if(!o.check||!o.nextRequestTimestampActivated)break;o.check=o.nextRequestTimestampActivated,l.set("notificationCheck",o);break}case"OPT_OUT":{let{time:o}=r;l.set("optOut",Date.now()+o);break}case"CLOSE":{let{time:o}=r,a=await N(s.tab?.url||s.origin,e);if(!a)break;j(a,o);break}case"WALLET_ADDRESS_UPDATE":{let{walletAddress:o}=r;l.set("walletAddress",o);break}default:{console.warn(`Bring unknown action: ${i}`);break}}}),chrome.tabs.onUpdated.addListener(async(r,s,i)=>{let o=await l.get("optOut");if(o&&o>Date.now()){await W(e,r,n);return}if(!i.url)return;let a=i.url.replace("www.",""),d=A[r];if(s.status!=="complete"||a===d)return;A[r]=a;let m=await N(i.url,e);if(!m||!m.length){await W(e,r,n);return}let c=await $(r),{token:f,isValid:g,iframeUrl:h}=await O({apiKey:e,body:{domain:m,url:i.url,address:c}});if(!g){g===!1&&j(m);return}T(r,{action:"INJECT",token:f,domain:a,iframeUrl:h})}),chrome.tabs.onRemoved.addListener(r=>delete A[r])},de=ce;export{de as bringInitBackground,z as bringInitContentScript};
1
+ var q=e=>{let t=new URLSearchParams,{query:n,prefix:r}=e;return Object.entries(n).forEach(([s,i])=>{i&&(r&&(s=`${r}_${s}`),s==="url"?t.append(s,encodeURIComponent(i)):t.append(s,i))}),t.toString()},E=q;var k={name:"@bringweb3/chrome-extension-kit",version:"1.1.7",description:"Crypto cashback integration kit for crypto outlets extension",main:"dist/index.js",module:"dist/index.mjs",types:"dist/index.d.ts",license:"MIT",private:!1,publishConfig:{access:"public"},scripts:{watch:"tsup index.ts --env.IFRAME_URL=http://localhost:5173 --format cjs,esm --dts --watch",build:"tsup index.ts --format cjs,esm --dts --minify",lint:"tsc",test:"vitest --coverage",release:"yarn build && changeset publish"},files:["dist","README.md"],devDependencies:{"@changesets/cli":"^2.27.7","@types/chrome":"^0.0.268","@vitest/coverage-v8":"^2.0.5",tsup:"^8.2.1",typescript:"^5.5.3",vitest:"^2.0.5"},dependencies:{}};var K=()=>k.version,D=K;var B=({query:e,theme:t,themeMode:n,text:r,iframeUrl:s,page:i})=>{let o=chrome.runtime.id,a=`bringweb3-iframe-${o}`,d=document.getElementById(a),l=process.env.IFRAME_URL?`${process.env.IFRAME_URL}${i?"/"+i:""}`:s;if(d)return d;let u=E({query:{...e,extensionId:o,v:D(),themeMode:n,textMode:r}}),g=t?`&${E({query:t,prefix:"t"})}`:"",c=document.createElement("iframe");return c.id=a,c.src=`${l}?${u}${g}`,c.setAttribute("sandbox","allow-popups allow-scripts allow-same-origin allow-top-navigation-by-user-activation"),c.style.position="fixed",c.scrolling="no",c.style.overflow="hidden",c.style.width="1px",c.style.height="1px",c.style.right="8px",c.style.borderRadius="10px",c.style.border="none",c.style.cssText+="z-index: 99999999999999 !important;",t?.popupShadow&&(c.style.boxShadow=t.popupShadow),document.documentElement.appendChild(c),c},P=B;var J=(e,t)=>{!e||!t||!Object.keys(t).length||Object.entries(t).forEach(([n,r])=>{n in e.style&&(e.style[n]=r)})},C=J;var Q=e=>{if(!e||!e.length)return;let t=document.createElement("style");document.head.appendChild(t);let n=t.sheet;n?e.forEach(({name:r,rules:s})=>{n.insertRule(`@keyframes ${r} { ${s} }`,n.cssRules.length)}):console.error("Failed to create stylesheet")},R=Q;var f={OPEN:"OPEN",CLOSE:"CLOSE",ACTIVATE:"ACTIVATE",PROMPT_LOGIN:"PROMPT_LOGIN",OPT_OUT:"OPT_OUT",ADD_KEYFRAMES:"ADD_KEYFRAMES"},G=[f.ACTIVATE],H=({event:e,iframeEl:t,promptLogin:n})=>{let{data:r}=e,{from:s,action:i,style:o,keyFrames:a,time:d,extensionId:l}=r;if(s==="bringweb3"&&!(l!==chrome.runtime.id&&!G.includes(i)))switch(i){case f.OPEN:C(t,o);break;case f.CLOSE:t&&t.parentNode?.removeChild(t),d&&chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case f.PROMPT_LOGIN:n();break;case f.ACTIVATE:chrome.runtime.sendMessage({action:i,from:"bringweb3"});break;case f.OPT_OUT:chrome.runtime.sendMessage({action:i,time:d,from:"bringweb3"});break;case f.ADD_KEYFRAMES:R(a);break;default:break}},S=H;var L=async({iframeEl:e,getWalletAddress:t})=>{if(!e&&(e=document.querySelector(`#bringweb3-iframe-${chrome.runtime.id}`),!e)||!e.contentWindow)return;let n=await t();e.contentWindow.postMessage({action:"WALLET_ADDRESS_UPDATE",walletAddress:n},"*"),chrome.runtime.sendMessage({action:"WALLET_ADDRESS_UPDATE",from:"bringweb3",walletAddress:n})},Y=({walletAddressListeners:e,walletAddressUpdateCallback:t,getWalletAddress:n,iframeEl:r})=>{if(t)t(()=>L({iframeEl:r,getWalletAddress:n}));else if(e)for(let s=0;s<e.length;s++){let i=e[s];i&&window.addEventListener(i,async()=>L({iframeEl:r,getWalletAddress:n}))}},M=Y;var z=["www.","www1.","www2."],X=e=>{if(!e)return"";let t=new URL(e).host;for(let n of z)t.startsWith(n)&&t.replace(n,"");return t},h=X;var y=null,I=!1,Z=async({getWalletAddress:e,promptLogin:t,walletAddressListeners:n,walletAddressUpdateCallback:r,lightTheme:s,darkTheme:i,theme:o,text:a})=>{if(window.self===window.top){if(!e||!t||!n?.length&&typeof r!="function")throw new Error("Missing configuration");M({walletAddressListeners:n,walletAddressUpdateCallback:r,getWalletAddress:e,iframeEl:y}),window.addEventListener("message",d=>S({event:d,iframeEl:y,promptLogin:t})),chrome.runtime.onMessage.addListener((d,l,u)=>{if(d?.from!=="bringweb3")return;let{action:g}=d;switch(g){case"GET_WALLET_ADDRESS":return e().then(x=>u({status:"success",walletAddress:x})).catch(x=>u({status:"success",walletAddress:void 0})),!0;case"INJECT":if(d.domain!==h(location.href)||I)return;let{token:c,iframeUrl:w}=d;return y=P({query:{token:c},iframeUrl:w,theme:o==="dark"?i:s,themeMode:o||"light",text:a,page:d.page}),I=!0,u({status:"success"}),!0;default:console.error(`Unknown action: ${g}`);break}})}},ee=Z;var p=class e{static instance=null;apiEndpoint="";constructor(){}static getInstance(){return e.instance||(e.instance=new e),e.instance}setApiEndpoint(t){this.apiEndpoint=t==="prod"?"https://api.bringweb3.io/v1/extension":"https://sandbox-api.bringweb3.io/v1/extension"}getApiEndpoint(){if(!this.apiEndpoint)throw new Error("API endpoint not set. Call setApiEndpoint first.");return this.apiEndpoint}};var te=async e=>{let t=p.getInstance().getApiEndpoint();return await(await fetch(`${t}/domains`,{headers:{"x-api-key":e}})).json()},U=te;var ne=async({apiKey:e,body:t})=>{let n=p.getInstance().getApiEndpoint();return await(await fetch(`${n}/check/popup`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(t)})).json()},O=ne;var re=async({apiKey:e,walletAddress:t,cashbackUrl:n})=>{let r=p.getInstance().getApiEndpoint(),s={walletAddress:t};return n&&(s.cashbackUrl=n),await(await fetch(`${r}/check/notification`,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":e},body:JSON.stringify(s)})).json()},_=re;var A="updateCache";var se=async(e,t)=>new Promise((n,r)=>{chrome.storage.local.set({[`bring_${e}`]:t},()=>{chrome.runtime.lastError?r(chrome.runtime.lastError):n()})}),ie=async e=>new Promise((t,n)=>{chrome.storage.local.get([`bring_${e}`],r=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t(r[`bring_${e}`])})}),oe=async e=>new Promise((t,n)=>{chrome.storage.local.remove([`bring_${e}`],()=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t()})}),m={set:se,get:ie,remove:oe};var N=30*60*1e3,F=async e=>{let t=await m.get("walletAddress");try{if(!e){let r=await chrome.tabs.query({active:!0,currentWindow:!0});if(!r||!r[0]||!r[0].id)return t;e=r[0].id}let n=await T(e,{action:"GET_WALLET_ADDRESS"});n?.walletAddress&&t!==n?.walletAddress&&(t=n?.walletAddress,await m.set("walletAddress",t))}catch{}return t},ae=e=>{let t=Date.now();return(e-t)/1e3/60},v=async e=>{let t=await U(e);m.set("relevantDomains",t.relevantDomains);let{nextUpdateTimestamp:n}=t,r=ae(n);return chrome.alarms.create(A,{delayInMinutes:r||60*24*2}),t.relevantDomains},ce=async(e,t,n,r)=>{let s={showNotification:!1,token:"",iframeUrl:""},i=await m.get("notificationCheck");if(i?.check&&Date.now()<i.check)return s;let o=await F(t);if(!o)return s;let a=await _({apiKey:e,walletAddress:o,cashbackUrl:n}),d={check:r?a.nextRequestTimestampActivated:a.nextRequestTimestampRegular,nextRequestTimestampActivated:a.nextRequestTimestampActivated,nextRequestTimestampRegular:a.nextRequestTimestampRegular};return m.set("notificationCheck",d),{showNotification:a.showNotification,token:a.token,iframeUrl:a.iframeUrl}},$=async(e,t)=>{let n=await m.get("relevantDomains");if(n===void 0&&(n=await v(t)),!e||!n||!n.length)return"";let r=h(e);for(let s of n)if(r.startsWith(s)){let i=await m.get("quietDomains");return i&&i[s]&&Date.now()<i[s]?"":s}return""},j=async(e,t)=>{t||(t=N);let n=await m.get("quietDomains");typeof n=="object"?n[e]=Date.now()+t:n={[e]:Date.now()+N},m.set("quietDomains",n)},de=e=>e?chrome.runtime.getURL(e):void 0,T=(e,t)=>new Promise((s,i)=>{let o=a=>{chrome.tabs.get(e,d=>{if(chrome.runtime.lastError){i(new Error(chrome.runtime.lastError.message));return}chrome.tabs.sendMessage(e,{...t,from:"bringweb3"},l=>{chrome.runtime.lastError?a<4?setTimeout(()=>o(a+1),1e3*Math.pow(2,a)):i(new Error(chrome.runtime.lastError.message)):s(l)})})};o(0)}),W=async(e,t,n)=>{let r=await ce(e,t,de(n));r.showNotification&&await T(t,{action:"INJECT",page:"notification",token:r.token,iframeUrl:r.iframeUrl})},b={},me=async({identifier:e,apiEndpoint:t,cashbackPagePath:n})=>{if(!e||!t)throw new Error("Missing configuration");if(!["prod","sandbox"].includes(t))throw new Error("unknown apiEndpoint");p.getInstance().setApiEndpoint(t),v(e),chrome.alarms.onAlarm.addListener(async r=>{let{name:s}=r;switch(s){case A:v(e);break;default:console.error("alarm with no use case:",s);break}}),chrome.runtime.onMessage.addListener(async(r,s)=>{if(r?.from!=="bringweb3")return;let{action:i}=r;switch(i){case"ACTIVATE":{let o=await m.get("notificationCheck");if(!o.check||!o.nextRequestTimestampActivated)break;o.check=o.nextRequestTimestampActivated,m.set("notificationCheck",o);break}case"OPT_OUT":{let{time:o}=r;m.set("optOut",Date.now()+o);break}case"CLOSE":{let{time:o}=r,a=await $(s.tab?.url||s.origin,e);if(!a)break;j(a,o);break}case"WALLET_ADDRESS_UPDATE":{let{walletAddress:o}=r;m.set("walletAddress",o);break}default:{console.warn(`Bring unknown action: ${i}`);break}}}),chrome.tabs.onUpdated.addListener(async(r,s,i)=>{let o=await m.get("optOut");if(o&&o>Date.now()){await W(e,r,n);return}if(!i.url)return;let a=h(i.url),d=b[r];if(s.status!=="complete"||a===d)return;b[r]=a;let l=await $(i.url,e);if(!l||!l.length){await W(e,r,n);return}let u=await F(r),{token:g,isValid:c,iframeUrl:w}=await O({apiKey:e,body:{domain:l,url:i.url,address:u}});if(!c){c===!1&&j(l);return}T(r,{action:"INJECT",token:g,domain:a,iframeUrl:w})}),chrome.tabs.onRemoved.addListener(r=>delete b[r])},le=me;export{le as bringInitBackground,ee as bringInitContentScript};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bringweb3/chrome-extension-kit",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "Crypto cashback integration kit for crypto outlets extension",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",