@roudanio/awesome-comment 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,4 +5,4 @@ var AwesomeComment=function(){"use strict";function Rn(e,t){const n=Object.creat
5
5
  */let fi;const Cn=e=>fi=e,di=Symbol();function bo(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var $t;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})($t||($t={}));function ya(){const e=Wo(!0),t=e.run(()=>Q({}));let n=[],o=[];const s=un({install(i){Cn(s),s._a=i,i.provide(di,s),i.config.globalProperties.$pinia=s,o.forEach(r=>n.push(r)),o=[]},use(i){return!this._a&&!_a?o.push(i):n.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const hi=()=>{};function pi(e,t,n,o=hi){e.push(t);const s=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),o())};return!n&&Ho()&&Gi(s),s}function yt(e,...t){e.slice().forEach(n=>{n(...t)})}const wa=e=>e();function _o(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,o)=>e.set(o,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],s=e[n];bo(s)&&bo(o)&&e.hasOwnProperty(n)&&!ne(o)&&!He(o)?e[n]=_o(s,o):e[n]=o}return e}const va=Symbol();function ka(e){return!bo(e)||!e.hasOwnProperty(va)}const{assign:Be}=Object;function xa(e){return!!(ne(e)&&e.effect)}function Ia(e,t,n,o){const{state:s,actions:i,getters:r}=t,c=n.state.value[e];let a;function l(){c||(n.state.value[e]=s?s():{});const f=Er(n.state.value[e]);return Be(f,i,Object.keys(r||{}).reduce((d,p)=>(d[p]=un(ho(()=>{Cn(n);const g=n._s.get(e);return r[p].call(g,g)})),d),{}))}return a=mi(e,l,t,n,o,!0),a}function mi(e,t,n={},o,s,i){let r;const c=Be({actions:{}},n),a={deep:!0};let l,f,d=[],p=[],g;const b=o.state.value[e];!i&&!b&&(o.state.value[e]={}),Q({});let w;function I(L){let K;l=f=!1,typeof L=="function"?(L(o.state.value[e]),K={type:$t.patchFunction,storeId:e,events:g}):(_o(o.state.value[e],L),K={type:$t.patchObject,payload:L,storeId:e,events:g});const oe=w=Symbol();ps().then(()=>{w===oe&&(l=!0)}),f=!0,yt(d,K,o.state.value[e])}const O=i?function(){const{state:K}=n,oe=K?K():{};this.$patch(be=>{Be(be,oe)})}:hi;function T(){r.stop(),d=[],p=[],o._s.delete(e)}function R(L,K){return function(){Cn(o);const oe=Array.from(arguments),be=[],Ne=[];function kt(Z){be.push(Z)}function Wt(Z){Ne.push(Z)}yt(p,{args:oe,name:L,store:W,after:kt,onError:Wt});let Xe;try{Xe=K.apply(this&&this.$id===e?this:W,oe)}catch(Z){throw yt(Ne,Z),Z}return Xe instanceof Promise?Xe.then(Z=>(yt(be,Z),Z)).catch(Z=>(yt(Ne,Z),Promise.reject(Z))):(yt(be,Xe),Xe)}}const A={_p:o,$id:e,$onAction:pi.bind(null,p),$patch:I,$reset:O,$subscribe(L,K={}){const oe=pi(d,L,K.detached,()=>be()),be=r.run(()=>mn(()=>o.state.value[e],Ne=>{(K.flush==="sync"?f:l)&&L({storeId:e,type:$t.direct,events:g},Ne)},Be({},a,K)));return oe},$dispose:T},W=an(A);o._s.set(e,W);const he=o._a&&o._a.runWithContext||wa,H=o._e.run(()=>(r=Wo(),he(()=>r.run(t))));for(const L in H){const K=H[L];if(ne(K)&&!xa(K)||He(K))i||(b&&ka(K)&&(ne(K)?K.value=b[L]:_o(K,b[L])),o.state.value[e][L]=K);else if(typeof K=="function"){const oe=R(L,K);H[L]=oe,c.actions[L]=K}}return Be(W,H),Be(U(W),H),Object.defineProperty(W,"$state",{get:()=>o.state.value[e],set:L=>{I(K=>{Be(K,L)})}}),o._p.forEach(L=>{Be(W,r.run(()=>L({store:W,app:o._a,pinia:o,options:c})))}),b&&i&&n.hydrate&&n.hydrate(W.$state,b),l=!0,f=!0,W}function Ca(e,t,n){let o,s;const i=typeof t=="function";typeof e=="string"?(o=e,s=i?n:t):(s=e,o=e.id);function r(c,a){const l=yc();return c=c||(l?Ie(di,null):null),c&&Cn(c),c=fi,c._s.has(o)||(i?mi(o,t,s,c):Ia(o,s,c)),c._s.get(o)}return r.$id=o,r}const gi=Symbol("$auth0");function Ae(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function"){var s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(n[o[s]]=e[o[s]])}return n}var wt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function yo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function wo(e,t){return e(t={exports:{}},t.exports),t.exports}var st=wo(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function o(){var s=this;this.locked=new Map,this.addToLocked=function(i,r){var c=s.locked.get(i);c===void 0?r===void 0?s.locked.set(i,[]):s.locked.set(i,[r]):r!==void 0&&(c.unshift(r),s.locked.set(i,c))},this.isLocked=function(i){return s.locked.has(i)},this.lock=function(i){return new Promise(function(r,c){s.isLocked(i)?s.addToLocked(i,r):(s.addToLocked(i),r())})},this.unlock=function(i){var r=s.locked.get(i);if(r!==void 0&&r.length!==0){var c=r.pop();s.locked.set(i,r),c!==void 0&&setTimeout(c,0)}else s.locked.delete(i)}}return o.getInstance=function(){return o.instance===void 0&&(o.instance=new o),o.instance},o}();t.default=function(){return n.getInstance()}});yo(st);var Ta=yo(wo(function(e,t){var n=wt&&wt.__awaiter||function(a,l,f,d){return new(f||(f=Promise))(function(p,g){function b(O){try{I(d.next(O))}catch(T){g(T)}}function w(O){try{I(d.throw(O))}catch(T){g(T)}}function I(O){O.done?p(O.value):new f(function(T){T(O.value)}).then(b,w)}I((d=d.apply(a,l||[])).next())})},o=wt&&wt.__generator||function(a,l){var f,d,p,g,b={label:0,sent:function(){if(1&p[0])throw p[1];return p[1]},trys:[],ops:[]};return g={next:w(0),throw:w(1),return:w(2)},typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function w(I){return function(O){return function(T){if(f)throw new TypeError("Generator is already executing.");for(;b;)try{if(f=1,d&&(p=2&T[0]?d.return:T[0]?d.throw||((p=d.return)&&p.call(d),0):d.next)&&!(p=p.call(d,T[1])).done)return p;switch(d=0,p&&(T=[2&T[0],p.value]),T[0]){case 0:case 1:p=T;break;case 4:return b.label++,{value:T[1],done:!1};case 5:b.label++,d=T[1],T=[0];continue;case 7:T=b.ops.pop(),b.trys.pop();continue;default:if(!((p=(p=b.trys).length>0&&p[p.length-1])||T[0]!==6&&T[0]!==2)){b=0;continue}if(T[0]===3&&(!p||T[1]>p[0]&&T[1]<p[3])){b.label=T[1];break}if(T[0]===6&&b.label<p[1]){b.label=p[1],p=T;break}if(p&&b.label<p[2]){b.label=p[2],b.ops.push(T);break}p[2]&&b.ops.pop(),b.trys.pop();continue}T=l.call(a,b)}catch(R){T=[6,R],d=0}finally{f=p=0}if(5&T[0])throw T[1];return{value:T[0]?T[1]:void 0,done:!0}}([I,O])}}};Object.defineProperty(t,"__esModule",{value:!0});var s="browser-tabs-lock-key";function i(a){return new Promise(function(l){return setTimeout(l,a)})}function r(a){for(var l="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz",f="",d=0;d<a;d++)f+=l[Math.floor(Math.random()*l.length)];return f}var c=function(){function a(){this.acquiredIatSet=new Set,this.id=Date.now().toString()+r(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),a.waiters===void 0&&(a.waiters=[])}return a.prototype.acquireLock=function(l,f){return f===void 0&&(f=5e3),n(this,void 0,void 0,function(){var d,p,g,b,w,I;return o(this,function(O){switch(O.label){case 0:d=Date.now()+r(4),p=Date.now()+f,g=s+"-"+l,b=window.localStorage,O.label=1;case 1:return Date.now()<p?[4,i(30)]:[3,8];case 2:return O.sent(),b.getItem(g)!==null?[3,5]:(w=this.id+"-"+l+"-"+d,[4,i(Math.floor(25*Math.random()))]);case 3:return O.sent(),b.setItem(g,JSON.stringify({id:this.id,iat:d,timeoutKey:w,timeAcquired:Date.now(),timeRefreshed:Date.now()})),[4,i(30)];case 4:return O.sent(),(I=b.getItem(g))!==null&&(I=JSON.parse(I)).id===this.id&&I.iat===d?(this.acquiredIatSet.add(d),this.refreshLockWhileAcquired(g,d),[2,!0]):[3,7];case 5:return a.lockCorrector(),[4,this.waitForSomethingToChange(p)];case 6:O.sent(),O.label=7;case 7:return d=Date.now()+r(4),[3,1];case 8:return[2,!1]}})})},a.prototype.refreshLockWhileAcquired=function(l,f){return n(this,void 0,void 0,function(){var d=this;return o(this,function(p){return setTimeout(function(){return n(d,void 0,void 0,function(){var g,b;return o(this,function(w){switch(w.label){case 0:return[4,st.default().lock(f)];case 1:return w.sent(),this.acquiredIatSet.has(f)?(g=window.localStorage,(b=g.getItem(l))===null?(st.default().unlock(f),[2]):((b=JSON.parse(b)).timeRefreshed=Date.now(),g.setItem(l,JSON.stringify(b)),st.default().unlock(f),this.refreshLockWhileAcquired(l,f),[2])):(st.default().unlock(f),[2])}})})},1e3),[2]})})},a.prototype.waitForSomethingToChange=function(l){return n(this,void 0,void 0,function(){return o(this,function(f){switch(f.label){case 0:return[4,new Promise(function(d){var p=!1,g=Date.now(),b=!1;function w(){if(b||(window.removeEventListener("storage",w),a.removeFromWaiting(w),clearTimeout(I),b=!0),!p){p=!0;var O=50-(Date.now()-g);O>0?setTimeout(d,O):d()}}window.addEventListener("storage",w),a.addToWaiting(w);var I=setTimeout(w,Math.max(0,l-Date.now()))})];case 1:return f.sent(),[2]}})})},a.addToWaiting=function(l){this.removeFromWaiting(l),a.waiters!==void 0&&a.waiters.push(l)},a.removeFromWaiting=function(l){a.waiters!==void 0&&(a.waiters=a.waiters.filter(function(f){return f!==l}))},a.notifyWaiters=function(){a.waiters!==void 0&&a.waiters.slice().forEach(function(l){return l()})},a.prototype.releaseLock=function(l){return n(this,void 0,void 0,function(){return o(this,function(f){switch(f.label){case 0:return[4,this.releaseLock__private__(l)];case 1:return[2,f.sent()]}})})},a.prototype.releaseLock__private__=function(l){return n(this,void 0,void 0,function(){var f,d,p;return o(this,function(g){switch(g.label){case 0:return f=window.localStorage,d=s+"-"+l,(p=f.getItem(d))===null?[2]:(p=JSON.parse(p)).id!==this.id?[3,2]:[4,st.default().lock(p.iat)];case 1:g.sent(),this.acquiredIatSet.delete(p.iat),f.removeItem(d),st.default().unlock(p.iat),a.notifyWaiters(),g.label=2;case 2:return[2]}})})},a.lockCorrector=function(){for(var l=Date.now()-5e3,f=window.localStorage,d=Object.keys(f),p=!1,g=0;g<d.length;g++){var b=d[g];if(b.includes(s)){var w=f.getItem(b);w!==null&&((w=JSON.parse(w)).timeRefreshed===void 0&&w.timeAcquired<l||w.timeRefreshed!==void 0&&w.timeRefreshed<l)&&(f.removeItem(b),p=!0)}}p&&a.notifyWaiters()},a.waiters=void 0,a}();t.default=c}));const Oa={timeoutInSeconds:60},bi={name:"auth0-spa-js",version:"2.1.2"},_i=()=>Date.now();class le extends Error{constructor(t,n){super(n),this.error=t,this.error_description=n,Object.setPrototypeOf(this,le.prototype)}static fromPayload({error:t,error_description:n}){return new le(t,n)}}class vo extends le{constructor(t,n,o,s=null){super(t,n),this.state=o,this.appState=s,Object.setPrototypeOf(this,vo.prototype)}}class Kt extends le{constructor(){super("timeout","Timeout"),Object.setPrototypeOf(this,Kt.prototype)}}class ko extends Kt{constructor(t){super(),this.popup=t,Object.setPrototypeOf(this,ko.prototype)}}class xo extends le{constructor(t){super("cancelled","Popup closed"),this.popup=t,Object.setPrototypeOf(this,xo.prototype)}}class Io extends le{constructor(t,n,o){super(t,n),this.mfa_token=o,Object.setPrototypeOf(this,Io.prototype)}}class Tn extends le{constructor(t,n){super("missing_refresh_token",`Missing Refresh Token (audience: '${yi(t,["default"])}', scope: '${yi(n)}')`),this.audience=t,this.scope=n,Object.setPrototypeOf(this,Tn.prototype)}}function yi(e,t=[]){return e&&!t.includes(e)?e:""}const On=()=>window.crypto,Co=()=>{const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.";let t="";return Array.from(On().getRandomValues(new Uint8Array(43))).forEach(n=>t+=e[n%e.length]),t},wi=e=>btoa(e),To=e=>{var{clientId:t}=e,n=Ae(e,["clientId"]);return new URLSearchParams((o=>Object.keys(o).filter(s=>o[s]!==void 0).reduce((s,i)=>Object.assign(Object.assign({},s),{[i]:o[i]}),{}))(Object.assign({client_id:t},n))).toString()},vi=e=>(t=>decodeURIComponent(atob(t).split("").map(n=>"%"+("00"+n.charCodeAt(0).toString(16)).slice(-2)).join("")))(e.replace(/_/g,"/").replace(/-/g,"+")),Sa=async(e,t)=>{const n=await fetch(e,t);return{ok:n.ok,json:await n.json()}},Pa=async(e,t,n,o,s,i,r=1e4)=>s?(async(c,a,l,f,d,p,g)=>{return b={auth:{audience:a,scope:l},timeout:d,fetchUrl:c,fetchOptions:f,useFormData:g},w=p,new Promise(function(I,O){const T=new MessageChannel;T.port1.onmessage=function(R){R.data.error?O(new Error(R.data.error)):I(R.data),T.port1.close()},w.postMessage(b,[T.port2])});var b,w})(e,t,n,o,r,s,i):(async(c,a,l)=>{const f=new AbortController;let d;return a.signal=f.signal,Promise.race([Sa(c,a),new Promise((p,g)=>{d=setTimeout(()=>{f.abort(),g(new Error("Timeout when executing 'fetch'"))},l)})]).finally(()=>{clearTimeout(d)})})(e,o,r);async function Ea(e,t){var{baseUrl:n,timeout:o,audience:s,scope:i,auth0Client:r,useFormData:c}=e,a=Ae(e,["baseUrl","timeout","audience","scope","auth0Client","useFormData"]);const l=c?To(a):JSON.stringify(a);return await async function(f,d,p,g,b,w,I){let O,T=null;for(let L=0;L<3;L++)try{O=await Pa(f,p,g,b,w,I,d),T=null;break}catch(K){T=K}if(T)throw T;const R=O.json,{error:A,error_description:W}=R,he=Ae(R,["error","error_description"]),{ok:H}=O;if(!H){const L=W||`HTTP error. Unable to fetch ${f}`;throw A==="mfa_required"?new Io(A,L,he.mfa_token):A==="missing_refresh_token"?new Tn(p,g):new le(A||"request_error",L)}return he}(`${n}/oauth/token`,o,s||"default",i,{method:"POST",body:l,headers:{"Content-Type":c?"application/x-www-form-urlencoded":"application/json","Auth0-Client":btoa(JSON.stringify(r||bi))}},t,c)}const Sn=(...e)=>{return(t=e.filter(Boolean).join(" ").trim().split(/\s+/),Array.from(new Set(t))).join(" ");var t};class Re{constructor(t,n="@@auth0spajs@@",o){this.prefix=n,this.suffix=o,this.clientId=t.clientId,this.scope=t.scope,this.audience=t.audience}toKey(){return[this.prefix,this.clientId,this.audience,this.scope,this.suffix].filter(Boolean).join("::")}static fromKey(t){const[n,o,s,i]=t.split("::");return new Re({clientId:o,scope:i,audience:s},n)}static fromCacheEntry(t){const{scope:n,audience:o,client_id:s}=t;return new Re({scope:n,audience:o,clientId:s})}}class ja{set(t,n){localStorage.setItem(t,JSON.stringify(n))}get(t){const n=window.localStorage.getItem(t);if(n)try{return JSON.parse(n)}catch{return}}remove(t){localStorage.removeItem(t)}allKeys(){return Object.keys(window.localStorage).filter(t=>t.startsWith("@@auth0spajs@@"))}}class ki{constructor(){this.enclosedCache=function(){let t={};return{set(n,o){t[n]=o},get(n){const o=t[n];if(o)return o},remove(n){delete t[n]},allKeys:()=>Object.keys(t)}}()}}class Aa{constructor(t,n,o){this.cache=t,this.keyManifest=n,this.nowProvider=o||_i}async setIdToken(t,n,o){var s;const i=this.getIdTokenCacheKey(t);await this.cache.set(i,{id_token:n,decodedToken:o}),await((s=this.keyManifest)===null||s===void 0?void 0:s.add(i))}async getIdToken(t){const n=await this.cache.get(this.getIdTokenCacheKey(t.clientId));if(!n&&t.scope&&t.audience){const o=await this.get(t);return!o||!o.id_token||!o.decodedToken?void 0:{id_token:o.id_token,decodedToken:o.decodedToken}}if(n)return{id_token:n.id_token,decodedToken:n.decodedToken}}async get(t,n=0){var o;let s=await this.cache.get(t.toKey());if(!s){const c=await this.getCacheKeys();if(!c)return;const a=this.matchExistingCacheKey(t,c);a&&(s=await this.cache.get(a))}if(!s)return;const i=await this.nowProvider(),r=Math.floor(i/1e3);return s.expiresAt-n<r?s.body.refresh_token?(s.body={refresh_token:s.body.refresh_token},await this.cache.set(t.toKey(),s),s.body):(await this.cache.remove(t.toKey()),void await((o=this.keyManifest)===null||o===void 0?void 0:o.remove(t.toKey()))):s.body}async set(t){var n;const o=new Re({clientId:t.client_id,scope:t.scope,audience:t.audience}),s=await this.wrapCacheEntry(t);await this.cache.set(o.toKey(),s),await((n=this.keyManifest)===null||n===void 0?void 0:n.add(o.toKey()))}async clear(t){var n;const o=await this.getCacheKeys();o&&(await o.filter(s=>!t||s.includes(t)).reduce(async(s,i)=>{await s,await this.cache.remove(i)},Promise.resolve()),await((n=this.keyManifest)===null||n===void 0?void 0:n.clear()))}async wrapCacheEntry(t){const n=await this.nowProvider();return{body:t,expiresAt:Math.floor(n/1e3)+t.expires_in}}async getCacheKeys(){var t;return this.keyManifest?(t=await this.keyManifest.get())===null||t===void 0?void 0:t.keys:this.cache.allKeys?this.cache.allKeys():void 0}getIdTokenCacheKey(t){return new Re({clientId:t},"@@auth0spajs@@","@@user@@").toKey()}matchExistingCacheKey(t,n){return n.filter(o=>{var s;const i=Re.fromKey(o),r=new Set(i.scope&&i.scope.split(" ")),c=((s=t.scope)===null||s===void 0?void 0:s.split(" "))||[],a=i.scope&&c.reduce((l,f)=>l&&r.has(f),!0);return i.prefix==="@@auth0spajs@@"&&i.clientId===t.clientId&&i.audience===t.audience&&a})[0]}}class Ra{constructor(t,n,o){this.storage=t,this.clientId=n,this.cookieDomain=o,this.storageKey=`a0.spajs.txs.${this.clientId}`}create(t){this.storage.save(this.storageKey,t,{daysUntilExpire:1,cookieDomain:this.cookieDomain})}get(){return this.storage.get(this.storageKey)}remove(){this.storage.remove(this.storageKey,{cookieDomain:this.cookieDomain})}}const zt=e=>typeof e=="number",Na=["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"];var it=wo(function(e,t){var n=wt&&wt.__assign||function(){return n=Object.assign||function(a){for(var l,f=1,d=arguments.length;f<d;f++)for(var p in l=arguments[f])Object.prototype.hasOwnProperty.call(l,p)&&(a[p]=l[p]);return a},n.apply(this,arguments)};function o(a,l){if(!l)return"";var f="; "+a;return l===!0?f:f+"="+l}function s(a,l,f){return encodeURIComponent(a).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/\(/g,"%28").replace(/\)/g,"%29")+"="+encodeURIComponent(l).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)+function(d){if(typeof d.expires=="number"){var p=new Date;p.setMilliseconds(p.getMilliseconds()+864e5*d.expires),d.expires=p}return o("Expires",d.expires?d.expires.toUTCString():"")+o("Domain",d.domain)+o("Path",d.path)+o("Secure",d.secure)+o("SameSite",d.sameSite)}(f)}function i(a){for(var l={},f=a?a.split("; "):[],d=/(%[\dA-F]{2})+/gi,p=0;p<f.length;p++){var g=f[p].split("="),b=g.slice(1).join("=");b.charAt(0)==='"'&&(b=b.slice(1,-1));try{l[g[0].replace(d,decodeURIComponent)]=b.replace(d,decodeURIComponent)}catch{}}return l}function r(){return i(document.cookie)}function c(a,l,f){document.cookie=s(a,l,n({path:"/"},f))}t.__esModule=!0,t.encode=s,t.parse=i,t.getAll=r,t.get=function(a){return r()[a]},t.set=c,t.remove=function(a,l){c(a,"",n(n({},l),{expires:-1}))}});yo(it),it.encode,it.parse,it.getAll;var La=it.get,xi=it.set,Ii=it.remove;const vt={get(e){const t=La(e);if(t!==void 0)return JSON.parse(t)},save(e,t,n){let o={};window.location.protocol==="https:"&&(o={secure:!0,sameSite:"none"}),n?.daysUntilExpire&&(o.expires=n.daysUntilExpire),n?.cookieDomain&&(o.domain=n.cookieDomain),xi(e,JSON.stringify(t),o)},remove(e,t){let n={};t?.cookieDomain&&(n.domain=t.cookieDomain),Ii(e,n)}},Ma={get:e=>vt.get(e)||vt.get(`_legacy_${e}`),save(e,t,n){let o={};window.location.protocol==="https:"&&(o={secure:!0}),n?.daysUntilExpire&&(o.expires=n.daysUntilExpire),n?.cookieDomain&&(o.domain=n.cookieDomain),xi(`_legacy_${e}`,JSON.stringify(t),o),vt.save(e,t,n)},remove(e,t){let n={};t?.cookieDomain&&(n.domain=t.cookieDomain),Ii(e,n),vt.remove(e,t),vt.remove(`_legacy_${e}`,t)}},Fa={get(e){if(typeof sessionStorage>"u")return;const t=sessionStorage.getItem(e);return t!=null?JSON.parse(t):void 0},save(e,t){sessionStorage.setItem(e,JSON.stringify(t))},remove(e){sessionStorage.removeItem(e)}};var Oo,$a=function(e){return Oo=Oo||function(t,n,o){var s=n===void 0?null:n,i=function(l,f){var d=atob(l);if(f){for(var p=new Uint8Array(d.length),g=0,b=d.length;g<b;++g)p[g]=d.charCodeAt(g);return String.fromCharCode.apply(null,new Uint16Array(p.buffer))}return d}(t,o!==void 0&&o),r=i.indexOf(`
6
6
  `,10)+1,c=i.substring(r)+(s?"//# sourceMappingURL="+s:""),a=new Blob([c],{type:"application/javascript"});return URL.createObjectURL(a)}("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscil7c3VwZXIociksdGhpcy5lcnJvcj10LHRoaXMuZXJyb3JfZGVzY3JpcHRpb249cixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9c3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjp0LGVycm9yX2Rlc2NyaXB0aW9uOnJ9KXtyZXR1cm4gbmV3IGUodCxyKX19Y2xhc3MgdCBleHRlbmRzIGV7Y29uc3RydWN0b3IoZSxzKXtzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIixgTWlzc2luZyBSZWZyZXNoIFRva2VuIChhdWRpZW5jZTogJyR7cihlLFsiZGVmYXVsdCJdKX0nLCBzY29wZTogJyR7cihzKX0nKWApLHRoaXMuYXVkaWVuY2U9ZSx0aGlzLnNjb3BlPXMsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdC5wcm90b3R5cGUpfX1mdW5jdGlvbiByKGUsdD1bXSl7cmV0dXJuIGUmJiF0LmluY2x1ZGVzKGUpP2U6IiJ9Y29uc3Qgcz1lPT57dmFye2NsaWVudElkOnR9PWUscj1mdW5jdGlvbihlLHQpe3ZhciByPXt9O2Zvcih2YXIgcyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHMpJiZ0LmluZGV4T2Yocyk8MCYmKHJbc109ZVtzXSk7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPTA7Zm9yKHM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPHMubGVuZ3RoO28rKyl0LmluZGV4T2Yoc1tvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsc1tvXSkmJihyW3Nbb11dPWVbc1tvXV0pfXJldHVybiByfShlLFsiY2xpZW50SWQiXSk7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoKGU9Pk9iamVjdC5rZXlzKGUpLmZpbHRlcigodD0+dm9pZCAwIT09ZVt0XSkpLnJlZHVjZSgoKHQscik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7W3JdOmVbcl19KSkse30pKShPYmplY3QuYXNzaWduKHtjbGllbnRfaWQ6dH0scikpKS50b1N0cmluZygpfTtsZXQgbz17fTtjb25zdCBuPShlLHQpPT5gJHtlfXwke3R9YDthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoYXN5bmMoe2RhdGE6e3RpbWVvdXQ6ZSxhdXRoOnIsZmV0Y2hVcmw6aSxmZXRjaE9wdGlvbnM6Yyx1c2VGb3JtRGF0YTphfSxwb3J0czpbZl19KT0+e2xldCBwO2NvbnN0e2F1ZGllbmNlOmwsc2NvcGU6dX09cnx8e307dHJ5e2NvbnN0IHI9YT8oZT0+e2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyhlKSxyPXt9O3JldHVybiB0LmZvckVhY2goKChlLHQpPT57clt0XT1lfSkpLHJ9KShjLmJvZHkpOkpTT04ucGFyc2UoYy5ib2R5KTtpZighci5yZWZyZXNoX3Rva2VuJiYicmVmcmVzaF90b2tlbiI9PT1yLmdyYW50X3R5cGUpe2NvbnN0IGU9KChlLHQpPT5vW24oZSx0KV0pKGwsdSk7aWYoIWUpdGhyb3cgbmV3IHQobCx1KTtjLmJvZHk9YT9zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpOkpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpfWxldCBkLGc7ImZ1bmN0aW9uIj09dHlwZW9mIEFib3J0Q29udHJvbGxlciYmKGQ9bmV3IEFib3J0Q29udHJvbGxlcixjLnNpZ25hbD1kLnNpZ25hbCk7dHJ5e2c9YXdhaXQgUHJvbWlzZS5yYWNlKFsoaD1lLG5ldyBQcm9taXNlKChlPT5zZXRUaW1lb3V0KGUsaCkpKSksZmV0Y2goaSxPYmplY3QuYXNzaWduKHt9LGMpKV0pfWNhdGNoKGUpe3JldHVybiB2b2lkIGYucG9zdE1lc3NhZ2Uoe2Vycm9yOmUubWVzc2FnZX0pfWlmKCFnKXJldHVybiBkJiZkLmFib3J0KCksdm9pZCBmLnBvc3RNZXNzYWdlKHtlcnJvcjoiVGltZW91dCB3aGVuIGV4ZWN1dGluZyAnZmV0Y2gnIn0pO3A9YXdhaXQgZy5qc29uKCkscC5yZWZyZXNoX3Rva2VuPygoKGUsdCxyKT0+e29bbih0LHIpXT1lfSkocC5yZWZyZXNoX3Rva2VuLGwsdSksZGVsZXRlIHAucmVmcmVzaF90b2tlbik6KChlLHQpPT57ZGVsZXRlIG9bbihlLHQpXX0pKGwsdSksZi5wb3N0TWVzc2FnZSh7b2s6Zy5vayxqc29uOnB9KX1jYXRjaChlKXtmLnBvc3RNZXNzYWdlKHtvazohMSxqc29uOntlcnJvcjplLmVycm9yLGVycm9yX2Rlc2NyaXB0aW9uOmUubWVzc2FnZX19KX12YXIgaH0pKX0oKTsKCg==",null,!1),new Worker(Oo,e)};const So={};class Ka{constructor(t,n){this.cache=t,this.clientId=n,this.manifestKey=this.createManifestKeyFrom(this.clientId)}async add(t){var n;const o=new Set(((n=await this.cache.get(this.manifestKey))===null||n===void 0?void 0:n.keys)||[]);o.add(t),await this.cache.set(this.manifestKey,{keys:[...o]})}async remove(t){const n=await this.cache.get(this.manifestKey);if(n){const o=new Set(n.keys);return o.delete(t),o.size>0?await this.cache.set(this.manifestKey,{keys:[...o]}):await this.cache.remove(this.manifestKey)}}get(){return this.cache.get(this.manifestKey)}clear(){return this.cache.remove(this.manifestKey)}createManifestKeyFrom(t){return`@@auth0spajs@@::${t}`}}const za={memory:()=>new ki().enclosedCache,localstorage:()=>new ja},Ci=e=>za[e],Ti=e=>{const{openUrl:t,onRedirect:n}=e,o=Ae(e,["openUrl","onRedirect"]);return Object.assign(Object.assign({},o),{openUrl:t===!1||t?t:n})},Po=new Ta;class Ua{constructor(t){let n,o;if(this.userCache=new ki().enclosedCache,this.defaultOptions={authorizationParams:{scope:"openid profile email"},useRefreshTokensFallback:!1,useFormData:!0},this._releaseLockOnPageHide=async()=>{await Po.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)},this.options=Object.assign(Object.assign(Object.assign({},this.defaultOptions),t),{authorizationParams:Object.assign(Object.assign({},this.defaultOptions.authorizationParams),t.authorizationParams)}),typeof window<"u"&&(()=>{if(!On())throw new Error("For security reasons, `window.crypto` is required to run `auth0-spa-js`.");if(On().subtle===void 0)throw new Error(`
7
7
  auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/master/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.
8
- `)})(),t.cache&&t.cacheLocation&&console.warn("Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`."),t.cache)o=t.cache;else{if(n=t.cacheLocation||"memory",!Ci(n))throw new Error(`Invalid cache location "${n}"`);o=Ci(n)()}this.httpTimeoutMs=t.httpTimeoutInSeconds?1e3*t.httpTimeoutInSeconds:1e4,this.cookieStorage=t.legacySameSiteCookie===!1?vt:Ma,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(r=>`auth0.${this.options.clientId}.is.authenticated`)(),this.sessionCheckExpiryDays=t.sessionCheckExpiryDays||1;const s=t.useCookiesForTransactions?this.cookieStorage:Fa;var i;this.scope=Sn("openid",this.options.authorizationParams.scope,this.options.useRefreshTokens?"offline_access":""),this.transactionManager=new Ra(s,this.options.clientId,this.options.cookieDomain),this.nowProvider=this.options.nowProvider||_i,this.cacheManager=new Aa(o,o.allKeys?void 0:new Ka(o,this.options.clientId),this.nowProvider),this.domainUrl=(i=this.options.domain,/^https?:\/\//.test(i)?i:`https://${i}`),this.tokenIssuer=((r,c)=>r?r.startsWith("https://")?r:`https://${r}/`:`${c}/`)(this.options.issuer,this.domainUrl),typeof window<"u"&&window.Worker&&this.options.useRefreshTokens&&n==="memory"&&(this.worker=new $a)}_url(t){const n=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||bi)));return`${this.domainUrl}${t}&auth0Client=${n}`}_authorizeUrl(t){return this._url(`/authorize?${To(t)}`)}async _verifyIdToken(t,n,o){const s=await this.nowProvider();return(r=>{if(!r.id_token)throw new Error("ID token is required but missing");const c=(d=>{const p=d.split("."),[g,b,w]=p;if(p.length!==3||!g||!b||!w)throw new Error("ID token could not be decoded");const I=JSON.parse(vi(b)),O={__raw:d},T={};return Object.keys(I).forEach(R=>{O[R]=I[R],Na.includes(R)||(T[R]=I[R])}),{encoded:{header:g,payload:b,signature:w},header:JSON.parse(vi(g)),claims:O,user:T}})(r.id_token);if(!c.claims.iss)throw new Error("Issuer (iss) claim must be a string present in the ID token");if(c.claims.iss!==r.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected "${r.iss}", found "${c.claims.iss}"`);if(!c.user.sub)throw new Error("Subject (sub) claim must be a string present in the ID token");if(c.header.alg!=="RS256")throw new Error(`Signature algorithm of "${c.header.alg}" is not supported. Expected the ID token to be signed with "RS256".`);if(!c.claims.aud||typeof c.claims.aud!="string"&&!Array.isArray(c.claims.aud))throw new Error("Audience (aud) claim must be a string or array of strings present in the ID token");if(Array.isArray(c.claims.aud)){if(!c.claims.aud.includes(r.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but was not one of "${c.claims.aud.join(", ")}"`);if(c.claims.aud.length>1){if(!c.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(c.claims.azp!==r.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected "${r.aud}", found "${c.claims.azp}"`)}}else if(c.claims.aud!==r.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but found "${c.claims.aud}"`);if(r.nonce){if(!c.claims.nonce)throw new Error("Nonce (nonce) claim must be a string present in the ID token");if(c.claims.nonce!==r.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected "${r.nonce}", found "${c.claims.nonce}"`)}if(r.max_age&&!zt(c.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(c.claims.exp==null||!zt(c.claims.exp))throw new Error("Expiration Time (exp) claim must be a number present in the ID token");if(!zt(c.claims.iat))throw new Error("Issued At (iat) claim must be a number present in the ID token");const a=r.leeway||60,l=new Date(r.now||Date.now()),f=new Date(0);if(f.setUTCSeconds(c.claims.exp+a),l>f)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${l}) is after expiration time (${f})`);if(c.claims.nbf!=null&&zt(c.claims.nbf)){const d=new Date(0);if(d.setUTCSeconds(c.claims.nbf-a),l<d)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${l}) is before ${d}`)}if(c.claims.auth_time!=null&&zt(c.claims.auth_time)){const d=new Date(0);if(d.setUTCSeconds(parseInt(c.claims.auth_time)+r.max_age+a),l>d)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 (${l}) is after last auth at ${d}`)}if(r.organization){const d=r.organization.trim();if(d.startsWith("org_")){const p=d;if(!c.claims.org_id)throw new Error("Organization ID (org_id) claim must be a string present in the ID token");if(p!==c.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_id}"`)}else{const p=d.toLowerCase();if(!c.claims.org_name)throw new Error("Organization Name (org_name) claim must be a string present in the ID token");if(p!==c.claims.org_name)throw new Error(`Organization Name (org_name) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_name}"`)}}return c})({iss:this.tokenIssuer,aud:this.options.clientId,id_token:t,nonce:n,organization:o,leeway:this.options.leeway,max_age:(i=this.options.authorizationParams.max_age,typeof i!="string"?i:parseInt(i,10)||void 0),now:s});var i}_processOrgHint(t){t?this.cookieStorage.save(this.orgHintCookieName,t,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain})}async _prepareAuthorizeUrl(t,n,o){const s=wi(Co()),i=wi(Co()),r=Co(),c=(f=>{const d=new Uint8Array(f);return(p=>{const g={"+":"-","/":"_","=":""};return p.replace(/[+/=]/g,b=>g[b])})(window.btoa(String.fromCharCode(...Array.from(d))))})(await(async f=>await On().subtle.digest({name:"SHA-256"},new TextEncoder().encode(f)))(r)),a=((f,d,p,g,b,w,I,O)=>Object.assign(Object.assign(Object.assign({client_id:f.clientId},f.authorizationParams),p),{scope:Sn(d,p.scope),response_type:"code",response_mode:O||"query",state:g,nonce:b,redirect_uri:I||f.authorizationParams.redirect_uri,code_challenge:w,code_challenge_method:"S256"}))(this.options,this.scope,t,s,i,c,t.redirect_uri||this.options.authorizationParams.redirect_uri||o,n?.response_mode),l=this._authorizeUrl(a);return{nonce:i,code_verifier:r,scope:a.scope,audience:a.audience||"default",redirect_uri:a.redirect_uri,state:s,url:l}}async loginWithPopup(t,n){var o;if(t=t||{},!(n=n||{}).popup&&(n.popup=(c=>{const a=window.screenX+(window.innerWidth-400)/2,l=window.screenY+(window.innerHeight-600)/2;return window.open("","auth0:authorize:popup",`left=${a},top=${l},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 s=await this._prepareAuthorizeUrl(t.authorizationParams||{},{response_mode:"web_message"},window.location.origin);n.popup.location.href=s.url;const i=await(c=>new Promise((a,l)=>{let f;const d=setInterval(()=>{c.popup&&c.popup.closed&&(clearInterval(d),clearTimeout(p),window.removeEventListener("message",f,!1),l(new xo(c.popup)))},1e3),p=setTimeout(()=>{clearInterval(d),l(new ko(c.popup)),window.removeEventListener("message",f,!1)},1e3*(c.timeoutInSeconds||60));f=function(g){if(g.data&&g.data.type==="authorization_response"){if(clearTimeout(p),clearInterval(d),window.removeEventListener("message",f,!1),c.popup.close(),g.data.response.error)return l(le.fromPayload(g.data.response));a(g.data.response)}},window.addEventListener("message",f)}))(Object.assign(Object.assign({},n),{timeoutInSeconds:n.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(s.state!==i.state)throw new le("state_mismatch","Invalid state");const r=((o=t.authorizationParams)===null||o===void 0?void 0:o.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:"authorization_code",code:i.code,redirect_uri:s.redirect_uri},{nonceIn:s.nonce,organization:r})}async getUser(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.user}async getIdTokenClaims(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.claims}async loginWithRedirect(t={}){var n;const o=Ti(t),{openUrl:s,fragment:i,appState:r}=o,c=Ae(o,["openUrl","fragment","appState"]),a=((n=c.authorizationParams)===null||n===void 0?void 0:n.organization)||this.options.authorizationParams.organization,l=await this._prepareAuthorizeUrl(c.authorizationParams||{}),{url:f}=l,d=Ae(l,["url"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},d),{appState:r}),a&&{organization:a}));const p=i?`${f}#${i}`:f;s?await s(p):window.location.assign(p)}async handleRedirectCallback(t=window.location.href){const n=t.split("?").slice(1);if(n.length===0)throw new Error("There are no query params available for parsing.");const{state:o,code:s,error:i,error_description:r}=(d=>{d.indexOf("#")>-1&&(d=d.substring(0,d.indexOf("#")));const p=new URLSearchParams(d);return{state:p.get("state"),code:p.get("code")||void 0,error:p.get("error")||void 0,error_description:p.get("error_description")||void 0}})(n.join("")),c=this.transactionManager.get();if(!c)throw new le("missing_transaction","Invalid state");if(this.transactionManager.remove(),i)throw new vo(i,r||i,o,c.appState);if(!c.code_verifier||c.state&&c.state!==o)throw new le("state_mismatch","Invalid state");const a=c.organization,l=c.nonce,f=c.redirect_uri;return await this._requestToken(Object.assign({audience:c.audience,scope:c.scope,code_verifier:c.code_verifier,grant_type:"authorization_code",code:s},f?{redirect_uri:f}:{}),{nonceIn:l,organization:a}),{appState:c.appState}}async checkSession(t){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(t)}catch{}}async getTokenSilently(t={}){var n;const o=Object.assign(Object.assign({cacheMode:"on"},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Sn(this.scope,(n=t.authorizationParams)===null||n===void 0?void 0:n.scope)})}),s=await((i,r)=>{let c=So[r];return c||(c=i().finally(()=>{delete So[r],c=null}),So[r]=c),c})(()=>this._getTokenSilently(o),`${this.options.clientId}::${o.authorizationParams.audience}::${o.authorizationParams.scope}`);return t.detailedResponse?s:s?.access_token}async _getTokenSilently(t){const{cacheMode:n}=t,o=Ae(t,["cacheMode"]);if(n!=="off"){const s=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(s)return s}if(n!=="cache-only"){if(!await(async(s,i=3)=>{for(let r=0;r<i;r++)if(await s())return!0;return!1})(()=>Po.acquireLock("auth0.lock.getTokenSilently",5e3),10))throw new Kt;try{if(window.addEventListener("pagehide",this._releaseLockOnPageHide),n!=="off"){const l=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(l)return l}const s=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:i,access_token:r,oauthTokenScope:c,expires_in:a}=s;return Object.assign(Object.assign({id_token:i,access_token:r},c?{scope:c}:null),{expires_in:a})}finally{await Po.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)}}}async getTokenWithPopup(t={},n={}){var o;const s=Object.assign(Object.assign({},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Sn(this.scope,(o=t.authorizationParams)===null||o===void 0?void 0:o.scope)})});return n=Object.assign(Object.assign({},Oa),n),await this.loginWithPopup(s,n),(await this.cacheManager.get(new Re({scope:s.authorizationParams.scope,audience:s.authorizationParams.audience||"default",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return!!await this.getUser()}_buildLogoutUrl(t){t.clientId!==null?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const n=t.logoutParams||{},{federated:o}=n,s=Ae(n,["federated"]),i=o?"&federated":"";return this._url(`/v2/logout?${To(Object.assign({clientId:t.clientId},s))}`)+i}async logout(t={}){const n=Ti(t),{openUrl:o}=n,s=Ae(n,["openUrl"]);t.clientId===null?await this.cacheManager.clear():await this.cacheManager.clear(t.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 i=this._buildLogoutUrl(s);o?await o(i):o!==!1&&window.location.assign(i)}async _getTokenFromIFrame(t){const n=Object.assign(Object.assign({},t.authorizationParams),{prompt:"none"}),o=this.cookieStorage.get(this.orgHintCookieName);o&&!n.organization&&(n.organization=o);const{url:s,state:i,nonce:r,code_verifier:c,redirect_uri:a,scope:l,audience:f}=await this._prepareAuthorizeUrl(n,{response_mode:"web_message"},window.location.origin);try{if(window.crossOriginIsolated)throw new le("login_required","The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.");const d=t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,p=await((b,w,I=60)=>new Promise((O,T)=>{const R=window.document.createElement("iframe");R.setAttribute("width","0"),R.setAttribute("height","0"),R.style.display="none";const A=()=>{window.document.body.contains(R)&&(window.document.body.removeChild(R),window.removeEventListener("message",W,!1))};let W;const he=setTimeout(()=>{T(new Kt),A()},1e3*I);W=function(H){if(H.origin!=w||!H.data||H.data.type!=="authorization_response")return;const L=H.source;L&&L.close(),H.data.response.error?T(le.fromPayload(H.data.response)):O(H.data.response),clearTimeout(he),window.removeEventListener("message",W,!1),setTimeout(A,2e3)},window.addEventListener("message",W,!1),window.document.body.appendChild(R),R.setAttribute("src",b)}))(s,this.domainUrl,d);if(i!==p.state)throw new le("state_mismatch","Invalid state");const g=await this._requestToken(Object.assign(Object.assign({},t.authorizationParams),{code_verifier:c,code:p.code,grant_type:"authorization_code",redirect_uri:a,timeout:t.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:r,organization:n.organization});return Object.assign(Object.assign({},g),{scope:l,oauthTokenScope:g.scope,audience:f})}catch(d){throw d.error==="login_required"&&this.logout({openUrl:!1}),d}}async _getTokenUsingRefreshToken(t){const n=await this.cacheManager.get(new Re({scope:t.authorizationParams.scope,audience:t.authorizationParams.audience||"default",clientId:this.options.clientId}));if(!(n&&n.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw new Tn(t.authorizationParams.audience||"default",t.authorizationParams.scope)}const o=t.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,s=typeof t.timeoutInSeconds=="number"?1e3*t.timeoutInSeconds:null;try{const i=await this._requestToken(Object.assign(Object.assign(Object.assign({},t.authorizationParams),{grant_type:"refresh_token",refresh_token:n&&n.refresh_token,redirect_uri:o}),s&&{timeout:s}));return Object.assign(Object.assign({},i),{scope:t.authorizationParams.scope,oauthTokenScope:i.scope,audience:t.authorizationParams.audience||"default"})}catch(i){if((i.message.indexOf("Missing Refresh Token")>-1||i.message&&i.message.indexOf("invalid refresh token")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw i}}async _saveEntryInCache(t){const{id_token:n,decodedToken:o}=t,s=Ae(t,["id_token","decodedToken"]);this.userCache.set("@@user@@",{id_token:n,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(s)}async _getIdTokenFromCache(){const t=this.options.authorizationParams.audience||"default",n=await this.cacheManager.getIdToken(new Re({clientId:this.options.clientId,audience:t,scope:this.scope})),o=this.userCache.get("@@user@@");return n&&n.id_token===o?.id_token?o:(this.userCache.set("@@user@@",n),n)}async _getEntryFromCache({scope:t,audience:n,clientId:o}){const s=await this.cacheManager.get(new Re({scope:t,audience:n,clientId:o}),60);if(s&&s.access_token){const{access_token:i,oauthTokenScope:r,expires_in:c}=s,a=await this._getIdTokenFromCache();return a&&Object.assign(Object.assign({id_token:a.id_token,access_token:i},r?{scope:r}:null),{expires_in:c})}}async _requestToken(t,n){const{nonceIn:o,organization:s}=n||{},i=await Ea(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},t),this.worker),r=await this._verifyIdToken(i.id_token,o,s);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},i),{decodedToken:r,scope:t.scope,audience:t.audience||"default"}),i.scope?{oauthTokenScope:i.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgHint(s||r.claims.org_id),Object.assign(Object.assign({},i),{decodedToken:r})}}function Ut(e){e?.redirect_uri&&(console.warn("Using `redirect_uri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version"),e.authorizationParams=e.authorizationParams||{},e.authorizationParams.redirect_uri=e.redirect_uri,delete e.redirect_uri)}const rt=()=>{console.error("Please ensure Auth0's Vue plugin is correctly installed.")},Da={isLoading:Q(!1),isAuthenticated:Q(!1),user:Q(void 0),idTokenClaims:Q(void 0),error:Q(null),loginWithPopup:rt,loginWithRedirect:rt,getAccessTokenSilently:rt,getAccessTokenWithPopup:rt,logout:rt,checkSession:rt,handleRedirectCallback:rt},Wa=Q(Da);class Ha{constructor(t,n){var o,s;this.clientOptions=t,this.pluginOptions=n,this.isLoading=Q(!0),this.isAuthenticated=Q(!1),this.user=Q({}),this.idTokenClaims=Q(),this.error=Q(null),o=this,s=["constructor"],Object.getOwnPropertyNames(Object.getPrototypeOf(o)).filter(i=>!s.includes(i)).forEach(i=>o[i]=o[i].bind(o))}install(t){this._client=new Ua(Object.assign(Object.assign({},this.clientOptions),{auth0Client:{name:"auth0-vue",version:"2.3.1"}})),this.__checkSession(t.config.globalProperties.$router),t.config.globalProperties.$auth0=this,t.provide(gi,this),Wa.value=this}async loginWithRedirect(t){return Ut(t),this._client.loginWithRedirect(t)}async loginWithPopup(t,n){return Ut(t),this.__proxy(()=>this._client.loginWithPopup(t,n))}async logout(t){return t?.openUrl||t?.openUrl===!1?this.__proxy(()=>this._client.logout(t)):this._client.logout(t)}async getAccessTokenSilently(t={}){return Ut(t),this.__proxy(()=>this._client.getTokenSilently(t))}async getAccessTokenWithPopup(t,n){return Ut(t),this.__proxy(()=>this._client.getTokenWithPopup(t,n))}async checkSession(t){return this.__proxy(()=>this._client.checkSession(t))}async handleRedirectCallback(t){return this.__proxy(()=>this._client.handleRedirectCallback(t))}async __checkSession(t){var n,o,s;const i=window.location.search;try{if((i.includes("code=")||i.includes("error="))&&i.includes("state=")&&!(!((n=this.pluginOptions)===null||n===void 0)&&n.skipRedirectCallback)){const r=await this.handleRedirectCallback(),c=r?.appState,a=(o=c?.target)!==null&&o!==void 0?o:"/";return window.history.replaceState({},"","/"),t&&t.push(a),r}await this.checkSession()}catch{window.history.replaceState({},"","/"),t&&t.push(((s=this.pluginOptions)===null||s===void 0?void 0:s.errorPath)||"/")}}async __refreshState(){this.isAuthenticated.value=await this._client.isAuthenticated(),this.user.value=await this._client.getUser(),this.idTokenClaims.value=await this._client.getIdTokenClaims(),this.isLoading.value=!1}async __proxy(t,n=!0){let o;try{o=await t(),this.error.value=null}catch(s){throw this.error.value=s,s}finally{n&&await this.__refreshState()}return o}}function Oi(e,t){return Ut(e),new Ha(e,t)}function Si(){return Ie(gi)}const Zl="",Vl="",Bl="",Xl="";var Eo=(e=>(e[e.Pending=0]="Pending",e[e.Approved=1]="Approved",e[e.Rejected=2]="Rejected",e))(Eo||{});function Pi(e){const{created_at:t,...n}=e;return{...n,status:Number(e.status),createdAt:new Date(t)}}const Pn=Ca("store",()=>{const e=Ie("postId"),t=Ie("comments"),n=Q(!!t?.length),o=Q(0),s=Q(""),i=Q(f(t||[])),r=Q(0),c=Ie("ApiBaseUrl"),a=Q(!1),l=Q(!1);function f(g){const b={},w=[];return g.forEach(I=>{!I.ancestor_id||Number(I.ancestor_id)===0?b[I.id]=Pi(I):w.push(I)}),w.forEach(I=>{if(I.ancestor_id in b){const O=b[I.ancestor_id];O.children=[...O.children||[],Pi(I)]}}),b}async function d(){s.value="",a.value=!0;const g=new URLSearchParams;g.append("postId",e),g.append("start",o.value.toString());const b=await fetch(`${c}/api/comments?${g}`);if(!b.ok){s.value="Load comments failed. "+b.statusText,n.value=!0,a.value=!1;return}const w=await b.json();if(w.code!==0){s.value="Load comments failed. "+w.message,n.value=!0,a.value=!1;return}i.value=f(w.data||[]);const I=w.data?.length||0;return l.value=I>=20,r.value+=I,n.value=!0,a.value=!1,w}function p(g,b,w,I,O){const{sub:T="",name:R="",picture:A="",email:W="",nickname:he=""}=w,H={id:g,postId:e,content:b,createdAt:new Date,user:{avatar:A,email:W,name:he||R},userId:T,status:Eo.Pending,isNew:!0};if(I||O){H.ancestorId=I,H.parentId=O;const L=i.value[I];if(I===O)L.children||(L.children=[]),L.children.unshift(H);else{const K=L.children.findIndex(oe=>Number(oe.id)===O);L.children.splice(K+1,0,H)}}else H.ancestorId=0,H.parentId=0,i.value={[g]:H,...i.value};r.value++}return{isLoaded:n,message:s,postId:e,comments:i,total:r,start:o,hasMore:l,loadingMore:a,loadComments:d,addComment:p}}),Za=["onSubmit"],Va={class:"ac-form-control border border-neutral bg-base-200 rounded-lg"},Ba=B("label",{class:"sr-only",for:"ac-comment"},"Your comment",-1),Xa=["onKeydown"],Ja={class:"p-2 rounded-b-lg bg-base-300 flex items-center"},Ya={key:0,class:"text-xs text-neutral-400/40"},qa={key:1,class:"ac-alert ac-alert-error mx-4 py-1"},Ga=["disabled"],Qa={key:0,class:"ac-loading ac-loading-spinner"},jo=gn({...{name:"CommentForm"},props:{noVersion:{type:Boolean},parentId:{},ancestorId:{}},emits:["close"],setup(e,{emit:t}){const n=e,o=Si(),s=Pn(),i=Ie("ApiBaseUrl"),r=Ie("Auth0Domain"),c="0.4.0",a=Q(),l=Q(!1),f=Q(""),d=Q("");async function p(I){if(!o.user.value)return g();if(!I.target.matches(":invalid")){l.value=!0,d.value="";try{const O=await o.getAccessTokenSilently(),T=await fetch(i+"/api/comment",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${O}`},body:JSON.stringify({comment:f.value,postId:s.postId,domain:r,ancestorId:n.ancestorId?Number(n.ancestorId):void 0,parentId:n.parentId?Number(n.parentId):void 0})}),R=await T.json();if(!T.ok||R.message)throw new Error("Failed to post comment: "+(R.message||"Unknown"));n.ancestorId||n.parentId?s.addComment(R.data,f.value,o.user.value,Number(n.ancestorId),Number(n.parentId)):s.addComment(R.data,f.value,o.user.value),f.value=""}catch(O){d.value=O.message||String(O)}l.value=!1,t("close")}}function g(){o.loginWithPopup()}function b(I){const O=navigator.userAgent.match(/Macintosh/);(O&&I.metaKey||!O&&I.ctrlKey)&&p(I)}function w(){t("close")}return Ts(()=>{a.value?.focus()}),(I,O)=>(D(),G("form",{class:"mb-6",onSubmit:da(p,["prevent"])},[B("div",Va,[Ba,Jr(B("textarea",{class:"ac-textarea ac-textarea-bordered bg-base-200 rounded-b-none focus:outline-none",id:"ac-comment",ref_key:"textarea",ref:a,rows:"3",placeholder:"Write a comment...",required:"",onKeydown:[li(b,["enter"]),li(w,["esc"])],"onUpdate:modelValue":O[0]||(O[0]=T=>f.value=T)},null,40,Xa),[[la,f.value]]),B("div",Ja,[I.noVersion?ge("",!0):(D(),G("div",Ya,"v"+ve(X(c)),1)),d.value?(D(),G("div",qa,ve(d.value),1)):ge("",!0),B("button",{class:"ac-btn ac-btn-primary ac-btn-sm ml-auto",disabled:l.value},[l.value?(D(),G("span",Qa)):ge("",!0),xn("Post comment")],8,Ga)])])],40,Za))}});var el={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function Ei(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function Dt(e){return(e+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ao(e,t){var n,o,s,i,r,c=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,a=[],l="",f=t||{},d=0;function p(b){var w=el[b[1]||""],I=a[a.length-1]==b;return w?w[1]?(I?a.pop():a.push(b),w[0|I]):w[0]:b}function g(){for(var b="";a.length;)b+=p(a[a.length-1]);return b}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(b,w,I){return f[w.toLowerCase()]=I,""}).replace(/^\n+|\n+$/g,"");s=c.exec(e);)o=e.substring(d,s.index),d=c.lastIndex,n=s[0],o.match(/[^\\](\\\\)*\\$/)||((r=s[3]||s[4])?n='<pre class="code '+(s[4]?"poetry":s[2].toLowerCase())+'"><code'+(s[2]?' class="language-'+s[2].toLowerCase()+'"':"")+">"+Ei(Dt(r).replace(/^\n+|\n+$/g,""))+"</code></pre>":(r=s[6])?(r.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),i=Ao(Ei(s[5].replace(/^\s*[>*+.-]/gm,""))),r==">"?r="blockquote":(r=r.match(/\./)?"ol":"ul",i=i.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+r+">"+i+"</"+r+">"):s[8]?n='<img src="'+Dt(s[8])+'" alt="'+Dt(s[7])+'">':s[10]?(l=l.replace("<a>",'<a href="'+Dt(s[11]||f[o.toLowerCase()])+'">'),n=g()+"</a>"):s[9]?n="<a>":s[12]||s[14]?n="<"+(r="h"+(s[14]?s[14].length:s[13]>"="?1:2))+">"+Ao(s[12]||s[15],f)+"</"+r+">":s[16]?n="<code>"+Dt(s[16])+"</code>":(s[17]||s[1])&&(n=p(s[17]||"--"))),l+=o,l+=n;return(l+e.substring(d)+g()).replace(/^\n+|\n+$/g,"")}function tl(e){let t=0;for(let o=0;o<e.length;o++)t=e.charCodeAt(o)+((t<<5)-t);let n="#";for(let o=0;o<3;o++){const s=t>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n}function En(e){return e<10?`0${e}`:`${e}`}function ji(e){const t=e.getFullYear(),n=e.getMonth()+1,o=e.getDate();return`${t}-${En(n)}-${En(o)}`}function Ai(e){const t=new Date,n=ji(e);if(ji(t)===n){const o=e.getHours(),s=e.getMinutes();return`${En(o)}:${En(s)}`}return n}const nl=["id"],ol={class:"p-6 text-base bg-base-200 rounded-lg dark:bg-gray-900"},sl={class:"flex justify-between items-center mb-2"},il={class:"flex items-center text-sm text-base-content dark:text-white"},rl={class:"avatar mr-2"},cl={key:0,class:"w-6 h-6"},al=["src","alt"],ll={class:"text-neutral-content mix-blend-color-dodge uppercase font-bold leading-6"},ul={key:0,class:"bi bi-patch-check-fill text-success ml-2"},fl=["datetime","title"],dl=["href"],hl=[B("i",{class:"bi bi-reply-fill h-4 w-4"},null,-1)],pl=["innerHTML"],ml={key:0,class:"italic mt-4 text-gray-500 mb-0 text-sm dark:text-gray-400"},gl=gn({...{name:"CommentItem"},props:{comment:{},isFirstLevel:{type:Boolean},ancestorId:{}},setup(e){const t=e,n=Pn();function o(s){return t.ancestorId&&n.comments[t.ancestorId]?.children?.find(c=>Number(c.id)===Number(s))?.user?.name||""}return(s,i)=>{const r=cc("comment-item",!0);return D(),G("div",{class:Qt(["comment-item rounded-lg my-4",{"animated flash":s.comment.isNew}]),id:"awcm-"+s.comment.id,onAnimationend:i[2]||(i[2]=c=>s.comment.isNew=!1)},[B("article",ol,[B("header",sl,[B("div",il,[B("div",rl,[s.comment.user.avatar?(D(),G("div",cl,[B("img",{class:"rounded-full max-w-full max-h-full",src:s.comment.user.avatar,alt:s.comment.user.name},null,8,al)])):(D(),G("div",{key:1,class:"avatar-char rounded-full w-6 h-6 text-center",style:Gt({"background-color":X(tl)(s.comment.user.name||"Anonymous")})},[B("span",ll,ve((s.comment.user.name||"Anonymous").substring(0,1)),1)],4))]),xn(ve(s.comment.user.name),1),s.comment.isAdmin?(D(),G("i",ul)):ge("",!0),B("time",{class:"text-xs text-gray-600 ml-4 dark:text-gray-400",pubdate:"",datetime:s.comment.createdAt,title:X(Ai)(s.comment.createdAt)},ve(X(Ai)(s.comment.createdAt)),9,fl),!s.isFirstLevel&&s.comment.parent_id!==s.comment.ancestor_id?(D(),G("a",{key:1,class:"text-xs link link-hover ml-4",href:"#awcm-"+s.comment.parent_id},"reply to "+ve(o(s.comment.parent_id))+"(#"+ve(s.comment.parent_id)+")",9,dl)):ge("",!0)]),B("button",{class:"ac-btn ac-btn-sm ac-btn-circle border-0",type:"button",onClick:i[0]||(i[0]=c=>s.comment.isReplying=!s.comment.isReplying)},hl)]),B("p",{class:"text-gray-500 dark:text-gray-400",innerHTML:X(Ao)(s.comment.content)},null,8,pl),s.comment.status===X(Eo).Pending?(D(),G("p",ml,"comments normally got approved within 24 hours")):ge("",!0)]),s.comment.isReplying&&s.isFirstLevel?(D(),Lt(jo,{key:0,class:"mt-3 ml-12","no-version":"","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id),onClose:i[1]||(i[1]=c=>s.comment.isReplying=!1)},null,8,["ancestor-id","parent-id"])):ge("",!0),s.comment.children?.length?(D(!0),G(ye,{key:1},Es(s.comment.children,c=>(D(),Lt(r,{class:"ml-12",key:c.id,comment:c,"ancestor-id":Number(s.ancestorId),"is-first-level":!1},null,8,["comment","ancestor-id"]))),128)):ge("",!0),s.comment.isReplying&&!s.isFirstLevel?(D(),Lt(jo,{key:2,class:"mt-3 ml-12","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id)},null,8,["ancestor-id","parent-id"])):ge("",!0)],42,nl)}}}),bl={key:0,class:"comments-wrapper"},_l=["disabled"],yl={key:0,class:"ac-loading ac-loading-xs ac-loading-spinner"},wl={key:1,class:"pt-8 text-center"},vl=[B("span",{class:"ac-loading ac-loading-spinner"},null,-1)],kl=gn({...{name:"CommentSections"},setup(e){const t=Pn();t.loadComments();function n(){t.start+=20,t.loadComments()}return(o,s)=>X(t).isLoaded?(D(),G("div",bl,[(D(!0),G(ye,null,Es(Object.values(X(t).comments),i=>(D(),Lt(gl,{key:i.id,comment:i,"ancestor-id":Number(i.id),"is-first-level":""},null,8,["comment","ancestor-id"]))),128)),X(t).hasMore?(D(),G("button",{key:0,class:"ac-btn ac-btn-neutral ac-btn-sm ac-btn-block",type:"button",onClick:n,disabled:X(t).loadingMore},[X(t).loadingMore?(D(),G("span",yl)):ge("",!0),xn("Load More")],8,_l)):ge("",!0)])):(D(),G("div",wl,vl))}}),xl={class:"awesome-comment"},Il={key:0,class:"ac-alert ac-alert-error mb-4"},Cl={class:"flex justify-between items-center py-2"},Tl={class:"text-lg font-bold text-base-content my-0"},Ol={key:0,class:"ac-loading ac-loading-spinner"},Sl={key:1,class:"ac-dropdown ac-dropdown-end"},Pl={key:0,class:"ac-avatar flex",tabindex:"0"},El={class:"w-6 h-6 rounded-full"},jl=["alt","src"],Al={key:1,class:"ac-btn ac-btn-ghost",tabindex:"0"},Rl={class:"ac-dropdown-content z-10 ac-menu p-2 shadow bg-base-100 rounded-box w-52",tabindex:"0"},Nl={key:0,class:"border-b border-neutral pb-2 mb-2 pointer-events-none"},Ll={class:"text-base-content"},Ml=["disabled"],Fl=["disabled"],$l=gn({__name:"App",setup(e){const t=Pn(),{isAuthenticated:n,isLoading:o,user:s,loginWithPopup:i,logout:r}=Si(),c=ho(()=>{const f=t.total>20||t.total===20&&t.hasMore?"20+":t.total,d=new CustomEvent("AwesomeComment:total",{bubbles:!0,cancelable:!0,detail:f});return document.body.dispatchEvent(d),f});function a(){i()}function l(){r({openUrl:!1})}return(f,d)=>(D(),G("div",xl,[X(t).message?(D(),G("div",Il,[B("p",null,ve(X(t).message),1)])):ge("",!0),B("header",Cl,[B("h2",Tl,"Discussion ("+ve(c.value)+")",1),X(o)?(D(),G("span",Ol)):(D(),G("div",Sl,[X(n)&&X(s)?(D(),G(ye,{key:0},[X(s).picture?(D(),G("label",Pl,[B("div",El,[B("img",{class:"w-full h-full block",alt:X(s).name||X(s).email,src:X(s).picture},null,8,jl)])])):(D(),G("label",Al,ve(X(s).email),1)),B("ul",Rl,[X(s).picture?(D(),G("li",Nl,[B("span",Ll,ve(X(s).email),1)])):ge("",!0),B("li",null,[B("button",{class:"border-0 bg-base-100",type:"button",disabled:X(o),onClick:l},"Logout",8,Ml)])])],64)):(D(),G("button",{key:1,class:"ac-btn ac-btn-secondary ac-btn-xs",type:"button",disabled:X(o),onClick:a},"Login",8,Fl))]))]),Te(jo),Te(kl)]))}}),Ri=[];let Ni=null;function Kl(e,t){const n=ga($l),o=ya(),s=Ni||Oi({domain:e,clientId:t,authorizationParams:{redirect_uri:location.origin}});return n.use(s),n.use(o),n}return{postId:"",apiUrl:"",domain:"",clientId:"",init(e,t,n,o,s){t??=this.postId,n??=this.apiUrl,o??=this.domain,s??=this.clientId;const i=Kl(o,s);i.provide("ApiBaseUrl",n),i.provide("postId",t),i.provide("Auth0Domain",o),i.provide("comments",Ri),i.mount(e)},async preload(e,t,n,o){this.postId=e,this.apiUrl=t,this.domain=n,this.clientId=o,Ni=Oi({domain:n,clientId:o,authorizationParams:{redirect_uri:window.location.origin}});const s=await fetch(`${t}/api/comments?postId=${e}`);s.ok||console.log("[Awesome comment] Failed to preload comments.");const i=await s.json();i.data&&Ri.push(...i.data)}}}();
8
+ `)})(),t.cache&&t.cacheLocation&&console.warn("Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`."),t.cache)o=t.cache;else{if(n=t.cacheLocation||"memory",!Ci(n))throw new Error(`Invalid cache location "${n}"`);o=Ci(n)()}this.httpTimeoutMs=t.httpTimeoutInSeconds?1e3*t.httpTimeoutInSeconds:1e4,this.cookieStorage=t.legacySameSiteCookie===!1?vt:Ma,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(r=>`auth0.${this.options.clientId}.is.authenticated`)(),this.sessionCheckExpiryDays=t.sessionCheckExpiryDays||1;const s=t.useCookiesForTransactions?this.cookieStorage:Fa;var i;this.scope=Sn("openid",this.options.authorizationParams.scope,this.options.useRefreshTokens?"offline_access":""),this.transactionManager=new Ra(s,this.options.clientId,this.options.cookieDomain),this.nowProvider=this.options.nowProvider||_i,this.cacheManager=new Aa(o,o.allKeys?void 0:new Ka(o,this.options.clientId),this.nowProvider),this.domainUrl=(i=this.options.domain,/^https?:\/\//.test(i)?i:`https://${i}`),this.tokenIssuer=((r,c)=>r?r.startsWith("https://")?r:`https://${r}/`:`${c}/`)(this.options.issuer,this.domainUrl),typeof window<"u"&&window.Worker&&this.options.useRefreshTokens&&n==="memory"&&(this.worker=new $a)}_url(t){const n=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||bi)));return`${this.domainUrl}${t}&auth0Client=${n}`}_authorizeUrl(t){return this._url(`/authorize?${To(t)}`)}async _verifyIdToken(t,n,o){const s=await this.nowProvider();return(r=>{if(!r.id_token)throw new Error("ID token is required but missing");const c=(d=>{const p=d.split("."),[g,b,w]=p;if(p.length!==3||!g||!b||!w)throw new Error("ID token could not be decoded");const I=JSON.parse(vi(b)),O={__raw:d},T={};return Object.keys(I).forEach(R=>{O[R]=I[R],Na.includes(R)||(T[R]=I[R])}),{encoded:{header:g,payload:b,signature:w},header:JSON.parse(vi(g)),claims:O,user:T}})(r.id_token);if(!c.claims.iss)throw new Error("Issuer (iss) claim must be a string present in the ID token");if(c.claims.iss!==r.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected "${r.iss}", found "${c.claims.iss}"`);if(!c.user.sub)throw new Error("Subject (sub) claim must be a string present in the ID token");if(c.header.alg!=="RS256")throw new Error(`Signature algorithm of "${c.header.alg}" is not supported. Expected the ID token to be signed with "RS256".`);if(!c.claims.aud||typeof c.claims.aud!="string"&&!Array.isArray(c.claims.aud))throw new Error("Audience (aud) claim must be a string or array of strings present in the ID token");if(Array.isArray(c.claims.aud)){if(!c.claims.aud.includes(r.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but was not one of "${c.claims.aud.join(", ")}"`);if(c.claims.aud.length>1){if(!c.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(c.claims.azp!==r.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected "${r.aud}", found "${c.claims.azp}"`)}}else if(c.claims.aud!==r.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but found "${c.claims.aud}"`);if(r.nonce){if(!c.claims.nonce)throw new Error("Nonce (nonce) claim must be a string present in the ID token");if(c.claims.nonce!==r.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected "${r.nonce}", found "${c.claims.nonce}"`)}if(r.max_age&&!zt(c.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(c.claims.exp==null||!zt(c.claims.exp))throw new Error("Expiration Time (exp) claim must be a number present in the ID token");if(!zt(c.claims.iat))throw new Error("Issued At (iat) claim must be a number present in the ID token");const a=r.leeway||60,l=new Date(r.now||Date.now()),f=new Date(0);if(f.setUTCSeconds(c.claims.exp+a),l>f)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${l}) is after expiration time (${f})`);if(c.claims.nbf!=null&&zt(c.claims.nbf)){const d=new Date(0);if(d.setUTCSeconds(c.claims.nbf-a),l<d)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${l}) is before ${d}`)}if(c.claims.auth_time!=null&&zt(c.claims.auth_time)){const d=new Date(0);if(d.setUTCSeconds(parseInt(c.claims.auth_time)+r.max_age+a),l>d)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 (${l}) is after last auth at ${d}`)}if(r.organization){const d=r.organization.trim();if(d.startsWith("org_")){const p=d;if(!c.claims.org_id)throw new Error("Organization ID (org_id) claim must be a string present in the ID token");if(p!==c.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_id}"`)}else{const p=d.toLowerCase();if(!c.claims.org_name)throw new Error("Organization Name (org_name) claim must be a string present in the ID token");if(p!==c.claims.org_name)throw new Error(`Organization Name (org_name) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_name}"`)}}return c})({iss:this.tokenIssuer,aud:this.options.clientId,id_token:t,nonce:n,organization:o,leeway:this.options.leeway,max_age:(i=this.options.authorizationParams.max_age,typeof i!="string"?i:parseInt(i,10)||void 0),now:s});var i}_processOrgHint(t){t?this.cookieStorage.save(this.orgHintCookieName,t,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain})}async _prepareAuthorizeUrl(t,n,o){const s=wi(Co()),i=wi(Co()),r=Co(),c=(f=>{const d=new Uint8Array(f);return(p=>{const g={"+":"-","/":"_","=":""};return p.replace(/[+/=]/g,b=>g[b])})(window.btoa(String.fromCharCode(...Array.from(d))))})(await(async f=>await On().subtle.digest({name:"SHA-256"},new TextEncoder().encode(f)))(r)),a=((f,d,p,g,b,w,I,O)=>Object.assign(Object.assign(Object.assign({client_id:f.clientId},f.authorizationParams),p),{scope:Sn(d,p.scope),response_type:"code",response_mode:O||"query",state:g,nonce:b,redirect_uri:I||f.authorizationParams.redirect_uri,code_challenge:w,code_challenge_method:"S256"}))(this.options,this.scope,t,s,i,c,t.redirect_uri||this.options.authorizationParams.redirect_uri||o,n?.response_mode),l=this._authorizeUrl(a);return{nonce:i,code_verifier:r,scope:a.scope,audience:a.audience||"default",redirect_uri:a.redirect_uri,state:s,url:l}}async loginWithPopup(t,n){var o;if(t=t||{},!(n=n||{}).popup&&(n.popup=(c=>{const a=window.screenX+(window.innerWidth-400)/2,l=window.screenY+(window.innerHeight-600)/2;return window.open("","auth0:authorize:popup",`left=${a},top=${l},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 s=await this._prepareAuthorizeUrl(t.authorizationParams||{},{response_mode:"web_message"},window.location.origin);n.popup.location.href=s.url;const i=await(c=>new Promise((a,l)=>{let f;const d=setInterval(()=>{c.popup&&c.popup.closed&&(clearInterval(d),clearTimeout(p),window.removeEventListener("message",f,!1),l(new xo(c.popup)))},1e3),p=setTimeout(()=>{clearInterval(d),l(new ko(c.popup)),window.removeEventListener("message",f,!1)},1e3*(c.timeoutInSeconds||60));f=function(g){if(g.data&&g.data.type==="authorization_response"){if(clearTimeout(p),clearInterval(d),window.removeEventListener("message",f,!1),c.popup.close(),g.data.response.error)return l(le.fromPayload(g.data.response));a(g.data.response)}},window.addEventListener("message",f)}))(Object.assign(Object.assign({},n),{timeoutInSeconds:n.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(s.state!==i.state)throw new le("state_mismatch","Invalid state");const r=((o=t.authorizationParams)===null||o===void 0?void 0:o.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:"authorization_code",code:i.code,redirect_uri:s.redirect_uri},{nonceIn:s.nonce,organization:r})}async getUser(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.user}async getIdTokenClaims(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.claims}async loginWithRedirect(t={}){var n;const o=Ti(t),{openUrl:s,fragment:i,appState:r}=o,c=Ae(o,["openUrl","fragment","appState"]),a=((n=c.authorizationParams)===null||n===void 0?void 0:n.organization)||this.options.authorizationParams.organization,l=await this._prepareAuthorizeUrl(c.authorizationParams||{}),{url:f}=l,d=Ae(l,["url"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},d),{appState:r}),a&&{organization:a}));const p=i?`${f}#${i}`:f;s?await s(p):window.location.assign(p)}async handleRedirectCallback(t=window.location.href){const n=t.split("?").slice(1);if(n.length===0)throw new Error("There are no query params available for parsing.");const{state:o,code:s,error:i,error_description:r}=(d=>{d.indexOf("#")>-1&&(d=d.substring(0,d.indexOf("#")));const p=new URLSearchParams(d);return{state:p.get("state"),code:p.get("code")||void 0,error:p.get("error")||void 0,error_description:p.get("error_description")||void 0}})(n.join("")),c=this.transactionManager.get();if(!c)throw new le("missing_transaction","Invalid state");if(this.transactionManager.remove(),i)throw new vo(i,r||i,o,c.appState);if(!c.code_verifier||c.state&&c.state!==o)throw new le("state_mismatch","Invalid state");const a=c.organization,l=c.nonce,f=c.redirect_uri;return await this._requestToken(Object.assign({audience:c.audience,scope:c.scope,code_verifier:c.code_verifier,grant_type:"authorization_code",code:s},f?{redirect_uri:f}:{}),{nonceIn:l,organization:a}),{appState:c.appState}}async checkSession(t){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(t)}catch{}}async getTokenSilently(t={}){var n;const o=Object.assign(Object.assign({cacheMode:"on"},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Sn(this.scope,(n=t.authorizationParams)===null||n===void 0?void 0:n.scope)})}),s=await((i,r)=>{let c=So[r];return c||(c=i().finally(()=>{delete So[r],c=null}),So[r]=c),c})(()=>this._getTokenSilently(o),`${this.options.clientId}::${o.authorizationParams.audience}::${o.authorizationParams.scope}`);return t.detailedResponse?s:s?.access_token}async _getTokenSilently(t){const{cacheMode:n}=t,o=Ae(t,["cacheMode"]);if(n!=="off"){const s=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(s)return s}if(n!=="cache-only"){if(!await(async(s,i=3)=>{for(let r=0;r<i;r++)if(await s())return!0;return!1})(()=>Po.acquireLock("auth0.lock.getTokenSilently",5e3),10))throw new Kt;try{if(window.addEventListener("pagehide",this._releaseLockOnPageHide),n!=="off"){const l=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(l)return l}const s=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:i,access_token:r,oauthTokenScope:c,expires_in:a}=s;return Object.assign(Object.assign({id_token:i,access_token:r},c?{scope:c}:null),{expires_in:a})}finally{await Po.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)}}}async getTokenWithPopup(t={},n={}){var o;const s=Object.assign(Object.assign({},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Sn(this.scope,(o=t.authorizationParams)===null||o===void 0?void 0:o.scope)})});return n=Object.assign(Object.assign({},Oa),n),await this.loginWithPopup(s,n),(await this.cacheManager.get(new Re({scope:s.authorizationParams.scope,audience:s.authorizationParams.audience||"default",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return!!await this.getUser()}_buildLogoutUrl(t){t.clientId!==null?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const n=t.logoutParams||{},{federated:o}=n,s=Ae(n,["federated"]),i=o?"&federated":"";return this._url(`/v2/logout?${To(Object.assign({clientId:t.clientId},s))}`)+i}async logout(t={}){const n=Ti(t),{openUrl:o}=n,s=Ae(n,["openUrl"]);t.clientId===null?await this.cacheManager.clear():await this.cacheManager.clear(t.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 i=this._buildLogoutUrl(s);o?await o(i):o!==!1&&window.location.assign(i)}async _getTokenFromIFrame(t){const n=Object.assign(Object.assign({},t.authorizationParams),{prompt:"none"}),o=this.cookieStorage.get(this.orgHintCookieName);o&&!n.organization&&(n.organization=o);const{url:s,state:i,nonce:r,code_verifier:c,redirect_uri:a,scope:l,audience:f}=await this._prepareAuthorizeUrl(n,{response_mode:"web_message"},window.location.origin);try{if(window.crossOriginIsolated)throw new le("login_required","The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.");const d=t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,p=await((b,w,I=60)=>new Promise((O,T)=>{const R=window.document.createElement("iframe");R.setAttribute("width","0"),R.setAttribute("height","0"),R.style.display="none";const A=()=>{window.document.body.contains(R)&&(window.document.body.removeChild(R),window.removeEventListener("message",W,!1))};let W;const he=setTimeout(()=>{T(new Kt),A()},1e3*I);W=function(H){if(H.origin!=w||!H.data||H.data.type!=="authorization_response")return;const L=H.source;L&&L.close(),H.data.response.error?T(le.fromPayload(H.data.response)):O(H.data.response),clearTimeout(he),window.removeEventListener("message",W,!1),setTimeout(A,2e3)},window.addEventListener("message",W,!1),window.document.body.appendChild(R),R.setAttribute("src",b)}))(s,this.domainUrl,d);if(i!==p.state)throw new le("state_mismatch","Invalid state");const g=await this._requestToken(Object.assign(Object.assign({},t.authorizationParams),{code_verifier:c,code:p.code,grant_type:"authorization_code",redirect_uri:a,timeout:t.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:r,organization:n.organization});return Object.assign(Object.assign({},g),{scope:l,oauthTokenScope:g.scope,audience:f})}catch(d){throw d.error==="login_required"&&this.logout({openUrl:!1}),d}}async _getTokenUsingRefreshToken(t){const n=await this.cacheManager.get(new Re({scope:t.authorizationParams.scope,audience:t.authorizationParams.audience||"default",clientId:this.options.clientId}));if(!(n&&n.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw new Tn(t.authorizationParams.audience||"default",t.authorizationParams.scope)}const o=t.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,s=typeof t.timeoutInSeconds=="number"?1e3*t.timeoutInSeconds:null;try{const i=await this._requestToken(Object.assign(Object.assign(Object.assign({},t.authorizationParams),{grant_type:"refresh_token",refresh_token:n&&n.refresh_token,redirect_uri:o}),s&&{timeout:s}));return Object.assign(Object.assign({},i),{scope:t.authorizationParams.scope,oauthTokenScope:i.scope,audience:t.authorizationParams.audience||"default"})}catch(i){if((i.message.indexOf("Missing Refresh Token")>-1||i.message&&i.message.indexOf("invalid refresh token")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw i}}async _saveEntryInCache(t){const{id_token:n,decodedToken:o}=t,s=Ae(t,["id_token","decodedToken"]);this.userCache.set("@@user@@",{id_token:n,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(s)}async _getIdTokenFromCache(){const t=this.options.authorizationParams.audience||"default",n=await this.cacheManager.getIdToken(new Re({clientId:this.options.clientId,audience:t,scope:this.scope})),o=this.userCache.get("@@user@@");return n&&n.id_token===o?.id_token?o:(this.userCache.set("@@user@@",n),n)}async _getEntryFromCache({scope:t,audience:n,clientId:o}){const s=await this.cacheManager.get(new Re({scope:t,audience:n,clientId:o}),60);if(s&&s.access_token){const{access_token:i,oauthTokenScope:r,expires_in:c}=s,a=await this._getIdTokenFromCache();return a&&Object.assign(Object.assign({id_token:a.id_token,access_token:i},r?{scope:r}:null),{expires_in:c})}}async _requestToken(t,n){const{nonceIn:o,organization:s}=n||{},i=await Ea(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},t),this.worker),r=await this._verifyIdToken(i.id_token,o,s);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},i),{decodedToken:r,scope:t.scope,audience:t.audience||"default"}),i.scope?{oauthTokenScope:i.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgHint(s||r.claims.org_id),Object.assign(Object.assign({},i),{decodedToken:r})}}function Ut(e){e?.redirect_uri&&(console.warn("Using `redirect_uri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version"),e.authorizationParams=e.authorizationParams||{},e.authorizationParams.redirect_uri=e.redirect_uri,delete e.redirect_uri)}const rt=()=>{console.error("Please ensure Auth0's Vue plugin is correctly installed.")},Da={isLoading:Q(!1),isAuthenticated:Q(!1),user:Q(void 0),idTokenClaims:Q(void 0),error:Q(null),loginWithPopup:rt,loginWithRedirect:rt,getAccessTokenSilently:rt,getAccessTokenWithPopup:rt,logout:rt,checkSession:rt,handleRedirectCallback:rt},Wa=Q(Da);class Ha{constructor(t,n){var o,s;this.clientOptions=t,this.pluginOptions=n,this.isLoading=Q(!0),this.isAuthenticated=Q(!1),this.user=Q({}),this.idTokenClaims=Q(),this.error=Q(null),o=this,s=["constructor"],Object.getOwnPropertyNames(Object.getPrototypeOf(o)).filter(i=>!s.includes(i)).forEach(i=>o[i]=o[i].bind(o))}install(t){this._client=new Ua(Object.assign(Object.assign({},this.clientOptions),{auth0Client:{name:"auth0-vue",version:"2.3.1"}})),this.__checkSession(t.config.globalProperties.$router),t.config.globalProperties.$auth0=this,t.provide(gi,this),Wa.value=this}async loginWithRedirect(t){return Ut(t),this._client.loginWithRedirect(t)}async loginWithPopup(t,n){return Ut(t),this.__proxy(()=>this._client.loginWithPopup(t,n))}async logout(t){return t?.openUrl||t?.openUrl===!1?this.__proxy(()=>this._client.logout(t)):this._client.logout(t)}async getAccessTokenSilently(t={}){return Ut(t),this.__proxy(()=>this._client.getTokenSilently(t))}async getAccessTokenWithPopup(t,n){return Ut(t),this.__proxy(()=>this._client.getTokenWithPopup(t,n))}async checkSession(t){return this.__proxy(()=>this._client.checkSession(t))}async handleRedirectCallback(t){return this.__proxy(()=>this._client.handleRedirectCallback(t))}async __checkSession(t){var n,o,s;const i=window.location.search;try{if((i.includes("code=")||i.includes("error="))&&i.includes("state=")&&!(!((n=this.pluginOptions)===null||n===void 0)&&n.skipRedirectCallback)){const r=await this.handleRedirectCallback(),c=r?.appState,a=(o=c?.target)!==null&&o!==void 0?o:"/";return window.history.replaceState({},"","/"),t&&t.push(a),r}await this.checkSession()}catch{window.history.replaceState({},"","/"),t&&t.push(((s=this.pluginOptions)===null||s===void 0?void 0:s.errorPath)||"/")}}async __refreshState(){this.isAuthenticated.value=await this._client.isAuthenticated(),this.user.value=await this._client.getUser(),this.idTokenClaims.value=await this._client.getIdTokenClaims(),this.isLoading.value=!1}async __proxy(t,n=!0){let o;try{o=await t(),this.error.value=null}catch(s){throw this.error.value=s,s}finally{n&&await this.__refreshState()}return o}}function Oi(e,t){return Ut(e),new Ha(e,t)}function Si(){return Ie(gi)}const Zl="",Vl="",Bl="",Xl="";var Eo=(e=>(e[e.Pending=0]="Pending",e[e.Approved=1]="Approved",e[e.Rejected=2]="Rejected",e))(Eo||{});function Pi(e){const{created_at:t,...n}=e;return{...n,status:Number(e.status),createdAt:new Date(t)}}const Pn=Ca("store",()=>{const e=Ie("postId"),t=Ie("comments"),n=Q(!!t?.length),o=Q(0),s=Q(""),i=Q(f(t||[])),r=Q(0),c=Ie("ApiBaseUrl"),a=Q(!1),l=Q(!1);function f(g){const b={},w=[];return g.forEach(I=>{!I.ancestor_id||Number(I.ancestor_id)===0?b[I.id]=Pi(I):w.push(I)}),w.forEach(I=>{if(I.ancestor_id in b){const O=b[I.ancestor_id];O.children=[...O.children||[],Pi(I)]}}),b}async function d(){s.value="",a.value=!0;const g=new URLSearchParams;g.append("postId",e),g.append("start",o.value.toString());const b=await fetch(`${c}/api/comments?${g}`);if(!b.ok){s.value="Load comments failed. "+b.statusText,n.value=!0,a.value=!1;return}const w=await b.json();if(w.code!==0){s.value="Load comments failed. "+w.message,n.value=!0,a.value=!1;return}i.value=f(w.data||[]);const I=w.data?.length||0;return l.value=I>=20,r.value+=I,n.value=!0,a.value=!1,w}function p(g,b,w,I,O){const{sub:T="",name:R="",picture:A="",email:W="",nickname:he=""}=w,H={id:g,postId:e,content:b,createdAt:new Date,user:{avatar:A,email:W,name:he||R},userId:T,status:Eo.Pending,isNew:!0};if(I||O){H.ancestorId=I,H.parentId=O;const L=i.value[I];if(I===O)L.children||(L.children=[]),L.children.unshift(H);else{const K=L.children.findIndex(oe=>Number(oe.id)===O);L.children.splice(K+1,0,H)}}else H.ancestorId=0,H.parentId=0,i.value={[g]:H,...i.value};r.value++}return{isLoaded:n,message:s,postId:e,comments:i,total:r,start:o,hasMore:l,loadingMore:a,loadComments:d,addComment:p}}),Za=["onSubmit"],Va={class:"ac-form-control border border-neutral bg-base-200 rounded-lg"},Ba=B("label",{class:"sr-only",for:"ac-comment"},"Your comment",-1),Xa=["onKeydown"],Ja={class:"p-2 rounded-b-lg bg-base-300 flex items-center"},Ya={key:0,class:"text-xs text-neutral-400/40"},qa={key:1,class:"ac-alert ac-alert-error mx-4 py-1"},Ga=["disabled"],Qa={key:0,class:"ac-loading ac-loading-spinner"},jo=gn({...{name:"CommentForm"},props:{noVersion:{type:Boolean},parentId:{},ancestorId:{}},emits:["close"],setup(e,{emit:t}){const n=e,o=Si(),s=Pn(),i=Ie("ApiBaseUrl"),r=Ie("Auth0Domain"),c="0.4.2",a=Q(),l=Q(!1),f=Q(""),d=Q("");async function p(I){if(!o.user.value)return g();if(!I.target.matches(":invalid")){l.value=!0,d.value="";try{const O=await o.getAccessTokenSilently(),T=await fetch(i+"/api/comment",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${O}`},body:JSON.stringify({comment:f.value,postId:s.postId,domain:r,ancestorId:n.ancestorId?Number(n.ancestorId):void 0,parentId:n.parentId?Number(n.parentId):void 0})}),R=await T.json();if(!T.ok||R.message)throw new Error("Failed to post comment: "+(R.message||"Unknown"));n.ancestorId||n.parentId?s.addComment(R.data,f.value,o.user.value,Number(n.ancestorId),Number(n.parentId)):s.addComment(R.data,f.value,o.user.value),f.value=""}catch(O){d.value=O.message||String(O)}l.value=!1,t("close")}}function g(){o.loginWithPopup()}function b(I){const O=navigator.userAgent.match(/Macintosh/);(O&&I.metaKey||!O&&I.ctrlKey)&&p(I)}function w(){t("close")}return Ts(()=>{a.value?.focus()}),(I,O)=>(D(),G("form",{class:"mb-6",onSubmit:da(p,["prevent"])},[B("div",Va,[Ba,Jr(B("textarea",{class:"ac-textarea ac-textarea-bordered bg-base-200 rounded-b-none focus:outline-none",id:"ac-comment",ref_key:"textarea",ref:a,rows:"3",placeholder:"Write a comment...",required:"",onKeydown:[li(b,["enter"]),li(w,["esc"])],"onUpdate:modelValue":O[0]||(O[0]=T=>f.value=T)},null,40,Xa),[[la,f.value]]),B("div",Ja,[I.noVersion?ge("",!0):(D(),G("div",Ya,"v"+ve(X(c)),1)),d.value?(D(),G("div",qa,ve(d.value),1)):ge("",!0),B("button",{class:"ac-btn ac-btn-primary ac-btn-sm ml-auto",disabled:l.value},[l.value?(D(),G("span",Qa)):ge("",!0),xn("Post comment")],8,Ga)])])],40,Za))}});var el={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function Ei(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function Dt(e){return(e+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ao(e,t){var n,o,s,i,r,c=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,a=[],l="",f=t||{},d=0;function p(b){var w=el[b[1]||""],I=a[a.length-1]==b;return w?w[1]?(I?a.pop():a.push(b),w[0|I]):w[0]:b}function g(){for(var b="";a.length;)b+=p(a[a.length-1]);return b}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(b,w,I){return f[w.toLowerCase()]=I,""}).replace(/^\n+|\n+$/g,"");s=c.exec(e);)o=e.substring(d,s.index),d=c.lastIndex,n=s[0],o.match(/[^\\](\\\\)*\\$/)||((r=s[3]||s[4])?n='<pre class="code '+(s[4]?"poetry":s[2].toLowerCase())+'"><code'+(s[2]?' class="language-'+s[2].toLowerCase()+'"':"")+">"+Ei(Dt(r).replace(/^\n+|\n+$/g,""))+"</code></pre>":(r=s[6])?(r.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),i=Ao(Ei(s[5].replace(/^\s*[>*+.-]/gm,""))),r==">"?r="blockquote":(r=r.match(/\./)?"ol":"ul",i=i.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+r+">"+i+"</"+r+">"):s[8]?n='<img src="'+Dt(s[8])+'" alt="'+Dt(s[7])+'">':s[10]?(l=l.replace("<a>",'<a href="'+Dt(s[11]||f[o.toLowerCase()])+'">'),n=g()+"</a>"):s[9]?n="<a>":s[12]||s[14]?n="<"+(r="h"+(s[14]?s[14].length:s[13]>"="?1:2))+">"+Ao(s[12]||s[15],f)+"</"+r+">":s[16]?n="<code>"+Dt(s[16])+"</code>":(s[17]||s[1])&&(n=p(s[17]||"--"))),l+=o,l+=n;return(l+e.substring(d)+g()).replace(/^\n+|\n+$/g,"")}function tl(e){let t=0;for(let o=0;o<e.length;o++)t=e.charCodeAt(o)+((t<<5)-t);let n="#";for(let o=0;o<3;o++){const s=t>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n}function En(e){return e<10?`0${e}`:`${e}`}function ji(e){const t=e.getFullYear(),n=e.getMonth()+1,o=e.getDate();return`${t}-${En(n)}-${En(o)}`}function Ai(e){const t=new Date,n=ji(e);if(ji(t)===n){const o=e.getHours(),s=e.getMinutes();return`${En(o)}:${En(s)}`}return n}const nl=["id"],ol={class:"p-6 text-base bg-base-200 rounded-lg dark:bg-gray-900"},sl={class:"flex justify-between items-center mb-2"},il={class:"flex items-center text-sm text-base-content dark:text-white"},rl={class:"avatar mr-2"},cl={key:0,class:"w-6 h-6"},al=["src","alt"],ll={class:"text-neutral-content mix-blend-color-dodge uppercase font-bold leading-6"},ul={key:0,class:"bi bi-patch-check-fill text-success ml-2"},fl=["datetime","title"],dl=["href"],hl=[B("i",{class:"bi bi-reply-fill h-4 w-4"},null,-1)],pl=["innerHTML"],ml={key:0,class:"italic mt-4 text-gray-500 mb-0 text-sm dark:text-gray-400"},gl=gn({...{name:"CommentItem"},props:{comment:{},isFirstLevel:{type:Boolean},ancestorId:{}},setup(e){const t=e,n=Pn();function o(s){return t.ancestorId&&n.comments[t.ancestorId]?.children?.find(c=>Number(c.id)===Number(s))?.user?.name||""}return(s,i)=>{const r=cc("comment-item",!0);return D(),G("div",{class:Qt(["comment-item rounded-lg my-4",{"animated flash":s.comment.isNew}]),id:"awcm-"+s.comment.id,onAnimationend:i[2]||(i[2]=c=>s.comment.isNew=!1)},[B("article",ol,[B("header",sl,[B("div",il,[B("div",rl,[s.comment.user.avatar?(D(),G("div",cl,[B("img",{class:"rounded-full max-w-full max-h-full",src:s.comment.user.avatar,alt:s.comment.user.name},null,8,al)])):(D(),G("div",{key:1,class:"avatar-char rounded-full w-6 h-6 text-center",style:Gt({"background-color":X(tl)(s.comment.user.name||"Anonymous")})},[B("span",ll,ve((s.comment.user.name||"Anonymous").substring(0,1)),1)],4))]),xn(ve(s.comment.user.name),1),s.comment.isAdmin?(D(),G("i",ul)):ge("",!0),B("time",{class:"text-xs text-gray-600 ml-4 dark:text-gray-400",pubdate:"",datetime:s.comment.createdAt,title:X(Ai)(s.comment.createdAt)},ve(X(Ai)(s.comment.createdAt)),9,fl),!s.isFirstLevel&&s.comment.parent_id!==s.comment.ancestor_id?(D(),G("a",{key:1,class:"text-xs link link-hover ml-4",href:"#awcm-"+s.comment.parent_id},"reply to "+ve(o(s.comment.parent_id))+"(#"+ve(s.comment.parent_id)+")",9,dl)):ge("",!0)]),B("button",{class:"ac-btn ac-btn-sm ac-btn-circle border-0",type:"button",onClick:i[0]||(i[0]=c=>s.comment.isReplying=!s.comment.isReplying)},hl)]),B("p",{class:"text-gray-500 dark:text-gray-400",innerHTML:X(Ao)(s.comment.content)},null,8,pl),s.comment.status===X(Eo).Pending?(D(),G("p",ml,"comments normally got approved within 24 hours")):ge("",!0)]),s.comment.isReplying&&s.isFirstLevel?(D(),Lt(jo,{key:0,class:"mt-3 ml-12","no-version":"","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id),onClose:i[1]||(i[1]=c=>s.comment.isReplying=!1)},null,8,["ancestor-id","parent-id"])):ge("",!0),s.comment.children?.length?(D(!0),G(ye,{key:1},Es(s.comment.children,c=>(D(),Lt(r,{class:"ml-12",key:c.id,comment:c,"ancestor-id":Number(s.ancestorId),"is-first-level":!1},null,8,["comment","ancestor-id"]))),128)):ge("",!0),s.comment.isReplying&&!s.isFirstLevel?(D(),Lt(jo,{key:2,class:"mt-3 ml-12","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id)},null,8,["ancestor-id","parent-id"])):ge("",!0)],42,nl)}}}),bl={key:0,class:"comments-wrapper"},_l=["disabled"],yl={key:0,class:"ac-loading ac-loading-xs ac-loading-spinner"},wl={key:1,class:"pt-8 text-center"},vl=[B("span",{class:"ac-loading ac-loading-spinner"},null,-1)],kl=gn({...{name:"CommentSections"},setup(e){const t=Pn();t.loadComments();function n(){t.start+=20,t.loadComments()}return(o,s)=>X(t).isLoaded?(D(),G("div",bl,[(D(!0),G(ye,null,Es(Object.values(X(t).comments).reverse(),i=>(D(),Lt(gl,{key:i.id,comment:i,"ancestor-id":Number(i.id),"is-first-level":""},null,8,["comment","ancestor-id"]))),128)),X(t).hasMore?(D(),G("button",{key:0,class:"ac-btn ac-btn-neutral ac-btn-sm ac-btn-block",type:"button",onClick:n,disabled:X(t).loadingMore},[X(t).loadingMore?(D(),G("span",yl)):ge("",!0),xn("Load More")],8,_l)):ge("",!0)])):(D(),G("div",wl,vl))}}),xl={class:"awesome-comment"},Il={key:0,class:"ac-alert ac-alert-error mb-4"},Cl={class:"flex justify-between items-center py-2"},Tl={class:"text-lg font-bold text-base-content my-0"},Ol={key:0,class:"ac-loading ac-loading-spinner"},Sl={key:1,class:"ac-dropdown ac-dropdown-end"},Pl={key:0,class:"ac-avatar flex",tabindex:"0"},El={class:"w-6 h-6 rounded-full"},jl=["alt","src"],Al={key:1,class:"ac-btn ac-btn-ghost",tabindex:"0"},Rl={class:"ac-dropdown-content z-10 ac-menu p-2 shadow bg-base-100 rounded-box w-52",tabindex:"0"},Nl={key:0,class:"border-b border-neutral pb-2 mb-2 pointer-events-none"},Ll={class:"text-base-content"},Ml=["disabled"],Fl=["disabled"],$l=gn({__name:"App",setup(e){const t=Pn(),{isAuthenticated:n,isLoading:o,user:s,loginWithPopup:i,logout:r}=Si(),c=ho(()=>{const f=t.total>20||t.total===20&&t.hasMore?"20+":t.total,d=new CustomEvent("AwesomeComment:total",{bubbles:!0,cancelable:!0,detail:f});return document.body.dispatchEvent(d),f});function a(){i()}function l(){r({openUrl:!1})}return(f,d)=>(D(),G("div",xl,[X(t).message?(D(),G("div",Il,[B("p",null,ve(X(t).message),1)])):ge("",!0),B("header",Cl,[B("h2",Tl,"Discussion ("+ve(c.value)+")",1),X(o)?(D(),G("span",Ol)):(D(),G("div",Sl,[X(n)&&X(s)?(D(),G(ye,{key:0},[X(s).picture?(D(),G("label",Pl,[B("div",El,[B("img",{class:"w-full h-full block",alt:X(s).name||X(s).email,src:X(s).picture},null,8,jl)])])):(D(),G("label",Al,ve(X(s).email),1)),B("ul",Rl,[X(s).picture?(D(),G("li",Nl,[B("span",Ll,ve(X(s).email),1)])):ge("",!0),B("li",null,[B("button",{class:"border-0 bg-base-100",type:"button",disabled:X(o),onClick:l},"Logout",8,Ml)])])],64)):(D(),G("button",{key:1,class:"ac-btn ac-btn-secondary ac-btn-xs",type:"button",disabled:X(o),onClick:a},"Login",8,Fl))]))]),Te(jo),Te(kl)]))}}),Ri=[];let Ni=null;function Kl(e,t){const n=ga($l),o=ya(),s=Ni||Oi({domain:e,clientId:t,authorizationParams:{redirect_uri:location.origin}});return n.use(s),n.use(o),n}return{postId:"",apiUrl:"",domain:"",clientId:"",init(e,t,n,o,s){t??=this.postId,n??=this.apiUrl,o??=this.domain,s??=this.clientId;const i=Kl(o,s);i.provide("ApiBaseUrl",n),i.provide("postId",t),i.provide("Auth0Domain",o),i.provide("comments",Ri),i.mount(e)},async preload(e,t,n,o){this.postId=e,this.apiUrl=t,this.domain=n,this.clientId=o,Ni=Oi({domain:n,clientId:o,authorizationParams:{redirect_uri:window.location.origin}});const s=await fetch(`${t}/api/comments?postId=${e}`);s.ok||console.log("[Awesome comment] Failed to preload comments.");const i=await s.json();i.data&&Ri.push(...i.data)}}}();
@@ -4868,7 +4868,7 @@ const An = Sa("store", () => {
4868
4868
  },
4869
4869
  emits: ["close"],
4870
4870
  setup(e, { emit: t }) {
4871
- const n = e, o = $i(), s = An(), i = Te("ApiBaseUrl"), r = Te("Auth0Domain"), c = "0.4.0", a = Q(), l = Q(!1), f = Q(""), d = Q("");
4871
+ const n = e, o = $i(), s = An(), i = Te("ApiBaseUrl"), r = Te("Auth0Domain"), c = "0.4.2", a = Q(), l = Q(!1), f = Q(""), d = Q("");
4872
4872
  async function p(I) {
4873
4873
  if (!o.user.value)
4874
4874
  return g();
@@ -5119,7 +5119,7 @@ const rl = ["id"], cl = { class: "p-6 text-base bg-base-200 rounded-lg dark:bg-g
5119
5119
  t.start += 20, t.loadComments();
5120
5120
  }
5121
5121
  return (o, s) => Y(t).isLoaded ? (D(), q("div", xl, [
5122
- (D(!0), q(ye, null, pi(Object.values(Y(t).comments), (i) => (D(), Lt(kl, {
5122
+ (D(!0), q(ye, null, pi(Object.values(Y(t).comments).reverse(), (i) => (D(), Lt(kl, {
5123
5123
  key: i.id,
5124
5124
  comment: i,
5125
5125
  "ancestor-id": Number(i.id),
@@ -5,4 +5,4 @@
5
5
  */let fi;const Tn=e=>fi=e,di=Symbol();function bo(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Kt;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Kt||(Kt={}));function ya(){const e=Wo(!0),t=e.run(()=>Q({}));let n=[],o=[];const s=fn({install(i){Tn(s),s._a=i,i.provide(di,s),i.config.globalProperties.$pinia=s,o.forEach(r=>n.push(r)),o=[]},use(i){return!this._a&&!_a?o.push(i):n.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const hi=()=>{};function pi(e,t,n,o=hi){e.push(t);const s=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),o())};return!n&&Ho()&&Gi(s),s}function wt(e,...t){e.slice().forEach(n=>{n(...t)})}const wa=e=>e();function _o(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,o)=>e.set(o,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],s=e[n];bo(s)&&bo(o)&&e.hasOwnProperty(n)&&!ne(o)&&!He(o)?e[n]=_o(s,o):e[n]=o}return e}const va=Symbol();function ka(e){return!bo(e)||!e.hasOwnProperty(va)}const{assign:Be}=Object;function xa(e){return!!(ne(e)&&e.effect)}function Ia(e,t,n,o){const{state:s,actions:i,getters:r}=t,c=n.state.value[e];let a;function l(){c||(n.state.value[e]=s?s():{});const f=Er(n.state.value[e]);return Be(f,i,Object.keys(r||{}).reduce((d,p)=>(d[p]=fn(ho(()=>{Tn(n);const g=n._s.get(e);return r[p].call(g,g)})),d),{}))}return a=mi(e,l,t,n,o,!0),a}function mi(e,t,n={},o,s,i){let r;const c=Be({actions:{}},n),a={deep:!0};let l,f,d=[],p=[],g;const b=o.state.value[e];!i&&!b&&(o.state.value[e]={}),Q({});let w;function I(L){let K;l=f=!1,typeof L=="function"?(L(o.state.value[e]),K={type:Kt.patchFunction,storeId:e,events:g}):(_o(o.state.value[e],L),K={type:Kt.patchObject,payload:L,storeId:e,events:g});const oe=w=Symbol();ps().then(()=>{w===oe&&(l=!0)}),f=!0,wt(d,K,o.state.value[e])}const O=i?function(){const{state:K}=n,oe=K?K():{};this.$patch(be=>{Be(be,oe)})}:hi;function T(){r.stop(),d=[],p=[],o._s.delete(e)}function R(L,K){return function(){Tn(o);const oe=Array.from(arguments),be=[],Ne=[];function xt(V){be.push(V)}function Ht(V){Ne.push(V)}wt(p,{args:oe,name:L,store:H,after:xt,onError:Ht});let Xe;try{Xe=K.apply(this&&this.$id===e?this:H,oe)}catch(V){throw wt(Ne,V),V}return Xe instanceof Promise?Xe.then(V=>(wt(be,V),V)).catch(V=>(wt(Ne,V),Promise.reject(V))):(wt(be,Xe),Xe)}}const A={_p:o,$id:e,$onAction:pi.bind(null,p),$patch:I,$reset:O,$subscribe(L,K={}){const oe=pi(d,L,K.detached,()=>be()),be=r.run(()=>gn(()=>o.state.value[e],Ne=>{(K.flush==="sync"?f:l)&&L({storeId:e,type:Kt.direct,events:g},Ne)},Be({},a,K)));return oe},$dispose:T},H=ln(A);o._s.set(e,H);const he=o._a&&o._a.runWithContext||wa,Z=o._e.run(()=>(r=Wo(),he(()=>r.run(t))));for(const L in Z){const K=Z[L];if(ne(K)&&!xa(K)||He(K))i||(b&&ka(K)&&(ne(K)?K.value=b[L]:_o(K,b[L])),o.state.value[e][L]=K);else if(typeof K=="function"){const oe=R(L,K);Z[L]=oe,c.actions[L]=K}}return Be(H,Z),Be(U(H),Z),Object.defineProperty(H,"$state",{get:()=>o.state.value[e],set:L=>{I(K=>{Be(K,L)})}}),o._p.forEach(L=>{Be(H,r.run(()=>L({store:H,app:o._a,pinia:o,options:c})))}),b&&i&&n.hydrate&&n.hydrate(H.$state,b),l=!0,f=!0,H}function Ca(e,t,n){let o,s;const i=typeof t=="function";typeof e=="string"?(o=e,s=i?n:t):(s=e,o=e.id);function r(c,a){const l=yc();return c=c||(l?Ie(di,null):null),c&&Tn(c),c=fi,c._s.has(o)||(i?mi(o,t,s,c):Ia(o,s,c)),c._s.get(o)}return r.$id=o,r}const gi=Symbol("$auth0");function Ae(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function"){var s=0;for(o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(n[o[s]]=e[o[s]])}return n}var vt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function yo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function wo(e,t){return e(t={exports:{}},t.exports),t.exports}var it=wo(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function o(){var s=this;this.locked=new Map,this.addToLocked=function(i,r){var c=s.locked.get(i);c===void 0?r===void 0?s.locked.set(i,[]):s.locked.set(i,[r]):r!==void 0&&(c.unshift(r),s.locked.set(i,c))},this.isLocked=function(i){return s.locked.has(i)},this.lock=function(i){return new Promise(function(r,c){s.isLocked(i)?s.addToLocked(i,r):(s.addToLocked(i),r())})},this.unlock=function(i){var r=s.locked.get(i);if(r!==void 0&&r.length!==0){var c=r.pop();s.locked.set(i,r),c!==void 0&&setTimeout(c,0)}else s.locked.delete(i)}}return o.getInstance=function(){return o.instance===void 0&&(o.instance=new o),o.instance},o}();t.default=function(){return n.getInstance()}});yo(it);var Ta=yo(wo(function(e,t){var n=vt&&vt.__awaiter||function(a,l,f,d){return new(f||(f=Promise))(function(p,g){function b(O){try{I(d.next(O))}catch(T){g(T)}}function w(O){try{I(d.throw(O))}catch(T){g(T)}}function I(O){O.done?p(O.value):new f(function(T){T(O.value)}).then(b,w)}I((d=d.apply(a,l||[])).next())})},o=vt&&vt.__generator||function(a,l){var f,d,p,g,b={label:0,sent:function(){if(1&p[0])throw p[1];return p[1]},trys:[],ops:[]};return g={next:w(0),throw:w(1),return:w(2)},typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function w(I){return function(O){return function(T){if(f)throw new TypeError("Generator is already executing.");for(;b;)try{if(f=1,d&&(p=2&T[0]?d.return:T[0]?d.throw||((p=d.return)&&p.call(d),0):d.next)&&!(p=p.call(d,T[1])).done)return p;switch(d=0,p&&(T=[2&T[0],p.value]),T[0]){case 0:case 1:p=T;break;case 4:return b.label++,{value:T[1],done:!1};case 5:b.label++,d=T[1],T=[0];continue;case 7:T=b.ops.pop(),b.trys.pop();continue;default:if(!((p=(p=b.trys).length>0&&p[p.length-1])||T[0]!==6&&T[0]!==2)){b=0;continue}if(T[0]===3&&(!p||T[1]>p[0]&&T[1]<p[3])){b.label=T[1];break}if(T[0]===6&&b.label<p[1]){b.label=p[1],p=T;break}if(p&&b.label<p[2]){b.label=p[2],b.ops.push(T);break}p[2]&&b.ops.pop(),b.trys.pop();continue}T=l.call(a,b)}catch(R){T=[6,R],d=0}finally{f=p=0}if(5&T[0])throw T[1];return{value:T[0]?T[1]:void 0,done:!0}}([I,O])}}};Object.defineProperty(t,"__esModule",{value:!0});var s="browser-tabs-lock-key";function i(a){return new Promise(function(l){return setTimeout(l,a)})}function r(a){for(var l="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz",f="",d=0;d<a;d++)f+=l[Math.floor(Math.random()*l.length)];return f}var c=function(){function a(){this.acquiredIatSet=new Set,this.id=Date.now().toString()+r(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),a.waiters===void 0&&(a.waiters=[])}return a.prototype.acquireLock=function(l,f){return f===void 0&&(f=5e3),n(this,void 0,void 0,function(){var d,p,g,b,w,I;return o(this,function(O){switch(O.label){case 0:d=Date.now()+r(4),p=Date.now()+f,g=s+"-"+l,b=window.localStorage,O.label=1;case 1:return Date.now()<p?[4,i(30)]:[3,8];case 2:return O.sent(),b.getItem(g)!==null?[3,5]:(w=this.id+"-"+l+"-"+d,[4,i(Math.floor(25*Math.random()))]);case 3:return O.sent(),b.setItem(g,JSON.stringify({id:this.id,iat:d,timeoutKey:w,timeAcquired:Date.now(),timeRefreshed:Date.now()})),[4,i(30)];case 4:return O.sent(),(I=b.getItem(g))!==null&&(I=JSON.parse(I)).id===this.id&&I.iat===d?(this.acquiredIatSet.add(d),this.refreshLockWhileAcquired(g,d),[2,!0]):[3,7];case 5:return a.lockCorrector(),[4,this.waitForSomethingToChange(p)];case 6:O.sent(),O.label=7;case 7:return d=Date.now()+r(4),[3,1];case 8:return[2,!1]}})})},a.prototype.refreshLockWhileAcquired=function(l,f){return n(this,void 0,void 0,function(){var d=this;return o(this,function(p){return setTimeout(function(){return n(d,void 0,void 0,function(){var g,b;return o(this,function(w){switch(w.label){case 0:return[4,it.default().lock(f)];case 1:return w.sent(),this.acquiredIatSet.has(f)?(g=window.localStorage,(b=g.getItem(l))===null?(it.default().unlock(f),[2]):((b=JSON.parse(b)).timeRefreshed=Date.now(),g.setItem(l,JSON.stringify(b)),it.default().unlock(f),this.refreshLockWhileAcquired(l,f),[2])):(it.default().unlock(f),[2])}})})},1e3),[2]})})},a.prototype.waitForSomethingToChange=function(l){return n(this,void 0,void 0,function(){return o(this,function(f){switch(f.label){case 0:return[4,new Promise(function(d){var p=!1,g=Date.now(),b=!1;function w(){if(b||(window.removeEventListener("storage",w),a.removeFromWaiting(w),clearTimeout(I),b=!0),!p){p=!0;var O=50-(Date.now()-g);O>0?setTimeout(d,O):d()}}window.addEventListener("storage",w),a.addToWaiting(w);var I=setTimeout(w,Math.max(0,l-Date.now()))})];case 1:return f.sent(),[2]}})})},a.addToWaiting=function(l){this.removeFromWaiting(l),a.waiters!==void 0&&a.waiters.push(l)},a.removeFromWaiting=function(l){a.waiters!==void 0&&(a.waiters=a.waiters.filter(function(f){return f!==l}))},a.notifyWaiters=function(){a.waiters!==void 0&&a.waiters.slice().forEach(function(l){return l()})},a.prototype.releaseLock=function(l){return n(this,void 0,void 0,function(){return o(this,function(f){switch(f.label){case 0:return[4,this.releaseLock__private__(l)];case 1:return[2,f.sent()]}})})},a.prototype.releaseLock__private__=function(l){return n(this,void 0,void 0,function(){var f,d,p;return o(this,function(g){switch(g.label){case 0:return f=window.localStorage,d=s+"-"+l,(p=f.getItem(d))===null?[2]:(p=JSON.parse(p)).id!==this.id?[3,2]:[4,it.default().lock(p.iat)];case 1:g.sent(),this.acquiredIatSet.delete(p.iat),f.removeItem(d),it.default().unlock(p.iat),a.notifyWaiters(),g.label=2;case 2:return[2]}})})},a.lockCorrector=function(){for(var l=Date.now()-5e3,f=window.localStorage,d=Object.keys(f),p=!1,g=0;g<d.length;g++){var b=d[g];if(b.includes(s)){var w=f.getItem(b);w!==null&&((w=JSON.parse(w)).timeRefreshed===void 0&&w.timeAcquired<l||w.timeRefreshed!==void 0&&w.timeRefreshed<l)&&(f.removeItem(b),p=!0)}}p&&a.notifyWaiters()},a.waiters=void 0,a}();t.default=c}));const Oa={timeoutInSeconds:60},bi={name:"auth0-spa-js",version:"2.1.2"},_i=()=>Date.now();class le extends Error{constructor(t,n){super(n),this.error=t,this.error_description=n,Object.setPrototypeOf(this,le.prototype)}static fromPayload({error:t,error_description:n}){return new le(t,n)}}class vo extends le{constructor(t,n,o,s=null){super(t,n),this.state=o,this.appState=s,Object.setPrototypeOf(this,vo.prototype)}}class zt extends le{constructor(){super("timeout","Timeout"),Object.setPrototypeOf(this,zt.prototype)}}class ko extends zt{constructor(t){super(),this.popup=t,Object.setPrototypeOf(this,ko.prototype)}}class xo extends le{constructor(t){super("cancelled","Popup closed"),this.popup=t,Object.setPrototypeOf(this,xo.prototype)}}class Io extends le{constructor(t,n,o){super(t,n),this.mfa_token=o,Object.setPrototypeOf(this,Io.prototype)}}class On extends le{constructor(t,n){super("missing_refresh_token",`Missing Refresh Token (audience: '${yi(t,["default"])}', scope: '${yi(n)}')`),this.audience=t,this.scope=n,Object.setPrototypeOf(this,On.prototype)}}function yi(e,t=[]){return e&&!t.includes(e)?e:""}const Sn=()=>window.crypto,Co=()=>{const e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.";let t="";return Array.from(Sn().getRandomValues(new Uint8Array(43))).forEach(n=>t+=e[n%e.length]),t},wi=e=>btoa(e),To=e=>{var{clientId:t}=e,n=Ae(e,["clientId"]);return new URLSearchParams((o=>Object.keys(o).filter(s=>o[s]!==void 0).reduce((s,i)=>Object.assign(Object.assign({},s),{[i]:o[i]}),{}))(Object.assign({client_id:t},n))).toString()},vi=e=>(t=>decodeURIComponent(atob(t).split("").map(n=>"%"+("00"+n.charCodeAt(0).toString(16)).slice(-2)).join("")))(e.replace(/_/g,"/").replace(/-/g,"+")),Sa=async(e,t)=>{const n=await fetch(e,t);return{ok:n.ok,json:await n.json()}},Pa=async(e,t,n,o,s,i,r=1e4)=>s?(async(c,a,l,f,d,p,g)=>{return b={auth:{audience:a,scope:l},timeout:d,fetchUrl:c,fetchOptions:f,useFormData:g},w=p,new Promise(function(I,O){const T=new MessageChannel;T.port1.onmessage=function(R){R.data.error?O(new Error(R.data.error)):I(R.data),T.port1.close()},w.postMessage(b,[T.port2])});var b,w})(e,t,n,o,r,s,i):(async(c,a,l)=>{const f=new AbortController;let d;return a.signal=f.signal,Promise.race([Sa(c,a),new Promise((p,g)=>{d=setTimeout(()=>{f.abort(),g(new Error("Timeout when executing 'fetch'"))},l)})]).finally(()=>{clearTimeout(d)})})(e,o,r);async function Ea(e,t){var{baseUrl:n,timeout:o,audience:s,scope:i,auth0Client:r,useFormData:c}=e,a=Ae(e,["baseUrl","timeout","audience","scope","auth0Client","useFormData"]);const l=c?To(a):JSON.stringify(a);return await async function(f,d,p,g,b,w,I){let O,T=null;for(let L=0;L<3;L++)try{O=await Pa(f,p,g,b,w,I,d),T=null;break}catch(K){T=K}if(T)throw T;const R=O.json,{error:A,error_description:H}=R,he=Ae(R,["error","error_description"]),{ok:Z}=O;if(!Z){const L=H||`HTTP error. Unable to fetch ${f}`;throw A==="mfa_required"?new Io(A,L,he.mfa_token):A==="missing_refresh_token"?new On(p,g):new le(A||"request_error",L)}return he}(`${n}/oauth/token`,o,s||"default",i,{method:"POST",body:l,headers:{"Content-Type":c?"application/x-www-form-urlencoded":"application/json","Auth0-Client":btoa(JSON.stringify(r||bi))}},t,c)}const Pn=(...e)=>{return(t=e.filter(Boolean).join(" ").trim().split(/\s+/),Array.from(new Set(t))).join(" ");var t};class Re{constructor(t,n="@@auth0spajs@@",o){this.prefix=n,this.suffix=o,this.clientId=t.clientId,this.scope=t.scope,this.audience=t.audience}toKey(){return[this.prefix,this.clientId,this.audience,this.scope,this.suffix].filter(Boolean).join("::")}static fromKey(t){const[n,o,s,i]=t.split("::");return new Re({clientId:o,scope:i,audience:s},n)}static fromCacheEntry(t){const{scope:n,audience:o,client_id:s}=t;return new Re({scope:n,audience:o,clientId:s})}}class ja{set(t,n){localStorage.setItem(t,JSON.stringify(n))}get(t){const n=window.localStorage.getItem(t);if(n)try{return JSON.parse(n)}catch{return}}remove(t){localStorage.removeItem(t)}allKeys(){return Object.keys(window.localStorage).filter(t=>t.startsWith("@@auth0spajs@@"))}}class ki{constructor(){this.enclosedCache=function(){let t={};return{set(n,o){t[n]=o},get(n){const o=t[n];if(o)return o},remove(n){delete t[n]},allKeys:()=>Object.keys(t)}}()}}class Aa{constructor(t,n,o){this.cache=t,this.keyManifest=n,this.nowProvider=o||_i}async setIdToken(t,n,o){var s;const i=this.getIdTokenCacheKey(t);await this.cache.set(i,{id_token:n,decodedToken:o}),await((s=this.keyManifest)===null||s===void 0?void 0:s.add(i))}async getIdToken(t){const n=await this.cache.get(this.getIdTokenCacheKey(t.clientId));if(!n&&t.scope&&t.audience){const o=await this.get(t);return!o||!o.id_token||!o.decodedToken?void 0:{id_token:o.id_token,decodedToken:o.decodedToken}}if(n)return{id_token:n.id_token,decodedToken:n.decodedToken}}async get(t,n=0){var o;let s=await this.cache.get(t.toKey());if(!s){const c=await this.getCacheKeys();if(!c)return;const a=this.matchExistingCacheKey(t,c);a&&(s=await this.cache.get(a))}if(!s)return;const i=await this.nowProvider(),r=Math.floor(i/1e3);return s.expiresAt-n<r?s.body.refresh_token?(s.body={refresh_token:s.body.refresh_token},await this.cache.set(t.toKey(),s),s.body):(await this.cache.remove(t.toKey()),void await((o=this.keyManifest)===null||o===void 0?void 0:o.remove(t.toKey()))):s.body}async set(t){var n;const o=new Re({clientId:t.client_id,scope:t.scope,audience:t.audience}),s=await this.wrapCacheEntry(t);await this.cache.set(o.toKey(),s),await((n=this.keyManifest)===null||n===void 0?void 0:n.add(o.toKey()))}async clear(t){var n;const o=await this.getCacheKeys();o&&(await o.filter(s=>!t||s.includes(t)).reduce(async(s,i)=>{await s,await this.cache.remove(i)},Promise.resolve()),await((n=this.keyManifest)===null||n===void 0?void 0:n.clear()))}async wrapCacheEntry(t){const n=await this.nowProvider();return{body:t,expiresAt:Math.floor(n/1e3)+t.expires_in}}async getCacheKeys(){var t;return this.keyManifest?(t=await this.keyManifest.get())===null||t===void 0?void 0:t.keys:this.cache.allKeys?this.cache.allKeys():void 0}getIdTokenCacheKey(t){return new Re({clientId:t},"@@auth0spajs@@","@@user@@").toKey()}matchExistingCacheKey(t,n){return n.filter(o=>{var s;const i=Re.fromKey(o),r=new Set(i.scope&&i.scope.split(" ")),c=((s=t.scope)===null||s===void 0?void 0:s.split(" "))||[],a=i.scope&&c.reduce((l,f)=>l&&r.has(f),!0);return i.prefix==="@@auth0spajs@@"&&i.clientId===t.clientId&&i.audience===t.audience&&a})[0]}}class Ra{constructor(t,n,o){this.storage=t,this.clientId=n,this.cookieDomain=o,this.storageKey=`a0.spajs.txs.${this.clientId}`}create(t){this.storage.save(this.storageKey,t,{daysUntilExpire:1,cookieDomain:this.cookieDomain})}get(){return this.storage.get(this.storageKey)}remove(){this.storage.remove(this.storageKey,{cookieDomain:this.cookieDomain})}}const Ut=e=>typeof e=="number",Na=["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"];var rt=wo(function(e,t){var n=vt&&vt.__assign||function(){return n=Object.assign||function(a){for(var l,f=1,d=arguments.length;f<d;f++)for(var p in l=arguments[f])Object.prototype.hasOwnProperty.call(l,p)&&(a[p]=l[p]);return a},n.apply(this,arguments)};function o(a,l){if(!l)return"";var f="; "+a;return l===!0?f:f+"="+l}function s(a,l,f){return encodeURIComponent(a).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/\(/g,"%28").replace(/\)/g,"%29")+"="+encodeURIComponent(l).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)+function(d){if(typeof d.expires=="number"){var p=new Date;p.setMilliseconds(p.getMilliseconds()+864e5*d.expires),d.expires=p}return o("Expires",d.expires?d.expires.toUTCString():"")+o("Domain",d.domain)+o("Path",d.path)+o("Secure",d.secure)+o("SameSite",d.sameSite)}(f)}function i(a){for(var l={},f=a?a.split("; "):[],d=/(%[\dA-F]{2})+/gi,p=0;p<f.length;p++){var g=f[p].split("="),b=g.slice(1).join("=");b.charAt(0)==='"'&&(b=b.slice(1,-1));try{l[g[0].replace(d,decodeURIComponent)]=b.replace(d,decodeURIComponent)}catch{}}return l}function r(){return i(document.cookie)}function c(a,l,f){document.cookie=s(a,l,n({path:"/"},f))}t.__esModule=!0,t.encode=s,t.parse=i,t.getAll=r,t.get=function(a){return r()[a]},t.set=c,t.remove=function(a,l){c(a,"",n(n({},l),{expires:-1}))}});yo(rt),rt.encode,rt.parse,rt.getAll;var La=rt.get,xi=rt.set,Ii=rt.remove;const kt={get(e){const t=La(e);if(t!==void 0)return JSON.parse(t)},save(e,t,n){let o={};window.location.protocol==="https:"&&(o={secure:!0,sameSite:"none"}),n?.daysUntilExpire&&(o.expires=n.daysUntilExpire),n?.cookieDomain&&(o.domain=n.cookieDomain),xi(e,JSON.stringify(t),o)},remove(e,t){let n={};t?.cookieDomain&&(n.domain=t.cookieDomain),Ii(e,n)}},Ma={get:e=>kt.get(e)||kt.get(`_legacy_${e}`),save(e,t,n){let o={};window.location.protocol==="https:"&&(o={secure:!0}),n?.daysUntilExpire&&(o.expires=n.daysUntilExpire),n?.cookieDomain&&(o.domain=n.cookieDomain),xi(`_legacy_${e}`,JSON.stringify(t),o),kt.save(e,t,n)},remove(e,t){let n={};t?.cookieDomain&&(n.domain=t.cookieDomain),Ii(e,n),kt.remove(e,t),kt.remove(`_legacy_${e}`,t)}},Fa={get(e){if(typeof sessionStorage>"u")return;const t=sessionStorage.getItem(e);return t!=null?JSON.parse(t):void 0},save(e,t){sessionStorage.setItem(e,JSON.stringify(t))},remove(e){sessionStorage.removeItem(e)}};var Oo,$a=function(e){return Oo=Oo||function(t,n,o){var s=n===void 0?null:n,i=function(l,f){var d=atob(l);if(f){for(var p=new Uint8Array(d.length),g=0,b=d.length;g<b;++g)p[g]=d.charCodeAt(g);return String.fromCharCode.apply(null,new Uint16Array(p.buffer))}return d}(t,o!==void 0&&o),r=i.indexOf(`
6
6
  `,10)+1,c=i.substring(r)+(s?"//# sourceMappingURL="+s:""),a=new Blob([c],{type:"application/javascript"});return URL.createObjectURL(a)}("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscil7c3VwZXIociksdGhpcy5lcnJvcj10LHRoaXMuZXJyb3JfZGVzY3JpcHRpb249cixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9c3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjp0LGVycm9yX2Rlc2NyaXB0aW9uOnJ9KXtyZXR1cm4gbmV3IGUodCxyKX19Y2xhc3MgdCBleHRlbmRzIGV7Y29uc3RydWN0b3IoZSxzKXtzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIixgTWlzc2luZyBSZWZyZXNoIFRva2VuIChhdWRpZW5jZTogJyR7cihlLFsiZGVmYXVsdCJdKX0nLCBzY29wZTogJyR7cihzKX0nKWApLHRoaXMuYXVkaWVuY2U9ZSx0aGlzLnNjb3BlPXMsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdC5wcm90b3R5cGUpfX1mdW5jdGlvbiByKGUsdD1bXSl7cmV0dXJuIGUmJiF0LmluY2x1ZGVzKGUpP2U6IiJ9Y29uc3Qgcz1lPT57dmFye2NsaWVudElkOnR9PWUscj1mdW5jdGlvbihlLHQpe3ZhciByPXt9O2Zvcih2YXIgcyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHMpJiZ0LmluZGV4T2Yocyk8MCYmKHJbc109ZVtzXSk7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPTA7Zm9yKHM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPHMubGVuZ3RoO28rKyl0LmluZGV4T2Yoc1tvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsc1tvXSkmJihyW3Nbb11dPWVbc1tvXV0pfXJldHVybiByfShlLFsiY2xpZW50SWQiXSk7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoKGU9Pk9iamVjdC5rZXlzKGUpLmZpbHRlcigodD0+dm9pZCAwIT09ZVt0XSkpLnJlZHVjZSgoKHQscik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7W3JdOmVbcl19KSkse30pKShPYmplY3QuYXNzaWduKHtjbGllbnRfaWQ6dH0scikpKS50b1N0cmluZygpfTtsZXQgbz17fTtjb25zdCBuPShlLHQpPT5gJHtlfXwke3R9YDthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoYXN5bmMoe2RhdGE6e3RpbWVvdXQ6ZSxhdXRoOnIsZmV0Y2hVcmw6aSxmZXRjaE9wdGlvbnM6Yyx1c2VGb3JtRGF0YTphfSxwb3J0czpbZl19KT0+e2xldCBwO2NvbnN0e2F1ZGllbmNlOmwsc2NvcGU6dX09cnx8e307dHJ5e2NvbnN0IHI9YT8oZT0+e2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyhlKSxyPXt9O3JldHVybiB0LmZvckVhY2goKChlLHQpPT57clt0XT1lfSkpLHJ9KShjLmJvZHkpOkpTT04ucGFyc2UoYy5ib2R5KTtpZighci5yZWZyZXNoX3Rva2VuJiYicmVmcmVzaF90b2tlbiI9PT1yLmdyYW50X3R5cGUpe2NvbnN0IGU9KChlLHQpPT5vW24oZSx0KV0pKGwsdSk7aWYoIWUpdGhyb3cgbmV3IHQobCx1KTtjLmJvZHk9YT9zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpOkpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpfWxldCBkLGc7ImZ1bmN0aW9uIj09dHlwZW9mIEFib3J0Q29udHJvbGxlciYmKGQ9bmV3IEFib3J0Q29udHJvbGxlcixjLnNpZ25hbD1kLnNpZ25hbCk7dHJ5e2c9YXdhaXQgUHJvbWlzZS5yYWNlKFsoaD1lLG5ldyBQcm9taXNlKChlPT5zZXRUaW1lb3V0KGUsaCkpKSksZmV0Y2goaSxPYmplY3QuYXNzaWduKHt9LGMpKV0pfWNhdGNoKGUpe3JldHVybiB2b2lkIGYucG9zdE1lc3NhZ2Uoe2Vycm9yOmUubWVzc2FnZX0pfWlmKCFnKXJldHVybiBkJiZkLmFib3J0KCksdm9pZCBmLnBvc3RNZXNzYWdlKHtlcnJvcjoiVGltZW91dCB3aGVuIGV4ZWN1dGluZyAnZmV0Y2gnIn0pO3A9YXdhaXQgZy5qc29uKCkscC5yZWZyZXNoX3Rva2VuPygoKGUsdCxyKT0+e29bbih0LHIpXT1lfSkocC5yZWZyZXNoX3Rva2VuLGwsdSksZGVsZXRlIHAucmVmcmVzaF90b2tlbik6KChlLHQpPT57ZGVsZXRlIG9bbihlLHQpXX0pKGwsdSksZi5wb3N0TWVzc2FnZSh7b2s6Zy5vayxqc29uOnB9KX1jYXRjaChlKXtmLnBvc3RNZXNzYWdlKHtvazohMSxqc29uOntlcnJvcjplLmVycm9yLGVycm9yX2Rlc2NyaXB0aW9uOmUubWVzc2FnZX19KX12YXIgaH0pKX0oKTsKCg==",null,!1),new Worker(Oo,e)};const So={};class Ka{constructor(t,n){this.cache=t,this.clientId=n,this.manifestKey=this.createManifestKeyFrom(this.clientId)}async add(t){var n;const o=new Set(((n=await this.cache.get(this.manifestKey))===null||n===void 0?void 0:n.keys)||[]);o.add(t),await this.cache.set(this.manifestKey,{keys:[...o]})}async remove(t){const n=await this.cache.get(this.manifestKey);if(n){const o=new Set(n.keys);return o.delete(t),o.size>0?await this.cache.set(this.manifestKey,{keys:[...o]}):await this.cache.remove(this.manifestKey)}}get(){return this.cache.get(this.manifestKey)}clear(){return this.cache.remove(this.manifestKey)}createManifestKeyFrom(t){return`@@auth0spajs@@::${t}`}}const za={memory:()=>new ki().enclosedCache,localstorage:()=>new ja},Ci=e=>za[e],Ti=e=>{const{openUrl:t,onRedirect:n}=e,o=Ae(e,["openUrl","onRedirect"]);return Object.assign(Object.assign({},o),{openUrl:t===!1||t?t:n})},Po=new Ta;class Ua{constructor(t){let n,o;if(this.userCache=new ki().enclosedCache,this.defaultOptions={authorizationParams:{scope:"openid profile email"},useRefreshTokensFallback:!1,useFormData:!0},this._releaseLockOnPageHide=async()=>{await Po.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)},this.options=Object.assign(Object.assign(Object.assign({},this.defaultOptions),t),{authorizationParams:Object.assign(Object.assign({},this.defaultOptions.authorizationParams),t.authorizationParams)}),typeof window<"u"&&(()=>{if(!Sn())throw new Error("For security reasons, `window.crypto` is required to run `auth0-spa-js`.");if(Sn().subtle===void 0)throw new Error(`
7
7
  auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/master/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.
8
- `)})(),t.cache&&t.cacheLocation&&console.warn("Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`."),t.cache)o=t.cache;else{if(n=t.cacheLocation||"memory",!Ci(n))throw new Error(`Invalid cache location "${n}"`);o=Ci(n)()}this.httpTimeoutMs=t.httpTimeoutInSeconds?1e3*t.httpTimeoutInSeconds:1e4,this.cookieStorage=t.legacySameSiteCookie===!1?kt:Ma,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(r=>`auth0.${this.options.clientId}.is.authenticated`)(),this.sessionCheckExpiryDays=t.sessionCheckExpiryDays||1;const s=t.useCookiesForTransactions?this.cookieStorage:Fa;var i;this.scope=Pn("openid",this.options.authorizationParams.scope,this.options.useRefreshTokens?"offline_access":""),this.transactionManager=new Ra(s,this.options.clientId,this.options.cookieDomain),this.nowProvider=this.options.nowProvider||_i,this.cacheManager=new Aa(o,o.allKeys?void 0:new Ka(o,this.options.clientId),this.nowProvider),this.domainUrl=(i=this.options.domain,/^https?:\/\//.test(i)?i:`https://${i}`),this.tokenIssuer=((r,c)=>r?r.startsWith("https://")?r:`https://${r}/`:`${c}/`)(this.options.issuer,this.domainUrl),typeof window<"u"&&window.Worker&&this.options.useRefreshTokens&&n==="memory"&&(this.worker=new $a)}_url(t){const n=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||bi)));return`${this.domainUrl}${t}&auth0Client=${n}`}_authorizeUrl(t){return this._url(`/authorize?${To(t)}`)}async _verifyIdToken(t,n,o){const s=await this.nowProvider();return(r=>{if(!r.id_token)throw new Error("ID token is required but missing");const c=(d=>{const p=d.split("."),[g,b,w]=p;if(p.length!==3||!g||!b||!w)throw new Error("ID token could not be decoded");const I=JSON.parse(vi(b)),O={__raw:d},T={};return Object.keys(I).forEach(R=>{O[R]=I[R],Na.includes(R)||(T[R]=I[R])}),{encoded:{header:g,payload:b,signature:w},header:JSON.parse(vi(g)),claims:O,user:T}})(r.id_token);if(!c.claims.iss)throw new Error("Issuer (iss) claim must be a string present in the ID token");if(c.claims.iss!==r.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected "${r.iss}", found "${c.claims.iss}"`);if(!c.user.sub)throw new Error("Subject (sub) claim must be a string present in the ID token");if(c.header.alg!=="RS256")throw new Error(`Signature algorithm of "${c.header.alg}" is not supported. Expected the ID token to be signed with "RS256".`);if(!c.claims.aud||typeof c.claims.aud!="string"&&!Array.isArray(c.claims.aud))throw new Error("Audience (aud) claim must be a string or array of strings present in the ID token");if(Array.isArray(c.claims.aud)){if(!c.claims.aud.includes(r.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but was not one of "${c.claims.aud.join(", ")}"`);if(c.claims.aud.length>1){if(!c.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(c.claims.azp!==r.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected "${r.aud}", found "${c.claims.azp}"`)}}else if(c.claims.aud!==r.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but found "${c.claims.aud}"`);if(r.nonce){if(!c.claims.nonce)throw new Error("Nonce (nonce) claim must be a string present in the ID token");if(c.claims.nonce!==r.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected "${r.nonce}", found "${c.claims.nonce}"`)}if(r.max_age&&!Ut(c.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(c.claims.exp==null||!Ut(c.claims.exp))throw new Error("Expiration Time (exp) claim must be a number present in the ID token");if(!Ut(c.claims.iat))throw new Error("Issued At (iat) claim must be a number present in the ID token");const a=r.leeway||60,l=new Date(r.now||Date.now()),f=new Date(0);if(f.setUTCSeconds(c.claims.exp+a),l>f)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${l}) is after expiration time (${f})`);if(c.claims.nbf!=null&&Ut(c.claims.nbf)){const d=new Date(0);if(d.setUTCSeconds(c.claims.nbf-a),l<d)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${l}) is before ${d}`)}if(c.claims.auth_time!=null&&Ut(c.claims.auth_time)){const d=new Date(0);if(d.setUTCSeconds(parseInt(c.claims.auth_time)+r.max_age+a),l>d)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 (${l}) is after last auth at ${d}`)}if(r.organization){const d=r.organization.trim();if(d.startsWith("org_")){const p=d;if(!c.claims.org_id)throw new Error("Organization ID (org_id) claim must be a string present in the ID token");if(p!==c.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_id}"`)}else{const p=d.toLowerCase();if(!c.claims.org_name)throw new Error("Organization Name (org_name) claim must be a string present in the ID token");if(p!==c.claims.org_name)throw new Error(`Organization Name (org_name) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_name}"`)}}return c})({iss:this.tokenIssuer,aud:this.options.clientId,id_token:t,nonce:n,organization:o,leeway:this.options.leeway,max_age:(i=this.options.authorizationParams.max_age,typeof i!="string"?i:parseInt(i,10)||void 0),now:s});var i}_processOrgHint(t){t?this.cookieStorage.save(this.orgHintCookieName,t,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain})}async _prepareAuthorizeUrl(t,n,o){const s=wi(Co()),i=wi(Co()),r=Co(),c=(f=>{const d=new Uint8Array(f);return(p=>{const g={"+":"-","/":"_","=":""};return p.replace(/[+/=]/g,b=>g[b])})(window.btoa(String.fromCharCode(...Array.from(d))))})(await(async f=>await Sn().subtle.digest({name:"SHA-256"},new TextEncoder().encode(f)))(r)),a=((f,d,p,g,b,w,I,O)=>Object.assign(Object.assign(Object.assign({client_id:f.clientId},f.authorizationParams),p),{scope:Pn(d,p.scope),response_type:"code",response_mode:O||"query",state:g,nonce:b,redirect_uri:I||f.authorizationParams.redirect_uri,code_challenge:w,code_challenge_method:"S256"}))(this.options,this.scope,t,s,i,c,t.redirect_uri||this.options.authorizationParams.redirect_uri||o,n?.response_mode),l=this._authorizeUrl(a);return{nonce:i,code_verifier:r,scope:a.scope,audience:a.audience||"default",redirect_uri:a.redirect_uri,state:s,url:l}}async loginWithPopup(t,n){var o;if(t=t||{},!(n=n||{}).popup&&(n.popup=(c=>{const a=window.screenX+(window.innerWidth-400)/2,l=window.screenY+(window.innerHeight-600)/2;return window.open("","auth0:authorize:popup",`left=${a},top=${l},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 s=await this._prepareAuthorizeUrl(t.authorizationParams||{},{response_mode:"web_message"},window.location.origin);n.popup.location.href=s.url;const i=await(c=>new Promise((a,l)=>{let f;const d=setInterval(()=>{c.popup&&c.popup.closed&&(clearInterval(d),clearTimeout(p),window.removeEventListener("message",f,!1),l(new xo(c.popup)))},1e3),p=setTimeout(()=>{clearInterval(d),l(new ko(c.popup)),window.removeEventListener("message",f,!1)},1e3*(c.timeoutInSeconds||60));f=function(g){if(g.data&&g.data.type==="authorization_response"){if(clearTimeout(p),clearInterval(d),window.removeEventListener("message",f,!1),c.popup.close(),g.data.response.error)return l(le.fromPayload(g.data.response));a(g.data.response)}},window.addEventListener("message",f)}))(Object.assign(Object.assign({},n),{timeoutInSeconds:n.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(s.state!==i.state)throw new le("state_mismatch","Invalid state");const r=((o=t.authorizationParams)===null||o===void 0?void 0:o.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:"authorization_code",code:i.code,redirect_uri:s.redirect_uri},{nonceIn:s.nonce,organization:r})}async getUser(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.user}async getIdTokenClaims(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.claims}async loginWithRedirect(t={}){var n;const o=Ti(t),{openUrl:s,fragment:i,appState:r}=o,c=Ae(o,["openUrl","fragment","appState"]),a=((n=c.authorizationParams)===null||n===void 0?void 0:n.organization)||this.options.authorizationParams.organization,l=await this._prepareAuthorizeUrl(c.authorizationParams||{}),{url:f}=l,d=Ae(l,["url"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},d),{appState:r}),a&&{organization:a}));const p=i?`${f}#${i}`:f;s?await s(p):window.location.assign(p)}async handleRedirectCallback(t=window.location.href){const n=t.split("?").slice(1);if(n.length===0)throw new Error("There are no query params available for parsing.");const{state:o,code:s,error:i,error_description:r}=(d=>{d.indexOf("#")>-1&&(d=d.substring(0,d.indexOf("#")));const p=new URLSearchParams(d);return{state:p.get("state"),code:p.get("code")||void 0,error:p.get("error")||void 0,error_description:p.get("error_description")||void 0}})(n.join("")),c=this.transactionManager.get();if(!c)throw new le("missing_transaction","Invalid state");if(this.transactionManager.remove(),i)throw new vo(i,r||i,o,c.appState);if(!c.code_verifier||c.state&&c.state!==o)throw new le("state_mismatch","Invalid state");const a=c.organization,l=c.nonce,f=c.redirect_uri;return await this._requestToken(Object.assign({audience:c.audience,scope:c.scope,code_verifier:c.code_verifier,grant_type:"authorization_code",code:s},f?{redirect_uri:f}:{}),{nonceIn:l,organization:a}),{appState:c.appState}}async checkSession(t){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(t)}catch{}}async getTokenSilently(t={}){var n;const o=Object.assign(Object.assign({cacheMode:"on"},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Pn(this.scope,(n=t.authorizationParams)===null||n===void 0?void 0:n.scope)})}),s=await((i,r)=>{let c=So[r];return c||(c=i().finally(()=>{delete So[r],c=null}),So[r]=c),c})(()=>this._getTokenSilently(o),`${this.options.clientId}::${o.authorizationParams.audience}::${o.authorizationParams.scope}`);return t.detailedResponse?s:s?.access_token}async _getTokenSilently(t){const{cacheMode:n}=t,o=Ae(t,["cacheMode"]);if(n!=="off"){const s=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(s)return s}if(n!=="cache-only"){if(!await(async(s,i=3)=>{for(let r=0;r<i;r++)if(await s())return!0;return!1})(()=>Po.acquireLock("auth0.lock.getTokenSilently",5e3),10))throw new zt;try{if(window.addEventListener("pagehide",this._releaseLockOnPageHide),n!=="off"){const l=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(l)return l}const s=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:i,access_token:r,oauthTokenScope:c,expires_in:a}=s;return Object.assign(Object.assign({id_token:i,access_token:r},c?{scope:c}:null),{expires_in:a})}finally{await Po.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)}}}async getTokenWithPopup(t={},n={}){var o;const s=Object.assign(Object.assign({},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Pn(this.scope,(o=t.authorizationParams)===null||o===void 0?void 0:o.scope)})});return n=Object.assign(Object.assign({},Oa),n),await this.loginWithPopup(s,n),(await this.cacheManager.get(new Re({scope:s.authorizationParams.scope,audience:s.authorizationParams.audience||"default",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return!!await this.getUser()}_buildLogoutUrl(t){t.clientId!==null?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const n=t.logoutParams||{},{federated:o}=n,s=Ae(n,["federated"]),i=o?"&federated":"";return this._url(`/v2/logout?${To(Object.assign({clientId:t.clientId},s))}`)+i}async logout(t={}){const n=Ti(t),{openUrl:o}=n,s=Ae(n,["openUrl"]);t.clientId===null?await this.cacheManager.clear():await this.cacheManager.clear(t.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 i=this._buildLogoutUrl(s);o?await o(i):o!==!1&&window.location.assign(i)}async _getTokenFromIFrame(t){const n=Object.assign(Object.assign({},t.authorizationParams),{prompt:"none"}),o=this.cookieStorage.get(this.orgHintCookieName);o&&!n.organization&&(n.organization=o);const{url:s,state:i,nonce:r,code_verifier:c,redirect_uri:a,scope:l,audience:f}=await this._prepareAuthorizeUrl(n,{response_mode:"web_message"},window.location.origin);try{if(window.crossOriginIsolated)throw new le("login_required","The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.");const d=t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,p=await((b,w,I=60)=>new Promise((O,T)=>{const R=window.document.createElement("iframe");R.setAttribute("width","0"),R.setAttribute("height","0"),R.style.display="none";const A=()=>{window.document.body.contains(R)&&(window.document.body.removeChild(R),window.removeEventListener("message",H,!1))};let H;const he=setTimeout(()=>{T(new zt),A()},1e3*I);H=function(Z){if(Z.origin!=w||!Z.data||Z.data.type!=="authorization_response")return;const L=Z.source;L&&L.close(),Z.data.response.error?T(le.fromPayload(Z.data.response)):O(Z.data.response),clearTimeout(he),window.removeEventListener("message",H,!1),setTimeout(A,2e3)},window.addEventListener("message",H,!1),window.document.body.appendChild(R),R.setAttribute("src",b)}))(s,this.domainUrl,d);if(i!==p.state)throw new le("state_mismatch","Invalid state");const g=await this._requestToken(Object.assign(Object.assign({},t.authorizationParams),{code_verifier:c,code:p.code,grant_type:"authorization_code",redirect_uri:a,timeout:t.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:r,organization:n.organization});return Object.assign(Object.assign({},g),{scope:l,oauthTokenScope:g.scope,audience:f})}catch(d){throw d.error==="login_required"&&this.logout({openUrl:!1}),d}}async _getTokenUsingRefreshToken(t){const n=await this.cacheManager.get(new Re({scope:t.authorizationParams.scope,audience:t.authorizationParams.audience||"default",clientId:this.options.clientId}));if(!(n&&n.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw new On(t.authorizationParams.audience||"default",t.authorizationParams.scope)}const o=t.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,s=typeof t.timeoutInSeconds=="number"?1e3*t.timeoutInSeconds:null;try{const i=await this._requestToken(Object.assign(Object.assign(Object.assign({},t.authorizationParams),{grant_type:"refresh_token",refresh_token:n&&n.refresh_token,redirect_uri:o}),s&&{timeout:s}));return Object.assign(Object.assign({},i),{scope:t.authorizationParams.scope,oauthTokenScope:i.scope,audience:t.authorizationParams.audience||"default"})}catch(i){if((i.message.indexOf("Missing Refresh Token")>-1||i.message&&i.message.indexOf("invalid refresh token")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw i}}async _saveEntryInCache(t){const{id_token:n,decodedToken:o}=t,s=Ae(t,["id_token","decodedToken"]);this.userCache.set("@@user@@",{id_token:n,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(s)}async _getIdTokenFromCache(){const t=this.options.authorizationParams.audience||"default",n=await this.cacheManager.getIdToken(new Re({clientId:this.options.clientId,audience:t,scope:this.scope})),o=this.userCache.get("@@user@@");return n&&n.id_token===o?.id_token?o:(this.userCache.set("@@user@@",n),n)}async _getEntryFromCache({scope:t,audience:n,clientId:o}){const s=await this.cacheManager.get(new Re({scope:t,audience:n,clientId:o}),60);if(s&&s.access_token){const{access_token:i,oauthTokenScope:r,expires_in:c}=s,a=await this._getIdTokenFromCache();return a&&Object.assign(Object.assign({id_token:a.id_token,access_token:i},r?{scope:r}:null),{expires_in:c})}}async _requestToken(t,n){const{nonceIn:o,organization:s}=n||{},i=await Ea(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},t),this.worker),r=await this._verifyIdToken(i.id_token,o,s);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},i),{decodedToken:r,scope:t.scope,audience:t.audience||"default"}),i.scope?{oauthTokenScope:i.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgHint(s||r.claims.org_id),Object.assign(Object.assign({},i),{decodedToken:r})}}function Dt(e){e?.redirect_uri&&(console.warn("Using `redirect_uri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version"),e.authorizationParams=e.authorizationParams||{},e.authorizationParams.redirect_uri=e.redirect_uri,delete e.redirect_uri)}const ct=()=>{console.error("Please ensure Auth0's Vue plugin is correctly installed.")},Da={isLoading:Q(!1),isAuthenticated:Q(!1),user:Q(void 0),idTokenClaims:Q(void 0),error:Q(null),loginWithPopup:ct,loginWithRedirect:ct,getAccessTokenSilently:ct,getAccessTokenWithPopup:ct,logout:ct,checkSession:ct,handleRedirectCallback:ct},Wa=Q(Da);class Ha{constructor(t,n){var o,s;this.clientOptions=t,this.pluginOptions=n,this.isLoading=Q(!0),this.isAuthenticated=Q(!1),this.user=Q({}),this.idTokenClaims=Q(),this.error=Q(null),o=this,s=["constructor"],Object.getOwnPropertyNames(Object.getPrototypeOf(o)).filter(i=>!s.includes(i)).forEach(i=>o[i]=o[i].bind(o))}install(t){this._client=new Ua(Object.assign(Object.assign({},this.clientOptions),{auth0Client:{name:"auth0-vue",version:"2.3.1"}})),this.__checkSession(t.config.globalProperties.$router),t.config.globalProperties.$auth0=this,t.provide(gi,this),Wa.value=this}async loginWithRedirect(t){return Dt(t),this._client.loginWithRedirect(t)}async loginWithPopup(t,n){return Dt(t),this.__proxy(()=>this._client.loginWithPopup(t,n))}async logout(t){return t?.openUrl||t?.openUrl===!1?this.__proxy(()=>this._client.logout(t)):this._client.logout(t)}async getAccessTokenSilently(t={}){return Dt(t),this.__proxy(()=>this._client.getTokenSilently(t))}async getAccessTokenWithPopup(t,n){return Dt(t),this.__proxy(()=>this._client.getTokenWithPopup(t,n))}async checkSession(t){return this.__proxy(()=>this._client.checkSession(t))}async handleRedirectCallback(t){return this.__proxy(()=>this._client.handleRedirectCallback(t))}async __checkSession(t){var n,o,s;const i=window.location.search;try{if((i.includes("code=")||i.includes("error="))&&i.includes("state=")&&!(!((n=this.pluginOptions)===null||n===void 0)&&n.skipRedirectCallback)){const r=await this.handleRedirectCallback(),c=r?.appState,a=(o=c?.target)!==null&&o!==void 0?o:"/";return window.history.replaceState({},"","/"),t&&t.push(a),r}await this.checkSession()}catch{window.history.replaceState({},"","/"),t&&t.push(((s=this.pluginOptions)===null||s===void 0?void 0:s.errorPath)||"/")}}async __refreshState(){this.isAuthenticated.value=await this._client.isAuthenticated(),this.user.value=await this._client.getUser(),this.idTokenClaims.value=await this._client.getIdTokenClaims(),this.isLoading.value=!1}async __proxy(t,n=!0){let o;try{o=await t(),this.error.value=null}catch(s){throw this.error.value=s,s}finally{n&&await this.__refreshState()}return o}}function Oi(e,t){return Dt(e),new Ha(e,t)}function Si(){return Ie(gi)}const Zl="",Vl="",Bl="",Xl="";var Eo=(e=>(e[e.Pending=0]="Pending",e[e.Approved=1]="Approved",e[e.Rejected=2]="Rejected",e))(Eo||{});function Pi(e){const{created_at:t,...n}=e;return{...n,status:Number(e.status),createdAt:new Date(t)}}const En=Ca("store",()=>{const e=Ie("postId"),t=Ie("comments"),n=Q(!!t?.length),o=Q(0),s=Q(""),i=Q(f(t||[])),r=Q(0),c=Ie("ApiBaseUrl"),a=Q(!1),l=Q(!1);function f(g){const b={},w=[];return g.forEach(I=>{!I.ancestor_id||Number(I.ancestor_id)===0?b[I.id]=Pi(I):w.push(I)}),w.forEach(I=>{if(I.ancestor_id in b){const O=b[I.ancestor_id];O.children=[...O.children||[],Pi(I)]}}),b}async function d(){s.value="",a.value=!0;const g=new URLSearchParams;g.append("postId",e),g.append("start",o.value.toString());const b=await fetch(`${c}/api/comments?${g}`);if(!b.ok){s.value="Load comments failed. "+b.statusText,n.value=!0,a.value=!1;return}const w=await b.json();if(w.code!==0){s.value="Load comments failed. "+w.message,n.value=!0,a.value=!1;return}i.value=f(w.data||[]);const I=w.data?.length||0;return l.value=I>=20,r.value+=I,n.value=!0,a.value=!1,w}function p(g,b,w,I,O){const{sub:T="",name:R="",picture:A="",email:H="",nickname:he=""}=w,Z={id:g,postId:e,content:b,createdAt:new Date,user:{avatar:A,email:H,name:he||R},userId:T,status:Eo.Pending,isNew:!0};if(I||O){Z.ancestorId=I,Z.parentId=O;const L=i.value[I];if(I===O)L.children||(L.children=[]),L.children.unshift(Z);else{const K=L.children.findIndex(oe=>Number(oe.id)===O);L.children.splice(K+1,0,Z)}}else Z.ancestorId=0,Z.parentId=0,i.value={[g]:Z,...i.value};r.value++}return{isLoaded:n,message:s,postId:e,comments:i,total:r,start:o,hasMore:l,loadingMore:a,loadComments:d,addComment:p}}),Za=["onSubmit"],Va={class:"ac-form-control border border-neutral bg-base-200 rounded-lg"},Ba=X("label",{class:"sr-only",for:"ac-comment"},"Your comment",-1),Xa=["onKeydown"],Ja={class:"p-2 rounded-b-lg bg-base-300 flex items-center"},Ya={key:0,class:"text-xs text-neutral-400/40"},qa={key:1,class:"ac-alert ac-alert-error mx-4 py-1"},Ga=["disabled"],Qa={key:0,class:"ac-loading ac-loading-spinner"},jo=bn({...{name:"CommentForm"},props:{noVersion:{type:Boolean},parentId:{},ancestorId:{}},emits:["close"],setup(e,{emit:t}){const n=e,o=Si(),s=En(),i=Ie("ApiBaseUrl"),r=Ie("Auth0Domain"),c="0.4.0",a=Q(),l=Q(!1),f=Q(""),d=Q("");async function p(I){if(!o.user.value)return g();if(!I.target.matches(":invalid")){l.value=!0,d.value="";try{const O=await o.getAccessTokenSilently(),T=await fetch(i+"/api/comment",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${O}`},body:JSON.stringify({comment:f.value,postId:s.postId,domain:r,ancestorId:n.ancestorId?Number(n.ancestorId):void 0,parentId:n.parentId?Number(n.parentId):void 0})}),R=await T.json();if(!T.ok||R.message)throw new Error("Failed to post comment: "+(R.message||"Unknown"));n.ancestorId||n.parentId?s.addComment(R.data,f.value,o.user.value,Number(n.ancestorId),Number(n.parentId)):s.addComment(R.data,f.value,o.user.value),f.value=""}catch(O){d.value=O.message||String(O)}l.value=!1,t("close")}}function g(){o.loginWithPopup()}function b(I){const O=navigator.userAgent.match(/Macintosh/);(O&&I.metaKey||!O&&I.ctrlKey)&&p(I)}function w(){t("close")}return Ts(()=>{a.value?.focus()}),(I,O)=>(D(),G("form",{class:"mb-6",onSubmit:da(p,["prevent"])},[X("div",Va,[Ba,Jr(X("textarea",{class:"ac-textarea ac-textarea-bordered bg-base-200 rounded-b-none focus:outline-none",id:"ac-comment",ref_key:"textarea",ref:a,rows:"3",placeholder:"Write a comment...",required:"",onKeydown:[li(b,["enter"]),li(w,["esc"])],"onUpdate:modelValue":O[0]||(O[0]=T=>f.value=T)},null,40,Xa),[[la,f.value]]),X("div",Ja,[I.noVersion?ge("",!0):(D(),G("div",Ya,"v"+ve(J(c)),1)),d.value?(D(),G("div",qa,ve(d.value),1)):ge("",!0),X("button",{class:"ac-btn ac-btn-primary ac-btn-sm ml-auto",disabled:l.value},[l.value?(D(),G("span",Qa)):ge("",!0),In("Post comment")],8,Ga)])])],40,Za))}});var el={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function Ei(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function Wt(e){return(e+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ao(e,t){var n,o,s,i,r,c=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,a=[],l="",f=t||{},d=0;function p(b){var w=el[b[1]||""],I=a[a.length-1]==b;return w?w[1]?(I?a.pop():a.push(b),w[0|I]):w[0]:b}function g(){for(var b="";a.length;)b+=p(a[a.length-1]);return b}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(b,w,I){return f[w.toLowerCase()]=I,""}).replace(/^\n+|\n+$/g,"");s=c.exec(e);)o=e.substring(d,s.index),d=c.lastIndex,n=s[0],o.match(/[^\\](\\\\)*\\$/)||((r=s[3]||s[4])?n='<pre class="code '+(s[4]?"poetry":s[2].toLowerCase())+'"><code'+(s[2]?' class="language-'+s[2].toLowerCase()+'"':"")+">"+Ei(Wt(r).replace(/^\n+|\n+$/g,""))+"</code></pre>":(r=s[6])?(r.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),i=Ao(Ei(s[5].replace(/^\s*[>*+.-]/gm,""))),r==">"?r="blockquote":(r=r.match(/\./)?"ol":"ul",i=i.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+r+">"+i+"</"+r+">"):s[8]?n='<img src="'+Wt(s[8])+'" alt="'+Wt(s[7])+'">':s[10]?(l=l.replace("<a>",'<a href="'+Wt(s[11]||f[o.toLowerCase()])+'">'),n=g()+"</a>"):s[9]?n="<a>":s[12]||s[14]?n="<"+(r="h"+(s[14]?s[14].length:s[13]>"="?1:2))+">"+Ao(s[12]||s[15],f)+"</"+r+">":s[16]?n="<code>"+Wt(s[16])+"</code>":(s[17]||s[1])&&(n=p(s[17]||"--"))),l+=o,l+=n;return(l+e.substring(d)+g()).replace(/^\n+|\n+$/g,"")}function tl(e){let t=0;for(let o=0;o<e.length;o++)t=e.charCodeAt(o)+((t<<5)-t);let n="#";for(let o=0;o<3;o++){const s=t>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n}function jn(e){return e<10?`0${e}`:`${e}`}function ji(e){const t=e.getFullYear(),n=e.getMonth()+1,o=e.getDate();return`${t}-${jn(n)}-${jn(o)}`}function Ai(e){const t=new Date,n=ji(e);if(ji(t)===n){const o=e.getHours(),s=e.getMinutes();return`${jn(o)}:${jn(s)}`}return n}const nl=["id"],ol={class:"p-6 text-base bg-base-200 rounded-lg dark:bg-gray-900"},sl={class:"flex justify-between items-center mb-2"},il={class:"flex items-center text-sm text-base-content dark:text-white"},rl={class:"avatar mr-2"},cl={key:0,class:"w-6 h-6"},al=["src","alt"],ll={class:"text-neutral-content mix-blend-color-dodge uppercase font-bold leading-6"},ul={key:0,class:"bi bi-patch-check-fill text-success ml-2"},fl=["datetime","title"],dl=["href"],hl=[X("i",{class:"bi bi-reply-fill h-4 w-4"},null,-1)],pl=["innerHTML"],ml={key:0,class:"italic mt-4 text-gray-500 mb-0 text-sm dark:text-gray-400"},gl=bn({...{name:"CommentItem"},props:{comment:{},isFirstLevel:{type:Boolean},ancestorId:{}},setup(e){const t=e,n=En();function o(s){return t.ancestorId&&n.comments[t.ancestorId]?.children?.find(c=>Number(c.id)===Number(s))?.user?.name||""}return(s,i)=>{const r=cc("comment-item",!0);return D(),G("div",{class:en(["comment-item rounded-lg my-4",{"animated flash":s.comment.isNew}]),id:"awcm-"+s.comment.id,onAnimationend:i[2]||(i[2]=c=>s.comment.isNew=!1)},[X("article",ol,[X("header",sl,[X("div",il,[X("div",rl,[s.comment.user.avatar?(D(),G("div",cl,[X("img",{class:"rounded-full max-w-full max-h-full",src:s.comment.user.avatar,alt:s.comment.user.name},null,8,al)])):(D(),G("div",{key:1,class:"avatar-char rounded-full w-6 h-6 text-center",style:Qt({"background-color":J(tl)(s.comment.user.name||"Anonymous")})},[X("span",ll,ve((s.comment.user.name||"Anonymous").substring(0,1)),1)],4))]),In(ve(s.comment.user.name),1),s.comment.isAdmin?(D(),G("i",ul)):ge("",!0),X("time",{class:"text-xs text-gray-600 ml-4 dark:text-gray-400",pubdate:"",datetime:s.comment.createdAt,title:J(Ai)(s.comment.createdAt)},ve(J(Ai)(s.comment.createdAt)),9,fl),!s.isFirstLevel&&s.comment.parent_id!==s.comment.ancestor_id?(D(),G("a",{key:1,class:"text-xs link link-hover ml-4",href:"#awcm-"+s.comment.parent_id},"reply to "+ve(o(s.comment.parent_id))+"(#"+ve(s.comment.parent_id)+")",9,dl)):ge("",!0)]),X("button",{class:"ac-btn ac-btn-sm ac-btn-circle border-0",type:"button",onClick:i[0]||(i[0]=c=>s.comment.isReplying=!s.comment.isReplying)},hl)]),X("p",{class:"text-gray-500 dark:text-gray-400",innerHTML:J(Ao)(s.comment.content)},null,8,pl),s.comment.status===J(Eo).Pending?(D(),G("p",ml,"comments normally got approved within 24 hours")):ge("",!0)]),s.comment.isReplying&&s.isFirstLevel?(D(),Mt(jo,{key:0,class:"mt-3 ml-12","no-version":"","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id),onClose:i[1]||(i[1]=c=>s.comment.isReplying=!1)},null,8,["ancestor-id","parent-id"])):ge("",!0),s.comment.children?.length?(D(!0),G(ye,{key:1},Es(s.comment.children,c=>(D(),Mt(r,{class:"ml-12",key:c.id,comment:c,"ancestor-id":Number(s.ancestorId),"is-first-level":!1},null,8,["comment","ancestor-id"]))),128)):ge("",!0),s.comment.isReplying&&!s.isFirstLevel?(D(),Mt(jo,{key:2,class:"mt-3 ml-12","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id)},null,8,["ancestor-id","parent-id"])):ge("",!0)],42,nl)}}}),bl={key:0,class:"comments-wrapper"},_l=["disabled"],yl={key:0,class:"ac-loading ac-loading-xs ac-loading-spinner"},wl={key:1,class:"pt-8 text-center"},vl=[X("span",{class:"ac-loading ac-loading-spinner"},null,-1)],kl=bn({...{name:"CommentSections"},setup(e){const t=En();t.loadComments();function n(){t.start+=20,t.loadComments()}return(o,s)=>J(t).isLoaded?(D(),G("div",bl,[(D(!0),G(ye,null,Es(Object.values(J(t).comments),i=>(D(),Mt(gl,{key:i.id,comment:i,"ancestor-id":Number(i.id),"is-first-level":""},null,8,["comment","ancestor-id"]))),128)),J(t).hasMore?(D(),G("button",{key:0,class:"ac-btn ac-btn-neutral ac-btn-sm ac-btn-block",type:"button",onClick:n,disabled:J(t).loadingMore},[J(t).loadingMore?(D(),G("span",yl)):ge("",!0),In("Load More")],8,_l)):ge("",!0)])):(D(),G("div",wl,vl))}}),xl={class:"awesome-comment"},Il={key:0,class:"ac-alert ac-alert-error mb-4"},Cl={class:"flex justify-between items-center py-2"},Tl={class:"text-lg font-bold text-base-content my-0"},Ol={key:0,class:"ac-loading ac-loading-spinner"},Sl={key:1,class:"ac-dropdown ac-dropdown-end"},Pl={key:0,class:"ac-avatar flex",tabindex:"0"},El={class:"w-6 h-6 rounded-full"},jl=["alt","src"],Al={key:1,class:"ac-btn ac-btn-ghost",tabindex:"0"},Rl={class:"ac-dropdown-content z-10 ac-menu p-2 shadow bg-base-100 rounded-box w-52",tabindex:"0"},Nl={key:0,class:"border-b border-neutral pb-2 mb-2 pointer-events-none"},Ll={class:"text-base-content"},Ml=["disabled"],Fl=["disabled"],$l=bn({__name:"App",setup(e){const t=En(),{isAuthenticated:n,isLoading:o,user:s,loginWithPopup:i,logout:r}=Si(),c=ho(()=>{const f=t.total>20||t.total===20&&t.hasMore?"20+":t.total,d=new CustomEvent("AwesomeComment:total",{bubbles:!0,cancelable:!0,detail:f});return document.body.dispatchEvent(d),f});function a(){i()}function l(){r({openUrl:!1})}return(f,d)=>(D(),G("div",xl,[J(t).message?(D(),G("div",Il,[X("p",null,ve(J(t).message),1)])):ge("",!0),X("header",Cl,[X("h2",Tl,"Discussion ("+ve(c.value)+")",1),J(o)?(D(),G("span",Ol)):(D(),G("div",Sl,[J(n)&&J(s)?(D(),G(ye,{key:0},[J(s).picture?(D(),G("label",Pl,[X("div",El,[X("img",{class:"w-full h-full block",alt:J(s).name||J(s).email,src:J(s).picture},null,8,jl)])])):(D(),G("label",Al,ve(J(s).email),1)),X("ul",Rl,[J(s).picture?(D(),G("li",Nl,[X("span",Ll,ve(J(s).email),1)])):ge("",!0),X("li",null,[X("button",{class:"border-0 bg-base-100",type:"button",disabled:J(o),onClick:l},"Logout",8,Ml)])])],64)):(D(),G("button",{key:1,class:"ac-btn ac-btn-secondary ac-btn-xs",type:"button",disabled:J(o),onClick:a},"Login",8,Fl))]))]),Te(jo),Te(kl)]))}}),Ri=[];let Ni=null;function Kl(e,t){const n=ga($l),o=ya(),s=Ni||Oi({domain:e,clientId:t,authorizationParams:{redirect_uri:location.origin}});return n.use(s),n.use(o),n}return{postId:"",apiUrl:"",domain:"",clientId:"",init(e,t,n,o,s){t??=this.postId,n??=this.apiUrl,o??=this.domain,s??=this.clientId;const i=Kl(o,s);i.provide("ApiBaseUrl",n),i.provide("postId",t),i.provide("Auth0Domain",o),i.provide("comments",Ri),i.mount(e)},async preload(e,t,n,o){this.postId=e,this.apiUrl=t,this.domain=n,this.clientId=o,Ni=Oi({domain:n,clientId:o,authorizationParams:{redirect_uri:window.location.origin}});const s=await fetch(`${t}/api/comments?postId=${e}`);s.ok||console.log("[Awesome comment] Failed to preload comments.");const i=await s.json();i.data&&Ri.push(...i.data)}}});
8
+ `)})(),t.cache&&t.cacheLocation&&console.warn("Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`."),t.cache)o=t.cache;else{if(n=t.cacheLocation||"memory",!Ci(n))throw new Error(`Invalid cache location "${n}"`);o=Ci(n)()}this.httpTimeoutMs=t.httpTimeoutInSeconds?1e3*t.httpTimeoutInSeconds:1e4,this.cookieStorage=t.legacySameSiteCookie===!1?kt:Ma,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(r=>`auth0.${this.options.clientId}.is.authenticated`)(),this.sessionCheckExpiryDays=t.sessionCheckExpiryDays||1;const s=t.useCookiesForTransactions?this.cookieStorage:Fa;var i;this.scope=Pn("openid",this.options.authorizationParams.scope,this.options.useRefreshTokens?"offline_access":""),this.transactionManager=new Ra(s,this.options.clientId,this.options.cookieDomain),this.nowProvider=this.options.nowProvider||_i,this.cacheManager=new Aa(o,o.allKeys?void 0:new Ka(o,this.options.clientId),this.nowProvider),this.domainUrl=(i=this.options.domain,/^https?:\/\//.test(i)?i:`https://${i}`),this.tokenIssuer=((r,c)=>r?r.startsWith("https://")?r:`https://${r}/`:`${c}/`)(this.options.issuer,this.domainUrl),typeof window<"u"&&window.Worker&&this.options.useRefreshTokens&&n==="memory"&&(this.worker=new $a)}_url(t){const n=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||bi)));return`${this.domainUrl}${t}&auth0Client=${n}`}_authorizeUrl(t){return this._url(`/authorize?${To(t)}`)}async _verifyIdToken(t,n,o){const s=await this.nowProvider();return(r=>{if(!r.id_token)throw new Error("ID token is required but missing");const c=(d=>{const p=d.split("."),[g,b,w]=p;if(p.length!==3||!g||!b||!w)throw new Error("ID token could not be decoded");const I=JSON.parse(vi(b)),O={__raw:d},T={};return Object.keys(I).forEach(R=>{O[R]=I[R],Na.includes(R)||(T[R]=I[R])}),{encoded:{header:g,payload:b,signature:w},header:JSON.parse(vi(g)),claims:O,user:T}})(r.id_token);if(!c.claims.iss)throw new Error("Issuer (iss) claim must be a string present in the ID token");if(c.claims.iss!==r.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected "${r.iss}", found "${c.claims.iss}"`);if(!c.user.sub)throw new Error("Subject (sub) claim must be a string present in the ID token");if(c.header.alg!=="RS256")throw new Error(`Signature algorithm of "${c.header.alg}" is not supported. Expected the ID token to be signed with "RS256".`);if(!c.claims.aud||typeof c.claims.aud!="string"&&!Array.isArray(c.claims.aud))throw new Error("Audience (aud) claim must be a string or array of strings present in the ID token");if(Array.isArray(c.claims.aud)){if(!c.claims.aud.includes(r.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but was not one of "${c.claims.aud.join(", ")}"`);if(c.claims.aud.length>1){if(!c.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(c.claims.azp!==r.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected "${r.aud}", found "${c.claims.azp}"`)}}else if(c.claims.aud!==r.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected "${r.aud}" but found "${c.claims.aud}"`);if(r.nonce){if(!c.claims.nonce)throw new Error("Nonce (nonce) claim must be a string present in the ID token");if(c.claims.nonce!==r.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected "${r.nonce}", found "${c.claims.nonce}"`)}if(r.max_age&&!Ut(c.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(c.claims.exp==null||!Ut(c.claims.exp))throw new Error("Expiration Time (exp) claim must be a number present in the ID token");if(!Ut(c.claims.iat))throw new Error("Issued At (iat) claim must be a number present in the ID token");const a=r.leeway||60,l=new Date(r.now||Date.now()),f=new Date(0);if(f.setUTCSeconds(c.claims.exp+a),l>f)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${l}) is after expiration time (${f})`);if(c.claims.nbf!=null&&Ut(c.claims.nbf)){const d=new Date(0);if(d.setUTCSeconds(c.claims.nbf-a),l<d)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${l}) is before ${d}`)}if(c.claims.auth_time!=null&&Ut(c.claims.auth_time)){const d=new Date(0);if(d.setUTCSeconds(parseInt(c.claims.auth_time)+r.max_age+a),l>d)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 (${l}) is after last auth at ${d}`)}if(r.organization){const d=r.organization.trim();if(d.startsWith("org_")){const p=d;if(!c.claims.org_id)throw new Error("Organization ID (org_id) claim must be a string present in the ID token");if(p!==c.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_id}"`)}else{const p=d.toLowerCase();if(!c.claims.org_name)throw new Error("Organization Name (org_name) claim must be a string present in the ID token");if(p!==c.claims.org_name)throw new Error(`Organization Name (org_name) claim mismatch in the ID token; expected "${p}", found "${c.claims.org_name}"`)}}return c})({iss:this.tokenIssuer,aud:this.options.clientId,id_token:t,nonce:n,organization:o,leeway:this.options.leeway,max_age:(i=this.options.authorizationParams.max_age,typeof i!="string"?i:parseInt(i,10)||void 0),now:s});var i}_processOrgHint(t){t?this.cookieStorage.save(this.orgHintCookieName,t,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain})}async _prepareAuthorizeUrl(t,n,o){const s=wi(Co()),i=wi(Co()),r=Co(),c=(f=>{const d=new Uint8Array(f);return(p=>{const g={"+":"-","/":"_","=":""};return p.replace(/[+/=]/g,b=>g[b])})(window.btoa(String.fromCharCode(...Array.from(d))))})(await(async f=>await Sn().subtle.digest({name:"SHA-256"},new TextEncoder().encode(f)))(r)),a=((f,d,p,g,b,w,I,O)=>Object.assign(Object.assign(Object.assign({client_id:f.clientId},f.authorizationParams),p),{scope:Pn(d,p.scope),response_type:"code",response_mode:O||"query",state:g,nonce:b,redirect_uri:I||f.authorizationParams.redirect_uri,code_challenge:w,code_challenge_method:"S256"}))(this.options,this.scope,t,s,i,c,t.redirect_uri||this.options.authorizationParams.redirect_uri||o,n?.response_mode),l=this._authorizeUrl(a);return{nonce:i,code_verifier:r,scope:a.scope,audience:a.audience||"default",redirect_uri:a.redirect_uri,state:s,url:l}}async loginWithPopup(t,n){var o;if(t=t||{},!(n=n||{}).popup&&(n.popup=(c=>{const a=window.screenX+(window.innerWidth-400)/2,l=window.screenY+(window.innerHeight-600)/2;return window.open("","auth0:authorize:popup",`left=${a},top=${l},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 s=await this._prepareAuthorizeUrl(t.authorizationParams||{},{response_mode:"web_message"},window.location.origin);n.popup.location.href=s.url;const i=await(c=>new Promise((a,l)=>{let f;const d=setInterval(()=>{c.popup&&c.popup.closed&&(clearInterval(d),clearTimeout(p),window.removeEventListener("message",f,!1),l(new xo(c.popup)))},1e3),p=setTimeout(()=>{clearInterval(d),l(new ko(c.popup)),window.removeEventListener("message",f,!1)},1e3*(c.timeoutInSeconds||60));f=function(g){if(g.data&&g.data.type==="authorization_response"){if(clearTimeout(p),clearInterval(d),window.removeEventListener("message",f,!1),c.popup.close(),g.data.response.error)return l(le.fromPayload(g.data.response));a(g.data.response)}},window.addEventListener("message",f)}))(Object.assign(Object.assign({},n),{timeoutInSeconds:n.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(s.state!==i.state)throw new le("state_mismatch","Invalid state");const r=((o=t.authorizationParams)===null||o===void 0?void 0:o.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:"authorization_code",code:i.code,redirect_uri:s.redirect_uri},{nonceIn:s.nonce,organization:r})}async getUser(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.user}async getIdTokenClaims(){var t;const n=await this._getIdTokenFromCache();return(t=n?.decodedToken)===null||t===void 0?void 0:t.claims}async loginWithRedirect(t={}){var n;const o=Ti(t),{openUrl:s,fragment:i,appState:r}=o,c=Ae(o,["openUrl","fragment","appState"]),a=((n=c.authorizationParams)===null||n===void 0?void 0:n.organization)||this.options.authorizationParams.organization,l=await this._prepareAuthorizeUrl(c.authorizationParams||{}),{url:f}=l,d=Ae(l,["url"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},d),{appState:r}),a&&{organization:a}));const p=i?`${f}#${i}`:f;s?await s(p):window.location.assign(p)}async handleRedirectCallback(t=window.location.href){const n=t.split("?").slice(1);if(n.length===0)throw new Error("There are no query params available for parsing.");const{state:o,code:s,error:i,error_description:r}=(d=>{d.indexOf("#")>-1&&(d=d.substring(0,d.indexOf("#")));const p=new URLSearchParams(d);return{state:p.get("state"),code:p.get("code")||void 0,error:p.get("error")||void 0,error_description:p.get("error_description")||void 0}})(n.join("")),c=this.transactionManager.get();if(!c)throw new le("missing_transaction","Invalid state");if(this.transactionManager.remove(),i)throw new vo(i,r||i,o,c.appState);if(!c.code_verifier||c.state&&c.state!==o)throw new le("state_mismatch","Invalid state");const a=c.organization,l=c.nonce,f=c.redirect_uri;return await this._requestToken(Object.assign({audience:c.audience,scope:c.scope,code_verifier:c.code_verifier,grant_type:"authorization_code",code:s},f?{redirect_uri:f}:{}),{nonceIn:l,organization:a}),{appState:c.appState}}async checkSession(t){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(t)}catch{}}async getTokenSilently(t={}){var n;const o=Object.assign(Object.assign({cacheMode:"on"},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Pn(this.scope,(n=t.authorizationParams)===null||n===void 0?void 0:n.scope)})}),s=await((i,r)=>{let c=So[r];return c||(c=i().finally(()=>{delete So[r],c=null}),So[r]=c),c})(()=>this._getTokenSilently(o),`${this.options.clientId}::${o.authorizationParams.audience}::${o.authorizationParams.scope}`);return t.detailedResponse?s:s?.access_token}async _getTokenSilently(t){const{cacheMode:n}=t,o=Ae(t,["cacheMode"]);if(n!=="off"){const s=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(s)return s}if(n!=="cache-only"){if(!await(async(s,i=3)=>{for(let r=0;r<i;r++)if(await s())return!0;return!1})(()=>Po.acquireLock("auth0.lock.getTokenSilently",5e3),10))throw new zt;try{if(window.addEventListener("pagehide",this._releaseLockOnPageHide),n!=="off"){const l=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||"default",clientId:this.options.clientId});if(l)return l}const s=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:i,access_token:r,oauthTokenScope:c,expires_in:a}=s;return Object.assign(Object.assign({id_token:i,access_token:r},c?{scope:c}:null),{expires_in:a})}finally{await Po.releaseLock("auth0.lock.getTokenSilently"),window.removeEventListener("pagehide",this._releaseLockOnPageHide)}}}async getTokenWithPopup(t={},n={}){var o;const s=Object.assign(Object.assign({},t),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),t.authorizationParams),{scope:Pn(this.scope,(o=t.authorizationParams)===null||o===void 0?void 0:o.scope)})});return n=Object.assign(Object.assign({},Oa),n),await this.loginWithPopup(s,n),(await this.cacheManager.get(new Re({scope:s.authorizationParams.scope,audience:s.authorizationParams.audience||"default",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return!!await this.getUser()}_buildLogoutUrl(t){t.clientId!==null?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const n=t.logoutParams||{},{federated:o}=n,s=Ae(n,["federated"]),i=o?"&federated":"";return this._url(`/v2/logout?${To(Object.assign({clientId:t.clientId},s))}`)+i}async logout(t={}){const n=Ti(t),{openUrl:o}=n,s=Ae(n,["openUrl"]);t.clientId===null?await this.cacheManager.clear():await this.cacheManager.clear(t.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 i=this._buildLogoutUrl(s);o?await o(i):o!==!1&&window.location.assign(i)}async _getTokenFromIFrame(t){const n=Object.assign(Object.assign({},t.authorizationParams),{prompt:"none"}),o=this.cookieStorage.get(this.orgHintCookieName);o&&!n.organization&&(n.organization=o);const{url:s,state:i,nonce:r,code_verifier:c,redirect_uri:a,scope:l,audience:f}=await this._prepareAuthorizeUrl(n,{response_mode:"web_message"},window.location.origin);try{if(window.crossOriginIsolated)throw new le("login_required","The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.");const d=t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,p=await((b,w,I=60)=>new Promise((O,T)=>{const R=window.document.createElement("iframe");R.setAttribute("width","0"),R.setAttribute("height","0"),R.style.display="none";const A=()=>{window.document.body.contains(R)&&(window.document.body.removeChild(R),window.removeEventListener("message",H,!1))};let H;const he=setTimeout(()=>{T(new zt),A()},1e3*I);H=function(Z){if(Z.origin!=w||!Z.data||Z.data.type!=="authorization_response")return;const L=Z.source;L&&L.close(),Z.data.response.error?T(le.fromPayload(Z.data.response)):O(Z.data.response),clearTimeout(he),window.removeEventListener("message",H,!1),setTimeout(A,2e3)},window.addEventListener("message",H,!1),window.document.body.appendChild(R),R.setAttribute("src",b)}))(s,this.domainUrl,d);if(i!==p.state)throw new le("state_mismatch","Invalid state");const g=await this._requestToken(Object.assign(Object.assign({},t.authorizationParams),{code_verifier:c,code:p.code,grant_type:"authorization_code",redirect_uri:a,timeout:t.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:r,organization:n.organization});return Object.assign(Object.assign({},g),{scope:l,oauthTokenScope:g.scope,audience:f})}catch(d){throw d.error==="login_required"&&this.logout({openUrl:!1}),d}}async _getTokenUsingRefreshToken(t){const n=await this.cacheManager.get(new Re({scope:t.authorizationParams.scope,audience:t.authorizationParams.audience||"default",clientId:this.options.clientId}));if(!(n&&n.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw new On(t.authorizationParams.audience||"default",t.authorizationParams.scope)}const o=t.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,s=typeof t.timeoutInSeconds=="number"?1e3*t.timeoutInSeconds:null;try{const i=await this._requestToken(Object.assign(Object.assign(Object.assign({},t.authorizationParams),{grant_type:"refresh_token",refresh_token:n&&n.refresh_token,redirect_uri:o}),s&&{timeout:s}));return Object.assign(Object.assign({},i),{scope:t.authorizationParams.scope,oauthTokenScope:i.scope,audience:t.authorizationParams.audience||"default"})}catch(i){if((i.message.indexOf("Missing Refresh Token")>-1||i.message&&i.message.indexOf("invalid refresh token")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(t);throw i}}async _saveEntryInCache(t){const{id_token:n,decodedToken:o}=t,s=Ae(t,["id_token","decodedToken"]);this.userCache.set("@@user@@",{id_token:n,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(s)}async _getIdTokenFromCache(){const t=this.options.authorizationParams.audience||"default",n=await this.cacheManager.getIdToken(new Re({clientId:this.options.clientId,audience:t,scope:this.scope})),o=this.userCache.get("@@user@@");return n&&n.id_token===o?.id_token?o:(this.userCache.set("@@user@@",n),n)}async _getEntryFromCache({scope:t,audience:n,clientId:o}){const s=await this.cacheManager.get(new Re({scope:t,audience:n,clientId:o}),60);if(s&&s.access_token){const{access_token:i,oauthTokenScope:r,expires_in:c}=s,a=await this._getIdTokenFromCache();return a&&Object.assign(Object.assign({id_token:a.id_token,access_token:i},r?{scope:r}:null),{expires_in:c})}}async _requestToken(t,n){const{nonceIn:o,organization:s}=n||{},i=await Ea(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},t),this.worker),r=await this._verifyIdToken(i.id_token,o,s);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},i),{decodedToken:r,scope:t.scope,audience:t.audience||"default"}),i.scope?{oauthTokenScope:i.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgHint(s||r.claims.org_id),Object.assign(Object.assign({},i),{decodedToken:r})}}function Dt(e){e?.redirect_uri&&(console.warn("Using `redirect_uri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version"),e.authorizationParams=e.authorizationParams||{},e.authorizationParams.redirect_uri=e.redirect_uri,delete e.redirect_uri)}const ct=()=>{console.error("Please ensure Auth0's Vue plugin is correctly installed.")},Da={isLoading:Q(!1),isAuthenticated:Q(!1),user:Q(void 0),idTokenClaims:Q(void 0),error:Q(null),loginWithPopup:ct,loginWithRedirect:ct,getAccessTokenSilently:ct,getAccessTokenWithPopup:ct,logout:ct,checkSession:ct,handleRedirectCallback:ct},Wa=Q(Da);class Ha{constructor(t,n){var o,s;this.clientOptions=t,this.pluginOptions=n,this.isLoading=Q(!0),this.isAuthenticated=Q(!1),this.user=Q({}),this.idTokenClaims=Q(),this.error=Q(null),o=this,s=["constructor"],Object.getOwnPropertyNames(Object.getPrototypeOf(o)).filter(i=>!s.includes(i)).forEach(i=>o[i]=o[i].bind(o))}install(t){this._client=new Ua(Object.assign(Object.assign({},this.clientOptions),{auth0Client:{name:"auth0-vue",version:"2.3.1"}})),this.__checkSession(t.config.globalProperties.$router),t.config.globalProperties.$auth0=this,t.provide(gi,this),Wa.value=this}async loginWithRedirect(t){return Dt(t),this._client.loginWithRedirect(t)}async loginWithPopup(t,n){return Dt(t),this.__proxy(()=>this._client.loginWithPopup(t,n))}async logout(t){return t?.openUrl||t?.openUrl===!1?this.__proxy(()=>this._client.logout(t)):this._client.logout(t)}async getAccessTokenSilently(t={}){return Dt(t),this.__proxy(()=>this._client.getTokenSilently(t))}async getAccessTokenWithPopup(t,n){return Dt(t),this.__proxy(()=>this._client.getTokenWithPopup(t,n))}async checkSession(t){return this.__proxy(()=>this._client.checkSession(t))}async handleRedirectCallback(t){return this.__proxy(()=>this._client.handleRedirectCallback(t))}async __checkSession(t){var n,o,s;const i=window.location.search;try{if((i.includes("code=")||i.includes("error="))&&i.includes("state=")&&!(!((n=this.pluginOptions)===null||n===void 0)&&n.skipRedirectCallback)){const r=await this.handleRedirectCallback(),c=r?.appState,a=(o=c?.target)!==null&&o!==void 0?o:"/";return window.history.replaceState({},"","/"),t&&t.push(a),r}await this.checkSession()}catch{window.history.replaceState({},"","/"),t&&t.push(((s=this.pluginOptions)===null||s===void 0?void 0:s.errorPath)||"/")}}async __refreshState(){this.isAuthenticated.value=await this._client.isAuthenticated(),this.user.value=await this._client.getUser(),this.idTokenClaims.value=await this._client.getIdTokenClaims(),this.isLoading.value=!1}async __proxy(t,n=!0){let o;try{o=await t(),this.error.value=null}catch(s){throw this.error.value=s,s}finally{n&&await this.__refreshState()}return o}}function Oi(e,t){return Dt(e),new Ha(e,t)}function Si(){return Ie(gi)}const Zl="",Vl="",Bl="",Xl="";var Eo=(e=>(e[e.Pending=0]="Pending",e[e.Approved=1]="Approved",e[e.Rejected=2]="Rejected",e))(Eo||{});function Pi(e){const{created_at:t,...n}=e;return{...n,status:Number(e.status),createdAt:new Date(t)}}const En=Ca("store",()=>{const e=Ie("postId"),t=Ie("comments"),n=Q(!!t?.length),o=Q(0),s=Q(""),i=Q(f(t||[])),r=Q(0),c=Ie("ApiBaseUrl"),a=Q(!1),l=Q(!1);function f(g){const b={},w=[];return g.forEach(I=>{!I.ancestor_id||Number(I.ancestor_id)===0?b[I.id]=Pi(I):w.push(I)}),w.forEach(I=>{if(I.ancestor_id in b){const O=b[I.ancestor_id];O.children=[...O.children||[],Pi(I)]}}),b}async function d(){s.value="",a.value=!0;const g=new URLSearchParams;g.append("postId",e),g.append("start",o.value.toString());const b=await fetch(`${c}/api/comments?${g}`);if(!b.ok){s.value="Load comments failed. "+b.statusText,n.value=!0,a.value=!1;return}const w=await b.json();if(w.code!==0){s.value="Load comments failed. "+w.message,n.value=!0,a.value=!1;return}i.value=f(w.data||[]);const I=w.data?.length||0;return l.value=I>=20,r.value+=I,n.value=!0,a.value=!1,w}function p(g,b,w,I,O){const{sub:T="",name:R="",picture:A="",email:H="",nickname:he=""}=w,Z={id:g,postId:e,content:b,createdAt:new Date,user:{avatar:A,email:H,name:he||R},userId:T,status:Eo.Pending,isNew:!0};if(I||O){Z.ancestorId=I,Z.parentId=O;const L=i.value[I];if(I===O)L.children||(L.children=[]),L.children.unshift(Z);else{const K=L.children.findIndex(oe=>Number(oe.id)===O);L.children.splice(K+1,0,Z)}}else Z.ancestorId=0,Z.parentId=0,i.value={[g]:Z,...i.value};r.value++}return{isLoaded:n,message:s,postId:e,comments:i,total:r,start:o,hasMore:l,loadingMore:a,loadComments:d,addComment:p}}),Za=["onSubmit"],Va={class:"ac-form-control border border-neutral bg-base-200 rounded-lg"},Ba=X("label",{class:"sr-only",for:"ac-comment"},"Your comment",-1),Xa=["onKeydown"],Ja={class:"p-2 rounded-b-lg bg-base-300 flex items-center"},Ya={key:0,class:"text-xs text-neutral-400/40"},qa={key:1,class:"ac-alert ac-alert-error mx-4 py-1"},Ga=["disabled"],Qa={key:0,class:"ac-loading ac-loading-spinner"},jo=bn({...{name:"CommentForm"},props:{noVersion:{type:Boolean},parentId:{},ancestorId:{}},emits:["close"],setup(e,{emit:t}){const n=e,o=Si(),s=En(),i=Ie("ApiBaseUrl"),r=Ie("Auth0Domain"),c="0.4.2",a=Q(),l=Q(!1),f=Q(""),d=Q("");async function p(I){if(!o.user.value)return g();if(!I.target.matches(":invalid")){l.value=!0,d.value="";try{const O=await o.getAccessTokenSilently(),T=await fetch(i+"/api/comment",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${O}`},body:JSON.stringify({comment:f.value,postId:s.postId,domain:r,ancestorId:n.ancestorId?Number(n.ancestorId):void 0,parentId:n.parentId?Number(n.parentId):void 0})}),R=await T.json();if(!T.ok||R.message)throw new Error("Failed to post comment: "+(R.message||"Unknown"));n.ancestorId||n.parentId?s.addComment(R.data,f.value,o.user.value,Number(n.ancestorId),Number(n.parentId)):s.addComment(R.data,f.value,o.user.value),f.value=""}catch(O){d.value=O.message||String(O)}l.value=!1,t("close")}}function g(){o.loginWithPopup()}function b(I){const O=navigator.userAgent.match(/Macintosh/);(O&&I.metaKey||!O&&I.ctrlKey)&&p(I)}function w(){t("close")}return Ts(()=>{a.value?.focus()}),(I,O)=>(D(),G("form",{class:"mb-6",onSubmit:da(p,["prevent"])},[X("div",Va,[Ba,Jr(X("textarea",{class:"ac-textarea ac-textarea-bordered bg-base-200 rounded-b-none focus:outline-none",id:"ac-comment",ref_key:"textarea",ref:a,rows:"3",placeholder:"Write a comment...",required:"",onKeydown:[li(b,["enter"]),li(w,["esc"])],"onUpdate:modelValue":O[0]||(O[0]=T=>f.value=T)},null,40,Xa),[[la,f.value]]),X("div",Ja,[I.noVersion?ge("",!0):(D(),G("div",Ya,"v"+ve(J(c)),1)),d.value?(D(),G("div",qa,ve(d.value),1)):ge("",!0),X("button",{class:"ac-btn ac-btn-primary ac-btn-sm ml-auto",disabled:l.value},[l.value?(D(),G("span",Qa)):ge("",!0),In("Post comment")],8,Ga)])])],40,Za))}});var el={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function Ei(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function Wt(e){return(e+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ao(e,t){var n,o,s,i,r,c=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,a=[],l="",f=t||{},d=0;function p(b){var w=el[b[1]||""],I=a[a.length-1]==b;return w?w[1]?(I?a.pop():a.push(b),w[0|I]):w[0]:b}function g(){for(var b="";a.length;)b+=p(a[a.length-1]);return b}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(b,w,I){return f[w.toLowerCase()]=I,""}).replace(/^\n+|\n+$/g,"");s=c.exec(e);)o=e.substring(d,s.index),d=c.lastIndex,n=s[0],o.match(/[^\\](\\\\)*\\$/)||((r=s[3]||s[4])?n='<pre class="code '+(s[4]?"poetry":s[2].toLowerCase())+'"><code'+(s[2]?' class="language-'+s[2].toLowerCase()+'"':"")+">"+Ei(Wt(r).replace(/^\n+|\n+$/g,""))+"</code></pre>":(r=s[6])?(r.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),i=Ao(Ei(s[5].replace(/^\s*[>*+.-]/gm,""))),r==">"?r="blockquote":(r=r.match(/\./)?"ol":"ul",i=i.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+r+">"+i+"</"+r+">"):s[8]?n='<img src="'+Wt(s[8])+'" alt="'+Wt(s[7])+'">':s[10]?(l=l.replace("<a>",'<a href="'+Wt(s[11]||f[o.toLowerCase()])+'">'),n=g()+"</a>"):s[9]?n="<a>":s[12]||s[14]?n="<"+(r="h"+(s[14]?s[14].length:s[13]>"="?1:2))+">"+Ao(s[12]||s[15],f)+"</"+r+">":s[16]?n="<code>"+Wt(s[16])+"</code>":(s[17]||s[1])&&(n=p(s[17]||"--"))),l+=o,l+=n;return(l+e.substring(d)+g()).replace(/^\n+|\n+$/g,"")}function tl(e){let t=0;for(let o=0;o<e.length;o++)t=e.charCodeAt(o)+((t<<5)-t);let n="#";for(let o=0;o<3;o++){const s=t>>o*8&255;n+=("00"+s.toString(16)).slice(-2)}return n}function jn(e){return e<10?`0${e}`:`${e}`}function ji(e){const t=e.getFullYear(),n=e.getMonth()+1,o=e.getDate();return`${t}-${jn(n)}-${jn(o)}`}function Ai(e){const t=new Date,n=ji(e);if(ji(t)===n){const o=e.getHours(),s=e.getMinutes();return`${jn(o)}:${jn(s)}`}return n}const nl=["id"],ol={class:"p-6 text-base bg-base-200 rounded-lg dark:bg-gray-900"},sl={class:"flex justify-between items-center mb-2"},il={class:"flex items-center text-sm text-base-content dark:text-white"},rl={class:"avatar mr-2"},cl={key:0,class:"w-6 h-6"},al=["src","alt"],ll={class:"text-neutral-content mix-blend-color-dodge uppercase font-bold leading-6"},ul={key:0,class:"bi bi-patch-check-fill text-success ml-2"},fl=["datetime","title"],dl=["href"],hl=[X("i",{class:"bi bi-reply-fill h-4 w-4"},null,-1)],pl=["innerHTML"],ml={key:0,class:"italic mt-4 text-gray-500 mb-0 text-sm dark:text-gray-400"},gl=bn({...{name:"CommentItem"},props:{comment:{},isFirstLevel:{type:Boolean},ancestorId:{}},setup(e){const t=e,n=En();function o(s){return t.ancestorId&&n.comments[t.ancestorId]?.children?.find(c=>Number(c.id)===Number(s))?.user?.name||""}return(s,i)=>{const r=cc("comment-item",!0);return D(),G("div",{class:en(["comment-item rounded-lg my-4",{"animated flash":s.comment.isNew}]),id:"awcm-"+s.comment.id,onAnimationend:i[2]||(i[2]=c=>s.comment.isNew=!1)},[X("article",ol,[X("header",sl,[X("div",il,[X("div",rl,[s.comment.user.avatar?(D(),G("div",cl,[X("img",{class:"rounded-full max-w-full max-h-full",src:s.comment.user.avatar,alt:s.comment.user.name},null,8,al)])):(D(),G("div",{key:1,class:"avatar-char rounded-full w-6 h-6 text-center",style:Qt({"background-color":J(tl)(s.comment.user.name||"Anonymous")})},[X("span",ll,ve((s.comment.user.name||"Anonymous").substring(0,1)),1)],4))]),In(ve(s.comment.user.name),1),s.comment.isAdmin?(D(),G("i",ul)):ge("",!0),X("time",{class:"text-xs text-gray-600 ml-4 dark:text-gray-400",pubdate:"",datetime:s.comment.createdAt,title:J(Ai)(s.comment.createdAt)},ve(J(Ai)(s.comment.createdAt)),9,fl),!s.isFirstLevel&&s.comment.parent_id!==s.comment.ancestor_id?(D(),G("a",{key:1,class:"text-xs link link-hover ml-4",href:"#awcm-"+s.comment.parent_id},"reply to "+ve(o(s.comment.parent_id))+"(#"+ve(s.comment.parent_id)+")",9,dl)):ge("",!0)]),X("button",{class:"ac-btn ac-btn-sm ac-btn-circle border-0",type:"button",onClick:i[0]||(i[0]=c=>s.comment.isReplying=!s.comment.isReplying)},hl)]),X("p",{class:"text-gray-500 dark:text-gray-400",innerHTML:J(Ao)(s.comment.content)},null,8,pl),s.comment.status===J(Eo).Pending?(D(),G("p",ml,"comments normally got approved within 24 hours")):ge("",!0)]),s.comment.isReplying&&s.isFirstLevel?(D(),Mt(jo,{key:0,class:"mt-3 ml-12","no-version":"","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id),onClose:i[1]||(i[1]=c=>s.comment.isReplying=!1)},null,8,["ancestor-id","parent-id"])):ge("",!0),s.comment.children?.length?(D(!0),G(ye,{key:1},Es(s.comment.children,c=>(D(),Mt(r,{class:"ml-12",key:c.id,comment:c,"ancestor-id":Number(s.ancestorId),"is-first-level":!1},null,8,["comment","ancestor-id"]))),128)):ge("",!0),s.comment.isReplying&&!s.isFirstLevel?(D(),Mt(jo,{key:2,class:"mt-3 ml-12","ancestor-id":Number(s.ancestorId),"parent-id":Number(s.comment.id)},null,8,["ancestor-id","parent-id"])):ge("",!0)],42,nl)}}}),bl={key:0,class:"comments-wrapper"},_l=["disabled"],yl={key:0,class:"ac-loading ac-loading-xs ac-loading-spinner"},wl={key:1,class:"pt-8 text-center"},vl=[X("span",{class:"ac-loading ac-loading-spinner"},null,-1)],kl=bn({...{name:"CommentSections"},setup(e){const t=En();t.loadComments();function n(){t.start+=20,t.loadComments()}return(o,s)=>J(t).isLoaded?(D(),G("div",bl,[(D(!0),G(ye,null,Es(Object.values(J(t).comments).reverse(),i=>(D(),Mt(gl,{key:i.id,comment:i,"ancestor-id":Number(i.id),"is-first-level":""},null,8,["comment","ancestor-id"]))),128)),J(t).hasMore?(D(),G("button",{key:0,class:"ac-btn ac-btn-neutral ac-btn-sm ac-btn-block",type:"button",onClick:n,disabled:J(t).loadingMore},[J(t).loadingMore?(D(),G("span",yl)):ge("",!0),In("Load More")],8,_l)):ge("",!0)])):(D(),G("div",wl,vl))}}),xl={class:"awesome-comment"},Il={key:0,class:"ac-alert ac-alert-error mb-4"},Cl={class:"flex justify-between items-center py-2"},Tl={class:"text-lg font-bold text-base-content my-0"},Ol={key:0,class:"ac-loading ac-loading-spinner"},Sl={key:1,class:"ac-dropdown ac-dropdown-end"},Pl={key:0,class:"ac-avatar flex",tabindex:"0"},El={class:"w-6 h-6 rounded-full"},jl=["alt","src"],Al={key:1,class:"ac-btn ac-btn-ghost",tabindex:"0"},Rl={class:"ac-dropdown-content z-10 ac-menu p-2 shadow bg-base-100 rounded-box w-52",tabindex:"0"},Nl={key:0,class:"border-b border-neutral pb-2 mb-2 pointer-events-none"},Ll={class:"text-base-content"},Ml=["disabled"],Fl=["disabled"],$l=bn({__name:"App",setup(e){const t=En(),{isAuthenticated:n,isLoading:o,user:s,loginWithPopup:i,logout:r}=Si(),c=ho(()=>{const f=t.total>20||t.total===20&&t.hasMore?"20+":t.total,d=new CustomEvent("AwesomeComment:total",{bubbles:!0,cancelable:!0,detail:f});return document.body.dispatchEvent(d),f});function a(){i()}function l(){r({openUrl:!1})}return(f,d)=>(D(),G("div",xl,[J(t).message?(D(),G("div",Il,[X("p",null,ve(J(t).message),1)])):ge("",!0),X("header",Cl,[X("h2",Tl,"Discussion ("+ve(c.value)+")",1),J(o)?(D(),G("span",Ol)):(D(),G("div",Sl,[J(n)&&J(s)?(D(),G(ye,{key:0},[J(s).picture?(D(),G("label",Pl,[X("div",El,[X("img",{class:"w-full h-full block",alt:J(s).name||J(s).email,src:J(s).picture},null,8,jl)])])):(D(),G("label",Al,ve(J(s).email),1)),X("ul",Rl,[J(s).picture?(D(),G("li",Nl,[X("span",Ll,ve(J(s).email),1)])):ge("",!0),X("li",null,[X("button",{class:"border-0 bg-base-100",type:"button",disabled:J(o),onClick:l},"Logout",8,Ml)])])],64)):(D(),G("button",{key:1,class:"ac-btn ac-btn-secondary ac-btn-xs",type:"button",disabled:J(o),onClick:a},"Login",8,Fl))]))]),Te(jo),Te(kl)]))}}),Ri=[];let Ni=null;function Kl(e,t){const n=ga($l),o=ya(),s=Ni||Oi({domain:e,clientId:t,authorizationParams:{redirect_uri:location.origin}});return n.use(s),n.use(o),n}return{postId:"",apiUrl:"",domain:"",clientId:"",init(e,t,n,o,s){t??=this.postId,n??=this.apiUrl,o??=this.domain,s??=this.clientId;const i=Kl(o,s);i.provide("ApiBaseUrl",n),i.provide("postId",t),i.provide("Auth0Domain",o),i.provide("comments",Ri),i.mount(e)},async preload(e,t,n,o){this.postId=e,this.apiUrl=t,this.domain=n,this.clientId=o,Ni=Oi({domain:n,clientId:o,authorizationParams:{redirect_uri:window.location.origin}});const s=await fetch(`${t}/api/comments?postId=${e}`);s.ok||console.log("[Awesome comment] Failed to preload comments.");const i=await s.json();i.data&&Ri.push(...i.data)}}});
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .awesome-comment{--pf:258.89 94.378% 40.941%;--sf:314 100% 37.647%;--af:174 60% 40.784%;--nf:219 14.085% 22.275%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:258.89 94.378% 51.176%;--pc:0 0% 100%;--s:314 100% 47.059%;--sc:0 0% 100%;--a:174 60% 50.98%;--ac:174.71 43.59% 15.294%;--n:219 14.085% 27.843%;--nc:0 0% 100%;--b1:0 0% 100%;--b2:0 0% 94.902%;--b3:180 1.9608% 90%;--bc:215 27.907% 16.863%;color-scheme:light}@media (prefers-color-scheme:dark){.awesome-comment{--pf:262.35 80.315% 40.157%;--sf:315.75 70.196% 40%;--af:174.69 70.335% 32.784%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:262.35 80.315% 50.196%;--pc:0 0% 100%;--s:315.75 70.196% 50%;--sc:0 0% 100%;--a:174.69 70.335% 40.98%;--ac:0 0% 100%;--n:218.18 18.033% 11.961%;--nf:222.86 17.073% 8.0392%;--nc:220 13.376% 69.216%;--b1:220 17.647% 20%;--b2:220 17.241% 17.059%;--b3:218.57 17.949% 15.294%;--bc:220 13.376% 69.216%;color-scheme:dark}}[data-theme=light] .awesome-comment{--pf:258.89 94.378% 40.941%;--sf:314 100% 37.647%;--af:174 60% 40.784%;--nf:219 14.085% 22.275%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:258.89 94.378% 51.176%;--pc:0 0% 100%;--s:314 100% 47.059%;--sc:0 0% 100%;--a:174 60% 50.98%;--ac:174.71 43.59% 15.294%;--n:219 14.085% 27.843%;--nc:0 0% 100%;--b1:0 0% 100%;--b2:0 0% 94.902%;--b3:180 1.9608% 90%;--bc:215 27.907% 16.863%;color-scheme:light}[data-theme=dark]{--pf:262.35 80.315% 40.157%;--sf:315.75 70.196% 40%;--af:174.69 70.335% 32.784%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:262.35 80.315% 50.196%;--pc:0 0% 100%;--s:315.75 70.196% 50%;--sc:0 0% 100%;--a:174.69 70.335% 40.98%;--ac:0 0% 100%;--n:218.18 18.033% 11.961%;--nf:222.86 17.073% 8.0392%;--nc:220 13.376% 69.216%;--b1:220 17.647% 20%;--b2:220 17.241% 17.059%;--b3:218.57 17.949% 15.294%;--bc:220 13.376% 69.216%;color-scheme:dark}.ac-alert{--tw-border-opacity:1;--tw-text-opacity:1;--alert-bg:hsl(var(--b2));--alert-bg-mix:hsl(var(--b1));align-content:flex-start;align-items:center;background-color:var(--alert-bg);border-color:hsl(var(--b2)/var(--tw-border-opacity));border-radius:var(--rounded-box,1rem);border-width:1px;color:hsl(var(--bc)/var(--tw-text-opacity));display:grid;gap:1rem;grid-auto-flow:row;justify-items:center;padding:1rem;text-align:center;width:100%}@media (min-width:640px){.ac-alert{grid-auto-flow:column;grid-template-columns:auto minmax(auto,1fr);justify-items:start;text-align:left}}.ac-avatar{display:inline-flex;position:relative}.ac-avatar>div{aspect-ratio:1/1;display:block;overflow:hidden}.ac-avatar img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.ac-avatar.ac-placeholder>div{align-items:center;display:flex;justify-content:center}@media (hover:hover){.ac-menu li>:not(ul):not(.ac-menu-title):not(details).ac-active,.ac-menu li>:not(ul):not(.ac-menu-title):not(details):active,.ac-menu li>details>summary:active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--nc)/var(--tw-text-opacity))}}.ac-btn{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;animation:button-pop var(--animation-btn,.25s) ease-out;background-color:hsl(var(--b2)/var(--tw-bg-opacity));border-color:transparent;border-color:hsl(var(--b2)/var(--tw-border-opacity));border-radius:var(--rounded-btn,.5rem);border-width:var(--border-btn,1px);color:hsl(var(--bc)/var(--tw-text-opacity));cursor:pointer;display:inline-flex;flex-shrink:0;flex-wrap:wrap;font-size:.875rem;font-weight:600;gap:.5rem;height:3rem;justify-content:center;line-height:1em;min-height:3rem;outline-color:hsl(var(--bc)/1);padding-left:1rem;padding-right:1rem;text-align:center;text-decoration-line:none;text-transform:var(--btn-text-case,uppercase);transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ac-btn-disabled,.ac-btn:disabled,.ac-btn[disabled]{pointer-events:none}.ac-btn-circle{border-radius:9999px;height:3rem;padding:0;width:3rem}.ac-btn-group>input[type=radio].ac-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.ac-btn-group>input[type=radio].ac-btn:before{content:attr(data-title)}.ac-btn:is(input[type=checkbox]),.ac-btn:is(input[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:auto}.ac-btn:is(input[type=checkbox]):after,.ac-btn:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.ac-dropdown{display:inline-block;position:relative}.ac-dropdown>:focus{outline:2px solid transparent;outline-offset:2px}.ac-dropdown .ac-dropdown-content{position:absolute}.ac-dropdown:is(:not(details)) .ac-dropdown-content{--tw-scale-x:.95;--tw-scale-y:.95;opacity:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:top;transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);visibility:hidden}.ac-dropdown-end .ac-dropdown-content{right:0}.ac-dropdown-left .ac-dropdown-content{bottom:auto;right:100%;top:0;transform-origin:right}.ac-dropdown-right .ac-dropdown-content{bottom:auto;left:100%;top:0;transform-origin:left}.ac-dropdown-bottom .ac-dropdown-content{bottom:auto;top:100%;transform-origin:top}.ac-dropdown-top .ac-dropdown-content{bottom:100%;top:auto;transform-origin:bottom}.ac-dropdown-end.ac-dropdown-left .ac-dropdown-content,.ac-dropdown-end.ac-dropdown-right .ac-dropdown-content{bottom:0;top:auto}.ac-dropdown.ac-dropdown-open .ac-dropdown-content,.ac-dropdown:focus-within .ac-dropdown-content,.ac-dropdown:not(.ac-dropdown-hover):focus .ac-dropdown-content{opacity:1;visibility:visible}@media (hover:hover){.ac-dropdown.ac-dropdown-hover:hover .ac-dropdown-content{opacity:1;visibility:visible}.ac-btn:hover{background-color:hsl(var(--b3)/var(--tw-bg-opacity));border-color:hsl(var(--b3)/var(--tw-border-opacity))}.ac-btn-primary:hover,.ac-btn:hover{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-primary:hover{background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity))}.ac-btn-secondary:hover{background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity))}.ac-btn-neutral:hover,.ac-btn-secondary:hover{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-neutral:hover{background-color:hsl(var(--nf)/var(--tw-bg-opacity));border-color:hsl(var(--nf)/var(--tw-border-opacity))}.ac-btn.ac-glass:hover{--glass-opacity:25%;--glass-border-opacity:15%}.ac-btn-ghost:hover{--tw-border-opacity:0;--tw-bg-opacity:.2;background-color:hsl(var(--bc)/var(--tw-bg-opacity))}.ac-btn-outline.ac-btn-primary:hover{background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-primary:hover,.ac-btn-outline.ac-btn-secondary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1}.ac-btn-outline.ac-btn-secondary:hover{background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity));color:hsl(var(--sc)/var(--tw-text-opacity))}.ac-btn-disabled:hover,.ac-btn:disabled:hover,.ac-btn[disabled]:hover{--tw-border-opacity:0;--tw-bg-opacity:.2;--tw-text-opacity:.2;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--bc)/var(--tw-text-opacity))}.ac-btn:is(input[type=checkbox]:checked):hover,.ac-btn:is(input[type=radio]:checked):hover{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity))}.ac-dropdown.ac-dropdown-hover:hover .ac-dropdown-content{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):not(.ac-active):hover,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):not(.ac-active):hover{--tw-text-opacity:1;background-color:hsl(var(--bc)/.1);color:hsl(var(--bc)/var(--tw-text-opacity));cursor:pointer;outline:2px solid transparent;outline-offset:2px}}.ac-dropdown:is(details) summary::-webkit-details-marker{display:none}.ac-form-control{display:flex;flex-direction:column}.ac-input-group>*,.ac-input-group>.ac-input,.ac-input-group>.ac-select,.ac-input-group>.ac-textarea{border-radius:0}.ac-join .ac-dropdown .ac-join-item:first-child:not(:last-child),.ac-join :first-child:not(:last-child) .ac-dropdown .ac-join-item{border-end-end-radius:inherit;border-start-end-radius:inherit}.ac-menu{display:flex;flex-direction:column;flex-wrap:wrap;font-size:.875rem;line-height:1.25rem;padding:.5rem}.ac-menu :where(li ul){margin-left:1rem;padding-left:.5rem;position:relative;white-space:nowrap}.ac-menu :where(li:not(.ac-menu-title)>:not(ul):not(details):not(.ac-menu-title)),.ac-menu :where(li:not(.ac-menu-title)>details>summary:not(.ac-menu-title)){align-content:flex-start;align-items:center;display:grid;gap:.5rem;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ac-menu li.ac-disabled{color:hsl(var(--bc)/.3);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ac-menu :where(li>.ac-menu-dropdown:not(.ac-menu-dropdown-show)){display:none}:where(.ac-menu li){align-items:stretch;display:flex;flex-direction:column;flex-shrink:0;flex-wrap:wrap;position:relative}:where(.ac-menu li) .ac-badge{justify-self:end}.ac-textarea{--tw-border-opacity:0;--tw-bg-opacity:1;background-color:hsl(var(--b1)/var(--tw-bg-opacity));border-color:hsl(var(--bc)/var(--tw-border-opacity));border-radius:var(--rounded-btn,.5rem);border-width:1px;flex-shrink:1;font-size:.875rem;line-height:1.25rem;line-height:2;min-height:3rem;padding:.5rem 1rem}.ac-alert-error{--tw-text-opacity:1;--alert-bg:hsl(var(--er));--alert-bg-mix:hsl(var(--b1));border-color:hsl(var(--er)/.2);color:hsl(var(--erc)/var(--tw-text-opacity))}.ac-avatar-group :where(.ac-avatar){--tw-border-opacity:1;border-color:hsl(var(--b1)/var(--tw-border-opacity));border-radius:9999px;border-width:4px;overflow:hidden}.ac-btn:active:focus,.ac-btn:active:hover{animation:button-pop 0s ease-out;transform:scale(var(--btn-focus-scale,.97))}.ac-btn:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px}.ac-btn-primary{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--p)/var(--tw-bg-opacity));border-color:hsl(var(--p)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity));outline-color:hsl(var(--p)/1)}.ac-btn-primary.ac-btn-active{background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity))}.ac-btn-primary.ac-btn-active,.ac-btn-secondary{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-secondary{--tw-text-opacity:1;background-color:hsl(var(--s)/var(--tw-bg-opacity));border-color:hsl(var(--s)/var(--tw-border-opacity));color:hsl(var(--sc)/var(--tw-text-opacity));outline-color:hsl(var(--s)/1)}.ac-btn-secondary.ac-btn-active{background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity))}.ac-btn-neutral,.ac-btn-secondary.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-neutral{--tw-text-opacity:1;background-color:hsl(var(--n)/var(--tw-bg-opacity));border-color:hsl(var(--n)/var(--tw-border-opacity));color:hsl(var(--nc)/var(--tw-text-opacity));outline-color:hsl(var(--n)/1)}.ac-btn-neutral.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:hsl(var(--nf)/var(--tw-bg-opacity));border-color:hsl(var(--nf)/var(--tw-border-opacity))}.ac-btn.ac-glass{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);outline-color:currentColor}.ac-btn.ac-glass.ac-btn-active{--glass-opacity:25%;--glass-border-opacity:15%}.ac-btn-ghost{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;background-color:transparent;border-color:transparent;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:currentColor;outline-color:currentColor}.ac-btn-ghost.ac-btn-active{--tw-border-opacity:0;--tw-bg-opacity:.2;background-color:hsl(var(--bc)/var(--tw-bg-opacity))}.ac-btn-outline.ac-btn-primary{--tw-text-opacity:1;color:hsl(var(--p)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-primary.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-secondary{--tw-text-opacity:1;color:hsl(var(--s)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-secondary.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity));color:hsl(var(--sc)/var(--tw-text-opacity))}.ac-btn.ac-btn-disabled,.ac-btn:disabled,.ac-btn[disabled]{--tw-border-opacity:0;--tw-bg-opacity:.2;--tw-text-opacity:.2;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--bc)/var(--tw-text-opacity))}.ac-btn-group>.ac-btn-active,.ac-btn-group>input[type=radio]:checked.ac-btn{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--p)/var(--tw-bg-opacity));border-color:hsl(var(--p)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn-group>.ac-btn-active:focus-visible,.ac-btn-group>input[type=radio]:checked.ac-btn:focus-visible{outline-color:hsl(var(--p)/1);outline-style:solid;outline-width:2px}.ac-btn:is(input[type=checkbox]:checked),.ac-btn:is(input[type=radio]:checked){--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--p)/var(--tw-bg-opacity));border-color:hsl(var(--p)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn:is(input[type=checkbox]:checked):focus-visible,.ac-btn:is(input[type=radio]:checked):focus-visible{outline-color:hsl(var(--p)/1)}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale,.98))}40%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}.ac-dropdown.ac-dropdown-open .ac-dropdown-content,.ac-dropdown:focus .ac-dropdown-content,.ac-dropdown:focus-within .ac-dropdown-content{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ac-loading{aspect-ratio:1/1;background-color:currentColor;display:inline-block;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;pointer-events:none;width:1.5rem}.ac-loading,.ac-loading-spinner{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23000'%3E%3Cstyle%3E@keyframes spinner_zKoa{to{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%25{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%25{stroke-dasharray:42 150;stroke-dashoffset:-16}95%25,to{stroke-dasharray:42 150;stroke-dashoffset:-59}}%3C/style%3E%3Cg style='transform-origin:center;animation:spinner_zKoa 2s linear infinite'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' style='stroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23000'%3E%3Cstyle%3E@keyframes spinner_zKoa{to{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%25{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%25{stroke-dasharray:42 150;stroke-dashoffset:-16}95%25,to{stroke-dasharray:42 150;stroke-dashoffset:-59}}%3C/style%3E%3Cg style='transform-origin:center;animation:spinner_zKoa 2s linear infinite'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' style='stroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite'/%3E%3C/g%3E%3C/svg%3E")}.ac-loading-xs{width:1rem}:where(.ac-menu li:empty){background-color:hsl(var(--bc)/.1);height:1px;margin:.5rem 1rem}.ac-menu :where(li ul):before{background-color:hsl(var(--bc)/.1);bottom:.75rem;content:"";left:0;position:absolute;top:.75rem;width:1px}.ac-menu :where(li:not(.ac-menu-title)>:not(ul):not(details):not(.ac-menu-title)),.ac-menu :where(li:not(.ac-menu-title)>details>summary:not(.ac-menu-title)){text-wrap:balance;border-radius:var(--rounded-btn,.5rem);padding:.5rem 1rem;text-align:left;transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):is(summary):not(.ac-active):focus-visible,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):not(summary):not(.ac-active).ac-focus,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):not(summary):not(.ac-active):focus,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):is(summary):not(.ac-active):focus-visible,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):not(summary):not(.ac-active).ac-focus,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):not(summary):not(.ac-active):focus{--tw-text-opacity:1;background-color:hsl(var(--bc)/.1);color:hsl(var(--bc)/var(--tw-text-opacity));cursor:pointer;outline:2px solid transparent;outline-offset:2px}.ac-menu li>:not(ul):not(.ac-menu-title):not(details).ac-active,.ac-menu li>:not(ul):not(.ac-menu-title):not(details):active,.ac-menu li>details>summary:active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--nc)/var(--tw-text-opacity))}.ac-menu :where(li>details>summary)::-webkit-details-marker{display:none}.ac-menu :where(li>.ac-menu-dropdown-toggle):after,.ac-menu :where(li>details>summary):after{box-shadow:2px 2px;content:"";display:block;height:.5rem;justify-self:end;margin-top:-.5rem;pointer-events:none;transform:rotate(45deg);transform-origin:75% 75%;transition-duration:.3s;transition-property:transform,margin-top;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.5rem}.ac-menu :where(li>.ac-menu-dropdown-toggle.ac-menu-dropdown-show):after,.ac-menu :where(li>details[open]>summary):after{margin-top:0;transform:rotate(225deg)}@keyframes modal-pop{0%{opacity:0}}@keyframes progress-loading{50%{background-position-x:-115%}}@keyframes radiomark{0%{box-shadow:0 0 0 12px hsl(var(--b1)) inset,0 0 0 12px hsl(var(--b1)) inset}50%{box-shadow:0 0 0 3px hsl(var(--b1)) inset,0 0 0 3px hsl(var(--b1)) inset}to{box-shadow:0 0 0 4px hsl(var(--b1)) inset,0 0 0 4px hsl(var(--b1)) inset}}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}.ac-textarea-bordered{--tw-border-opacity:.2}.ac-textarea:focus{outline-color:hsl(var(--bc)/.2);outline-offset:2px;outline-style:solid;outline-width:2px}.ac-textarea-disabled,.ac-textarea:disabled,.ac-textarea[disabled]{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:.2;background-color:hsl(var(--b2)/var(--tw-bg-opacity));border-color:hsl(var(--b2)/var(--tw-border-opacity));cursor:not-allowed}.ac-textarea-disabled::-moz-placeholder,.ac-textarea:disabled::-moz-placeholder,.ac-textarea[disabled]::-moz-placeholder{--tw-placeholder-opacity:.2;color:hsl(var(--bc)/var(--tw-placeholder-opacity))}.ac-textarea-disabled::placeholder,.ac-textarea:disabled::placeholder,.ac-textarea[disabled]::placeholder{--tw-placeholder-opacity:.2;color:hsl(var(--bc)/var(--tw-placeholder-opacity))}@keyframes toast-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.rounded-box{border-radius:var(--rounded-box,1rem)}.ac-btn-xs{font-size:.75rem;height:1.5rem;min-height:1.5rem;padding-left:.5rem;padding-right:.5rem}.ac-btn-sm{font-size:.875rem;height:2rem;min-height:2rem;padding-left:.75rem;padding-right:.75rem}.ac-btn-block{width:100%}.ac-btn-square:where(.ac-btn-xs){height:1.5rem;padding:0;width:1.5rem}.ac-btn-square:where(.ac-btn-sm){height:2rem;padding:0;width:2rem}.ac-btn-circle:where(.ac-btn-xs){border-radius:9999px;height:1.5rem;padding:0;width:1.5rem}.ac-btn-circle:where(.ac-btn-sm){border-radius:9999px;height:2rem;padding:0;width:2rem}.ac-btn-circle:where(.ac-btn-md){border-radius:9999px;height:3rem;padding:0;width:3rem}.ac-btn-circle:where(.ac-btn-lg){border-radius:9999px;height:4rem;padding:0;width:4rem}.ac-avatar.ac-online:before{background-color:hsl(var(--su)/var(--tw-bg-opacity))}.ac-avatar.ac-offline:before,.ac-avatar.ac-online:before{--tw-bg-opacity:1;border-radius:9999px;content:"";display:block;height:15%;outline-color:hsl(var(--b1)/1);outline-style:solid;outline-width:2px;position:absolute;right:7%;top:7%;width:15%;z-index:10}.ac-avatar.ac-offline:before{background-color:hsl(var(--b3)/var(--tw-bg-opacity))}.ac-btn-group .ac-btn:not(:first-child):not(:last-child){border-radius:0}.ac-btn-group .ac-btn:first-child:not(:last-child){border-bottom-left-radius:var(--rounded-btn,.5rem);border-bottom-right-radius:0;border-top-left-radius:var(--rounded-btn,.5rem);border-top-right-radius:0;margin-left:-1px;margin-top:0}.ac-btn-group .ac-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-bottom-right-radius:var(--rounded-btn,.5rem);border-top-left-radius:0;border-top-right-radius:var(--rounded-btn,.5rem)}.ac-btn-group-horizontal .ac-btn:not(:first-child):not(:last-child){border-radius:0}.ac-btn-group-horizontal .ac-btn:first-child:not(:last-child){border-bottom-left-radius:var(--rounded-btn,.5rem);border-bottom-right-radius:0;border-top-left-radius:var(--rounded-btn,.5rem);border-top-right-radius:0;margin-left:-1px;margin-top:0}.ac-btn-group-horizontal .ac-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-bottom-right-radius:var(--rounded-btn,.5rem);border-top-left-radius:0;border-top-right-radius:var(--rounded-btn,.5rem)}.ac-btn-group-vertical .ac-btn:first-child:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--rounded-btn,.5rem);border-top-right-radius:var(--rounded-btn,.5rem);margin-left:0;margin-top:-1px}.ac-btn-group-vertical .ac-btn:last-child:not(:first-child){border-bottom-left-radius:var(--rounded-btn,.5rem);border-bottom-right-radius:var(--rounded-btn,.5rem);border-top-left-radius:0;border-top-right-radius:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.z-10{z-index:10}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-4{margin-bottom:1rem;margin-top:1rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.h-4{height:1rem}.h-6{height:1.5rem}.h-full{height:100%}.max-h-full{max-height:100%}.w-4{width:1rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-full{max-width:100%}.items-center{align-items:center}.justify-between{justify-content:space-between}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-neutral{--tw-border-opacity:1;border-color:hsl(var(--n)/var(--tw-border-opacity))}.bg-base-100{--tw-bg-opacity:1;background-color:hsl(var(--b1)/var(--tw-bg-opacity))}.bg-base-200{--tw-bg-opacity:1;background-color:hsl(var(--b2)/var(--tw-bg-opacity))}.bg-base-300{--tw-bg-opacity:1;background-color:hsl(var(--b3)/var(--tw-bg-opacity))}.p-2{padding:.5rem}.p-6{padding:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-top:.5rem}.pb-2,.py-2{padding-bottom:.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-6{line-height:1.5rem}.text-base-content{--tw-text-opacity:1;color:hsl(var(--bc)/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-neutral-400\/40{color:#a3a3a366}.text-neutral-content{--tw-text-opacity:1;color:hsl(var(--nc)/var(--tw-text-opacity))}.text-success{--tw-text-opacity:1;color:hsl(var(--su)/var(--tw-text-opacity))}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.comments-wrapper p img{max-height:12.5rem;max-width:100%}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (prefers-color-scheme:dark){.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}}.bi{--width:1em;--icon:"";background-color:currentColor;-webkit-mask-image:var(--icon);mask-image:var(--icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:var(--width) var(--width);mask-size:var(--width) var(--width)}.bi,.bi:before{display:inline-block}.bi:before{content:"";width:var(--width)}.bi-fw{--width:1.513333em}.bi-blank{visibility:hidden}.bi-patch-check-fill{--icon:url(https://unpkg.com/bootstrap-icons@1.11.1/icons/patch-check-fill.svg)}.bi-reply-fill{--icon:url(https://unpkg.com/bootstrap-icons@1.11.1/icons/reply-fill.svg)}.animated{animation-duration:var(--animate-duration);animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.repeat-1{animation-iteration-count:var(--animate-repeat)}.animated.repeat-2{animation-iteration-count:calc(var(--animate-repeat)*2)}.animated.repeat-3{animation-iteration-count:calc(var(--animate-repeat)*3)}.animated.delay-1s{animation-delay:var(--animate-delay)}.animated.delay-2s{animation-delay:calc(var(--animate-delay)*2)}.animated.delay-3s{animation-delay:calc(var(--animate-delay)*3)}.animated.delay-4s{animation-delay:calc(var(--animate-delay)*4)}.animated.delay-5s{animation-delay:calc(var(--animate-delay)*5)}.animated.faster{animation-duration:calc(var(--animate-duration)/2)}.animated.fast{animation-duration:calc(var(--animate-duration)*.8)}.animated.slow{animation-duration:calc(var(--animate-duration)*2)}.animated.slower{animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animated{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.animated[class*=Out]{opacity:0}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{animation-name:flash}
1
+ .awesome-comment{--pf:258.89 94.378% 40.941%;--sf:314 100% 37.647%;--af:174 60% 40.784%;--nf:219 14.085% 22.275%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:258.89 94.378% 51.176%;--pc:0 0% 100%;--s:314 100% 47.059%;--sc:0 0% 100%;--a:174 60% 50.98%;--ac:174.71 43.59% 15.294%;--n:219 14.085% 27.843%;--nc:0 0% 100%;--b1:0 0% 100%;--b2:0 0% 94.902%;--b3:180 1.9608% 90%;--bc:215 27.907% 16.863%;color-scheme:light}@media (prefers-color-scheme:dark){.awesome-comment{--pf:262.35 80.315% 40.157%;--sf:315.75 70.196% 40%;--af:174.69 70.335% 32.784%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:262.35 80.315% 50.196%;--pc:0 0% 100%;--s:315.75 70.196% 50%;--sc:0 0% 100%;--a:174.69 70.335% 40.98%;--ac:0 0% 100%;--n:218.18 18.033% 11.961%;--nf:222.86 17.073% 8.0392%;--nc:220 13.376% 69.216%;--b1:220 17.647% 20%;--b2:220 17.241% 17.059%;--b3:218.57 17.949% 15.294%;--bc:220 13.376% 69.216%;color-scheme:dark}}[data-theme=light] .awesome-comment{--pf:258.89 94.378% 40.941%;--sf:314 100% 37.647%;--af:174 60% 40.784%;--nf:219 14.085% 22.275%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:258.89 94.378% 51.176%;--pc:0 0% 100%;--s:314 100% 47.059%;--sc:0 0% 100%;--a:174 60% 50.98%;--ac:174.71 43.59% 15.294%;--n:219 14.085% 27.843%;--nc:0 0% 100%;--b1:0 0% 100%;--b2:0 0% 94.902%;--b3:180 1.9608% 90%;--bc:215 27.907% 16.863%;color-scheme:light}[data-theme=dark]{--pf:262.35 80.315% 40.157%;--sf:315.75 70.196% 40%;--af:174.69 70.335% 32.784%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:.5rem;--rounded-badge:1.9rem;--animation-btn:.25s;--animation-input:.2s;--btn-text-case:uppercase;--btn-focus-scale:.95;--border-btn:1px;--tab-border:1px;--tab-radius:.5rem;--p:262.35 80.315% 50.196%;--pc:0 0% 100%;--s:315.75 70.196% 50%;--sc:0 0% 100%;--a:174.69 70.335% 40.98%;--ac:0 0% 100%;--n:218.18 18.033% 11.961%;--nf:222.86 17.073% 8.0392%;--nc:220 13.376% 69.216%;--b1:220 17.647% 20%;--b2:220 17.241% 17.059%;--b3:218.57 17.949% 15.294%;--bc:220 13.376% 69.216%;color-scheme:dark}.ac-alert{--tw-border-opacity:1;--tw-text-opacity:1;--alert-bg:hsl(var(--b2));--alert-bg-mix:hsl(var(--b1));align-content:flex-start;align-items:center;background-color:var(--alert-bg);border-color:hsl(var(--b2)/var(--tw-border-opacity));border-radius:var(--rounded-box,1rem);border-width:1px;color:hsl(var(--bc)/var(--tw-text-opacity));display:grid;gap:1rem;grid-auto-flow:row;justify-items:center;padding:1rem;text-align:center;width:100%}@media (min-width:640px){.ac-alert{grid-auto-flow:column;grid-template-columns:auto minmax(auto,1fr);justify-items:start;text-align:left}}.ac-avatar{display:inline-flex;position:relative}.ac-avatar>div{aspect-ratio:1/1;display:block;overflow:hidden}.ac-avatar img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.ac-avatar.ac-placeholder>div{align-items:center;display:flex;justify-content:center}@media (hover:hover){.ac-menu li>:not(ul):not(.ac-menu-title):not(details).ac-active,.ac-menu li>:not(ul):not(.ac-menu-title):not(details):active,.ac-menu li>details>summary:active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--nc)/var(--tw-text-opacity))}}.ac-btn{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;animation:button-pop var(--animation-btn,.25s) ease-out;background-color:hsl(var(--b2)/var(--tw-bg-opacity));border-color:transparent;border-color:hsl(var(--b2)/var(--tw-border-opacity));border-radius:var(--rounded-btn,.5rem);border-width:var(--border-btn,1px);color:hsl(var(--bc)/var(--tw-text-opacity));cursor:pointer;display:inline-flex;flex-shrink:0;flex-wrap:wrap;font-size:.875rem;font-weight:600;gap:.5rem;height:3rem;justify-content:center;line-height:1em;min-height:3rem;outline-color:hsl(var(--bc)/1);padding-left:1rem;padding-right:1rem;text-align:center;text-decoration-line:none;text-transform:var(--btn-text-case,uppercase);transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ac-btn-disabled,.ac-btn:disabled,.ac-btn[disabled]{pointer-events:none}.ac-btn-circle{border-radius:9999px;height:3rem;padding:0;width:3rem}.ac-btn-group>input[type=radio].ac-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.ac-btn-group>input[type=radio].ac-btn:before{content:attr(data-title)}.ac-btn:is(input[type=checkbox]),.ac-btn:is(input[type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:auto}.ac-btn:is(input[type=checkbox]):after,.ac-btn:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.ac-dropdown{display:inline-block;position:relative}.ac-dropdown>:focus{outline:2px solid transparent;outline-offset:2px}.ac-dropdown .ac-dropdown-content{position:absolute}.ac-dropdown:is(:not(details)) .ac-dropdown-content{--tw-scale-x:.95;--tw-scale-y:.95;opacity:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform-origin:top;transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);visibility:hidden}.ac-dropdown-end .ac-dropdown-content{right:0}.ac-dropdown-left .ac-dropdown-content{bottom:auto;right:100%;top:0;transform-origin:right}.ac-dropdown-right .ac-dropdown-content{bottom:auto;left:100%;top:0;transform-origin:left}.ac-dropdown-bottom .ac-dropdown-content{bottom:auto;top:100%;transform-origin:top}.ac-dropdown-top .ac-dropdown-content{bottom:100%;top:auto;transform-origin:bottom}.ac-dropdown-end.ac-dropdown-left .ac-dropdown-content,.ac-dropdown-end.ac-dropdown-right .ac-dropdown-content{bottom:0;top:auto}.ac-dropdown.ac-dropdown-open .ac-dropdown-content,.ac-dropdown:focus-within .ac-dropdown-content,.ac-dropdown:not(.ac-dropdown-hover):focus .ac-dropdown-content{opacity:1;visibility:visible}@media (hover:hover){.ac-dropdown.ac-dropdown-hover:hover .ac-dropdown-content{opacity:1;visibility:visible}.ac-btn:hover{background-color:hsl(var(--b3)/var(--tw-bg-opacity));border-color:hsl(var(--b3)/var(--tw-border-opacity))}.ac-btn-primary:hover,.ac-btn:hover{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-primary:hover{background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity))}.ac-btn-secondary:hover{background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity))}.ac-btn-neutral:hover,.ac-btn-secondary:hover{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-neutral:hover{background-color:hsl(var(--nf)/var(--tw-bg-opacity));border-color:hsl(var(--nf)/var(--tw-border-opacity))}.ac-btn.ac-glass:hover{--glass-opacity:25%;--glass-border-opacity:15%}.ac-btn-ghost:hover{--tw-border-opacity:0;--tw-bg-opacity:.2;background-color:hsl(var(--bc)/var(--tw-bg-opacity))}.ac-btn-outline.ac-btn-primary:hover{background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-primary:hover,.ac-btn-outline.ac-btn-secondary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1}.ac-btn-outline.ac-btn-secondary:hover{background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity));color:hsl(var(--sc)/var(--tw-text-opacity))}.ac-btn-disabled:hover,.ac-btn:disabled:hover,.ac-btn[disabled]:hover{--tw-border-opacity:0;--tw-bg-opacity:.2;--tw-text-opacity:.2;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--bc)/var(--tw-text-opacity))}.ac-btn:is(input[type=checkbox]:checked):hover,.ac-btn:is(input[type=radio]:checked):hover{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity))}.ac-dropdown.ac-dropdown-hover:hover .ac-dropdown-content{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):not(.ac-active):hover,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):not(.ac-active):hover{--tw-text-opacity:1;background-color:hsl(var(--bc)/.1);color:hsl(var(--bc)/var(--tw-text-opacity));cursor:pointer;outline:2px solid transparent;outline-offset:2px}}.ac-dropdown:is(details) summary::-webkit-details-marker{display:none}.ac-form-control{display:flex;flex-direction:column}.ac-input-group>*,.ac-input-group>.ac-input,.ac-input-group>.ac-select,.ac-input-group>.ac-textarea{border-radius:0}.ac-join .ac-dropdown .ac-join-item:first-child:not(:last-child),.ac-join :first-child:not(:last-child) .ac-dropdown .ac-join-item{border-end-end-radius:inherit;border-start-end-radius:inherit}.ac-menu{display:flex;flex-direction:column;flex-wrap:wrap;font-size:.875rem;line-height:1.25rem;padding:.5rem}.ac-menu :where(li ul){margin-left:1rem;padding-left:.5rem;position:relative;white-space:nowrap}.ac-menu :where(li:not(.ac-menu-title)>:not(ul):not(details):not(.ac-menu-title)),.ac-menu :where(li:not(.ac-menu-title)>details>summary:not(.ac-menu-title)){align-content:flex-start;align-items:center;display:grid;gap:.5rem;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ac-menu li.ac-disabled{color:hsl(var(--bc)/.3);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ac-menu :where(li>.ac-menu-dropdown:not(.ac-menu-dropdown-show)){display:none}:where(.ac-menu li){align-items:stretch;display:flex;flex-direction:column;flex-shrink:0;flex-wrap:wrap;position:relative}:where(.ac-menu li) .ac-badge{justify-self:end}.ac-textarea{--tw-border-opacity:0;--tw-bg-opacity:1;background-color:hsl(var(--b1)/var(--tw-bg-opacity));border-color:hsl(var(--bc)/var(--tw-border-opacity));border-radius:var(--rounded-btn,.5rem);border-width:1px;flex-shrink:1;font-size:.875rem;line-height:1.25rem;line-height:2;min-height:3rem;padding:.5rem 1rem}.ac-alert-error{--tw-text-opacity:1;--alert-bg:hsl(var(--er));--alert-bg-mix:hsl(var(--b1));border-color:hsl(var(--er)/.2);color:hsl(var(--erc)/var(--tw-text-opacity))}.ac-avatar-group :where(.ac-avatar){--tw-border-opacity:1;border-color:hsl(var(--b1)/var(--tw-border-opacity));border-radius:9999px;border-width:4px;overflow:hidden}.ac-btn:active:focus,.ac-btn:active:hover{animation:button-pop 0s ease-out;transform:scale(var(--btn-focus-scale,.97))}.ac-btn:focus-visible{outline-offset:2px;outline-style:solid;outline-width:2px}.ac-btn-primary{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--p)/var(--tw-bg-opacity));border-color:hsl(var(--p)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity));outline-color:hsl(var(--p)/1)}.ac-btn-primary.ac-btn-active{background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity))}.ac-btn-primary.ac-btn-active,.ac-btn-secondary{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-secondary{--tw-text-opacity:1;background-color:hsl(var(--s)/var(--tw-bg-opacity));border-color:hsl(var(--s)/var(--tw-border-opacity));color:hsl(var(--sc)/var(--tw-text-opacity));outline-color:hsl(var(--s)/1)}.ac-btn-secondary.ac-btn-active{background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity))}.ac-btn-neutral,.ac-btn-secondary.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1}.ac-btn-neutral{--tw-text-opacity:1;background-color:hsl(var(--n)/var(--tw-bg-opacity));border-color:hsl(var(--n)/var(--tw-border-opacity));color:hsl(var(--nc)/var(--tw-text-opacity));outline-color:hsl(var(--n)/1)}.ac-btn-neutral.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:hsl(var(--nf)/var(--tw-bg-opacity));border-color:hsl(var(--nf)/var(--tw-border-opacity))}.ac-btn.ac-glass{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);outline-color:currentColor}.ac-btn.ac-glass.ac-btn-active{--glass-opacity:25%;--glass-border-opacity:15%}.ac-btn-ghost{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;background-color:transparent;border-color:transparent;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:currentColor;outline-color:currentColor}.ac-btn-ghost.ac-btn-active{--tw-border-opacity:0;--tw-bg-opacity:.2;background-color:hsl(var(--bc)/var(--tw-bg-opacity))}.ac-btn-outline.ac-btn-primary{--tw-text-opacity:1;color:hsl(var(--p)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-primary.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--pf)/var(--tw-bg-opacity));border-color:hsl(var(--pf)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-secondary{--tw-text-opacity:1;color:hsl(var(--s)/var(--tw-text-opacity))}.ac-btn-outline.ac-btn-secondary.ac-btn-active{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--sf)/var(--tw-bg-opacity));border-color:hsl(var(--sf)/var(--tw-border-opacity));color:hsl(var(--sc)/var(--tw-text-opacity))}.ac-btn.ac-btn-disabled,.ac-btn:disabled,.ac-btn[disabled]{--tw-border-opacity:0;--tw-bg-opacity:.2;--tw-text-opacity:.2;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--bc)/var(--tw-text-opacity))}.ac-btn-group>.ac-btn-active,.ac-btn-group>input[type=radio]:checked.ac-btn{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--p)/var(--tw-bg-opacity));border-color:hsl(var(--p)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn-group>.ac-btn-active:focus-visible,.ac-btn-group>input[type=radio]:checked.ac-btn:focus-visible{outline-color:hsl(var(--p)/1);outline-style:solid;outline-width:2px}.ac-btn:is(input[type=checkbox]:checked),.ac-btn:is(input[type=radio]:checked){--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--p)/var(--tw-bg-opacity));border-color:hsl(var(--p)/var(--tw-border-opacity));color:hsl(var(--pc)/var(--tw-text-opacity))}.ac-btn:is(input[type=checkbox]:checked):focus-visible,.ac-btn:is(input[type=radio]:checked):focus-visible{outline-color:hsl(var(--p)/1)}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale,.98))}40%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}.ac-dropdown.ac-dropdown-open .ac-dropdown-content,.ac-dropdown:focus .ac-dropdown-content,.ac-dropdown:focus-within .ac-dropdown-content{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ac-loading{aspect-ratio:1/1;background-color:currentColor;display:inline-block;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;pointer-events:none;width:1.5rem}.ac-loading,.ac-loading-spinner{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23000'%3E%3Cstyle%3E@keyframes spinner_zKoa{to{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%25{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%25{stroke-dasharray:42 150;stroke-dashoffset:-16}95%25,to{stroke-dasharray:42 150;stroke-dashoffset:-59}}%3C/style%3E%3Cg style='transform-origin:center;animation:spinner_zKoa 2s linear infinite'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' style='stroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' stroke='%23000'%3E%3Cstyle%3E@keyframes spinner_zKoa{to{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%25{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%25{stroke-dasharray:42 150;stroke-dashoffset:-16}95%25,to{stroke-dasharray:42 150;stroke-dashoffset:-59}}%3C/style%3E%3Cg style='transform-origin:center;animation:spinner_zKoa 2s linear infinite'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' style='stroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite'/%3E%3C/g%3E%3C/svg%3E")}.ac-loading-xs{width:1rem}:where(.ac-menu li:empty){background-color:hsl(var(--bc)/.1);height:1px;margin:.5rem 1rem}.ac-menu :where(li ul):before{background-color:hsl(var(--bc)/.1);bottom:.75rem;content:"";left:0;position:absolute;top:.75rem;width:1px}.ac-menu :where(li:not(.ac-menu-title)>:not(ul):not(details):not(.ac-menu-title)),.ac-menu :where(li:not(.ac-menu-title)>details>summary:not(.ac-menu-title)){text-wrap:balance;border-radius:var(--rounded-btn,.5rem);padding:.5rem 1rem;text-align:left;transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):is(summary):not(.ac-active):focus-visible,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):not(summary):not(.ac-active).ac-focus,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>:not(ul):not(details):not(.ac-menu-title)):not(summary):not(.ac-active):focus,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):is(summary):not(.ac-active):focus-visible,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):not(summary):not(.ac-active).ac-focus,:where(.ac-menu li:not(.ac-menu-title):not(.ac-disabled)>details>summary:not(.ac-menu-title)):not(summary):not(.ac-active):focus{--tw-text-opacity:1;background-color:hsl(var(--bc)/.1);color:hsl(var(--bc)/var(--tw-text-opacity));cursor:pointer;outline:2px solid transparent;outline-offset:2px}.ac-menu li>:not(ul):not(.ac-menu-title):not(details).ac-active,.ac-menu li>:not(ul):not(.ac-menu-title):not(details):active,.ac-menu li>details>summary:active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(var(--n)/var(--tw-bg-opacity));color:hsl(var(--nc)/var(--tw-text-opacity))}.ac-menu :where(li>details>summary)::-webkit-details-marker{display:none}.ac-menu :where(li>.ac-menu-dropdown-toggle):after,.ac-menu :where(li>details>summary):after{box-shadow:2px 2px;content:"";display:block;height:.5rem;justify-self:end;margin-top:-.5rem;pointer-events:none;transform:rotate(45deg);transform-origin:75% 75%;transition-duration:.3s;transition-property:transform,margin-top;transition-timing-function:cubic-bezier(.4,0,.2,1);width:.5rem}.ac-menu :where(li>.ac-menu-dropdown-toggle.ac-menu-dropdown-show):after,.ac-menu :where(li>details[open]>summary):after{margin-top:0;transform:rotate(225deg)}@keyframes modal-pop{0%{opacity:0}}@keyframes progress-loading{50%{background-position-x:-115%}}@keyframes radiomark{0%{box-shadow:0 0 0 12px hsl(var(--b1)) inset,0 0 0 12px hsl(var(--b1)) inset}50%{box-shadow:0 0 0 3px hsl(var(--b1)) inset,0 0 0 3px hsl(var(--b1)) inset}to{box-shadow:0 0 0 4px hsl(var(--b1)) inset,0 0 0 4px hsl(var(--b1)) inset}}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}.ac-textarea-bordered{--tw-border-opacity:.2}.ac-textarea:focus{outline-color:hsl(var(--bc)/.2);outline-offset:2px;outline-style:solid;outline-width:2px}.ac-textarea-disabled,.ac-textarea:disabled,.ac-textarea[disabled]{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:.2;background-color:hsl(var(--b2)/var(--tw-bg-opacity));border-color:hsl(var(--b2)/var(--tw-border-opacity));cursor:not-allowed}.ac-textarea-disabled::-moz-placeholder,.ac-textarea:disabled::-moz-placeholder,.ac-textarea[disabled]::-moz-placeholder{--tw-placeholder-opacity:.2;color:hsl(var(--bc)/var(--tw-placeholder-opacity))}.ac-textarea-disabled::placeholder,.ac-textarea:disabled::placeholder,.ac-textarea[disabled]::placeholder{--tw-placeholder-opacity:.2;color:hsl(var(--bc)/var(--tw-placeholder-opacity))}@keyframes toast-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.rounded-box{border-radius:var(--rounded-box,1rem)}.ac-btn-xs{font-size:.75rem;height:1.5rem;min-height:1.5rem;padding-left:.5rem;padding-right:.5rem}.ac-btn-sm{font-size:.875rem;height:2rem;min-height:2rem;padding-left:.75rem;padding-right:.75rem}.ac-btn-block{width:100%}.ac-btn-square:where(.ac-btn-xs){height:1.5rem;padding:0;width:1.5rem}.ac-btn-square:where(.ac-btn-sm){height:2rem;padding:0;width:2rem}.ac-btn-circle:where(.ac-btn-xs){border-radius:9999px;height:1.5rem;padding:0;width:1.5rem}.ac-btn-circle:where(.ac-btn-sm){border-radius:9999px;height:2rem;padding:0;width:2rem}.ac-btn-circle:where(.ac-btn-md){border-radius:9999px;height:3rem;padding:0;width:3rem}.ac-btn-circle:where(.ac-btn-lg){border-radius:9999px;height:4rem;padding:0;width:4rem}.ac-avatar.ac-online:before{background-color:hsl(var(--su)/var(--tw-bg-opacity))}.ac-avatar.ac-offline:before,.ac-avatar.ac-online:before{--tw-bg-opacity:1;border-radius:9999px;content:"";display:block;height:15%;outline-color:hsl(var(--b1)/1);outline-style:solid;outline-width:2px;position:absolute;right:7%;top:7%;width:15%;z-index:10}.ac-avatar.ac-offline:before{background-color:hsl(var(--b3)/var(--tw-bg-opacity))}.ac-btn-group .ac-btn:not(:first-child):not(:last-child){border-radius:0}.ac-btn-group .ac-btn:first-child:not(:last-child){border-bottom-left-radius:var(--rounded-btn,.5rem);border-bottom-right-radius:0;border-top-left-radius:var(--rounded-btn,.5rem);border-top-right-radius:0;margin-left:-1px;margin-top:0}.ac-btn-group .ac-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-bottom-right-radius:var(--rounded-btn,.5rem);border-top-left-radius:0;border-top-right-radius:var(--rounded-btn,.5rem)}.ac-btn-group-horizontal .ac-btn:not(:first-child):not(:last-child){border-radius:0}.ac-btn-group-horizontal .ac-btn:first-child:not(:last-child){border-bottom-left-radius:var(--rounded-btn,.5rem);border-bottom-right-radius:0;border-top-left-radius:var(--rounded-btn,.5rem);border-top-right-radius:0;margin-left:-1px;margin-top:0}.ac-btn-group-horizontal .ac-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-bottom-right-radius:var(--rounded-btn,.5rem);border-top-left-radius:0;border-top-right-radius:var(--rounded-btn,.5rem)}.ac-btn-group-vertical .ac-btn:first-child:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--rounded-btn,.5rem);border-top-right-radius:var(--rounded-btn,.5rem);margin-left:0;margin-top:-1px}.ac-btn-group-vertical .ac-btn:last-child:not(:first-child){border-bottom-left-radius:var(--rounded-btn,.5rem);border-bottom-right-radius:var(--rounded-btn,.5rem);border-top-left-radius:0;border-top-right-radius:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.z-10{z-index:10}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-4{margin-bottom:1rem;margin-top:1rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.h-4{height:1rem}.h-6{height:1.5rem}.h-full{height:100%}.max-h-full{max-height:100%}.w-4{width:1rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-full{max-width:100%}.items-center{align-items:center}.justify-between{justify-content:space-between}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-neutral{--tw-border-opacity:1;border-color:hsl(var(--n)/var(--tw-border-opacity))}.bg-base-100{--tw-bg-opacity:1;background-color:hsl(var(--b1)/var(--tw-bg-opacity))}.bg-base-200{--tw-bg-opacity:1;background-color:hsl(var(--b2)/var(--tw-bg-opacity))}.bg-base-300{--tw-bg-opacity:1;background-color:hsl(var(--b3)/var(--tw-bg-opacity))}.p-2{padding:.5rem}.p-6{padding:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-top:.5rem}.pb-2,.py-2{padding-bottom:.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-6{line-height:1.5rem}.text-base-content{--tw-text-opacity:1;color:hsl(var(--bc)/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-neutral-400\/40{color:#a3a3a366}.text-neutral-content{--tw-text-opacity:1;color:hsl(var(--nc)/var(--tw-text-opacity))}.text-success{--tw-text-opacity:1;color:hsl(var(--su)/var(--tw-text-opacity))}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.comments-wrapper p img{max-height:12.5rem;max-width:100%}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (prefers-color-scheme:dark){.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}}.awesome-comment .bi{--width:1em;--icon:"";background-color:currentColor;display:inline-block;-webkit-mask-image:var(--icon);mask-image:var(--icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:var(--width) var(--width);mask-size:var(--width) var(--width)}.awesome-comment .bi:before{content:"";display:inline-block;width:var(--width)}.awesome-comment .bi-fw{--width:1.513333em}.awesome-comment .bi-blank{visibility:hidden}.awesome-comment .bi-patch-check-fill{--icon:url(https://unpkg.com/bootstrap-icons@1.11.1/icons/patch-check-fill.svg)}.awesome-comment .bi-reply-fill{--icon:url(https://unpkg.com/bootstrap-icons@1.11.1/icons/reply-fill.svg)}.animated{animation-duration:var(--animate-duration);animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.repeat-1{animation-iteration-count:var(--animate-repeat)}.animated.repeat-2{animation-iteration-count:calc(var(--animate-repeat)*2)}.animated.repeat-3{animation-iteration-count:calc(var(--animate-repeat)*3)}.animated.delay-1s{animation-delay:var(--animate-delay)}.animated.delay-2s{animation-delay:calc(var(--animate-delay)*2)}.animated.delay-3s{animation-delay:calc(var(--animate-delay)*3)}.animated.delay-4s{animation-delay:calc(var(--animate-delay)*4)}.animated.delay-5s{animation-delay:calc(var(--animate-delay)*5)}.animated.faster{animation-duration:calc(var(--animate-duration)/2)}.animated.fast{animation-duration:calc(var(--animate-duration)*.8)}.animated.slow{animation-duration:calc(var(--animate-duration)*2)}.animated.slower{animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animated{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.animated[class*=Out]{opacity:0}}:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{animation-name:flash}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roudanio/awesome-comment",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@auth0/auth0-vue": "^2.3.1",
@@ -13,16 +13,16 @@
13
13
  },
14
14
  "devDependencies": {
15
15
  "@tailwindcss/typography": "^0.5.10",
16
- "@types/node": "^20.6.3",
16
+ "@types/node": "^20.7.0",
17
17
  "@vitejs/plugin-vue": "^4.3.4",
18
18
  "autoprefixer": "^10.4.16",
19
- "daisyui": "^3.7.7",
19
+ "daisyui": "^3.8.1",
20
20
  "postcss": "^8.4.30",
21
21
  "pug": "^3.0.2",
22
22
  "tailwindcss": "^3.3.3",
23
23
  "typescript": "^5.2.2",
24
24
  "vite": "^4.4.9",
25
- "vue-tsc": "^1.8.13"
25
+ "vue-tsc": "^1.8.15"
26
26
  },
27
27
  "author": {
28
28
  "email": "meathill@gmail.com",