@sesamy/sesamy-js 1.2.0 → 1.3.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.
- package/.env +2 -0
- package/.env.production +2 -0
- package/.eslintignore +4 -0
- package/.eslintrc +18 -0
- package/.github/workflows/release.yml +23 -0
- package/.nvmrc +1 -0
- package/.prettierignore +4 -0
- package/.prettierrc +5 -0
- package/CHANGELOG.md +132 -0
- package/article.html +65 -0
- package/contracts.html +23 -0
- package/dts-bundle-generator.config.ts +11 -0
- package/entitlements.html +23 -0
- package/index.html +24 -0
- package/package.json +14 -10
- package/public/sesamy.png +0 -0
- package/renovate.json +4 -0
- package/src/SesamyContracts.ts +86 -0
- package/src/SesamyEntitlements.ts +85 -0
- package/src/app.ts +101 -0
- package/src/constants.ts +2 -0
- package/src/controllers/index.ts +1 -0
- package/src/controllers/paywall.ts +14 -0
- package/src/entitlementsStyle.css +147 -0
- package/src/events/ready.ts +12 -0
- package/src/index.ts +36 -0
- package/src/javascript-api.ts +84 -0
- package/src/services/analytics/element-tracker.ts +117 -0
- package/src/services/analytics/index.ts +234 -0
- package/src/services/analytics/listeners/index.ts +2 -0
- package/src/services/analytics/listeners/route.ts +9 -0
- package/src/services/analytics/listeners/scroll.ts +62 -0
- package/src/services/analytics/session-id.ts +11 -0
- package/src/services/analytics/types/analytics-activity-utils.d.ts +54 -0
- package/src/services/analytics/types/analytics-router-utils.d.ts +7 -0
- package/src/services/analytics/types/analytics-scroll-utils.d.ts +4 -0
- package/src/services/analytics/types/track-event.ts +70 -0
- package/src/services/auth/index.ts +74 -0
- package/src/services/sesamy/index.ts +160 -0
- package/src/state.ts +3 -0
- package/src/style.css +99 -0
- package/src/types/Bills.ts +12 -0
- package/src/types/Config.ts +11 -0
- package/src/types/Contracts.ts +12 -0
- package/src/types/Entitlement.ts +9 -0
- package/src/types/Events.ts +6 -0
- package/src/types/Tag.ts +16 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig.json +23 -0
- package/vite.config.ts +43 -0
- package/vite.dev.config.ts +14 -0
- package/dist/sesamy-js.es.js +0 -3169
- package/dist/sesamy-js.umd.js +0 -41
package/dist/sesamy-js.umd.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
(function(J){typeof define=="function"&&define.amd?define(J):J()})(function(){"use strict";var Ro=Object.defineProperty;var Wo=(J,W,V)=>W in J?Ro(J,W,{enumerable:!0,configurable:!0,writable:!0,value:V}):J[W]=V;var ee=(J,W,V)=>(Wo(J,typeof W!="symbol"?W+"":W,V),V);function J(t,e){const n=new CustomEvent(t,{detail:e,bubbles:!0,composed:!0});dispatchEvent(n)}function W(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function"){var i=0;for(r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]])}return n}typeof SuppressedError=="function"&&SuppressedError;var V=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function lt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function dt(t,e){return t(e={exports:{}},e.exports),e.exports}var ue=dt(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function r(){var i=this;this.locked=new Map,this.addToLocked=function(o,a){var s=i.locked.get(o);s===void 0?a===void 0?i.locked.set(o,[]):i.locked.set(o,[a]):a!==void 0&&(s.unshift(a),i.locked.set(o,s))},this.isLocked=function(o){return i.locked.has(o)},this.lock=function(o){return new Promise(function(a,s){i.isLocked(o)?i.addToLocked(o,a):(i.addToLocked(o),a())})},this.unlock=function(o){var a=i.locked.get(o);if(a!==void 0&&a.length!==0){var s=a.pop();i.locked.set(o,a),s!==void 0&&setTimeout(s,0)}else i.locked.delete(o)}}return r.getInstance=function(){return r.instance===void 0&&(r.instance=new r),r.instance},r}();e.default=function(){return n.getInstance()}});lt(ue);var mr=lt(dt(function(t,e){var n=V&&V.__awaiter||function(u,c,h,d){return new(h||(h=Promise))(function(w,k){function v(y){try{_(d.next(y))}catch(l){k(l)}}function I(y){try{_(d.throw(y))}catch(l){k(l)}}function _(y){y.done?w(y.value):new h(function(l){l(y.value)}).then(v,I)}_((d=d.apply(u,c||[])).next())})},r=V&&V.__generator||function(u,c){var h,d,w,k,v={label:0,sent:function(){if(1&w[0])throw w[1];return w[1]},trys:[],ops:[]};return k={next:I(0),throw:I(1),return:I(2)},typeof Symbol=="function"&&(k[Symbol.iterator]=function(){return this}),k;function I(_){return function(y){return function(l){if(h)throw new TypeError("Generator is already executing.");for(;v;)try{if(h=1,d&&(w=2&l[0]?d.return:l[0]?d.throw||((w=d.return)&&w.call(d),0):d.next)&&!(w=w.call(d,l[1])).done)return w;switch(d=0,w&&(l=[2&l[0],w.value]),l[0]){case 0:case 1:w=l;break;case 4:return v.label++,{value:l[1],done:!1};case 5:v.label++,d=l[1],l=[0];continue;case 7:l=v.ops.pop(),v.trys.pop();continue;default:if(w=v.trys,!((w=w.length>0&&w[w.length-1])||l[0]!==6&&l[0]!==2)){v=0;continue}if(l[0]===3&&(!w||l[1]>w[0]&&l[1]<w[3])){v.label=l[1];break}if(l[0]===6&&v.label<w[1]){v.label=w[1],w=l;break}if(w&&v.label<w[2]){v.label=w[2],v.ops.push(l);break}w[2]&&v.ops.pop(),v.trys.pop();continue}l=c.call(u,v)}catch(b){l=[6,b],d=0}finally{h=w=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([_,y])}}},i=V;Object.defineProperty(e,"__esModule",{value:!0});var o="browser-tabs-lock-key",a={key:function(u){return n(i,void 0,void 0,function(){return r(this,function(c){throw new Error("Unsupported")})})},getItem:function(u){return n(i,void 0,void 0,function(){return r(this,function(c){throw new Error("Unsupported")})})},clear:function(){return n(i,void 0,void 0,function(){return r(this,function(u){return[2,window.localStorage.clear()]})})},removeItem:function(u){return n(i,void 0,void 0,function(){return r(this,function(c){throw new Error("Unsupported")})})},setItem:function(u,c){return n(i,void 0,void 0,function(){return r(this,function(h){throw new Error("Unsupported")})})},keySync:function(u){return window.localStorage.key(u)},getItemSync:function(u){return window.localStorage.getItem(u)},clearSync:function(){return window.localStorage.clear()},removeItemSync:function(u){return window.localStorage.removeItem(u)},setItemSync:function(u,c){return window.localStorage.setItem(u,c)}};function s(u){return new Promise(function(c){return setTimeout(c,u)})}function m(u){for(var c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz",h="",d=0;d<u;d++)h+=c[Math.floor(Math.random()*c.length)];return h}var p=function(){function u(c){this.acquiredIatSet=new Set,this.storageHandler=void 0,this.id=Date.now().toString()+m(15),this.acquireLock=this.acquireLock.bind(this),this.releaseLock=this.releaseLock.bind(this),this.releaseLock__private__=this.releaseLock__private__.bind(this),this.waitForSomethingToChange=this.waitForSomethingToChange.bind(this),this.refreshLockWhileAcquired=this.refreshLockWhileAcquired.bind(this),this.storageHandler=c,u.waiters===void 0&&(u.waiters=[])}return u.prototype.acquireLock=function(c,h){return h===void 0&&(h=5e3),n(this,void 0,void 0,function(){var d,w,k,v,I,_,y;return r(this,function(l){switch(l.label){case 0:d=Date.now()+m(4),w=Date.now()+h,k=o+"-"+c,v=this.storageHandler===void 0?a:this.storageHandler,l.label=1;case 1:return Date.now()<w?[4,s(30)]:[3,8];case 2:return l.sent(),v.getItemSync(k)!==null?[3,5]:(I=this.id+"-"+c+"-"+d,[4,s(Math.floor(25*Math.random()))]);case 3:return l.sent(),v.setItemSync(k,JSON.stringify({id:this.id,iat:d,timeoutKey:I,timeAcquired:Date.now(),timeRefreshed:Date.now()})),[4,s(30)];case 4:return l.sent(),(_=v.getItemSync(k))!==null&&(y=JSON.parse(_)).id===this.id&&y.iat===d?(this.acquiredIatSet.add(d),this.refreshLockWhileAcquired(k,d),[2,!0]):[3,7];case 5:return u.lockCorrector(this.storageHandler===void 0?a:this.storageHandler),[4,this.waitForSomethingToChange(w)];case 6:l.sent(),l.label=7;case 7:return d=Date.now()+m(4),[3,1];case 8:return[2,!1]}})})},u.prototype.refreshLockWhileAcquired=function(c,h){return n(this,void 0,void 0,function(){var d=this;return r(this,function(w){return setTimeout(function(){return n(d,void 0,void 0,function(){var k,v,I;return r(this,function(_){switch(_.label){case 0:return[4,ue.default().lock(h)];case 1:return _.sent(),this.acquiredIatSet.has(h)?(k=this.storageHandler===void 0?a:this.storageHandler,(v=k.getItemSync(c))===null?(ue.default().unlock(h),[2]):((I=JSON.parse(v)).timeRefreshed=Date.now(),k.setItemSync(c,JSON.stringify(I)),ue.default().unlock(h),this.refreshLockWhileAcquired(c,h),[2])):(ue.default().unlock(h),[2])}})})},1e3),[2]})})},u.prototype.waitForSomethingToChange=function(c){return n(this,void 0,void 0,function(){return r(this,function(h){switch(h.label){case 0:return[4,new Promise(function(d){var w=!1,k=Date.now(),v=!1;function I(){if(v||(window.removeEventListener("storage",I),u.removeFromWaiting(I),clearTimeout(_),v=!0),!w){w=!0;var y=50-(Date.now()-k);y>0?setTimeout(d,y):d(null)}}window.addEventListener("storage",I),u.addToWaiting(I);var _=setTimeout(I,Math.max(0,c-Date.now()))})];case 1:return h.sent(),[2]}})})},u.addToWaiting=function(c){this.removeFromWaiting(c),u.waiters!==void 0&&u.waiters.push(c)},u.removeFromWaiting=function(c){u.waiters!==void 0&&(u.waiters=u.waiters.filter(function(h){return h!==c}))},u.notifyWaiters=function(){u.waiters!==void 0&&u.waiters.slice().forEach(function(c){return c()})},u.prototype.releaseLock=function(c){return n(this,void 0,void 0,function(){return r(this,function(h){switch(h.label){case 0:return[4,this.releaseLock__private__(c)];case 1:return[2,h.sent()]}})})},u.prototype.releaseLock__private__=function(c){return n(this,void 0,void 0,function(){var h,d,w,k;return r(this,function(v){switch(v.label){case 0:return h=this.storageHandler===void 0?a:this.storageHandler,d=o+"-"+c,(w=h.getItemSync(d))===null?[2]:(k=JSON.parse(w)).id!==this.id?[3,2]:[4,ue.default().lock(k.iat)];case 1:v.sent(),this.acquiredIatSet.delete(k.iat),h.removeItemSync(d),ue.default().unlock(k.iat),u.notifyWaiters(),v.label=2;case 2:return[2]}})})},u.lockCorrector=function(c){for(var h=Date.now()-5e3,d=c,w=[],k=0;;){var v=d.keySync(k);if(v===null)break;w.push(v),k++}for(var I=!1,_=0;_<w.length;_++){var y=w[_];if(y.includes(o)){var l=d.getItemSync(y);if(l!==null){var b=JSON.parse(l);(b.timeRefreshed===void 0&&b.timeAcquired<h||b.timeRefreshed!==void 0&&b.timeRefreshed<h)&&(d.removeItemSync(y),I=!0)}}}I&&u.notifyWaiters()},u.waiters=void 0,u}();e.default=p}));const gr={timeoutInSeconds:60},Rt={name:"auth0-spa-js",version:"2.1.3"},Wt=()=>Date.now();let Y=class Dt extends Error{constructor(e,n){super(n),this.error=e,this.error_description=n,Object.setPrototypeOf(this,Dt.prototype)}static fromPayload({error:e,error_description:n}){return new Dt(e,n)}},yr=class ur extends Y{constructor(e,n,r,i=null){super(e,n),this.state=r,this.appState=i,Object.setPrototypeOf(this,ur.prototype)}},ht=class lr extends Y{constructor(){super("timeout","Timeout"),Object.setPrototypeOf(this,lr.prototype)}},vr=class dr extends ht{constructor(e){super(),this.popup=e,Object.setPrototypeOf(this,dr.prototype)}},wr=class hr extends Y{constructor(e){super("cancelled","Popup closed"),this.popup=e,Object.setPrototypeOf(this,hr.prototype)}},br=class fr extends Y{constructor(e,n,r){super(e,n),this.mfa_token=r,Object.setPrototypeOf(this,fr.prototype)}},Zt=class pr extends Y{constructor(e,n){super("missing_refresh_token",`Missing Refresh Token (audience: '${Kt(e,["default"])}', scope: '${Kt(n)}')`),this.audience=e,this.scope=n,Object.setPrototypeOf(this,pr.prototype)}};function Kt(t,e=[]){return t&&!e.includes(t)?t:""}const Fe=()=>window.crypto,ft=()=>{const t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.";let e="";return Array.from(Fe().getRandomValues(new Uint8Array(43))).forEach(n=>e+=t[n%t.length]),e},Mt=t=>btoa(t),pt=t=>{var{clientId:e}=t,n=W(t,["clientId"]);return new URLSearchParams((r=>Object.keys(r).filter(i=>r[i]!==void 0).reduce((i,o)=>Object.assign(Object.assign({},i),{[o]:r[o]}),{}))(Object.assign({client_id:e},n))).toString()},Ft=t=>(e=>decodeURIComponent(atob(e).split("").map(n=>"%"+("00"+n.charCodeAt(0).toString(16)).slice(-2)).join("")))(t.replace(/_/g,"/").replace(/-/g,"+")),kr=async(t,e)=>{const n=await fetch(t,e);return{ok:n.ok,json:await n.json()}},Ir=async(t,e,n)=>{const r=new AbortController;let i;return e.signal=r.signal,Promise.race([kr(t,e),new Promise((o,a)=>{i=setTimeout(()=>{r.abort(),a(new Error("Timeout when executing 'fetch'"))},n)})]).finally(()=>{clearTimeout(i)})},_r=async(t,e,n,r,i,o,a)=>{return s={auth:{audience:e,scope:n},timeout:i,fetchUrl:t,fetchOptions:r,useFormData:a},m=o,new Promise(function(p,u){const c=new MessageChannel;c.port1.onmessage=function(h){h.data.error?u(new Error(h.data.error)):p(h.data),c.port1.close()},m.postMessage(s,[c.port2])});var s,m},Sr=async(t,e,n,r,i,o,a=1e4)=>i?_r(t,e,n,r,a,i,o):Ir(t,r,a);async function Er(t,e){var{baseUrl:n,timeout:r,audience:i,scope:o,auth0Client:a,useFormData:s}=t,m=W(t,["baseUrl","timeout","audience","scope","auth0Client","useFormData"]);const p=s?pt(m):JSON.stringify(m);return await async function(u,c,h,d,w,k,v){let I,_=null;for(let x=0;x<3;x++)try{I=await Sr(u,h,d,w,k,v,c),_=null;break}catch(D){_=D}if(_)throw _;const y=I.json,{error:l,error_description:b}=y,T=W(y,["error","error_description"]),{ok:P}=I;if(!P){const x=b||`HTTP error. Unable to fetch ${u}`;throw l==="mfa_required"?new br(l,x,T.mfa_token):l==="missing_refresh_token"?new Zt(h,d):new Y(l||"request_error",x)}return T}(`${n}/oauth/token`,r,i||"default",o,{method:"POST",body:p,headers:{"Content-Type":s?"application/x-www-form-urlencoded":"application/json","Auth0-Client":btoa(JSON.stringify(a||Rt))}},e,s)}const Xe=(...t)=>{return(e=t.filter(Boolean).join(" ").trim().split(/\s+/),Array.from(new Set(e))).join(" ");var e};let le=class Ut{constructor(e,n="@@auth0spajs@@",r){this.prefix=n,this.suffix=r,this.clientId=e.clientId,this.scope=e.scope,this.audience=e.audience}toKey(){return[this.prefix,this.clientId,this.audience,this.scope,this.suffix].filter(Boolean).join("::")}static fromKey(e){const[n,r,i,o]=e.split("::");return new Ut({clientId:r,scope:o,audience:i},n)}static fromCacheEntry(e){const{scope:n,audience:r,client_id:i}=e;return new Ut({scope:n,audience:r,clientId:i})}},Or=class{set(e,n){localStorage.setItem(e,JSON.stringify(n))}get(e){const n=window.localStorage.getItem(e);if(n)try{return JSON.parse(n)}catch{return}}remove(e){localStorage.removeItem(e)}allKeys(){return Object.keys(window.localStorage).filter(e=>e.startsWith("@@auth0spajs@@"))}},Xt=class{constructor(){this.enclosedCache=function(){let e={};return{set(n,r){e[n]=r},get(n){const r=e[n];if(r)return r},remove(n){delete e[n]},allKeys:()=>Object.keys(e)}}()}},Pr=class{constructor(e,n,r){this.cache=e,this.keyManifest=n,this.nowProvider=r||Wt}async setIdToken(e,n,r){var i;const o=this.getIdTokenCacheKey(e);await this.cache.set(o,{id_token:n,decodedToken:r}),await((i=this.keyManifest)===null||i===void 0?void 0:i.add(o))}async getIdToken(e){const n=await this.cache.get(this.getIdTokenCacheKey(e.clientId));if(!n&&e.scope&&e.audience){const r=await this.get(e);return!r||!r.id_token||!r.decodedToken?void 0:{id_token:r.id_token,decodedToken:r.decodedToken}}if(n)return{id_token:n.id_token,decodedToken:n.decodedToken}}async get(e,n=0){var r;let i=await this.cache.get(e.toKey());if(!i){const s=await this.getCacheKeys();if(!s)return;const m=this.matchExistingCacheKey(e,s);m&&(i=await this.cache.get(m))}if(!i)return;const o=await this.nowProvider(),a=Math.floor(o/1e3);return i.expiresAt-n<a?i.body.refresh_token?(i.body={refresh_token:i.body.refresh_token},await this.cache.set(e.toKey(),i),i.body):(await this.cache.remove(e.toKey()),void await((r=this.keyManifest)===null||r===void 0?void 0:r.remove(e.toKey()))):i.body}async set(e){var n;const r=new le({clientId:e.client_id,scope:e.scope,audience:e.audience}),i=await this.wrapCacheEntry(e);await this.cache.set(r.toKey(),i),await((n=this.keyManifest)===null||n===void 0?void 0:n.add(r.toKey()))}async clear(e){var n;const r=await this.getCacheKeys();r&&(await r.filter(i=>!e||i.includes(e)).reduce(async(i,o)=>{await i,await this.cache.remove(o)},Promise.resolve()),await((n=this.keyManifest)===null||n===void 0?void 0:n.clear()))}async wrapCacheEntry(e){const n=await this.nowProvider();return{body:e,expiresAt:Math.floor(n/1e3)+e.expires_in}}async getCacheKeys(){var e;return this.keyManifest?(e=await this.keyManifest.get())===null||e===void 0?void 0:e.keys:this.cache.allKeys?this.cache.allKeys():void 0}getIdTokenCacheKey(e){return new le({clientId:e},"@@auth0spajs@@","@@user@@").toKey()}matchExistingCacheKey(e,n){return n.filter(r=>{var i;const o=le.fromKey(r),a=new Set(o.scope&&o.scope.split(" ")),s=((i=e.scope)===null||i===void 0?void 0:i.split(" "))||[],m=o.scope&&s.reduce((p,u)=>p&&a.has(u),!0);return o.prefix==="@@auth0spajs@@"&&o.clientId===e.clientId&&o.audience===e.audience&&m})[0]}},Tr=class{constructor(e,n,r){this.storage=e,this.clientId=n,this.cookieDomain=r,this.storageKey=`a0.spajs.txs.${this.clientId}`}create(e){this.storage.save(this.storageKey,e,{daysUntilExpire:1,cookieDomain:this.cookieDomain})}get(){return this.storage.get(this.storageKey)}remove(){this.storage.remove(this.storageKey,{cookieDomain:this.cookieDomain})}};const Ae=t=>typeof t=="number",jr=["iss","aud","exp","nbf","iat","jti","azp","nonce","auth_time","at_hash","c_hash","acr","amr","sub_jwk","cnf","sip_from_tag","sip_date","sip_callid","sip_cseq_num","sip_via_branch","orig","dest","mky","events","toe","txn","rph","sid","vot","vtm"],xr=t=>{if(!t.id_token)throw new Error("ID token is required but missing");const e=(o=>{const a=o.split("."),[s,m,p]=a;if(a.length!==3||!s||!m||!p)throw new Error("ID token could not be decoded");const u=JSON.parse(Ft(m)),c={__raw:o},h={};return Object.keys(u).forEach(d=>{c[d]=u[d],jr.includes(d)||(h[d]=u[d])}),{encoded:{header:s,payload:m,signature:p},header:JSON.parse(Ft(s)),claims:c,user:h}})(t.id_token);if(!e.claims.iss)throw new Error("Issuer (iss) claim must be a string present in the ID token");if(e.claims.iss!==t.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected "${t.iss}", found "${e.claims.iss}"`);if(!e.user.sub)throw new Error("Subject (sub) claim must be a string present in the ID token");if(e.header.alg!=="RS256")throw new Error(`Signature algorithm of "${e.header.alg}" is not supported. Expected the ID token to be signed with "RS256".`);if(!e.claims.aud||typeof e.claims.aud!="string"&&!Array.isArray(e.claims.aud))throw new Error("Audience (aud) claim must be a string or array of strings present in the ID token");if(Array.isArray(e.claims.aud)){if(!e.claims.aud.includes(t.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${t.aud}" but was not one of "${e.claims.aud.join(", ")}"`);if(e.claims.aud.length>1){if(!e.claims.azp)throw new Error("Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values");if(e.claims.azp!==t.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected "${t.aud}", found "${e.claims.azp}"`)}}else if(e.claims.aud!==t.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${t.aud}" but found "${e.claims.aud}"`);if(t.nonce){if(!e.claims.nonce)throw new Error("Nonce (nonce) claim must be a string present in the ID token");if(e.claims.nonce!==t.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected "${t.nonce}", found "${e.claims.nonce}"`)}if(t.max_age&&!Ae(e.claims.auth_time))throw new Error("Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified");if(e.claims.exp==null||!Ae(e.claims.exp))throw new Error("Expiration Time (exp) claim must be a number present in the ID token");if(!Ae(e.claims.iat))throw new Error("Issued At (iat) claim must be a number present in the ID token");const n=t.leeway||60,r=new Date(t.now||Date.now()),i=new Date(0);if(i.setUTCSeconds(e.claims.exp+n),r>i)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${r}) is after expiration time (${i})`);if(e.claims.nbf!=null&&Ae(e.claims.nbf)){const o=new Date(0);if(o.setUTCSeconds(e.claims.nbf-n),r<o)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${r}) is before ${o}`)}if(e.claims.auth_time!=null&&Ae(e.claims.auth_time)){const o=new Date(0);if(o.setUTCSeconds(parseInt(e.claims.auth_time)+t.max_age+n),r>o)throw new Error(`Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time (${r}) is after last auth at ${o}`)}if(t.organization){const o=t.organization.trim();if(o.startsWith("org_")){const a=o;if(!e.claims.org_id)throw new Error("Organization ID (org_id) claim must be a string present in the ID token");if(a!==e.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected "${a}", found "${e.claims.org_id}"`)}else{const a=o.toLowerCase();if(!e.claims.org_name)throw new Error("Organization Name (org_name) claim must be a string present in the ID token");if(a!==e.claims.org_name)throw new Error(`Organization Name (org_name) claim mismatch in the ID token; expected "${a}", found "${e.claims.org_name}"`)}}return e};var de=dt(function(t,e){var n=V&&V.__assign||function(){return n=Object.assign||function(m){for(var p,u=1,c=arguments.length;u<c;u++)for(var h in p=arguments[u])Object.prototype.hasOwnProperty.call(p,h)&&(m[h]=p[h]);return m},n.apply(this,arguments)};function r(m,p){if(!p)return"";var u="; "+m;return p===!0?u:u+"="+p}function i(m,p,u){return encodeURIComponent(m).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/\(/g,"%28").replace(/\)/g,"%29")+"="+encodeURIComponent(p).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)+function(c){if(typeof c.expires=="number"){var h=new Date;h.setMilliseconds(h.getMilliseconds()+864e5*c.expires),c.expires=h}return r("Expires",c.expires?c.expires.toUTCString():"")+r("Domain",c.domain)+r("Path",c.path)+r("Secure",c.secure)+r("SameSite",c.sameSite)}(u)}function o(m){for(var p={},u=m?m.split("; "):[],c=/(%[\dA-F]{2})+/gi,h=0;h<u.length;h++){var d=u[h].split("="),w=d.slice(1).join("=");w.charAt(0)==='"'&&(w=w.slice(1,-1));try{p[d[0].replace(c,decodeURIComponent)]=w.replace(c,decodeURIComponent)}catch{}}return p}function a(){return o(document.cookie)}function s(m,p,u){document.cookie=i(m,p,n({path:"/"},u))}e.__esModule=!0,e.encode=i,e.parse=o,e.getAll=a,e.get=function(m){return a()[m]},e.set=s,e.remove=function(m,p){s(m,"",n(n({},p),{expires:-1}))}});lt(de),de.encode,de.parse,de.getAll;var Cr=de.get,Ht=de.set,Jt=de.remove;const we={get(t){const e=Cr(t);if(e!==void 0)return JSON.parse(e)},save(t,e,n){let r={};window.location.protocol==="https:"&&(r={secure:!0,sameSite:"none"}),n!=null&&n.daysUntilExpire&&(r.expires=n.daysUntilExpire),n!=null&&n.cookieDomain&&(r.domain=n.cookieDomain),Ht(t,JSON.stringify(e),r)},remove(t,e){let n={};e!=null&&e.cookieDomain&&(n.domain=e.cookieDomain),Jt(t,n)}},$r={get(t){return we.get(t)||we.get(`_legacy_${t}`)},save(t,e,n){let r={};window.location.protocol==="https:"&&(r={secure:!0}),n!=null&&n.daysUntilExpire&&(r.expires=n.daysUntilExpire),n!=null&&n.cookieDomain&&(r.domain=n.cookieDomain),Ht(`_legacy_${t}`,JSON.stringify(e),r),we.save(t,e,n)},remove(t,e){let n={};e!=null&&e.cookieDomain&&(n.domain=e.cookieDomain),Jt(t,n),we.remove(t,e),we.remove(`_legacy_${t}`,e)}},Ar={get(t){if(typeof sessionStorage>"u")return;const e=sessionStorage.getItem(t);return e!=null?JSON.parse(e):void 0},save(t,e){sessionStorage.setItem(t,JSON.stringify(e))},remove(t){sessionStorage.removeItem(t)}};function zr(t,e,n){var r=e===void 0?null:e,i=function(m,p){var u=atob(m);if(p){for(var c=new Uint8Array(u.length),h=0,d=u.length;h<d;++h)c[h]=u.charCodeAt(h);return String.fromCharCode.apply(null,new Uint16Array(c.buffer))}return u}(t,n!==void 0&&n),o=i.indexOf(`
|
|
2
|
-
`,10)+1,a=i.substring(o)+(r?"//# sourceMappingURL="+r:""),s=new Blob([a],{type:"application/javascript"});return URL.createObjectURL(s)}var Vt,Yt,Gt,mt,Nr=(Vt="Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscil7c3VwZXIociksdGhpcy5lcnJvcj10LHRoaXMuZXJyb3JfZGVzY3JpcHRpb249cixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9c3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjp0LGVycm9yX2Rlc2NyaXB0aW9uOnJ9KXtyZXR1cm4gbmV3IGUodCxyKX19Y2xhc3MgdCBleHRlbmRzIGV7Y29uc3RydWN0b3IoZSxzKXtzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIixgTWlzc2luZyBSZWZyZXNoIFRva2VuIChhdWRpZW5jZTogJyR7cihlLFsiZGVmYXVsdCJdKX0nLCBzY29wZTogJyR7cihzKX0nKWApLHRoaXMuYXVkaWVuY2U9ZSx0aGlzLnNjb3BlPXMsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdC5wcm90b3R5cGUpfX1mdW5jdGlvbiByKGUsdD1bXSl7cmV0dXJuIGUmJiF0LmluY2x1ZGVzKGUpP2U6IiJ9ImZ1bmN0aW9uIj09dHlwZW9mIFN1cHByZXNzZWRFcnJvciYmU3VwcHJlc3NlZEVycm9yO2NvbnN0IHM9ZT0+e3ZhcntjbGllbnRJZDp0fT1lLHI9ZnVuY3Rpb24oZSx0KXt2YXIgcj17fTtmb3IodmFyIHMgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmdC5pbmRleE9mKHMpPDAmJihyW3NdPWVbc10pO2lmKG51bGwhPWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbz0wO2ZvcihzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bzxzLmxlbmd0aDtvKyspdC5pbmRleE9mKHNbb10pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHNbb10pJiYocltzW29dXT1lW3Nbb11dKX1yZXR1cm4gcn0oZSxbImNsaWVudElkIl0pO3JldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKChlPT5PYmplY3Qua2V5cyhlKS5maWx0ZXIoKHQ9PnZvaWQgMCE9PWVbdF0pKS5yZWR1Y2UoKCh0LHIpPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse1tyXTplW3JdfSkpLHt9KSkoT2JqZWN0LmFzc2lnbih7Y2xpZW50X2lkOnR9LHIpKSkudG9TdHJpbmcoKX07bGV0IG89e307Y29uc3Qgbj0oZSx0KT0+YCR7ZX18JHt0fWA7YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKGFzeW5jKHtkYXRhOnt0aW1lb3V0OmUsYXV0aDpyLGZldGNoVXJsOmksZmV0Y2hPcHRpb25zOmMsdXNlRm9ybURhdGE6YX0scG9ydHM6W3BdfSk9PntsZXQgZjtjb25zdHthdWRpZW5jZTp1LHNjb3BlOmx9PXJ8fHt9O3RyeXtjb25zdCByPWE/KGU9Pntjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMoZSkscj17fTtyZXR1cm4gdC5mb3JFYWNoKCgoZSx0KT0+e3JbdF09ZX0pKSxyfSkoYy5ib2R5KTpKU09OLnBhcnNlKGMuYm9keSk7aWYoIXIucmVmcmVzaF90b2tlbiYmInJlZnJlc2hfdG9rZW4iPT09ci5ncmFudF90eXBlKXtjb25zdCBlPSgoZSx0KT0+b1tuKGUsdCldKSh1LGwpO2lmKCFlKXRocm93IG5ldyB0KHUsbCk7Yy5ib2R5PWE/cyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3JlZnJlc2hfdG9rZW46ZX0pKTpKU09OLnN0cmluZ2lmeShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scikse3JlZnJlc2hfdG9rZW46ZX0pKX1sZXQgaCxnOyJmdW5jdGlvbiI9PXR5cGVvZiBBYm9ydENvbnRyb2xsZXImJihoPW5ldyBBYm9ydENvbnRyb2xsZXIsYy5zaWduYWw9aC5zaWduYWwpO3RyeXtnPWF3YWl0IFByb21pc2UucmFjZShbKGQ9ZSxuZXcgUHJvbWlzZSgoZT0+c2V0VGltZW91dChlLGQpKSkpLGZldGNoKGksT2JqZWN0LmFzc2lnbih7fSxjKSldKX1jYXRjaChlKXtyZXR1cm4gdm9pZCBwLnBvc3RNZXNzYWdlKHtlcnJvcjplLm1lc3NhZ2V9KX1pZighZylyZXR1cm4gaCYmaC5hYm9ydCgpLHZvaWQgcC5wb3N0TWVzc2FnZSh7ZXJyb3I6IlRpbWVvdXQgd2hlbiBleGVjdXRpbmcgJ2ZldGNoJyJ9KTtmPWF3YWl0IGcuanNvbigpLGYucmVmcmVzaF90b2tlbj8oKChlLHQscik9PntvW24odCxyKV09ZX0pKGYucmVmcmVzaF90b2tlbix1LGwpLGRlbGV0ZSBmLnJlZnJlc2hfdG9rZW4pOigoZSx0KT0+e2RlbGV0ZSBvW24oZSx0KV19KSh1LGwpLHAucG9zdE1lc3NhZ2Uoe29rOmcub2ssanNvbjpmfSl9Y2F0Y2goZSl7cC5wb3N0TWVzc2FnZSh7b2s6ITEsanNvbjp7ZXJyb3I6ZS5lcnJvcixlcnJvcl9kZXNjcmlwdGlvbjplLm1lc3NhZ2V9fSl9dmFyIGR9KSl9KCk7Cgo=",Yt=null,Gt=!1,function(t){return mt=mt||zr(Vt,Yt,Gt),new Worker(mt,t)});const gt={};let Lr=class{constructor(e,n){this.cache=e,this.clientId=n,this.manifestKey=this.createManifestKeyFrom(this.clientId)}async add(e){var n;const r=new Set(((n=await this.cache.get(this.manifestKey))===null||n===void 0?void 0:n.keys)||[]);r.add(e),await this.cache.set(this.manifestKey,{keys:[...r]})}async remove(e){const n=await this.cache.get(this.manifestKey);if(n){const r=new Set(n.keys);return r.delete(e),r.size>0?await this.cache.set(this.manifestKey,{keys:[...r]}):await this.cache.remove(this.manifestKey)}}get(){return this.cache.get(this.manifestKey)}clear(){return this.cache.remove(this.manifestKey)}createManifestKeyFrom(e){return`@@auth0spajs@@::${e}`}};const Dr={memory:()=>new Xt().enclosedCache,localstorage:()=>new Or},Bt=t=>Dr[t],qt=t=>{const{openUrl:e,onRedirect:n}=t,r=W(t,["openUrl","onRedirect"]);return Object.assign(Object.assign({},r),{openUrl:e===!1||e?e:n})},yt=new mr;let Ur=class{constructor(e){let n,r;if(this.userCache=new Xt().enclosedCache,this.defaultOptions={authorizationParams:{scope:"openid profile email"},useRefreshTokensFallback:!1,useFormData:!0},this._releaseLockOnPageHide=async()=>{await yt.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)},this.options=Object.assign(Object.assign(Object.assign({},this.defaultOptions),e),{authorizationParams:Object.assign(Object.assign({},this.defaultOptions.authorizationParams),e.authorizationParams)}),typeof window<"u"&&(()=>{if(!Fe())throw new Error("For security reasons, `window.crypto` is required to run `auth0-spa-js`.");if(Fe().subtle===void 0)throw new Error(`
|
|
3
|
-
auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/main/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.
|
|
4
|
-
`)})(),e.cache&&e.cacheLocation&&console.warn("Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`."),e.cache)r=e.cache;else{if(n=e.cacheLocation||"memory",!Bt(n))throw new Error(`Invalid cache location "${n}"`);r=Bt(n)()}this.httpTimeoutMs=e.httpTimeoutInSeconds?1e3*e.httpTimeoutInSeconds:1e4,this.cookieStorage=e.legacySameSiteCookie===!1?we:$r,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(a=>`auth0.${a}.is.authenticated`)(this.options.clientId),this.sessionCheckExpiryDays=e.sessionCheckExpiryDays||1;const i=e.useCookiesForTransactions?this.cookieStorage:Ar;var o;this.scope=Xe("openid",this.options.authorizationParams.scope,this.options.useRefreshTokens?"offline_access":""),this.transactionManager=new Tr(i,this.options.clientId,this.options.cookieDomain),this.nowProvider=this.options.nowProvider||Wt,this.cacheManager=new Pr(r,r.allKeys?void 0:new Lr(r,this.options.clientId),this.nowProvider),this.domainUrl=(o=this.options.domain,/^https?:\/\//.test(o)?o:`https://${o}`),this.tokenIssuer=((a,s)=>a?a.startsWith("https://")?a:`https://${a}/`:`${s}/`)(this.options.issuer,this.domainUrl),typeof window<"u"&&window.Worker&&this.options.useRefreshTokens&&n==="memory"&&(this.options.workerUrl?this.worker=new Worker(this.options.workerUrl):this.worker=new Nr)}_url(e){const n=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||Rt)));return`${this.domainUrl}${e}&auth0Client=${n}`}_authorizeUrl(e){return this._url(`/authorize?${pt(e)}`)}async _verifyIdToken(e,n,r){const i=await this.nowProvider();return xr({iss:this.tokenIssuer,aud:this.options.clientId,id_token:e,nonce:n,organization:r,leeway:this.options.leeway,max_age:(o=this.options.authorizationParams.max_age,typeof o!="string"?o:parseInt(o,10)||void 0),now:i});var o}_processOrgHint(e){e?this.cookieStorage.save(this.orgHintCookieName,e,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain})}async _prepareAuthorizeUrl(e,n,r){const i=Mt(ft()),o=Mt(ft()),a=ft(),s=(u=>{const c=new Uint8Array(u);return(h=>{const d={"+":"-","/":"_","=":""};return h.replace(/[+/=]/g,w=>d[w])})(window.btoa(String.fromCharCode(...Array.from(c))))})(await(async u=>await Fe().subtle.digest({name:"SHA-256"},new TextEncoder().encode(u)))(a)),m=((u,c,h,d,w,k,v,I)=>Object.assign(Object.assign(Object.assign({client_id:u.clientId},u.authorizationParams),h),{scope:Xe(c,h.scope),response_type:"code",response_mode:I||"query",state:d,nonce:w,redirect_uri:v||u.authorizationParams.redirect_uri,code_challenge:k,code_challenge_method:"S256"}))(this.options,this.scope,e,i,o,s,e.redirect_uri||this.options.authorizationParams.redirect_uri||r,n==null?void 0:n.response_mode),p=this._authorizeUrl(m);return{nonce:o,code_verifier:a,scope:m.scope,audience:m.audience||"default",redirect_uri:m.redirect_uri,state:i,url:p}}async loginWithPopup(e,n){var r;if(e=e||{},!(n=n||{}).popup&&(n.popup=(s=>{const m=window.screenX+(window.innerWidth-400)/2,p=window.screenY+(window.innerHeight-600)/2;return window.open(s,"auth0:authorize:popup",`left=${m},top=${p},width=400,height=600,resizable,scrollbars=yes,status=1`)})(""),!n.popup))throw new Error("Unable to open a popup for loginWithPopup - window.open returned `null`");const i=await this._prepareAuthorizeUrl(e.authorizationParams||{},{response_mode:"web_message"},window.location.origin);n.popup.location.href=i.url;const o=await(s=>new Promise((m,p)=>{let u;const c=setInterval(()=>{s.popup&&s.popup.closed&&(clearInterval(c),clearTimeout(h),window.removeEventListener("message",u,!1),p(new wr(s.popup)))},1e3),h=setTimeout(()=>{clearInterval(c),p(new vr(s.popup)),window.removeEventListener("message",u,!1)},1e3*(s.timeoutInSeconds||60));u=function(d){if(d.data&&d.data.type==="authorization_response"){if(clearTimeout(h),clearInterval(c),window.removeEventListener("message",u,!1),s.popup.close(),d.data.response.error)return p(Y.fromPayload(d.data.response));m(d.data.response)}},window.addEventListener("message",u)}))(Object.assign(Object.assign({},n),{timeoutInSeconds:n.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(i.state!==o.state)throw new Y("state_mismatch","Invalid state");const a=((r=e.authorizationParams)===null||r===void 0?void 0:r.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:i.audience,scope:i.scope,code_verifier:i.code_verifier,grant_type:"authorization_code",code:o.code,redirect_uri:i.redirect_uri},{nonceIn:i.nonce,organization:a})}async getUser(){var e;const n=await this._getIdTokenFromCache();return(e=n==null?void 0:n.decodedToken)===null||e===void 0?void 0:e.user}async getIdTokenClaims(){var e;const n=await this._getIdTokenFromCache();return(e=n==null?void 0:n.decodedToken)===null||e===void 0?void 0:e.claims}async loginWithRedirect(e={}){var n;const r=qt(e),{openUrl:i,fragment:o,appState:a}=r,s=W(r,["openUrl","fragment","appState"]),m=((n=s.authorizationParams)===null||n===void 0?void 0:n.organization)||this.options.authorizationParams.organization,p=await this._prepareAuthorizeUrl(s.authorizationParams||{}),{url:u}=p,c=W(p,["url"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},c),{appState:a}),m&&{organization:m}));const h=o?`${u}#${o}`:u;i?await i(h):window.location.assign(h)}async handleRedirectCallback(e=window.location.href){const n=e.split("?").slice(1);if(n.length===0)throw new Error("There are no query params available for parsing.");const{state:r,code:i,error:o,error_description:a}=(c=>{c.indexOf("#")>-1&&(c=c.substring(0,c.indexOf("#")));const h=new URLSearchParams(c);return{state:h.get("state"),code:h.get("code")||void 0,error:h.get("error")||void 0,error_description:h.get("error_description")||void 0}})(n.join("")),s=this.transactionManager.get();if(!s)throw new Y("missing_transaction","Invalid state");if(this.transactionManager.remove(),o)throw new yr(o,a||o,r,s.appState);if(!s.code_verifier||s.state&&s.state!==r)throw new Y("state_mismatch","Invalid state");const m=s.organization,p=s.nonce,u=s.redirect_uri;return await this._requestToken(Object.assign({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:"authorization_code",code:i},u?{redirect_uri:u}:{}),{nonceIn:p,organization:m}),{appState:s.appState}}async checkSession(e){if(!this.cookieStorage.get(this.isAuthenticatedCookieName)){if(!this.cookieStorage.get("auth0.is.authenticated"))return;this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove("auth0.is.authenticated")}try{await this.getTokenSilently(e)}catch{}}async getTokenSilently(e={}){var n;const r=Object.assign(Object.assign({cacheMode:"on"},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:Xe(this.scope,(n=e.authorizationParams)===null||n===void 0?void 0:n.scope)})}),i=await((o,a)=>{let s=gt[a];return s||(s=o().finally(()=>{delete gt[a],s=null}),gt[a]=s),s})(()=>this._getTokenSilently(r),`${this.options.clientId}::${r.authorizationParams.audience}::${r.authorizationParams.scope}`);return e.detailedResponse?i:i==null?void 0:i.access_token}async _getTokenSilently(e){const{cacheMode:n}=e,r=W(e,["cacheMode"]);if(n!=="off"){const i=await this._getEntryFromCache({scope:r.authorizationParams.scope,audience:r.authorizationParams.audience||"default",clientId:this.options.clientId});if(i)return i}if(n!=="cache-only"){if(!await(async(i,o=3)=>{for(let a=0;a<o;a++)if(await i())return!0;return!1})(()=>yt.acquireLock("auth0.lock.getTokenSilently",5e3),10))throw new ht;try{if(window.addEventListener("pagehide",this._releaseLockOnPageHide),n!=="off"){const p=await this._getEntryFromCache({scope:r.authorizationParams.scope,audience:r.authorizationParams.audience||"default",clientId:this.options.clientId});if(p)return p}const i=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(r):await this._getTokenFromIFrame(r),{id_token:o,access_token:a,oauthTokenScope:s,expires_in:m}=i;return Object.assign(Object.assign({id_token:o,access_token:a},s?{scope:s}:null),{expires_in:m})}finally{await yt.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)}}}async getTokenWithPopup(e={},n={}){var r;const i=Object.assign(Object.assign({},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:Xe(this.scope,(r=e.authorizationParams)===null||r===void 0?void 0:r.scope)})});return n=Object.assign(Object.assign({},gr),n),await this.loginWithPopup(i,n),(await this.cacheManager.get(new le({scope:i.authorizationParams.scope,audience:i.authorizationParams.audience||"default",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return!!await this.getUser()}_buildLogoutUrl(e){e.clientId!==null?e.clientId=e.clientId||this.options.clientId:delete e.clientId;const n=e.logoutParams||{},{federated:r}=n,i=W(n,["federated"]),o=r?"&federated":"";return this._url(`/v2/logout?${pt(Object.assign({clientId:e.clientId},i))}`)+o}async logout(e={}){const n=qt(e),{openUrl:r}=n,i=W(n,["openUrl"]);e.clientId===null?await this.cacheManager.clear():await this.cacheManager.clear(e.clientId||this.options.clientId),this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(this.isAuthenticatedCookieName,{cookieDomain:this.options.cookieDomain}),this.userCache.remove("@@user@@");const o=this._buildLogoutUrl(i);r?await r(o):r!==!1&&window.location.assign(o)}async _getTokenFromIFrame(e){const n=Object.assign(Object.assign({},e.authorizationParams),{prompt:"none"}),r=this.cookieStorage.get(this.orgHintCookieName);r&&!n.organization&&(n.organization=r);const{url:i,state:o,nonce:a,code_verifier:s,redirect_uri:m,scope:p,audience:u}=await this._prepareAuthorizeUrl(n,{response_mode:"web_message"},window.location.origin);try{if(window.crossOriginIsolated)throw new Y("login_required","The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.");const c=e.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,h=await((w,k,v=60)=>new Promise((I,_)=>{const y=window.document.createElement("iframe");y.setAttribute("width","0"),y.setAttribute("height","0"),y.style.display="none";const l=()=>{window.document.body.contains(y)&&(window.document.body.removeChild(y),window.removeEventListener("message",b,!1))};let b;const T=setTimeout(()=>{_(new ht),l()},1e3*v);b=function(P){if(P.origin!=k||!P.data||P.data.type!=="authorization_response")return;const x=P.source;x&&x.close(),P.data.response.error?_(Y.fromPayload(P.data.response)):I(P.data.response),clearTimeout(T),window.removeEventListener("message",b,!1),setTimeout(l,2e3)},window.addEventListener("message",b,!1),window.document.body.appendChild(y),y.setAttribute("src",w)}))(i,this.domainUrl,c);if(o!==h.state)throw new Y("state_mismatch","Invalid state");const d=await this._requestToken(Object.assign(Object.assign({},e.authorizationParams),{code_verifier:s,code:h.code,grant_type:"authorization_code",redirect_uri:m,timeout:e.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:a,organization:n.organization});return Object.assign(Object.assign({},d),{scope:p,oauthTokenScope:d.scope,audience:u})}catch(c){throw c.error==="login_required"&&this.logout({openUrl:!1}),c}}async _getTokenUsingRefreshToken(e){const n=await this.cacheManager.get(new le({scope:e.authorizationParams.scope,audience:e.authorizationParams.audience||"default",clientId:this.options.clientId}));if(!(n&&n.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw new Zt(e.authorizationParams.audience||"default",e.authorizationParams.scope)}const r=e.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,i=typeof e.timeoutInSeconds=="number"?1e3*e.timeoutInSeconds:null;try{const o=await this._requestToken(Object.assign(Object.assign(Object.assign({},e.authorizationParams),{grant_type:"refresh_token",refresh_token:n&&n.refresh_token,redirect_uri:r}),i&&{timeout:i}));return Object.assign(Object.assign({},o),{scope:e.authorizationParams.scope,oauthTokenScope:o.scope,audience:e.authorizationParams.audience||"default"})}catch(o){if((o.message.indexOf("Missing Refresh Token")>-1||o.message&&o.message.indexOf("invalid refresh token")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw o}}async _saveEntryInCache(e){const{id_token:n,decodedToken:r}=e,i=W(e,["id_token","decodedToken"]);this.userCache.set("@@user@@",{id_token:n,decodedToken:r}),await this.cacheManager.setIdToken(this.options.clientId,e.id_token,e.decodedToken),await this.cacheManager.set(i)}async _getIdTokenFromCache(){const e=this.options.authorizationParams.audience||"default",n=await this.cacheManager.getIdToken(new le({clientId:this.options.clientId,audience:e,scope:this.scope})),r=this.userCache.get("@@user@@");return n&&n.id_token===(r==null?void 0:r.id_token)?r:(this.userCache.set("@@user@@",n),n)}async _getEntryFromCache({scope:e,audience:n,clientId:r}){const i=await this.cacheManager.get(new le({scope:e,audience:n,clientId:r}),60);if(i&&i.access_token){const{access_token:o,oauthTokenScope:a,expires_in:s}=i,m=await this._getIdTokenFromCache();return m&&Object.assign(Object.assign({id_token:m.id_token,access_token:o},a?{scope:a}:null),{expires_in:s})}}async _requestToken(e,n){const{nonceIn:r,organization:i}=n||{},o=await Er(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},e),this.worker),a=await this._verifyIdToken(o.id_token,r,i);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},o),{decodedToken:a,scope:e.scope,audience:e.audience||"default"}),o.scope?{oauthTokenScope:o.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgHint(i||a.claims.org_id),Object.assign(Object.assign({},o),{decodedToken:a})}};async function Rr(t){const e=new Ur(t);return await e.checkSession(),e}const vt="sesamy.com",Wr="https://logs.sesamy.com/events";var re=(t=>(t.READY="sesamyReady",t.AUTHENTICATED="sesamyAuthenticated",t.LOGOUT="sesamyLogout",t.SOFT_PAYWALL="sesamySoftPaywall",t))(re||{});let F;async function Zr({clientId:t}){if(F=await Rr({domain:`token.${vt}`,clientId:t,cacheLocation:"localstorage"}),window.location.search.includes("code="))try{await F.handleRedirectCallback();const e=await F.getUser();J(re.AUTHENTICATED,e),window.history.replaceState({},document.title,"/");const n=await F.getTokenSilently();localStorage.setItem("accessToken",n)}catch{}}async function Kr(){if(!F)throw new Error("Auth0 client not initialized");return F.isAuthenticated()}async function Mr(){if(!F)throw new Error("Auth0 client not initialized");return F.getUser()}function Fr(){if(!F)throw new Error("Auth0 client not initialized");return F.loginWithRedirect({authorizationParams:{redirect_uri:window.location.href}})}async function Xr(){if(!F)throw new Error("Auth0 client not initialized");return F.getTokenSilently()}async function Hr(){if(!F)throw new Error("Auth0 client not initialized");return J(re.LOGOUT,{}),F.logout({logoutParams:{returnTo:window.location.href}})}const Jr=(t,e)=>e.skipDedupe||e.method!=="GET",Vr=(t,e)=>e.method+"@"+t,Yr=t=>t.clone(),Qt=({skip:t=Jr,key:e=Vr,resolver:n=Yr}={})=>{const r=new Map;return i=>(o,a)=>{if(t(o,a))return i(o,a);const s=e(o,a);if(!r.has(s))r.set(s,[]);else return new Promise((m,p)=>{r.get(s).push([m,p])});try{return i(o,a).then(m=>(r.get(s).forEach(([p])=>p(n(m))),r.delete(s),m)).catch(m=>{throw r.get(s).forEach(([p,u])=>u(m)),r.delete(s),m})}catch(m){return r.delete(s),Promise.reject(m)}}},Gr=(t,e)=>t*e,Br=t=>t&&t.ok,en=({delayTimer:t=500,delayRamp:e=Gr,maxAttempts:n=10,until:r=Br,onRetry:i=null,retryOnNetworkError:o=!1,resolveWithLatestResponse:a=!1,skip:s}={})=>m=>(p,u)=>{let c=0;if(s&&s(p,u))return m(p,u);const h=(d,w)=>Promise.resolve(r(d,w)).then(k=>k?d&&a?d:w?Promise.reject(w):d:(c++,!n||c<=n?new Promise(v=>{const I=e(t,c);setTimeout(()=>{typeof i=="function"?Promise.resolve(i({response:d,error:w,url:p,options:u})).then((_={})=>{var y,l;v(m((y=_&&_.url)!==null&&y!==void 0?y:p,(l=_&&_.options)!==null&&l!==void 0?l:u))}):v(m(p,u))},I)}).then(h).catch(v=>{if(!o)throw v;return h(null,v)}):d&&a?d:Promise.reject(w||new Error("Number of attempts exceeded."))));return m(p,u).then(h).catch(d=>{if(!o)throw d;return h(null,d)})},qr="application/json",tn="Content-Type",be=Symbol(),nn=Symbol();function rn(t={}){var e;return(e=Object.entries(t).find(([n])=>n.toLowerCase()===tn.toLowerCase()))===null||e===void 0?void 0:e[1]}function on(t){return/^application\/.*json.*/.test(t)}const he=function(t,e,n=!1){return Object.entries(e).reduce((r,[i,o])=>{const a=t[i];return Array.isArray(a)&&Array.isArray(o)?r[i]=n?[...a,...o]:o:typeof a=="object"&&typeof o=="object"?r[i]=he(a,o,n):r[i]=o,r},{...t})},ke={options:{},errorType:"text",polyfills:{},polyfill(t,e=!0,n=!1,...r){const i=this.polyfills[t]||(typeof self<"u"?self[t]:null)||(typeof global<"u"?global[t]:null);if(e&&!i)throw new Error(t+" is not defined");return n&&i?new i(...r):i}};function Qr(t,e=!1){ke.options=e?t:he(ke.options,t)}function ei(t,e=!1){ke.polyfills=e?t:he(ke.polyfills,t)}function ti(t){ke.errorType=t}const ni=t=>e=>t.reduceRight((n,r)=>r(n),e)||e;class an extends Error{}const ri=t=>{const e=Object.create(null);t=t._addons.reduce((y,l)=>l.beforeRequest&&l.beforeRequest(y,t._options,e)||y,t);const{_url:n,_options:r,_config:i,_catchers:o,_resolvers:a,_middlewares:s,_addons:m}=t,p=new Map(o),u=he(i.options,r);let c=n;const h=ni(s)((y,l)=>(c=y,i.polyfill("fetch")(y,l)))(n,u),d=new Error,w=h.catch(y=>{throw{[be]:y}}).then(y=>{if(!y.ok){const l=new an;if(l.cause=d,l.stack=l.stack+`
|
|
5
|
-
CAUSE: `+d.stack,l.response=y,l.url=c,y.type==="opaque")throw l;return y.text().then(b=>{var T;if(l.message=b,i.errorType==="json"||((T=y.headers.get("Content-Type"))===null||T===void 0?void 0:T.split(";")[0])==="application/json")try{l.json=JSON.parse(b)}catch{}throw l.text=b,l.status=y.status,l})}return y}),k=y=>y.catch(l=>{const b=l.hasOwnProperty(be),T=b?l[be]:l,P=(T==null?void 0:T.status)&&p.get(T.status)||p.get(T==null?void 0:T.name)||b&&p.has(be)&&p.get(be);if(P)return P(T,t);const x=p.get(nn);if(x)return x(T,t);throw T}),v=y=>l=>k(y?w.then(b=>b&&b[y]()).then(b=>l?l(b):b):w.then(b=>l?l(b):b)),I={_wretchReq:t,_fetchReq:h,_sharedState:e,res:v(null),json:v("json"),blob:v("blob"),formData:v("formData"),arrayBuffer:v("arrayBuffer"),text:v("text"),error(y,l){return p.set(y,l),this},badRequest(y){return this.error(400,y)},unauthorized(y){return this.error(401,y)},forbidden(y){return this.error(403,y)},notFound(y){return this.error(404,y)},timeout(y){return this.error(408,y)},internalError(y){return this.error(500,y)},fetchError(y){return this.error(be,y)}},_=m.reduce((y,l)=>({...y,...typeof l.resolver=="function"?l.resolver(y):l.resolver}),I);return a.reduce((y,l)=>l(y,t),_)},ii={_url:"",_options:{},_config:ke,_catchers:new Map,_resolvers:[],_deferred:[],_middlewares:[],_addons:[],addon(t){return{...this,_addons:[...this._addons,t],...t.wretch}},errorType(t){return{...this,_config:{...this._config,errorType:t}}},polyfills(t,e=!1){return{...this,_config:{...this._config,polyfills:e?t:he(this._config.polyfills,t)}}},url(t,e=!1){if(e)return{...this,_url:t};const n=this._url.split("?");return{...this,_url:n.length>1?n[0]+t+"?"+n[1]:this._url+t}},options(t,e=!1){return{...this,_options:e?t:he(this._options,t)}},headers(t){const e=t?Array.isArray(t)?Object.fromEntries(t):"entries"in t?Object.fromEntries(t.entries()):t:{};return{...this,_options:he(this._options,{headers:e})}},accept(t){return this.headers({Accept:t})},content(t){return this.headers({[tn]:t})},auth(t){return this.headers({Authorization:t})},catcher(t,e){const n=new Map(this._catchers);return n.set(t,e),{...this,_catchers:n}},catcherFallback(t){return this.catcher(nn,t)},resolve(t,e=!1){return{...this,_resolvers:e?[t]:[...this._resolvers,t]}},defer(t,e=!1){return{...this,_deferred:e?[t]:[...this._deferred,t]}},middlewares(t,e=!1){return{...this,_middlewares:e?t:[...this._middlewares,...t]}},fetch(t=this._options.method,e="",n=null){let r=this.url(e).options({method:t});const i=rn(r._options.headers),o=typeof n=="object"&&(!r._options.headers||!i||on(i));return r=n?o?r.json(n,i):r.body(n):r,ri(r._deferred.reduce((a,s)=>s(a,a._url,a._options),r))},get(t=""){return this.fetch("GET",t)},delete(t=""){return this.fetch("DELETE",t)},put(t,e=""){return this.fetch("PUT",e,t)},post(t,e=""){return this.fetch("POST",e,t)},patch(t,e=""){return this.fetch("PATCH",e,t)},head(t=""){return this.fetch("HEAD",t)},opts(t=""){return this.fetch("OPTIONS",t)},body(t){return{...this,_options:{...this._options,body:t}}},json(t,e){const n=rn(this._options.headers);return this.content(e||on(n)&&n||qr).body(JSON.stringify(t))}};function ie(t="",e={}){return{...ii,_url:t,_options:e}}ie.default=ie,ie.options=Qr,ie.errorType=ti,ie.polyfills=ei,ie.WretchError=an;const oi=t=>(e,n)=>new Promise(async(r,i)=>{try{const o=await Xr(),a={...n,headers:{...n.headers,Authorization:`Bearer ${o}`}};r(t(e,a))}catch(o){console.error("Error fetching access token:",o),i(o)}}),ai=t=>(e,n)=>{const r=localStorage.getItem("__anon_id"),i=btoa(`${r}:`),o={...n,headers:{...n.headers,Authorization:`Basic ${i}`}};return t(e,o)},Ie=ie(`https://api2.${vt}`).headers({"Content-Type":"application/json"}).middlewares([oi,Qt(),en({delayTimer:1e3,delayRamp:(t,e)=>t*e,maxAttempts:3,until:t=>(t==null?void 0:t.ok)||!1,retryOnNetworkError:!1})]),He=ie(`https://api2.${vt}`).headers({"Content-Type":"application/json"}).middlewares([ai,Qt(),en({delayTimer:1e3,delayRamp:(t,e)=>t*e,maxAttempts:3,until:t=>(t==null?void 0:t.ok)||!1,retryOnNetworkError:!1})]);async function si(){return Ie.get("/entitlements").json()}async function ci(t){const e=await Ie.get("/entitlements").json();return e==null?void 0:e.find(n=>n.id===t)}async function ui(){return Ie.get("/contracts").json()}async function li(t){const e=await Ie.get("/contracts").json();return e==null?void 0:e.find(n=>n.id===t)}async function di(){return Ie.get("/bills").json()}async function hi(t){const e=await Ie.get("/bills").json();return e==null?void 0:e.find(n=>n.id===t)}async function fi(){return await He.get("/tags").json()}async function pi(t,e){return await He.url(`/tags/${t}`).put({value:e}).json()}async function mi(t,e){return await He.url(`/tags/${t}/push`).put({value:e}).json()}async function gi(t){const e=localStorage.getItem("__anon_id");if(!e)throw new Error("User id not found");return He.url("/articles/access").post({articleId:t.articleId,userId:e}).json()}async function yi(t){const e=await gi({articleId:t});return e.status!=="ok"&&J(re.SOFT_PAYWALL,{}),e}const sn="@sesamy/sesamy-js",wt="1.1.0";function vi(){return wt}function wi(t="sesamy"){window[t]={auth:{getUser:Mr,isAuthenticated:Kr,loginWithRedirect:Fr,logout:Hr},articles:{access:yi},tags:{list:fi,set:pi,push:mi},getEntitlement:ci,getEntitlements:si,getContract:li,getContracts:ui,getBill:hi,getBills:di,getVersion:vi}}function cn(t,e,n,r,i){for(e=e.split?e.split("."):e,r=0;r<e.length;r++)t=t?t[e[r]]:i;return t===i?n:t}var Je="undefined",un="object",bi=function(){},ln="any",dn="*",fe="__",Ve=typeof process<"u"?process:{};Ve.env&&Ve.env.NODE_ENV;var G=typeof document<"u";Ve.versions!=null&&Ve.versions.node!=null,typeof Deno<"u"&&Deno.core,G&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent!==void 0&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));function hn(t,e){return e.charAt(0)[t]()+e.slice(1)}var ki=hn.bind(null,"toUpperCase"),Ii=hn.bind(null,"toLowerCase");function _i(t){return fn(t)?ki("null"):typeof t=="object"?Pi(t):Object.prototype.toString.call(t).slice(8,-1)}function Ye(t,e){e===void 0&&(e=!0);var n=_i(t);return e?Ii(n):n}function ze(t,e){return typeof e===t}var Q=ze.bind(null,"function"),oe=ze.bind(null,"string"),_e=ze.bind(null,"undefined"),Si=ze.bind(null,"boolean");ze.bind(null,"symbol");function fn(t){return t===null}function Ei(t){return Ye(t)==="number"&&!isNaN(t)}function pn(t){return Ye(t)==="array"}function X(t){if(!Oi(t))return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Oi(t){return t&&(typeof t=="object"||t!==null)}function Pi(t){return Q(t.constructor)?t.constructor.name:null}function Ti(t){return t instanceof Error||oe(t.message)&&t.constructor&&Ei(t.constructor.stackTraceLimit)}function mn(t,e){if(typeof e!="object"||fn(e))return!1;if(e instanceof t)return!0;var n=Ye(new t(""));if(Ti(e))for(;e;){if(Ye(e)===n)return!0;e=Object.getPrototypeOf(e)}return!1}mn.bind(null,TypeError),mn.bind(null,SyntaxError);function Ge(t,e){var n=t instanceof Element||t instanceof HTMLDocument;return n&&e?ji(t,e):n}function ji(t,e){return e===void 0&&(e=""),t&&t.nodeName===e.toUpperCase()}function Be(t){var e=[].slice.call(arguments,1);return function(){return t.apply(void 0,[].slice.call(arguments).concat(e))}}Be(Ge,"form"),Be(Ge,"button"),Be(Ge,"input"),Be(Ge,"select");function xi(t){return t?pn(t)?t:[t]:[]}function gn(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch{return null}}function Ci(){if(G){var t=navigator,e=t.languages;return t.userLanguage||(e&&e.length?e[0]:t.language)}}function $i(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{}}function Ai(t){return function(e){for(var n,r=Object.create(null),i=/([^&=]+)=?([^&]*)/g;n=i.exec(e);){var o=gn(n[1]),a=gn(n[2]);o.substring(o.length-2)==="[]"?(r[o=o.substring(0,o.length-2)]||(r[o]=[])).push(a):r[o]=a===""||a}for(var s in r){var m=s.split("[");m.length>1&&(zi(r,m.map(function(p){return p.replace(/[?[\]\\ ]/g,"")}),r[s]),delete r[s])}return r}(function(e){if(e){var n=e.match(/\?(.*)/);return n&&n[1]?n[1].split("#")[0]:""}return G&&window.location.search.substring(1)}(t))}function zi(t,e,n){for(var r=e.length-1,i=0;i<r;++i){var o=e[i];if(o==="__proto__"||o==="constructor")break;o in t||(t[o]={}),t=t[o]}t[e[r]]=n}function qe(){for(var t="",e=0,n=4294967295*Math.random()|0;e++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[e-1],i=15&n;t+=r=="-"||r=="4"?r:(r=="x"?i:3&i|8).toString(16),n=e%8==0?4294967295*Math.random()|0:n>>4}return t}var Ne="global",Se=fe+"global"+fe,Ee=typeof self===un&&self.self===self&&self||typeof global===un&&global.global===global&&global||void 0;function pe(t){return Ee[Se][t]}function me(t,e){return Ee[Se][t]=e}function Oe(t){delete Ee[Se][t]}function Pe(t,e,n){var r;try{if(bt(t)){var i=window[t];r=i[e].bind(i)}}catch{}return r||n}Ee[Se]||(Ee[Se]={});var Qe={};function bt(t){if(typeof Qe[t]!==Je)return Qe[t];try{var e=window[t];e.setItem(Je,Je),e.removeItem(Je)}catch{return Qe[t]=!1}return Qe[t]=!0}function E(){return E=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},E.apply(this,arguments)}var ae="function",ne="undefined",Ni="@@redux/"+Math.random().toString(36),yn=function(){return typeof Symbol===ae&&Symbol.observable||"@@observable"}(),et=" != "+ae;function vn(t,e,n){var r;if(typeof e===ae&&typeof n===ne&&(n=e,e=void 0),typeof n!==ne){if(typeof n!==ae)throw new Error("enhancer"+et);return n(vn)(t,e)}if(typeof t!==ae)throw new Error("reducer"+et);var i=t,o=e,a=[],s=a,m=!1;function p(){s===a&&(s=a.slice())}function u(){return o}function c(d){if(typeof d!==ae)throw new Error("Listener"+et);var w=!0;return p(),s.push(d),function(){if(w){w=!1,p();var k=s.indexOf(d);s.splice(k,1)}}}function h(d){if(!X(d))throw new Error("Act != obj");if(typeof d.type===ne)throw new Error("ActType "+ne);if(m)throw new Error("Dispatch in reducer");try{m=!0,o=i(o,d)}finally{m=!1}for(var w=a=s,k=0;k<w.length;k++)(0,w[k])();return d}return h({type:"@@redux/INIT"}),(r={dispatch:h,subscribe:c,getState:u,replaceReducer:function(d){if(typeof d!==ae)throw new Error("next reducer"+et);i=d,h({type:"@@redux/INIT"})}})[yn]=function(){var d,w=c;return(d={subscribe:function(k){if(typeof k!="object")throw new TypeError("Observer != obj");function v(){k.next&&k.next(u())}return v(),{unsubscribe:w(v)}}})[yn]=function(){return this},d},r}function Li(t,e){var n=e&&e.type;return"action "+(n&&n.toString()||"?")+"reducer "+t+" returns "+ne}function Te(){var t=[].slice.call(arguments);return t.length===0?function(e){return e}:t.length===1?t[0]:t.reduce(function(e,n){return function(){return e(n.apply(void 0,[].slice.call(arguments)))}})}function Di(){var t=arguments;return function(e){return function(n,r,i){var o,a=e(n,r,i),s=a.dispatch,m={getState:a.getState,dispatch:function(p){return s(p)}};return o=[].slice.call(t).map(function(p){return p(m)}),E({},a,{dispatch:s=Te.apply(void 0,o)(a.dispatch)})}}}var se=fe+"anon_id",ge=fe+"user_id",je=fe+"user_traits",ce="userId",xe="anonymousId",tt=["bootstrap","params","campaign","initializeStart","initialize","initializeEnd","ready","resetStart","reset","resetEnd","pageStart","page","pageEnd","pageAborted","trackStart","track","trackEnd","trackAborted","identifyStart","identify","identifyEnd","identifyAborted","userIdChanged","registerPlugins","enablePlugin","disablePlugin","online","offline","setItemStart","setItem","setItemEnd","setItemAborted","removeItemStart","removeItem","removeItemEnd","removeItemAborted"],kt=["name","EVENTS","config","loaded"],O=tt.reduce(function(t,e){return t[e]=e,t},{registerPluginType:function(t){return"registerPlugin:"+t},pluginReadyType:function(t){return"ready:"+t}}),wn=/^utm_/,bn=/^an_prop_/,kn=/^an_trait_/;function Ui(t){var e=t.storage.setItem;return function(n){return function(r){return function(i){if(i.type===O.bootstrap){var o=i.params,a=i.user,s=i.persistedUser,m=i.initialUser,p=s.userId===a.userId;s.anonymousId!==a.anonymousId&&e(se,a.anonymousId),p||e(ge,a.userId),m.traits&&e(je,E({},p&&s.traits?s.traits:{},m.traits));var u=Object.keys(i.params);if(u.length){var c=o.an_uid,h=o.an_event,d=u.reduce(function(w,k){if(k.match(wn)||k.match(/^(d|g)clid/)){var v=k.replace(wn,"");w.campaign[v==="campaign"?"name":v]=o[k]}return k.match(bn)&&(w.props[k.replace(bn,"")]=o[k]),k.match(kn)&&(w.traits[k.replace(kn,"")]=o[k]),w},{campaign:{},props:{},traits:{}});n.dispatch(E({type:O.params,raw:o},d,c?{userId:c}:{})),c&&setTimeout(function(){return t.identify(c,d.traits)},0),h&&setTimeout(function(){return t.track(h,d.props)},0),Object.keys(d.campaign).length&&n.dispatch({type:O.campaign,campaign:d.campaign})}}return r(i)}}}}function Ri(t){return function(e,n){if(e===void 0&&(e={}),n===void 0&&(n={}),n.type===O.setItemEnd){if(n.key===se)return E({},e,{anonymousId:n.value});if(n.key===ge)return E({},e,{userId:n.value})}switch(n.type){case O.identify:return Object.assign({},e,{userId:n.userId,traits:E({},e.traits,n.traits)});case O.reset:return[ge,se,je].forEach(function(r){t.removeItem(r)}),Object.assign({},e,{userId:null,anonymousId:null,traits:{}});default:return e}}}function In(t){return{userId:t.getItem(ge),anonymousId:t.getItem(se),traits:t.getItem(je)}}var It=function(t){return fe+"TEMP"+fe+t};function Wi(t){var e=t.storage,n=e.setItem,r=e.removeItem,i=e.getItem;return function(o){return function(a){return function(s){var m=s.userId,p=s.traits,u=s.options;if(s.type===O.reset&&([ge,je,se].forEach(function(d){r(d)}),[ce,xe,"traits"].forEach(function(d){Oe(It(d))})),s.type===O.identify){i(se)||n(se,qe());var c=i(ge),h=i(je)||{};c&&c!==m&&o.dispatch({type:O.userIdChanged,old:{userId:c,traits:h},new:{userId:m,traits:p},options:u}),m&&n(ge,m),p&&n(je,E({},h,p))}return a(s)}}}}var Le={};function _n(t,e){Le[t]&&Q(Le[t])&&(Le[t](e),delete Le[t])}function Sn(t,e,n){return new Promise(function(r,i){return e()?r(t):n<1?i(E({},t,{queue:!0})):new Promise(function(o){return setTimeout(o,10)}).then(function(o){return Sn(t,e,n-10).then(r,i)})})}function Zi(t){return{abort:t}}function En(t,e,n){var r={},i=e(),o=t.getState(),a=o.plugins,s=o.queue,m=o.user;if(!o.context.offline&&s&&s.actions&&s.actions.length){var p=s.actions.reduce(function(c,h,d){return a[h.plugin].loaded?(c.process.push(h),c.processIndex.push(d)):(c.requeue.push(h),c.requeueIndex.push(d)),c},{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(p.processIndex&&p.processIndex.length){p.processIndex.forEach(function(c){var h=s.actions[c],d=h.plugin,w=h.payload.type,k=i[d][w];if(k&&Q(k)){var v,I=function(l,b){return l===void 0&&(l={}),b===void 0&&(b={}),[ce,xe].reduce(function(T,P){return l.hasOwnProperty(P)&&b[P]&&b[P]!==l[P]&&(T[P]=b[P]),T},l)}(h.payload,m),_=r[I.meta.rid];if(!_&&(v=k({payload:I,config:a[d].config,instance:n,abort:Zi}))&&X(v)&&v.abort)return void(r[I.meta.rid]=!0);if(!_){var y=w+":"+d;t.dispatch(E({},I,{type:y,_:{called:y,from:"queueDrain"}}))}}});var u=s.actions.filter(function(c,h){return!~p.processIndex.indexOf(h)});s.actions=u}}}var _t=function(t){var e=t.data,n=t.action,r=t.instance,i=t.state,o=t.allPlugins,a=t.allMatches,s=t.store,m=t.EVENTS;try{var p=i.plugins,u=i.context,c=n.type,h=c.match(Ce),d=e.exact.map(function(v){return v.pluginName});h&&(d=a.during.map(function(v){return v.pluginName}));var w=function(v,I){return function(_,y,l){var b=y.config,T=y.name,P=T+"."+_.type;l&&(P=l.event);var x=_.type.match(Ce)?function(D,L,B,U,q){return function(Z,j){var M=U?U.name:D,H=j&&De(j)?j:B;if(U&&(!(H=j&&De(j)?j:[D]).includes(D)||H.length!==1))throw new Error("Method "+L+" can only abort "+D+" plugin. "+JSON.stringify(H)+" input valid");return E({},q,{abort:{reason:Z,plugins:H,caller:L,_:M}})}}(T,P,I,l,_):function(D,L){return function(){throw new Error(D.type+" action not cancellable. Remove abort in "+L)}}(_,P);return{payload:Ki(_),instance:v,config:b||{},abort:x}}}(r,d),k=e.exact.reduce(function(v,I){var _=I.pluginName,y=I.methodName,l=!1;return y.match(/^initialize/)||y.match(/^reset/)||(l=!p[_].loaded),u.offline&&y.match(/^(page|track|identify)/)&&(l=!0),v[""+_]=l,v},{});return Promise.resolve(e.exact.reduce(function(v,I,_){try{var y=I.pluginName;return Promise.resolve(v).then(function(l){function b(){return Promise.resolve(l)}var T=function(){if(e.namespaced&&e.namespaced[y])return Promise.resolve(e.namespaced[y].reduce(function(P,x,D){try{return Promise.resolve(P).then(function(L){return x.method&&Q(x.method)?(function(Z,j){var M=An(Z);if(M&&M.name===j){var H=An(M.method);throw new Error([j+" plugin is calling method "+Z,"Plugins cant call self","Use "+M.method+" "+(H?"or "+H.method:"")+" in "+j+" plugin insteadof "+Z].join(`
|
|
6
|
-
`))}}(x.methodName,x.pluginName),Promise.resolve(x.method({payload:L,instance:r,abort:(B=L,U=y,q=x.pluginName,function(Z,j){return E({},B,{abort:{reason:Z,plugins:j||[U],caller:c,from:q||U}})}),config:Tn(x.pluginName,p,o),plugins:p})).then(function(Z){var j=X(Z)?Z:{};return Promise.resolve(E({},L,j))})):L;var B,U,q})}catch(L){return Promise.reject(L)}},Promise.resolve(n))).then(function(P){l[y]=P});l[y]=n}();return T&&T.then?T.then(b):b()})}catch(l){return Promise.reject(l)}},Promise.resolve({}))).then(function(v){return Promise.resolve(e.exact.reduce(function(I,_,y){try{var l=e.exact.length===y+1,b=_.pluginName,T=o[b];return Promise.resolve(I).then(function(P){var x=v[b]?v[b]:{};if(h&&(x=P),Et(x,b))return St({data:x,method:c,instance:r,pluginName:b,store:s}),Promise.resolve(P);if(Et(P,b))return l&&St({data:P,method:c,instance:r,store:s}),Promise.resolve(P);if(k.hasOwnProperty(b)&&k[b]===!0)return s.dispatch({type:"queue",plugin:b,payload:x,_:{called:"queue",from:"queueMechanism"}}),Promise.resolve(P);var D=w(v[b],o[b]);return Promise.resolve(T[c]({abort:D.abort,payload:x,instance:r,config:Tn(b,p,o),plugins:p})).then(function(L){var B=X(L)?L:{},U=E({},P,B),q=v[b];if(Et(q,b))St({data:q,method:c,instance:r,pluginName:b,store:s});else{var Z=c+":"+b;(Z.match(/:/g)||[]).length<2&&!c.match(On)&&!c.match(Pn)&&r.dispatch(E({},h?U:x,{type:Z,_:{called:Z,from:"submethod"}}))}return Promise.resolve(U)})})}catch(P){return Promise.reject(P)}},Promise.resolve(n))).then(function(I){if(!(c.match(Ce)||c.match(/^registerPlugin/)||c.match(Pn)||c.match(On)||c.match(/^params/)||c.match(/^userIdChanged/))){if(m.plugins.includes(c),I._&&I._.originalAction===c)return I;var _=E({},I,{_:{originalAction:I.type,called:I.type,from:"engineEnd"}});Cn(I,e.exact.length)&&!c.match(/End$/)&&(_=E({},_,{type:I.type+"Aborted"})),s.dispatch(_)}return I})})}catch(v){return Promise.reject(v)}},Ce=/Start$/,On=/^bootstrap/,Pn=/^ready/;function St(t){var e=t.pluginName,n=t.method+"Aborted"+(e?":"+e:"");t.store.dispatch(E({},t.data,{type:n,_:{called:n,from:"abort"}}))}function Tn(t,e,n){var r=e[t]||n[t];return r&&r.config?r.config:{}}function jn(t,e){return e.reduce(function(n,r){return r[t]?n.concat({methodName:t,pluginName:r.name,method:r[t]}):n},[])}function xn(t,e){var n=t.replace(Ce,""),r=e?":"+e:"";return[""+t+r,""+n+r,n+"End"+r]}function Et(t,e){var n=t.abort;return!!n&&(n===!0||$n(n,e)||n&&$n(n.plugins,e))}function Cn(t,e){var n=t.abort;if(!n)return!1;if(n===!0||oe(n))return!0;var r=n.plugins;return De(n)&&n.length===e||De(r)&&r.length===e}function De(t){return Array.isArray(t)}function $n(t,e){return!(!t||!De(t))&&t.includes(e)}function An(t){var e=t.match(/(.*):(.*)/);return!!e&&{method:e[1],name:e[2]}}function Ki(t){return Object.keys(t).reduce(function(e,n){return n==="type"||(e[n]=X(t[n])?Object.assign({},t[n]):t[n]),e},{})}function Mi(t,e,n){var r={};return function(i){return function(o){return function(a){try{var s,m=function(l){return s?l:o(c)},p=a.type,u=a.plugins,c=a;if(a.abort)return Promise.resolve(o(a));if(p===O.enablePlugin&&i.dispatch({type:O.initializeStart,plugins:u,disabled:[],fromEnable:!0,meta:a.meta}),p===O.disablePlugin&&setTimeout(function(){return _n(a.meta.rid,{payload:a})},0),p===O.initializeEnd){var h=e(),d=Object.keys(h),w=d.filter(function(l){return u.includes(l)}).map(function(l){return h[l]}),k=[],v=[],I=a.disabled,_=w.map(function(l){var b=l.loaded,T=l.name,P=l.config;return Sn(l,function(){return b({config:P})},1e4).then(function(x){return r[T]||(i.dispatch({type:O.pluginReadyType(T),name:T,events:Object.keys(l).filter(function(D){return!kt.includes(D)})}),r[T]=!0),k=k.concat(T),l}).catch(function(x){if(x instanceof Error)throw new Error(x);return v=v.concat(x.name),x})});Promise.all(_).then(function(l){var b={plugins:k,failed:v,disabled:I};setTimeout(function(){d.length===_.length+I.length&&i.dispatch(E({},{type:O.ready},b))},0)})}var y=function(){if(p!==O.bootstrap)return/^ready:([^:]*)$/.test(p)&&setTimeout(function(){return En(i,e,t)},0),Promise.resolve(function(l,b,T,P,x){try{var D=Q(b)?b():b,L=l.type,B=L.replace(Ce,"");if(l._&&l._.called)return Promise.resolve(l);var U=T.getState(),q=(M=D,(H=U.plugins)===void 0&&(H={}),(Ke=l.options)===void 0&&(Ke={}),Object.keys(M).filter(function(f){var g=Ke.plugins||{};return Si(g[f])?g[f]:g.all!==!1&&(!H[f]||H[f].enabled!==!1)}).map(function(f){return M[f]}));L===O.initializeStart&&l.fromEnable&&(q=Object.keys(U.plugins).filter(function(f){var g=U.plugins[f];return l.plugins.includes(f)&&!g.initialized}).map(function(f){return D[f]}));var Z=q.map(function(f){return f.name}),j=function(f,g,S){var C=xn(f).map(function($){return jn($,g)});return g.reduce(function($,A){var K=A.name,N=xn(f,K).map(function(Me){return jn(Me,g)}),R=N[0],z=N[1],te=N[2];return R.length&&($.beforeNS[K]=R),z.length&&($.duringNS[K]=z),te.length&&($.afterNS[K]=te),$},{before:C[0],beforeNS:{},during:C[1],duringNS:{},after:C[2],afterNS:{}})}(L,q);return Promise.resolve(_t({action:l,data:{exact:j.before,namespaced:j.beforeNS},state:U,allPlugins:D,allMatches:j,instance:T,store:P,EVENTS:x})).then(function(f){function g(){var $=function(){if(L.match(Ce))return Promise.resolve(_t({action:E({},S,{type:B+"End"}),data:{exact:j.after,namespaced:j.afterNS},state:U,allPlugins:D,allMatches:j,instance:T,store:P,EVENTS:x})).then(function(A){A.meta&&A.meta.hasCallback&&_n(A.meta.rid,{payload:A})})}();return $&&$.then?$.then(function(){return f}):f}if(Cn(f,Z.length))return f;var S,C=function(){if(L!==B)return Promise.resolve(_t({action:E({},f,{type:B}),data:{exact:j.during,namespaced:j.duringNS},state:U,allPlugins:D,allMatches:j,instance:T,store:P,EVENTS:x})).then(function($){S=$});S=f}();return C&&C.then?C.then(g):g()})}catch(f){return Promise.reject(f)}var M,H,Ke}(a,e,t,i,n)).then(function(l){return s=1,o(l)})}();return Promise.resolve(y&&y.then?y.then(m):m(y))}catch(l){return Promise.reject(l)}}}}}function Fi(t){return function(e){return function(n){return function(r){var i=r.type,o=r.key,a=r.value,s=r.options;if(i===O.setItem||i===O.removeItem){if(r.abort)return n(r);i===O.setItem?t.setItem(o,a,s):t.removeItem(o,s)}return n(r)}}}}var Xi=function(){var t=this;this.before=[],this.after=[],this.addMiddleware=function(e,n){t[n]=t[n].concat(e)},this.removeMiddleware=function(e,n){var r=t[n].findIndex(function(i){return i===e});r!==-1&&(t[n]=[].concat(t[n].slice(0,r),t[n].slice(r+1)))},this.dynamicMiddlewares=function(e){return function(n){return function(r){return function(i){var o={getState:n.getState,dispatch:function(s){return n.dispatch(s)}},a=t[e].map(function(s){return s(o)});return Te.apply(void 0,a)(r)(i)}}}}};function Hi(t){return function(e,n){e===void 0&&(e={});var r={};if(n.type==="initialize:aborted")return e;if(/^registerPlugin:([^:]*)$/.test(n.type)){var i=zn(n.type,"registerPlugin"),o=t()[i];if(!o||!i)return e;var a=n.enabled,s=o.config;return r[i]={enabled:a,initialized:!!a&&!o.initialize,loaded:!!a&&!!o.loaded({config:s}),config:s},E({},e,r)}if(/^initialize:([^:]*)$/.test(n.type)){var m=zn(n.type,O.initialize),p=t()[m];return p&&m?(r[m]=E({},e[m],{initialized:!0,loaded:!!p.loaded({config:p.config})}),E({},e,r)):e}if(/^ready:([^:]*)$/.test(n.type))return r[n.name]=E({},e[n.name],{loaded:!0}),E({},e,r);switch(n.type){case O.disablePlugin:return E({},e,Nn(n.plugins,!1,e));case O.enablePlugin:return E({},e,Nn(n.plugins,!0,e));default:return e}}}function zn(t,e){return t.substring(e.length+1,t.length)}function Nn(t,e,n){return t.reduce(function(r,i){return r[i]=E({},n[i],{enabled:e}),r},n)}function Ln(t){try{return JSON.parse(JSON.stringify(t))}catch{}return t}var Ji={last:{},history:[]};function Vi(t,e){t===void 0&&(t=Ji);var n=e.options,r=e.meta;if(e.type===O.track){var i=Ln(E({event:e.event,properties:e.properties},Object.keys(n).length&&{options:n},{meta:r}));return E({},t,{last:i,history:t.history.concat(i)})}return t}var Yi={actions:[]};function Gi(t,e){t===void 0&&(t=Yi);var n=e.payload;switch(e.type){case"queue":var r;return r=n&&n.type&&n.type===O.identify?[e].concat(t.actions):t.actions.concat(e),E({},t,{actions:r});case"dequeue":return[];default:return t}}var Dn=/#.*$/;function Bi(t){var e=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(t);return"/"+(e&&e[3]?e[3].split("?")[0].replace(Dn,""):"")}var Un,Rn,Wn,Zn,qi=function(t){if(t===void 0&&(t={}),!G)return t;var e=document,n=e.title,r=e.referrer,i=window,o=i.location,a=i.innerWidth,s=i.innerHeight,m=o.hash,p=o.search,u=function(h){var d=function(){if(G){for(var w,k=document.getElementsByTagName("link"),v=0;w=k[v];v++)if(w.getAttribute("rel")==="canonical")return w.getAttribute("href")}}();return d?d.match(/\?/)?d:d+h:window.location.href.replace(Dn,"")}(p),c={title:n,url:u,path:Bi(u),hash:m,search:p,width:a,height:s};return r&&r!==""&&(c.referrer=r),E({},c,t)},Qi={last:{},history:[]};function eo(t,e){t===void 0&&(t=Qi);var n=e.options;if(e.type===O.page){var r=Ln(E({properties:e.properties,meta:e.meta},Object.keys(n).length&&{options:n}));return E({},t,{last:r,history:t.history.concat(r)})}return t}Un=function(){if(!G)return!1;var t=navigator.appVersion;return~t.indexOf("Win")?"Windows":~t.indexOf("Mac")?"MacOS":~t.indexOf("X11")?"UNIX":~t.indexOf("Linux")?"Linux":"Unknown OS"}(),Rn=G?document.referrer:null,Wn=Ci(),Zn=$i();var Kn={initialized:!1,sessionId:qe(),app:null,version:null,debug:!1,offline:!!G&&!navigator.onLine,os:{name:Un},userAgent:G?navigator.userAgent:"node",library:{name:"analytics",version:"0.12.7"},timezone:Zn,locale:Wn,campaign:{},referrer:Rn};function to(t,e){t===void 0&&(t=Kn);var n=t.initialized,r=e.campaign;switch(e.type){case O.campaign:return E({},t,{campaign:r});case O.offline:return E({},t,{offline:!0});case O.online:return E({},t,{offline:!1});default:return n?t:E({},Kn,t,{initialized:!0})}}var no=["plugins","reducers","storage"];function ro(t,e,n){if(G){var r=window[(n?"add":"remove")+"EventListener"];t.split(" ").forEach(function(i){r(i,e)})}}function io(t){var e=ro.bind(null,"online offline",function(n){return Promise.resolve(!navigator.onLine).then(t)});return e(!0),function(n){return e(!1)}}function Mn(){return me("analytics",[]),function(t){return function(e,n,r){var i=t(e,n,r),o=i.dispatch;return Object.assign(i,{dispatch:function(a){return Ee[Se].analytics.push(a.action||a),o(a)}})}}}function Fn(t){return function(){return Te(Te.apply(null,arguments),Mn())}}function Ot(t){return t?pn(t)?t:[t]:[]}function Xn(t,e,n){t===void 0&&(t={});var r,i,o=qe();return e&&(Le[o]=(r=e,i=function(a){for(var s,m=a||Array.prototype.slice.call(arguments),p=0;p<m.length;p++)if(Q(m[p])){s=m[p];break}return s}(n),function(a){i&&i(a),r(a)})),E({},t,{rid:o,ts:new Date().getTime()},e?{hasCallback:!0}:{})}function oo(t){t===void 0&&(t={});var e=t.reducers||{},n=t.initialUser||{},r=(t.plugins||[]).reduce(function(f,g){if(Q(g))return f.middlewares=f.middlewares.concat(g),f;if(g.NAMESPACE&&(g.name=g.NAMESPACE),!g.name)throw new Error("https://lytics.dev/errors/1");g.config||(g.config={});var S=g.EVENTS?Object.keys(g.EVENTS).map(function(A){return g.EVENTS[A]}):[];f.pluginEnabled[g.name]=!(g.enabled===!1||g.config.enabled===!1),delete g.enabled,g.methods&&(f.methods[g.name]=Object.keys(g.methods).reduce(function(A,K){var N;return A[K]=(N=g.methods[K],function(){for(var R=Array.prototype.slice.call(arguments),z=new Array(N.length),te=0;te<R.length;te++)z[te]=R[te];return z[z.length]=b,N.apply({instance:b},z)}),A},{}),delete g.methods);var C=Object.keys(g).concat(S),$=new Set(f.events.concat(C));if(f.events=Array.from($),f.pluginsArray=f.pluginsArray.concat(g),f.plugins[g.name])throw new Error(g.name+"AlreadyLoaded");return f.plugins[g.name]=g,f.plugins[g.name].loaded||(f.plugins[g.name].loaded=function(){return!0}),f},{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),i=t.storage?t.storage:{getItem:pe,setItem:me,removeItem:Oe},o=function(f){return function(g,S,C){return S.getState("user")[g]||(C&&X(C)&&C[g]?C[g]:In(f)[g]||pe(It(g))||null)}}(i),a=r.plugins,s=r.events.filter(function(f){return!kt.includes(f)}).sort(),m=new Set(s.concat(tt).filter(function(f){return!kt.includes(f)})),p=Array.from(m).sort(),u=function(){return a},c=new Xi,h=c.addMiddleware,d=c.removeMiddleware,w=c.dynamicMiddlewares,k=function(){throw new Error("Abort disabled inListener")},v=Ai(),I=In(i),_=E({},I,n,v.an_uid?{userId:v.an_uid}:{},v.an_aid?{anonymousId:v.an_aid}:{});_.anonymousId||(_.anonymousId=qe());var y=E({enable:function(f,g){return new Promise(function(S){j.dispatch({type:O.enablePlugin,plugins:Ot(f),_:{originalAction:O.enablePlugin}},S,[g])})},disable:function(f,g){return new Promise(function(S){j.dispatch({type:O.disablePlugin,plugins:Ot(f),_:{originalAction:O.disablePlugin}},S,[g])})}},r.methods),l=!1,b={identify:function(f,g,S,C){try{var $=oe(f)?f:null,A=X(f)?f:g,K=S||{},N=b.user();me(It(ce),$);var R=$||A.userId||o(ce,b,A);return Promise.resolve(new Promise(function(z){j.dispatch(E({type:O.identifyStart,userId:R,traits:A||{},options:K,anonymousId:N.anonymousId},N.id&&N.id!==$&&{previousId:N.id}),z,[g,S,C])}))}catch(z){return Promise.reject(z)}},track:function(f,g,S,C){try{var $=X(f)?f.event:f;if(!$||!oe($))throw new Error("EventMissing");var A=X(f)?f:g||{},K=X(S)?S:{};return Promise.resolve(new Promise(function(N){j.dispatch({type:O.trackStart,event:$,properties:A,options:K,userId:o(ce,b,g),anonymousId:o(xe,b,g)},N,[g,S,C])}))}catch(N){return Promise.reject(N)}},page:function(f,g,S){try{var C=X(f)?f:{},$=X(g)?g:{};return Promise.resolve(new Promise(function(A){j.dispatch({type:O.pageStart,properties:qi(C),options:$,userId:o(ce,b,C),anonymousId:o(xe,b,C)},A,[f,g,S])}))}catch(A){return Promise.reject(A)}},user:function(f){if(f===ce||f==="id")return o(ce,b);if(f===xe||f==="anonId")return o(xe,b);var g=b.getState("user");return f?cn(g,f):g},reset:function(f){return new Promise(function(g){j.dispatch({type:O.resetStart},g,f)})},ready:function(f){return l&&f({plugins:y,instance:b}),b.on(O.ready,function(g){f(g),l=!0})},on:function(f,g){if(!f||!Q(g))return!1;if(f===O.bootstrap)throw new Error(".on disabled for "+f);var S=/Start$|Start:/;if(f==="*"){var C=function(N){return function(R){return function(z){return z.type.match(S)&&g({payload:z,instance:b,plugins:a}),R(z)}}},$=function(N){return function(R){return function(z){return z.type.match(S)||g({payload:z,instance:b,plugins:a}),R(z)}}};return h(C,nt),h($,rt),function(){d(C,nt),d($,rt)}}var A=f.match(S)?nt:rt,K=function(N){return function(R){return function(z){return z.type===f&&g({payload:z,instance:b,plugins:a,abort:k}),R(z)}}};return h(K,A),function(){return d(K,A)}},once:function(f,g){if(!f||!Q(g))return!1;if(f===O.bootstrap)throw new Error(".once disabled for "+f);var S=b.on(f,function(C){g({payload:C.payload,instance:b,plugins:a,abort:k}),S()});return S},getState:function(f){var g=j.getState();return f?cn(g,f):Object.assign({},g)},dispatch:function(f){var g=oe(f)?{type:f}:f;if(tt.includes(g.type))throw new Error("reserved action "+g.type);var S=E({},g,{_:E({originalAction:g.type},f._||{})});j.dispatch(S)},enablePlugin:y.enable,disablePlugin:y.disable,plugins:y,storage:{getItem:i.getItem,setItem:function(f,g,S){j.dispatch({type:O.setItemStart,key:f,value:g,options:S})},removeItem:function(f,g){j.dispatch({type:O.removeItemStart,key:f,options:g})}},setAnonymousId:function(f,g){b.storage.setItem(se,f,g)},events:{core:tt,plugins:s}},T=r.middlewares.concat([function(f){return function(g){return function(S){return S.meta||(S.meta=Xn()),g(S)}}},w(nt),Mi(b,u,{all:p,plugins:s}),Fi(i),Ui(b),Wi(b),w(rt)]),P={context:to,user:Ri(i),page:eo,track:Vi,plugins:Hi(u),queue:Gi},x=Te,D=Te;if(G&&t.debug){var L=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;L&&(x=L({trace:!0,traceLimit:25})),D=function(){return arguments.length===0?Mn():X(typeof arguments[0])?Fn():Fn().apply(null,arguments)}}var B,U=function(f){return Object.keys(f).reduce(function(g,S){return no.includes(S)||(g[S]=f[S]),g},{})}(t),q=r.pluginsArray.reduce(function(f,g){var S=g.name,C=g.config,$=g.loaded,A=r.pluginEnabled[S];return f[S]={enabled:A,initialized:!!A&&!g.initialize,loaded:!!$({config:C}),config:C},f},{}),Z={context:U,user:_,plugins:q},j=vn(function(f){for(var g=Object.keys(f),S={},C=0;C<g.length;C++){var $=g[C];typeof f[$]===ae&&(S[$]=f[$])}var A,K=Object.keys(S);try{(function(N){Object.keys(N).forEach(function(R){var z=N[R];if(typeof z(void 0,{type:"@@redux/INIT"})===ne||typeof z(void 0,{type:Ni})===ne)throw new Error("reducer "+R+" "+ne)})})(S)}catch(N){A=N}return function(N,R){if(N===void 0&&(N={}),A)throw A;for(var z=!1,te={},Me=0;Me<K.length;Me++){var ut=K[Me],cr=N[ut],Lt=(0,S[ut])(cr,R);if(typeof Lt===ne){var Uo=Li(ut,R);throw new Error(Uo)}te[ut]=Lt,z=z||Lt!==cr}return z?te:N}}(E({},P,e)),Z,D(x(Di.apply(void 0,T))));j.dispatch=(B=j.dispatch,function(f,g,S){var C=E({},f,{meta:Xn(f.meta,g,Ot(S))});return B.apply(null,[C])});var M=Object.keys(a);j.dispatch({type:O.bootstrap,plugins:M,config:U,params:v,user:_,initialUser:n,persistedUser:I});var H=M.filter(function(f){return r.pluginEnabled[f]}),Ke=M.filter(function(f){return!r.pluginEnabled[f]});return j.dispatch({type:O.registerPlugins,plugins:M,enabled:r.pluginEnabled}),r.pluginsArray.map(function(f,g){var S=f.bootstrap,C=f.config,$=f.name;S&&Q(S)&&S({instance:b,config:C,payload:f}),j.dispatch({type:O.registerPluginType($),name:$,enabled:r.pluginEnabled[$],plugin:f}),r.pluginsArray.length===g+1&&j.dispatch({type:O.initializeStart,plugins:H,disabled:Ke})}),io(function(f){j.dispatch({type:f?O.offline:O.online})}),function(f,g,S){setInterval(function(){return En(f,g,S)},3e3)}(j,u,b),b}var nt="before",rt="after",Ue="cookie",ye=Vn(),Hn=it,ao=it;function Jn(t){return ye?it(t,"",-1):Oe(t)}function Vn(){if(ye!==void 0)return ye;var t="cookiecookie";try{it(t,t),ye=document.cookie.indexOf(t)!==-1,Jn(t)}catch{ye=!1}return ye}function it(t,e,n,r,i,o){if(typeof window<"u"){var a=arguments.length>1;return ye===!1&&(a?me(t,e):pe(t)),a?document.cookie=t+"="+encodeURIComponent(e)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(i?"; domain="+i:"")+(o?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+t+"=")[1]||"").split(";")[0])}}var Re="localStorage",so=bt.bind(null,"localStorage");Pe("localStorage","getItem",pe),Pe("localStorage","setItem",me),Pe("localStorage","removeItem",Oe);var We="sessionStorage",co=bt.bind(null,"sessionStorage");Pe("sessionStorage","getItem",pe),Pe("sessionStorage","setItem",me),Pe("sessionStorage","removeItem",Oe);function $e(t){var e=t;try{if((e=JSON.parse(t))==="true")return!0;if(e==="false")return!1;if(X(e))return e;parseFloat(e)===e&&(e=parseFloat(e))}catch{}if(e!==null&&e!=="")return e}var uo=so(),lo=co(),ho=Vn();function Yn(t,e){if(t){var n=Pt(e),r=!Ct(n),i=Tt(n)?$e(localStorage.getItem(t)):void 0;if(r&&!_e(i))return i;var o=jt(n)?$e(Hn(t)):void 0;if(r&&o)return o;var a=xt(n)?$e(sessionStorage.getItem(t)):void 0;if(r&&a)return a;var s=pe(t);return r?s:{localStorage:i,sessionStorage:a,cookie:o,global:s}}}function fo(t,e,n){if(t&&!_e(e)){var r={},i=Pt(n),o=JSON.stringify(e),a=!Ct(i);return Tt(i)&&(r[Re]=at(Re,e,$e(localStorage.getItem(t))),localStorage.setItem(t,o),a)?r[Re]:jt(i)&&(r[Ue]=at(Ue,e,$e(Hn(t))),ao(t,o),a)?r[Ue]:xt(i)&&(r[We]=at(We,e,$e(sessionStorage.getItem(t))),sessionStorage.setItem(t,o),a)?r[We]:(r[Ne]=at(Ne,e,pe(t)),me(t,e),a?r[Ne]:r)}}function po(t,e){if(t){var n=Pt(e),r=Yn(t,dn),i={};return!_e(r.localStorage)&&Tt(n)&&(localStorage.removeItem(t),i[Re]=r.localStorage),!_e(r.cookie)&&jt(n)&&(Jn(t),i[Ue]=r.cookie),!_e(r.sessionStorage)&&xt(n)&&(sessionStorage.removeItem(t),i[We]=r.sessionStorage),!_e(r.global)&&ot(n,Ne)&&(Oe(t),i[Ne]=r.global),i}}function Pt(t){return t?oe(t)?t:t.storage:ln}function Tt(t){return uo&&ot(t,Re)}function jt(t){return ho&&ot(t,Ue)}function xt(t){return lo&&ot(t,We)}function Ct(t){return t===dn||t==="all"}function ot(t,e){return t===ln||t===e||Ct(t)}function at(t,e,n){return{location:t,current:e,previous:n}}var mo={setItem:fo,getItem:Yn,removeItem:po};function go(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Gn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Bn(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Gn(Object(n),!0).forEach(function(r){go(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Gn(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function yo(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e={storage:mo};return oo(Bn(Bn({},e),t))}function vo(t,e){e=e||{};var n,r,i=[],o=e.max||1/0;function a(){clearInterval(n),t(i.splice(0,o)),s()}function s(){n=setInterval(a,e.interval||1e4)}return s(),{flush:a,push:function(m){return r=i.push(m),r>=o&&a(),r},size:function(){return i.length},end:function(m){m&&a(),clearInterval(n)}}}function wo(t){if(!(typeof window>"u")){var e=window,n=e.addEventListener,r=e.history,i=e.location,o=i.pathname;n("popstate",function(){return t(i.pathname)}),["push","replace"].map(function(a){var s="".concat(a,"State"),m=r[s];r[s]=function(){var p=arguments,u=ko(arguments[2]);return o!==u&&(o=u,setTimeout(function(){return t(p[2])},0)),m.apply(r,arguments)}})}}function bo(t,e){var n=t.indexOf(e);return n>-1?t.slice(0,n):t}function ko(t){return["#","?"].forEach(function(e){return t=bo(t,e)}),t}function Io(){wo(()=>{ve.page()})}var qn="EventListener";function _o(t){return function(e,n,r,i){var o=r||bi,a=i||!1;if(!G)return o;var s=st(n),m=st(e,!0);if(!m.length)throw new Error("noElements");if(!s.length)throw new Error("noEvent");var p=[];return function u(c){c&&(p=[]);for(var h=c?"add"+qn:"remove"+qn,d=0;d<m.length;d++){var w=m[d];p[d]=c?a&&a.once?So(o):o:p[d]||o;for(var k=0;k<s.length;k++)w[h]?w["on"+s[k]]=c?p[d]:null:w[h](s[k],p[d],a)}return u.bind(null,!c)}(t)}}function st(t,e){if(oe(t))return e?st(document.querySelectorAll(t)):(n=t).split(n.indexOf(",")>-1?",":" ").map(function(a){return a.trim()});var n;if(NodeList.prototype.isPrototypeOf(t)){for(var r=[],i=t.length>>>0;i--;)r[i]=t[i];return r}var o=xi(t);return e?o.map(function(a){return oe(a)?st(a,!0):a}).flat():o}function So(t,e){var n;return function(){return t&&(n=t.apply(e||this,arguments),t=null),n}}var $t=_o("Event");function Qn(t,e){return G&&Q(window[t])?(n=window[t],r=e,(i=window)===void 0&&(i=null),Q(n)?function(){n.apply(i,arguments),r.apply(i,arguments)}:r):window[t]=e;var n,r,i}Qn.bind(null,"onerror"),Qn.bind(null,"onload");var er=typeof window>"u",tr="hidden";function Eo(t){if(er)return!1;var e=Oo(),n="".concat(e.replace(/[H|h]idden/,""),"visibilitychange"),r=function(){return t(!!document[e])},i=function(){return document.addEventListener(n,r)};return i(),function(){return document.removeEventListener(n,r),i}}function Oo(){var t=["webkit","moz","ms","o"];return er||tr in document?tr:t.reduce(function(e,n){var r=n+"Hidden";return!e&&r in document?r:e},null)}var Po=["mousemove","mousedown","touchmove","touchstart","touchend","keydown"];function To(t,e){e===void 0&&(e={});var n=function(a,s){var m=this,p=!1;return function(u){p||(a.call(m,u),p=!0,setTimeout(function(){return p=!1},s))}}(t,e.throttle||1e4),r=[];function i(){var a=Eo(function(s){s||n({type:"tabVisible"})});return r=[a].concat(Po.map(function(s){return $t(document,s,n)})).concat($t(window,"load",n)).concat($t(window,"scroll",n,{capture:!0,passive:!0})),o}function o(){r.map(function(a){return a()})}return i(),function(){return o(),i}}function jo(t){var e,n,r=t.onIdle,i=t.onWakeUp,o=t.onHeartbeat,a=t.timeout,s=a===void 0?1e4:a,m=t.throttle,p=m===void 0?2e3:m,u=!1,c=!1,h=new Date,d=function(){return clearTimeout(e)};function w(v){d(),o&&!u&&o(Ze(h),v),i&&u&&(u=!1,i(Ze(n),v),h=new Date),e=setTimeout(function(){u=!0,r&&(n=new Date,r(Ze(h),v))},s)}var k=To(w,{throttle:p});return{disable:function(){c=!0,u=!1,d();var v=k();return function(){return c=!1,h=new Date,w({type:"load"}),v()}},getStatus:function(){return{isIdle:u,isDisabled:c,active:u?0:Ze(h,c),idle:u?Ze(n,c):0}}}}function Ze(t,e){return e?0:Math.round((new Date-t)/1e3)}const nr=5e3;class xo{constructor(e){ee(this,"element");ee(this,"isInViewport",!1);ee(this,"isAwake",!1);ee(this,"isFlushing");ee(this,"observer");ee(this,"lastEventAt",Date.now());ee(this,"registeredView",!1);ee(this,"viewCallback");ee(this,"activeDurationCallback");ee(this,"idleDurationCallback");this.element=e.element,this.viewCallback=e.viewCallback,this.activeDurationCallback=e.activeDurationCallback,this.idleDurationCallback=e.idleDurationCallback,this.observer=new IntersectionObserver(n=>{n.forEach(r=>{this.handleInViewPort(r.isIntersecting)})},{threshold:0}),this.observer.observe(this.element),jo({onIdle:n=>this.handleAwake(!1,n),onWakeUp:n=>this.handleAwake(!0,n),timeout:nr})}flush(){this.isFlushing=!0,this.handleAwake(!this.isAwake,Math.round((Date.now()-this.lastEventAt)/1e3))}handleInViewPort(e){e?(this.isAwake=!0,this.trackInViewport()):this.handleAwake(!1,Math.round((Date.now()-this.lastEventAt)/1e3)),this.isInViewport=e}handleAwake(e,n){this.isAwake=e,this.lastEventAt=e?Date.now()-n*nr:Date.now(),this.isInViewport&&this.trackAwake(e,n)}trackAwake(e,n){!e&&this.activeDurationCallback&&this.activeDurationCallback(n,this.isFlushing),e&&this.idleDurationCallback&&this.idleDurationCallback(n,this.isFlushing)}trackInViewport(){this.registeredView||(this.registeredView=!0,this.viewCallback&&this.viewCallback())}}const rr="sesamy_session_id";function Co(){let t=sessionStorage.getItem(rr);return t||(t=Math.random().toString(36).slice(2,9),sessionStorage.setItem(rr,t)),t}let ir=!1,At,or,ct;function $o({clientId:t,enabled:e=!0,endpoint:n=Wr}){if(At=t,or=e,ct=n,!or)return;Io();const r=new xo({element:document.body,viewCallback:()=>{ve.page()},activeDurationCallback:(i,o)=>{ve.track("activeDuration",{duration:i,flushing:o})},idleDurationCallback:(i,o)=>{ve.track("idleDuration",{duration:i,flushing:o})}});zo(document.body,()=>{r.flush()}),window.addEventListener(re.AUTHENTICATED,async i=>{const o=i;await ve.identify(o.detail.sub)}),window.addEventListener(re.LOGOUT,async()=>{await ve.track("logout",{}),zt.flush(),await ve.reset()})}function ar(t){return JSON.stringify(t.map(e=>({...e,clientId:At,requestId:Math.random().toString(36).slice(2,9),sessionId:Co(),timestamp:new Date().toISOString(),version:wt,event:e.event,context:{page:{url:window.location.hostname,path:window.location.pathname,title:document.title,search:window.location.search,referrer:document.referrer},locale:navigator.language,library:sn,userAgent:navigator.userAgent,clientId:At}})))}const zt=vo(async t=>{if(t.length>0){const e=ar(t);ir?navigator.sendBeacon(ct,e):(await fetch(ct,{method:"POST",body:e,headers:{"Content-Type":"text/plain"}})).ok}},{max:10,interval:3e3});function Nt(t){var e;if(t.anonymousId)if((e=t.properties)!=null&&e.flushing){const n={...t};delete n.properties.flushing,navigator.sendBeacon(ct,ar([n]))}else zt.push(t)}const ve=yo({app:sn,version:wt,plugins:[{name:"custom-analytics-plugin",page:({payload:t})=>{const{properties:e,anonymousId:n,userId:r,event:i}=t;Nt({anonymousId:n,userId:r,properties:e,event:i,type:"page"})},track:({payload:t})=>{const{properties:e,anonymousId:n,userId:r,event:i}=t;Nt({anonymousId:n,userId:r,properties:e,event:i,type:"track"})},identify:({payload:t})=>{const{properties:e,anonymousId:n,userId:r}=t;Nt({anonymousId:n,userId:r,properties:e,type:"identify"})}}]});function Ao(){return ir=!0,zt.flush()}const sr=new Map;function zo(t,e){sr.set(t,e)}window.addEventListener("beforeunload",()=>{sr.forEach((t,e)=>{t.bind(e)()}),Ao()});async function No(t){$o({clientId:t.clientId,...t.analytics}),await Zr(t),wi(t.namespace),J(re.READY,{})}if(typeof document<"u"){const t=document.getElementById("sesamy-js");if(t!=null&&t.textContent)try{const e=JSON.parse(t.textContent);No(e)}catch(e){console.error("Failed to parse config",e)}}const Lo="/sesamy.png";class Do extends HTMLElement{constructor(){super();ee(this,"user")}async _handleProfile(){this.user=await window.sesamy.auth.getUser(),this.render()}async connectedCallback(){if(this.setupEventListeners(),!window.sesamy){window.addEventListener(re.READY,()=>this._handleProfile());return}this._handleProfile()}render(){this.innerHTML=`
|
|
7
|
-
<div>
|
|
8
|
-
<a href="https://docs.sesamy.com" target="_blank">
|
|
9
|
-
<img src="${Lo}" class="logo" alt="Vite logo" />
|
|
10
|
-
</a>
|
|
11
|
-
<h1>Sesamy JS</h1>
|
|
12
|
-
<p class="read-the-docs">
|
|
13
|
-
Click on the Sesamy logo to learn more
|
|
14
|
-
</p>
|
|
15
|
-
${this.user?this.renderUserProfile():this.renderLoginButton()}
|
|
16
|
-
</div>
|
|
17
|
-
`}renderLoginButton(){return'<button part="login-btn" class="login auth-visible" id="login-btn"> Login </button>'}renderUserProfile(){var n,r;return`<div class="user" part="user">
|
|
18
|
-
<a href="/profile" part="user-link">
|
|
19
|
-
${(n=this.user)!=null&&n.picture?` <img
|
|
20
|
-
class="big"
|
|
21
|
-
part="user-img img-big"
|
|
22
|
-
src=${this.user.picture}
|
|
23
|
-
alt=${this.user.name||"User avatar"}
|
|
24
|
-
/>`:'<div part="avatar avatar-big" class="avatar big"> Placeholder </div>'}
|
|
25
|
-
<h2 class="user-name">${((r=this.user)==null?void 0:r.name)||"User Name"}</h2>
|
|
26
|
-
</a>
|
|
27
|
-
|
|
28
|
-
<div class="logout-wrap">
|
|
29
|
-
<a href="#" class="logout-btn" id="logout-btn"> Logout </a>
|
|
30
|
-
</div>
|
|
31
|
-
<div>
|
|
32
|
-
<a href="/entitlements.html">
|
|
33
|
-
View Entitlements
|
|
34
|
-
</a>
|
|
35
|
-
</div>
|
|
36
|
-
<div>
|
|
37
|
-
<a href="/contracts.html">
|
|
38
|
-
View Contracts
|
|
39
|
-
</a>
|
|
40
|
-
</div>
|
|
41
|
-
</div>`}setupEventListeners(){this.addEventListener("click",n=>{const r=n.target,i=r.closest("#logout-btn"),o=r.closest("#login-btn");i&&window.sesamy.auth.logout(),o&&window.sesamy.auth.loginWithRedirect()})}}customElements.define("sesamy-app",Do)});
|