UNPKG

@adopture/next

Version:

Next.js SDK for Adopture feature adoption tracking with SSR support

3 lines 1.88 kB
function o(){return Date.now()}function l(i){return new Promise(e=>setTimeout(e,i))}async function m(i,e=3,t=1e3){let n;for(let r=1;r<=e;r++)try{return await i()}catch(s){if(n=s,r===e)throw n;let a=t*Math.pow(2,r-1);await l(a);}throw n}function g(i,e){return Promise.race([i,new Promise((t,n)=>{setTimeout(()=>{n(new Error(`Operation timed out after ${e}ms`));},e);})])}function d(i){let e=["password","token","secret","key","auth","credential"],t={};for(let[n,r]of Object.entries(i)){let s=n.toLowerCase();e.some(f=>s.includes(f))?t[n]="[REDACTED]":typeof r=="object"&&r!==null?t[n]=d(r):t[n]=r;}return t}function h(i){return i.split("?")[0].split("#")[0].replace(/\/\[[^\]]+\]/g,"/*")}function p(i,e,t){if(!e&&!t)return false;let n=h(i);return t&&t.length>0?!t.some(r=>u(n,r)):e&&e.length>0?e.some(r=>u(n,r)):false}function u(i,e){let t=e.replace(/\*/g,".*").replace(/\//g,"\\/");return new RegExp(`^${t}$`).test(i)}function y(i,e,t){if(t){let r=t(i);if(r)return r}let n=i.get("authorization");if(n){let r=n.match(/user[_-]?id[=:]([a-zA-Z0-9-_]+)/i);if(r)return r[1]}if(e){let r=e.userId||e.user_id||e["user-id"];if(r)return r}return null}var c=class{constructor(e=3e5){this.cache=new Map;this.defaultTTL=e;}set(e,t,n){let r=o()+(n??this.defaultTTL);this.cache.set(e,{value:t,expiry:r});}get(e){let t=this.cache.get(e);if(t){if(o()>t.expiry){this.cache.delete(e);return}return t.value}}has(e){return this.get(e)!==void 0}delete(e){return this.cache.delete(e)}clear(){this.cache.clear();}cleanup(){let e=o();for(let[t,n]of this.cache.entries())e>n.expiry&&this.cache.delete(t);}size(){return this.cleanup(),this.cache.size}forEach(e){let t=o();for(let[n,r]of this.cache.entries())t<=r.expiry?e(r.value,n):this.cache.delete(n);}}; export{o as a,m as b,g as c,d,h as e,p as f,y as g,c as h};//# sourceMappingURL=chunk-XGA5AKPV.mjs.map //# sourceMappingURL=chunk-XGA5AKPV.mjs.map