altcha 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/altcha.d.ts +9 -0
- package/dist/altcha.js +2295 -1421
- package/dist/altcha.umd.cjs +9 -2
- package/dist_external/altcha.d.ts +9 -0
- package/dist_external/altcha.js +2287 -1387
- package/dist_external/altcha.umd.cjs +9 -2
- package/package.json +7 -7
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
(function(H,U){typeof exports=="object"&&typeof module<"u"?U(exports):typeof define=="function"&&define.amd?define(["exports"],U):(H=typeof globalThis<"u"?globalThis:H||self,U(H.altcha={}))})(this,function(H){"use strict";var Rn=Object.defineProperty;var Ln=(H,U,z)=>U in H?Rn(H,U,{enumerable:!0,configurable:!0,writable:!0,value:z}):H[U]=z;var Y=(H,U,z)=>Ln(H,typeof U!="symbol"?U+"":U,z);var U=typeof document<"u"?document.currentScript:null;function z(){}function xt(n,e){for(const t in e)n[t]=e[t];return n}function Fe(n){return n()}function Ne(){return Object.create(null)}function ge(n){n.forEach(Fe)}function je(n){return typeof n=="function"}function At(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}function It(n){return Object.keys(n).length===0}function Rt(n,e,t,r){if(n){const o=Ve(n,e,t,r);return n[0](o)}}function Ve(n,e,t,r){return n[1]&&r?xt(t.ctx.slice(),n[1](r(e))):t.ctx}function Lt(n,e,t,r){if(n[2]&&r){const o=n[2](r(t));if(e.dirty===void 0)return o;if(typeof o=="object"){const l=[],s=Math.max(e.dirty.length,o.length);for(let h=0;h<s;h+=1)l[h]=e.dirty[h]|o[h];return l}return e.dirty|o}return e.dirty}function St(n,e,t,r,o,l){if(o){const s=Ve(e,t,r,l);n.p(s,o)}}function Tt(n){if(n.ctx.length>32){const e=[],t=n.ctx.length/32;for(let r=0;r<t;r++)e[r]=-1;return e}return-1}function R(n,e){n.appendChild(e)}function $(n,e,t){n.insertBefore(e,t||null)}function j(n){n.parentNode&&n.parentNode.removeChild(n)}function M(n){return document.createElement(n)}function K(n){return document.createElementNS("http://www.w3.org/2000/svg",n)}function Dt(n){return document.createTextNode(n)}function Q(){return Dt(" ")}function Le(n,e,t,r){return n.addEventListener(e,t,r),()=>n.removeEventListener(e,t,r)}function c(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function Pt(n){return Array.from(n.childNodes)}function Ue(n,e,t){n.classList.toggle(e,!!t)}function Mt(n,e,{bubbles:t=!1,cancelable:r=!1}={}){return new CustomEvent(n,{detail:e,bubbles:t,cancelable:r})}function Ft(n){const e={};return n.childNodes.forEach(t=>{e[t.slot||"default"]=!0}),e}let me;function be(n){me=n}function Se(){if(!me)throw new Error("Function called outside component initialization");return me}function Nt(n){Se().$$.on_mount.push(n)}function jt(n){Se().$$.on_destroy.push(n)}function Vt(){const n=Se();return(e,t,{cancelable:r=!1}={})=>{const o=n.$$.callbacks[e];if(o){const l=Mt(e,t,{cancelable:r});return o.slice().forEach(s=>{s.call(n,l)}),!l.defaultPrevented}return!0}}const ce=[],Ce=[];let ue=[];const $e=[],Oe=Promise.resolve();let Te=!1;function He(){Te||(Te=!0,Oe.then(p))}function Ut(){return He(),Oe}function De(n){ue.push(n)}const Pe=new Set;let ae=0;function p(){if(ae!==0)return;const n=me;do{try{for(;ae<ce.length;){const e=ce[ae];ae++,be(e),$t(e.$$)}}catch(e){throw ce.length=0,ae=0,e}for(be(null),ce.length=0,ae=0;Ce.length;)Ce.pop()();for(let e=0;e<ue.length;e+=1){const t=ue[e];Pe.has(t)||(Pe.add(t),t())}ue.length=0}while(ce.length);for(;$e.length;)$e.pop()();Te=!1,Pe.clear(),be(n)}function $t(n){if(n.fragment!==null){n.update(),ge(n.before_update);const e=n.dirty;n.dirty=[-1],n.fragment&&n.fragment.p(n.ctx,e),n.after_update.forEach(De)}}function Ot(n){const e=[],t=[];ue.forEach(r=>n.indexOf(r)===-1?e.push(r):t.push(r)),t.forEach(r=>r()),ue=e}const xe=new Set;let Ht;function Be(n,e){n&&n.i&&(xe.delete(n),n.i(e))}function Bt(n,e,t,r){if(n&&n.o){if(xe.has(n))return;xe.add(n),Ht.c.push(()=>{xe.delete(n)}),n.o(e)}}function qt(n,e,t){const{fragment:r,after_update:o}=n.$$;r&&r.m(e,t),De(()=>{const l=n.$$.on_mount.map(Fe).filter(je);n.$$.on_destroy?n.$$.on_destroy.push(...l):ge(l),n.$$.on_mount=[]}),o.forEach(De)}function Zt(n,e){const t=n.$$;t.fragment!==null&&(Ot(t.after_update),ge(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Wt(n,e){n.$$.dirty[0]===-1&&(ce.push(n),He(),n.$$.dirty.fill(0)),n.$$.dirty[e/31|0]|=1<<e%31}function Gt(n,e,t,r,o,l,s=null,h=[-1]){const d=me;be(n);const u=n.$$={fragment:null,ctx:[],props:l,update:z,not_equal:o,bound:Ne(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(d?d.$$.context:[])),callbacks:Ne(),dirty:h,skip_bound:!1,root:e.target||d.$$.root};s&&s(u.root);let A=!1;if(u.ctx=t?t(n,e.props||{},(_,B,...q)=>{const Z=q.length?q[0]:B;return u.ctx&&o(u.ctx[_],u.ctx[_]=Z)&&(!u.skip_bound&&u.bound[_]&&u.bound[_](Z),A&&Wt(n,_)),B}):[],u.update(),A=!0,ge(u.before_update),u.fragment=r?r(u.ctx):!1,e.target){if(e.hydrate){const _=Pt(e.target);u.fragment&&u.fragment.l(_),_.forEach(j)}else u.fragment&&u.fragment.c();e.intro&&Be(n.$$.fragment),qt(n,e.target,e.anchor),p()}be(d)}let qe;typeof HTMLElement=="function"&&(qe=class extends HTMLElement{constructor(e,t,r){super();Y(this,"$$ctor");Y(this,"$$s");Y(this,"$$c");Y(this,"$$cn",!1);Y(this,"$$d",{});Y(this,"$$r",!1);Y(this,"$$p_d",{});Y(this,"$$l",{});Y(this,"$$l_u",new Map);this.$$ctor=e,this.$$s=t,r&&this.attachShadow({mode:"open"})}addEventListener(e,t,r){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const o=this.$$c.$on(e,t);this.$$l_u.set(t,o)}super.addEventListener(e,t,r)}removeEventListener(e,t,r){if(super.removeEventListener(e,t,r),this.$$c){const o=this.$$l_u.get(t);o&&(o(),this.$$l_u.delete(t))}if(this.$$l[e]){const o=this.$$l[e].indexOf(t);o>=0&&this.$$l[e].splice(o,1)}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(l){return()=>{let s;return{c:function(){s=M("slot"),l!=="default"&&c(s,"name",l)},m:function(u,A){$(u,s,A)},d:function(u){u&&j(s)}}}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},r=Ft(this);for(const l of this.$$s)l in r&&(t[l]=[e(l)]);for(const l of this.attributes){const s=this.$$g_p(l.name);s in this.$$d||(this.$$d[s]=Ae(s,l.value,this.$$p_d,"toProp"))}for(const l in this.$$p_d)!(l in this.$$d)&&this[l]!==void 0&&(this.$$d[l]=this[l],delete this[l]);this.$$c=new this.$$ctor({target:this.shadowRoot||this,props:{...this.$$d,$$slots:t,$$scope:{ctx:[]}}});const o=()=>{this.$$r=!0;for(const l in this.$$p_d)if(this.$$d[l]=this.$$c.$$.ctx[this.$$c.$$.props[l]],this.$$p_d[l].reflect){const s=Ae(l,this.$$d[l],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[l].attribute||l):this.setAttribute(this.$$p_d[l].attribute||l,s)}this.$$r=!1};this.$$c.$$.after_update.push(o),o();for(const l in this.$$l)for(const s of this.$$l[l]){const h=this.$$c.$on(l,s);this.$$l_u.set(s,h)}this.$$l={}}}attributeChangedCallback(e,t,r){var o;this.$$r||(e=this.$$g_p(e),this.$$d[e]=Ae(e,r,this.$$p_d,"toProp"),(o=this.$$c)==null||o.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$c=void 0)})}$$g_p(e){return Object.keys(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Ae(n,e,t,r){var l;const o=(l=t[n])==null?void 0:l.type;if(e=o==="Boolean"&&typeof e!="boolean"?e!=null:e,!r||!t[n])return e;if(r==="toAttribute")switch(o){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e??null;default:return e}else switch(o){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}function Yt(n,e,t,r,o,l){let s=class extends qe{constructor(){super(n,t,o),this.$$p_d=e}static get observedAttributes(){return Object.keys(e).map(h=>(e[h].attribute||h).toLowerCase())}};return Object.keys(e).forEach(h=>{Object.defineProperty(s.prototype,h,{get(){return this.$$c&&h in this.$$c?this.$$c[h]:this.$$d[h]},set(d){var u;d=Ae(h,d,e),this.$$d[h]=d,(u=this.$$c)==null||u.$set({[h]:d})}})}),r.forEach(h=>{Object.defineProperty(s.prototype,h,{get(){var d;return(d=this.$$c)==null?void 0:d[h]}})}),n.element=s,s}class Xt{constructor(){Y(this,"$$");Y(this,"$$set")}$destroy(){Zt(this,1),this.$destroy=z}$on(e,t){if(!je(t))return z;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(t),()=>{const o=r.indexOf(t);o!==-1&&r.splice(o,1)}}$set(e){this.$$set&&!It(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Jt="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Jt);const Ze=new TextEncoder;function zt(n){return[...new Uint8Array(n)].map(e=>e.toString(16).padStart(2,"0")).join("")}async function Kt(n,e="SHA-256",t=1e5){const r=Date.now().toString(16);n||(n=Math.round(Math.random()*t));const o=await We(r,n,e);return{algorithm:e,challenge:o,salt:r,signature:""}}async function We(n,e,t){if(typeof crypto>"u"||!("subtle"in crypto)||!("digest"in crypto.subtle))throw new Error("Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).");return zt(await crypto.subtle.digest(t.toUpperCase(),Ze.encode(n+e)))}function Qt(n,e,t="SHA-256",r=1e6,o=0){const l=new AbortController,s=Date.now();return{promise:(async()=>{for(let d=o;d<=r;d+=1){if(l.signal.aborted)return null;if(await We(e,d,t)===n)return{number:d,took:Date.now()-s}}return null})(),controller:l}}function en(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{}}function tn(n){const e=atob(n),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}function nn(n,e=12){const t=new Uint8Array(e);for(let r=0;r<e;r++)t[r]=n%256,n=Math.floor(n/256);return t}async function rn(n,e="",t=1e6,r=0){const o="AES-GCM",l=new AbortController,s=Date.now(),h=async()=>{for(let A=r;A<=t;A+=1){if(l.signal.aborted||!d||!u)return null;try{const _=await crypto.subtle.decrypt({name:o,iv:nn(A)},d,u);if(_)return{clearText:new TextDecoder().decode(_),took:Date.now()-s}}catch{}}return null};let d=null,u=null;try{u=tn(n);const A=await crypto.subtle.digest("SHA-256",Ze.encode(e));d=await crypto.subtle.importKey("raw",A,o,!1,["decrypt"])}catch{return{promise:Promise.reject(),controller:l}}return{promise:h(),controller:l}}var g=(n=>(n.ERROR="error",n.VERIFIED="verified",n.VERIFYING="verifying",n.UNVERIFIED="unverified",n.EXPIRED="expired",n))(g||{});function Ge(n){let e,t,r;return{c(){e=K("svg"),t=K("path"),r=K("path"),c(t,"d","M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"),c(t,"fill","currentColor"),c(t,"opacity",".25"),c(r,"d","M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z"),c(r,"fill","currentColor"),c(r,"class","altcha-spinner"),c(e,"width","24"),c(e,"height","24"),c(e,"viewBox","0 0 24 24"),c(e,"xmlns","http://www.w3.org/2000/svg")},m(o,l){$(o,e,l),R(e,t),R(e,r)},d(o){o&&j(e)}}}function on(n){let e,t=n[11].label+"",r;return{c(){e=M("label"),c(e,"for",r=n[4]+"_checkbox")},m(o,l){$(o,e,l),e.innerHTML=t},p(o,l){l[0]&2048&&t!==(t=o[11].label+"")&&(e.innerHTML=t),l[0]&16&&r!==(r=o[4]+"_checkbox")&&c(e,"for",r)},d(o){o&&j(e)}}}function ln(n){let e,t=n[11].verifying+"";return{c(){e=M("span")},m(r,o){$(r,e,o),e.innerHTML=t},p(r,o){o[0]&2048&&t!==(t=r[11].verifying+"")&&(e.innerHTML=t)},d(r){r&&j(e)}}}function sn(n){let e,t=n[11].verified+"",r,o;return{c(){e=M("span"),r=Q(),o=M("input"),c(o,"type","hidden"),c(o,"name",n[4]),o.value=n[6]},m(l,s){$(l,e,s),e.innerHTML=t,$(l,r,s),$(l,o,s)},p(l,s){s[0]&2048&&t!==(t=l[11].verified+"")&&(e.innerHTML=t),s[0]&16&&c(o,"name",l[4]),s[0]&64&&(o.value=l[6])},d(l){l&&(j(e),j(r),j(o))}}}function Ye(n){let e,t,r,o,l,s,h;return{c(){e=M("div"),t=M("a"),r=K("svg"),o=K("path"),l=K("path"),s=K("path"),c(o,"d","M2.33955 16.4279C5.88954 20.6586 12.1971 21.2105 16.4279 17.6604C18.4699 15.947 19.6548 13.5911 19.9352 11.1365L17.9886 10.4279C17.8738 12.5624 16.909 14.6459 15.1423 16.1284C11.7577 18.9684 6.71167 18.5269 3.87164 15.1423C1.03163 11.7577 1.4731 6.71166 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577C16.9767 5.86872 17.5322 7.02798 17.804 8.2324L19.9522 9.01429C19.7622 7.07737 19.0059 5.17558 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956C-0.658625 5.88958 -1.21046 12.1971 2.33955 16.4279Z"),c(o,"fill","currentColor"),c(l,"d","M3.57212 2.33956C1.65755 3.94607 0.496389 6.11731 0.12782 8.40523L2.04639 9.13961C2.26047 7.15832 3.21057 5.25375 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577L13.8302 6.78606L19.9633 9.13364C19.7929 7.15555 19.0335 5.20847 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956Z"),c(l,"fill","currentColor"),c(s,"d","M7 10H5C5 12.7614 7.23858 15 10 15C12.7614 15 15 12.7614 15 10H13C13 11.6569 11.6569 13 10 13C8.3431 13 7 11.6569 7 10Z"),c(s,"fill","currentColor"),c(r,"width","22"),c(r,"height","22"),c(r,"viewBox","0 0 20 20"),c(r,"fill","none"),c(r,"xmlns","http://www.w3.org/2000/svg"),c(t,"href",Qe),c(t,"target","_blank"),c(t,"class","altcha-logo"),c(t,"aria-label",h=n[11].ariaLinkLabel)},m(d,u){$(d,e,u),R(e,t),R(t,r),R(r,o),R(r,l),R(r,s)},p(d,u){u[0]&2048&&h!==(h=d[11].ariaLinkLabel)&&c(t,"aria-label",h)},d(d){d&&j(e)}}}function Xe(n){let e,t,r,o;function l(d,u){return d[7]===g.EXPIRED?cn:fn}let s=l(n),h=s(n);return{c(){e=M("div"),t=K("svg"),r=K("path"),o=Q(),h.c(),c(r,"stroke-linecap","round"),c(r,"stroke-linejoin","round"),c(r,"d","M6 18L18 6M6 6l12 12"),c(t,"width","14"),c(t,"height","14"),c(t,"xmlns","http://www.w3.org/2000/svg"),c(t,"fill","none"),c(t,"viewBox","0 0 24 24"),c(t,"stroke-width","1.5"),c(t,"stroke","currentColor"),c(e,"class","altcha-error")},m(d,u){$(d,e,u),R(e,t),R(t,r),R(e,o),h.m(e,null)},p(d,u){s===(s=l(d))&&h?h.p(d,u):(h.d(1),h=s(d),h&&(h.c(),h.m(e,null)))},d(d){d&&j(e),h.d()}}}function fn(n){let e,t=n[11].error+"";return{c(){e=M("div"),c(e,"title",n[5])},m(r,o){$(r,e,o),e.innerHTML=t},p(r,o){o[0]&2048&&t!==(t=r[11].error+"")&&(e.innerHTML=t),o[0]&32&&c(e,"title",r[5])},d(r){r&&j(e)}}}function cn(n){let e,t=n[11].expired+"";return{c(){e=M("div"),c(e,"title",n[5])},m(r,o){$(r,e,o),e.innerHTML=t},p(r,o){o[0]&2048&&t!==(t=r[11].expired+"")&&(e.innerHTML=t),o[0]&32&&c(e,"title",r[5])},d(r){r&&j(e)}}}function Je(n){let e,t,r=n[11].footer+"";return{c(){e=M("div"),t=M("div"),c(e,"class","altcha-footer")},m(o,l){$(o,e,l),R(e,t),t.innerHTML=r},p(o,l){l[0]&2048&&r!==(r=o[11].footer+"")&&(t.innerHTML=r)},d(o){o&&j(e)}}}function ze(n){let e;return{c(){e=M("div"),c(e,"class","altcha-anchor-arrow")},m(t,r){$(t,e,r),n[48](e)},p:z,d(t){t&&j(e),n[48](null)}}}function un(n){let e,t,r,o,l,s,h,d,u,A,_,B,q,Z,T,L,ee;const te=n[46].default,N=Rt(te,n,n[45],null);let D=n[7]===g.VERIFYING&&Ge();function ne(a,b){return a[7]===g.VERIFIED?sn:a[7]===g.VERIFYING?ln:on}let X=ne(n),V=X(n),k=(n[3]!==!0||n[12])&&Ye(n),P=(n[5]||n[7]===g.EXPIRED)&&Xe(n),S=n[11].footer&&(n[2]!==!0||n[12])&&Je(n),E=n[1]&&ze(n);return{c(){N&&N.c(),e=Q(),t=M("div"),r=M("div"),D&&D.c(),o=Q(),l=M("div"),s=M("input"),u=Q(),A=M("div"),V.c(),_=Q(),k&&k.c(),B=Q(),P&&P.c(),q=Q(),S&&S.c(),Z=Q(),E&&E.c(),c(s,"type","checkbox"),c(s,"id",h=n[4]+"_checkbox"),s.required=d=n[0]!=="onsubmit"&&(!n[1]||n[0]!=="off"),c(l,"class","altcha-checkbox"),Ue(l,"altcha-hidden",n[7]===g.VERIFYING),c(A,"class","altcha-label"),c(r,"class","altcha-main"),c(t,"class","altcha"),c(t,"data-state",n[7]),c(t,"data-floating",n[1])},m(a,b){N&&N.m(a,b),$(a,e,b),$(a,t,b),R(t,r),D&&D.m(r,null),R(r,o),R(r,l),R(l,s),s.checked=n[8],R(r,u),R(r,A),V.m(A,null),R(r,_),k&&k.m(r,null),R(t,B),P&&P.m(t,null),R(t,q),S&&S.m(t,null),R(t,Z),E&&E.m(t,null),n[49](t),T=!0,L||(ee=[Le(s,"change",n[47]),Le(s,"change",n[13]),Le(s,"invalid",n[14])],L=!0)},p(a,b){N&&N.p&&(!T||b[1]&16384)&&St(N,te,a,a[45],T?Lt(te,a[45],b,null):Tt(a[45]),null),a[7]===g.VERIFYING?D||(D=Ge(),D.c(),D.m(r,o)):D&&(D.d(1),D=null),(!T||b[0]&16&&h!==(h=a[4]+"_checkbox"))&&c(s,"id",h),(!T||b[0]&3&&d!==(d=a[0]!=="onsubmit"&&(!a[1]||a[0]!=="off")))&&(s.required=d),b[0]&256&&(s.checked=a[8]),(!T||b[0]&128)&&Ue(l,"altcha-hidden",a[7]===g.VERIFYING),X===(X=ne(a))&&V?V.p(a,b):(V.d(1),V=X(a),V&&(V.c(),V.m(A,null))),a[3]!==!0||a[12]?k?k.p(a,b):(k=Ye(a),k.c(),k.m(r,null)):k&&(k.d(1),k=null),a[5]||a[7]===g.EXPIRED?P?P.p(a,b):(P=Xe(a),P.c(),P.m(t,q)):P&&(P.d(1),P=null),a[11].footer&&(a[2]!==!0||a[12])?S?S.p(a,b):(S=Je(a),S.c(),S.m(t,Z)):S&&(S.d(1),S=null),a[1]?E?E.p(a,b):(E=ze(a),E.c(),E.m(t,null)):E&&(E.d(1),E=null),(!T||b[0]&128)&&c(t,"data-state",a[7]),(!T||b[0]&2)&&c(t,"data-floating",a[1])},i(a){T||(Be(N,a),T=!0)},o(a){Bt(N,a),T=!1},d(a){a&&(j(e),j(t)),N&&N.d(a),D&&D.d(),V.d(),k&&k.d(),P&&P.d(),S&&S.d(),E&&E.d(),n[49](null),L=!1,ge(ee)}}}const Ke="Visit Altcha.org",Qe="https://altcha.org/";function et(n){return JSON.parse(n)}function an(n,e,t){var vt,kt;let r,o,l,s,{$$slots:h={},$$scope:d}=e,{auto:u=void 0}=e,{blockspam:A=void 0}=e,{challengeurl:_=void 0}=e,{challengejson:B=void 0}=e,{debug:q=!1}=e,{delay:Z=0}=e,{expire:T=void 0}=e,{floating:L=void 0}=e,{floatinganchor:ee=void 0}=e,{floatingoffset:te=void 0}=e,{hidefooter:N=!1}=e,{hidelogo:D=!1}=e,{name:ne="altcha"}=e,{maxnumber:X=1e6}=e,{mockerror:V=!1}=e,{obfuscated:k=void 0}=e,{plugins:P=void 0}=e,{refetchonexpire:S=!0}=e,{spamfilter:E=!1}=e,{strings:a=void 0}=e,{test:b=!1}=e,{verifyurl:ie=void 0}=e,{workers:he=Math.min(16,navigator.hardwareConcurrency||8)}=e,{workerurl:ye=void 0}=e;const _e=Vt(),nt=["SHA-256","SHA-384","SHA-512"],it=(kt=(vt=document.documentElement.lang)==null?void 0:vt.split("-"))==null?void 0:kt[0];let le=!1,C,se=null,de=null,y=null,we=null,J=null,fe=null,re=[],x=g.UNVERIFIED;jt(()=>{hn(),y&&(y.removeEventListener("submit",ct),y.removeEventListener("reset",ut),y.removeEventListener("focusin",ft),y=null),J&&(clearTimeout(J),J=null),document.removeEventListener("click",lt),document.removeEventListener("scroll",st),window.removeEventListener("resize",ht)}),Nt(()=>{v("mounted","1.0.6"),v("workers",he),yn(),v("plugins",re.length?re.map(i=>i.constructor.pluginName).join(", "):"none"),b&&v("using test mode"),T&&Re(T),u!==void 0&&v("auto",u),L!==void 0&&dt(L),y=C.closest("form"),y&&(y.addEventListener("submit",ct,{capture:!0}),y.addEventListener("reset",ut),u==="onfocus"&&y.addEventListener("focusin",ft)),u==="onload"&&(k?pe():oe()),r&&(N||D)&&v("Attributes hidefooter and hidelogo ignored because usage with free API Keys requires attribution."),requestAnimationFrame(()=>{_e("load")})});function rt(i,f){return btoa(JSON.stringify({algorithm:i.algorithm,challenge:i.challenge,number:f.number,salt:i.salt,signature:i.signature,test:b?!0:void 0,took:f.took}))}function hn(){for(const i of re)i.destroy()}function ot(){_&&S&&x===g.VERIFIED?oe():Ee(g.EXPIRED,s.expired)}async function dn(){var i;if(V)throw v("mocking error"),new Error("Mocked error.");if(o)return v("using provided json data"),o;if(b)return v("generating test challenge",{test:b}),Kt(typeof b!="boolean"?+b:void 0);{if(!_&&y){const w=y.getAttribute("action");w!=null&&w.includes("/form/")&&t(15,_=w+"/altcha")}if(!_)throw new Error("Attribute challengeurl not set.");v("fetching challenge from",_);const f=await fetch(_,{headers:E?{"x-altcha-spam-filter":"1"}:{}});if(f.status!==200)throw new Error(`Server responded with ${f.status}.`);const m=f.headers.get("Expires"),I=f.headers.get("X-Altcha-Config"),W=await f.json(),O=new URLSearchParams((i=W.salt.split("?"))==null?void 0:i[1]),F=O.get("expires")||O.get("expire");if(F){const w=new Date(+F*1e3),G=isNaN(w.getTime())?0:w.getTime()-Date.now();G>0&&Re(G)}if(I)try{const w=JSON.parse(I);w&&typeof w=="object"&&(w.verifyurl&&(w.verifyurl=new URL(w.verifyurl,new URL(_)).toString()),bt(w))}catch(w){v("unable to configure from X-Altcha-Config",w)}if(!T&&(m!=null&&m.length)){const w=Date.parse(m);if(w){const G=w-Date.now();G>0&&Re(G)}}return W}}function gn(i){var m;const f=y==null?void 0:y.querySelector(typeof i=="string"?`input[name="${i}"]`:'input[type="email"]:not([data-no-spamfilter])');return((m=f==null?void 0:f.value)==null?void 0:m.slice(f.value.indexOf("@")))||void 0}function mn(){return E==="ipAddress"?{blockedCountries:void 0,classifier:void 0,disableRules:void 0,email:!1,expectedCountries:void 0,expectedLanguages:void 0,fields:!1,ipAddress:void 0,text:void 0,timeZone:void 0}:typeof E=="object"?E:{blockedCountries:void 0,classifier:void 0,disableRules:void 0,email:void 0,expectedCountries:void 0,expectedLanguages:void 0,fields:void 0,ipAddress:void 0,text:void 0,timeZone:void 0}}function bn(i){return[...(y==null?void 0:y.querySelectorAll(i!=null&&i.length?i.map(m=>`input[name="${m}"]`).join(", "):'input[type="text"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])'))||[]].reduce((m,I)=>{const W=I.name,O=I.value;return W&&O&&(m[W]=/\n/.test(O)?O.replace(new RegExp("(?<!\\r)\\n","g"),`\r
|
|
2
|
-
`):O),m},{})}function yn(){const i=P!==void 0?P.split(","):void 0;for(const f of globalThis.altchaPlugins)(!i||i.includes(f.pluginName))&&re.push(new f({el:C,clarify:pe,dispatch:_e,getConfiguration:yt,getFloatingAnchor:_t,getState:wt,log:v,reset:Ee,solve:mt,setState:Et,setFloatingAnchor:pt,verify:oe}))}function v(...i){(q||i.some(f=>f instanceof Error))&&console[i[0]instanceof Error?"error":"log"]("ALTCHA",`[name=${ne}]`,...i)}function _n(){[g.UNVERIFIED,g.ERROR,g.EXPIRED].includes(x)?E&&(y==null?void 0:y.reportValidity())===!1?t(8,le=!1):k?pe():oe():t(8,le=!0)}function lt(i){const f=i.target;L&&f&&!C.contains(f)&&(x===g.VERIFIED||u==="off"&&x===g.UNVERIFIED)&&t(9,C.style.display="none",C)}function st(){L&&x!==g.UNVERIFIED&&Ie()}function wn(i){for(const f of re)typeof f.onErrorChange=="function"&&f.onErrorChange(we)}function ft(i){x===g.UNVERIFIED&&oe()}function ct(i){y&&u==="onsubmit"?x===g.UNVERIFIED?(i.preventDefault(),i.stopPropagation(),oe().then(()=>{y==null||y.requestSubmit()})):x!==g.VERIFIED&&(i.preventDefault(),i.stopPropagation(),x===g.VERIFYING&&at()):y&&L&&u==="off"&&x===g.UNVERIFIED&&(i.preventDefault(),i.stopPropagation(),t(9,C.style.display="block",C),Ie())}function ut(){Ee()}function at(){x===g.VERIFYING&&s.waitAlert&&alert(s.waitAlert)}function pn(i){for(const f of re)typeof f.onStateChange=="function"&&f.onStateChange(x);L&&x!==g.UNVERIFIED&&requestAnimationFrame(()=>{Ie()}),t(8,le=x===g.VERIFIED)}function ht(){L&&Ie()}function Ie(i=20){if(C)if(de||(de=(ee?document.querySelector(ee):y==null?void 0:y.querySelector('input[type="submit"], button[type="submit"], button:not([type="button"]):not([type="reset"])'))||y),de){const f=parseInt(te,10)||12,m=de.getBoundingClientRect(),I=C.getBoundingClientRect(),W=document.documentElement.clientHeight,O=document.documentElement.clientWidth,F=L==="auto"?m.bottom+I.height+f+i>W:L==="top",w=Math.max(i,Math.min(O-i-I.width,m.left+m.width/2-I.width/2));if(F?t(9,C.style.top=`${m.top-(I.height+f)}px`,C):t(9,C.style.top=`${m.bottom+f}px`,C),t(9,C.style.left=`${w}px`,C),C.setAttribute("data-floating",F?"top":"bottom"),se){const G=se.getBoundingClientRect();t(10,se.style.left=m.left-w+m.width/2-G.width/2+"px",se)}}else v("unable to find floating anchor element")}async function En(i){if(!ie)throw new Error("Attribute verifyurl not set.");v("requesting server verification from",ie);const f={payload:i};if(E){const{blockedCountries:W,classifier:O,disableRules:F,email:w,expectedLanguages:G,expectedCountries:Me,fields:ve,ipAddress:ke,text:In,timeZone:Ct}=mn();f.blockedCountries=W,f.classifier=O,f.disableRules=F,f.email=w===!1?void 0:gn(w),f.expectedCountries=Me,f.expectedLanguages=G||(it?[it]:void 0),f.fields=ve===!1?void 0:bn(ve),f.ipAddress=ke===!1?void 0:ke||"auto",f.text=In,f.timeZone=Ct===!1?void 0:Ct||en()}const m=await fetch(ie,{body:JSON.stringify(f),headers:{"content-type":"application/json"},method:"POST"});if(m.status!==200)throw new Error(`Server responded with ${m.status}.`);const I=await m.json();if(I!=null&&I.payload&&t(6,fe=I.payload),_e("serververification",I),A&&I.classification==="BAD")throw new Error("SpamFilter returned negative classification.")}function Re(i){v("expire",i),J&&(clearTimeout(J),J=null),i<1?ot():J=setTimeout(ot,i)}function dt(i){v("floating",i),L!==i&&(t(9,C.style.left="",C),t(9,C.style.top="",C)),t(1,L=i===!0||i===""?"auto":i===!1||i==="false"?void 0:L),L?(u||t(0,u="onsubmit"),document.addEventListener("scroll",st),document.addEventListener("click",lt),window.addEventListener("resize",ht)):u==="onsubmit"&&t(0,u=void 0)}function gt(i){if(!i.algorithm)throw new Error("Invalid challenge. Property algorithm is missing.");if(i.signature===void 0)throw new Error("Invalid challenge. Property signature is missing.");if(!nt.includes(i.algorithm.toUpperCase()))throw new Error(`Unknown algorithm value. Allowed values: ${nt.join(", ")}`);if(!i.challenge||i.challenge.length<40)throw new Error("Challenge is too short. Min. 40 chars.");if(!i.salt||i.salt.length<10)throw new Error("Salt is too short. Min. 10 chars.")}async function mt(i){let f=null;if("Worker"in window){try{f=await vn(i,i.maxnumber)}catch(m){v(m)}if((f==null?void 0:f.number)!==void 0||"obfuscated"in i)return{data:i,solution:f}}if("obfuscated"in i){const m=await rn(i.obfuscated,i.key,i.maxnumber);return{data:i,solution:await m.promise}}return{data:i,solution:await Qt(i.challenge,i.salt,i.algorithm,i.maxnumber||X).promise}}async function vn(i,f=typeof b=="number"?b:X,m=Math.ceil(he)){const I=[];m=Math.min(16,Math.max(1,m));for(let F=0;F<m;F++)I.push(altchaCreateWorker(ye));const W=Math.ceil(f/m),O=await Promise.all(I.map((F,w)=>{const G=w*W;return new Promise(Me=>{F.addEventListener("message",ve=>{if(ve.data)for(const ke of I)ke!==F&&ke.postMessage({type:"abort"});Me(ve.data)}),F.postMessage({payload:i,max:G+W,start:G,type:"work"})})}));for(const F of I)F.terminate();return O.find(F=>!!F)||null}async function pe(){if(!k){t(7,x=g.ERROR);return}const i=re.find(f=>f.constructor.pluginName==="obfuscation");if(!i||!("clarify"in i)){t(7,x=g.ERROR),v("Plugin `obfuscation` not found. Import `altcha/plugins/obfuscation` to load it.");return}if("clarify"in i&&typeof i.clarify=="function")return i.clarify()}function bt(i){i.obfuscated!==void 0&&t(24,k=i.obfuscated),i.auto!==void 0&&(t(0,u=i.auto),u==="onload"&&(k?pe():oe())),i.blockspam!==void 0&&t(16,A=!!i.blockspam),i.floatinganchor!==void 0&&t(20,ee=i.floatinganchor),i.delay!==void 0&&t(18,Z=i.delay),i.floatingoffset!==void 0&&t(21,te=i.floatingoffset),i.floating!==void 0&&dt(i.floating),i.expire!==void 0&&(Re(i.expire),t(19,T=i.expire)),i.challenge&&(gt(i.challenge),o=i.challenge),i.challengeurl!==void 0&&t(15,_=i.challengeurl),i.debug!==void 0&&t(17,q=!!i.debug),i.hidefooter!==void 0&&t(2,N=!!i.hidefooter),i.hidelogo!==void 0&&t(3,D=!!i.hidelogo),i.maxnumber!==void 0&&t(22,X=+i.maxnumber),i.mockerror!==void 0&&t(23,V=!!i.mockerror),i.name!==void 0&&t(4,ne=i.name),i.refetchonexpire!==void 0&&t(25,S=!!i.refetchonexpire),i.spamfilter!==void 0&&t(26,E=typeof i.spamfilter=="object"?i.spamfilter:!!i.spamfilter),i.strings&&t(44,l=i.strings),i.test!==void 0&&t(27,b=typeof i.test=="number"?i.test:!!i.test),i.verifyurl!==void 0&&t(28,ie=i.verifyurl),i.workers!==void 0&&t(29,he=+i.workers),i.workerurl!==void 0&&t(30,ye=i.workerurl)}function yt(){return{auto:u,blockspam:A,challengeurl:_,debug:q,delay:Z,expire:T,floating:L,floatinganchor:ee,floatingoffset:te,hidefooter:N,hidelogo:D,name:ne,maxnumber:X,mockerror:V,obfuscated:k,refetchonexpire:S,spamfilter:E,strings:s,test:b,verifyurl:ie,workers:he,workerurl:ye}}function _t(){return de}function kn(i){return re.find(f=>f.constructor.pluginName===i)}function wt(){return x}function Ee(i=g.UNVERIFIED,f=null){J&&(clearTimeout(J),J=null),t(8,le=!1),t(5,we=f),t(6,fe=null),t(7,x=i)}function pt(i){de=i}function Et(i,f=null){t(7,x=i),t(5,we=f)}async function oe(){return Ee(g.VERIFYING),await new Promise(i=>setTimeout(i,Z||0)),dn().then(i=>(gt(i),v("challenge",i),mt(i))).then(({data:i,solution:f})=>{if(v("solution",f),"challenge"in i&&f&&!("clearText"in f))if((f==null?void 0:f.number)!==void 0){if(ie)return En(rt(i,f));t(6,fe=rt(i,f)),v("payload",fe)}else throw v("Unable to find a solution. Ensure that the 'maxnumber' attribute is greater than the randomly generated number."),new Error("Unexpected result returned.")}).then(()=>{t(7,x=g.VERIFIED),v("verified"),Ut().then(()=>{_e("verified",{payload:fe})})}).catch(i=>{v(i),t(7,x=g.ERROR),t(5,we=i.message)})}function Cn(){le=this.checked,t(8,le)}function xn(i){Ce[i?"unshift":"push"](()=>{se=i,t(10,se)})}function An(i){Ce[i?"unshift":"push"](()=>{C=i,t(9,C)})}return n.$$set=i=>{"auto"in i&&t(0,u=i.auto),"blockspam"in i&&t(16,A=i.blockspam),"challengeurl"in i&&t(15,_=i.challengeurl),"challengejson"in i&&t(31,B=i.challengejson),"debug"in i&&t(17,q=i.debug),"delay"in i&&t(18,Z=i.delay),"expire"in i&&t(19,T=i.expire),"floating"in i&&t(1,L=i.floating),"floatinganchor"in i&&t(20,ee=i.floatinganchor),"floatingoffset"in i&&t(21,te=i.floatingoffset),"hidefooter"in i&&t(2,N=i.hidefooter),"hidelogo"in i&&t(3,D=i.hidelogo),"name"in i&&t(4,ne=i.name),"maxnumber"in i&&t(22,X=i.maxnumber),"mockerror"in i&&t(23,V=i.mockerror),"obfuscated"in i&&t(24,k=i.obfuscated),"plugins"in i&&t(32,P=i.plugins),"refetchonexpire"in i&&t(25,S=i.refetchonexpire),"spamfilter"in i&&t(26,E=i.spamfilter),"strings"in i&&t(33,a=i.strings),"test"in i&&t(27,b=i.test),"verifyurl"in i&&t(28,ie=i.verifyurl),"workers"in i&&t(29,he=i.workers),"workerurl"in i&&t(30,ye=i.workerurl),"$$scope"in i&&t(45,d=i.$$scope)},n.$$.update=()=>{n.$$.dirty[0]&32768|n.$$.dirty[1]&1&&t(12,r=B&&new URL(B,location.origin).host.endsWith(".altcha.org")&&!!(_!=null&&_.includes("apiKey=ckey_"))),n.$$.dirty[1]&1&&(o=B?et(B):void 0),n.$$.dirty[1]&4&&t(44,l=a?et(a):{}),n.$$.dirty[1]&8192&&t(11,s={ariaLinkLabel:Ke,error:"Verification failed. Try again later.",expired:"Verification expired. Try again.",footer:`Protected by <a href="${Qe}" target="_blank" aria-label="${l.ariaLinkLabel||Ke}">ALTCHA</a>`,label:"I'm not a robot",verified:"Verified",verifying:"Verifying...",waitAlert:"Verifying... please wait.",...l}),n.$$.dirty[0]&192&&_e("statechange",{payload:fe,state:x}),n.$$.dirty[0]&32&&wn(),n.$$.dirty[0]&128&&pn()},[u,L,N,D,ne,we,fe,x,le,C,se,s,r,_n,at,_,A,q,Z,T,ee,te,X,V,k,S,E,b,ie,he,ye,B,P,a,pe,bt,yt,_t,kn,wt,Ee,pt,Et,oe,l,d,h,Cn,xn,An]}class tt extends Xt{constructor(e){super(),Gt(this,e,an,un,At,{auto:0,blockspam:16,challengeurl:15,challengejson:31,debug:17,delay:18,expire:19,floating:1,floatinganchor:20,floatingoffset:21,hidefooter:2,hidelogo:3,name:4,maxnumber:22,mockerror:23,obfuscated:24,plugins:32,refetchonexpire:25,spamfilter:26,strings:33,test:27,verifyurl:28,workers:29,workerurl:30,clarify:34,configure:35,getConfiguration:36,getFloatingAnchor:37,getPlugin:38,getState:39,reset:40,setFloatingAnchor:41,setState:42,verify:43},null,[-1,-1,-1])}get auto(){return this.$$.ctx[0]}set auto(e){this.$$set({auto:e}),p()}get blockspam(){return this.$$.ctx[16]}set blockspam(e){this.$$set({blockspam:e}),p()}get challengeurl(){return this.$$.ctx[15]}set challengeurl(e){this.$$set({challengeurl:e}),p()}get challengejson(){return this.$$.ctx[31]}set challengejson(e){this.$$set({challengejson:e}),p()}get debug(){return this.$$.ctx[17]}set debug(e){this.$$set({debug:e}),p()}get delay(){return this.$$.ctx[18]}set delay(e){this.$$set({delay:e}),p()}get expire(){return this.$$.ctx[19]}set expire(e){this.$$set({expire:e}),p()}get floating(){return this.$$.ctx[1]}set floating(e){this.$$set({floating:e}),p()}get floatinganchor(){return this.$$.ctx[20]}set floatinganchor(e){this.$$set({floatinganchor:e}),p()}get floatingoffset(){return this.$$.ctx[21]}set floatingoffset(e){this.$$set({floatingoffset:e}),p()}get hidefooter(){return this.$$.ctx[2]}set hidefooter(e){this.$$set({hidefooter:e}),p()}get hidelogo(){return this.$$.ctx[3]}set hidelogo(e){this.$$set({hidelogo:e}),p()}get name(){return this.$$.ctx[4]}set name(e){this.$$set({name:e}),p()}get maxnumber(){return this.$$.ctx[22]}set maxnumber(e){this.$$set({maxnumber:e}),p()}get mockerror(){return this.$$.ctx[23]}set mockerror(e){this.$$set({mockerror:e}),p()}get obfuscated(){return this.$$.ctx[24]}set obfuscated(e){this.$$set({obfuscated:e}),p()}get plugins(){return this.$$.ctx[32]}set plugins(e){this.$$set({plugins:e}),p()}get refetchonexpire(){return this.$$.ctx[25]}set refetchonexpire(e){this.$$set({refetchonexpire:e}),p()}get spamfilter(){return this.$$.ctx[26]}set spamfilter(e){this.$$set({spamfilter:e}),p()}get strings(){return this.$$.ctx[33]}set strings(e){this.$$set({strings:e}),p()}get test(){return this.$$.ctx[27]}set test(e){this.$$set({test:e}),p()}get verifyurl(){return this.$$.ctx[28]}set verifyurl(e){this.$$set({verifyurl:e}),p()}get workers(){return this.$$.ctx[29]}set workers(e){this.$$set({workers:e}),p()}get workerurl(){return this.$$.ctx[30]}set workerurl(e){this.$$set({workerurl:e}),p()}get clarify(){return this.$$.ctx[34]}get configure(){return this.$$.ctx[35]}get getConfiguration(){return this.$$.ctx[36]}get getFloatingAnchor(){return this.$$.ctx[37]}get getPlugin(){return this.$$.ctx[38]}get getState(){return this.$$.ctx[39]}get reset(){return this.$$.ctx[40]}get setFloatingAnchor(){return this.$$.ctx[41]}get setState(){return this.$$.ctx[42]}get verify(){return this.$$.ctx[43]}}customElements.define("altcha-widget",Yt(tt,{auto:{},blockspam:{},challengeurl:{},challengejson:{},debug:{type:"Boolean"},delay:{},expire:{},floating:{},floatinganchor:{},floatingoffset:{},hidefooter:{type:"Boolean"},hidelogo:{type:"Boolean"},name:{},maxnumber:{},mockerror:{type:"Boolean"},obfuscated:{},plugins:{},refetchonexpire:{type:"Boolean"},spamfilter:{type:"Boolean"},strings:{},test:{type:"Boolean"},verifyurl:{},workers:{},workerurl:{}},["default"],["clarify","configure","getConfiguration","getFloatingAnchor","getPlugin","getState","reset","setFloatingAnchor","setState","verify"],!1)),globalThis.altchaCreateWorker=n=>new Worker(new URL(n||"./worker.js",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:U&&U.tagName.toUpperCase()==="SCRIPT"&&U.src||new URL("altcha.umd.cjs",document.baseURI).href)),globalThis.altchaPlugins=globalThis.altchaPlugins||[],H.Altcha=tt,Object.defineProperty(H,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function($,k){typeof exports=="object"&&typeof module<"u"?k(exports):typeof define=="function"&&define.amd?define(["exports"],k):($=typeof globalThis<"u"?globalThis:$||self,k($.altcha={}))})(this,function($){"use strict";var Xo=Object.defineProperty;var Yn=$=>{throw TypeError($)};var Qo=($,k,V)=>k in $?Xo($,k,{enumerable:!0,configurable:!0,writable:!0,value:V}):$[k]=V;var ce=($,k,V)=>Qo($,typeof k!="symbol"?k+"":k,V),Wn=($,k,V)=>k.has($)||Yn("Cannot "+V);var K=($,k,V)=>(Wn($,k,"read from private field"),V?V.call($):k.get($)),lr=($,k,V)=>k.has($)?Yn("Cannot add the same private member more than once"):k instanceof WeakSet?k.add($):k.set($,V),ar=($,k,V,wt)=>(Wn($,k,"write to private field"),wt?wt.call($,V):k.set($,V),V);var ye,re;var k=typeof document<"u"?document.currentScript:null;const V="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(V);const wt=1,Zn=4,Gn=8,Jn=16,Kn=1,Xn=2,sr="[",ur="[!",fr="]",Me={},G=Symbol(),cr=!1;var dr=Array.isArray,Qn=Array.from,bt=Object.keys,Et=Object.defineProperty,Ne=Object.getOwnPropertyDescriptor,ei=Object.getOwnPropertyDescriptors,ti=Object.prototype,ri=Array.prototype,Mt=Object.getPrototypeOf;function hr(e){for(var t=0;t<e.length;t++)e[t]()}const oe=2,vr=4,nt=8,qt=16,le=32,it=64,Ut=128,Le=256,xt=512,J=1024,Ee=2048,ot=4096,qe=8192,Ue=16384,ni=32768,Vt=65536,ii=1<<19,_r=1<<20,lt=Symbol("$state"),gr=Symbol("legacy props"),oi=Symbol("");function mr(e){return e===this.v}function li(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function pr(e){return!li(e,this.v)}function ai(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function si(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function ui(e){throw new Error("https://svelte.dev/e/effect_orphan")}function fi(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function ci(){throw new Error("https://svelte.dev/e/hydration_failed")}function di(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function hi(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function vi(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function _i(){throw new Error("https://svelte.dev/e/state_unsafe_local_read")}function gi(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}let yr=!1;function de(e){return{f:0,v:e,reactions:null,equals:mr,version:0}}function Ve(e){return mi(de(e))}function wr(e,t=!1){const r=de(e);return t||(r.equals=pr),r}function mi(e){return R!==null&&R.f&oe&&(ve===null?Ti([e]):ve.push(e)),e}function P(e,t){return R!==null&&Li()&&R.f&(oe|qt)&&(ve===null||!ve.includes(e))&&gi(),pi(e,t)}function pi(e,t){return e.equals(t)||(e.v=t,e.version=Hr(),br(e,Ee),y!==null&&y.f&J&&!(y.f&le)&&(j!==null&&j.includes(e)?(_e(y,Ee),Lt(y)):Ce===null?Ni([e]):Ce.push(e))),t}function br(e,t){var r=e.reactions;if(r!==null)for(var o=r.length,i=0;i<o;i++){var l=r[i],a=l.f;a&Ee||(_e(l,t),a&(J|Le)&&(a&oe?br(l,ot):Lt(l)))}}function $t(e){console.warn("https://svelte.dev/e/hydration_mismatch")}let F=!1;function je(e){F=e}let z;function xe(e){if(e===null)throw $t(),Me;return z=e}function Be(){return xe($e(z))}function X(e){if(F){if($e(z)!==null)throw $t(),Me;z=e}}function yi(){for(var e=0,t=z;;){if(t.nodeType===8){var r=t.data;if(r===fr){if(e===0)return t;e-=1}else(r===sr||r===ur)&&(e+=1)}var o=$e(t);t.remove(),t=o}}function ae(e,t=null,r){if(typeof e!="object"||e===null||lt in e)return e;const o=Mt(e);if(o!==ti&&o!==ri)return e;var i=new Map,l=dr(e),a=de(0);l&&i.set("length",de(e.length));var d;return new Proxy(e,{defineProperty(u,f,c){(!("value"in c)||c.configurable===!1||c.enumerable===!1||c.writable===!1)&&hi();var v=i.get(f);return v===void 0?(v=de(c.value),i.set(f,v)):P(v,ae(c.value,d)),!0},deleteProperty(u,f){var c=i.get(f);if(c===void 0)f in u&&i.set(f,de(G));else{if(l&&typeof f=="string"){var v=i.get("length"),_=Number(f);Number.isInteger(_)&&_<v.v&&P(v,_)}P(c,G),Er(a)}return!0},get(u,f,c){var w;if(f===lt)return e;var v=i.get(f),_=f in u;if(v===void 0&&(!_||(w=Ne(u,f))!=null&&w.writable)&&(v=de(ae(_?u[f]:G,d)),i.set(f,v)),v!==void 0){var m=h(v);return m===G?void 0:m}return Reflect.get(u,f,c)},getOwnPropertyDescriptor(u,f){var c=Reflect.getOwnPropertyDescriptor(u,f);if(c&&"value"in c){var v=i.get(f);v&&(c.value=h(v))}else if(c===void 0){var _=i.get(f),m=_==null?void 0:_.v;if(_!==void 0&&m!==G)return{enumerable:!0,configurable:!0,value:m,writable:!0}}return c},has(u,f){var m;if(f===lt)return!0;var c=i.get(f),v=c!==void 0&&c.v!==G||Reflect.has(u,f);if(c!==void 0||y!==null&&(!v||(m=Ne(u,f))!=null&&m.writable)){c===void 0&&(c=de(v?ae(u[f],d):G),i.set(f,c));var _=h(c);if(_===G)return!1}return v},set(u,f,c,v){var Y;var _=i.get(f),m=f in u;if(l&&f==="length")for(var w=c;w<_.v;w+=1){var L=i.get(w+"");L!==void 0?P(L,G):w in u&&(L=de(G),i.set(w+"",L))}_===void 0?(!m||(Y=Ne(u,f))!=null&&Y.writable)&&(_=de(void 0),P(_,ae(c,d)),i.set(f,_)):(m=_.v!==G,P(_,ae(c,d)));var M=Reflect.getOwnPropertyDescriptor(u,f);if(M!=null&&M.set&&M.set.call(v,c),!m){if(l&&typeof f=="string"){var ne=i.get("length"),q=Number(f);Number.isInteger(q)&&q>=ne.v&&P(ne,q+1)}Er(a)}return!0},ownKeys(u){h(a);var f=Reflect.ownKeys(u).filter(_=>{var m=i.get(_);return m===void 0||m.v!==G});for(var[c,v]of i)v.v!==G&&!(c in u)&&f.push(c);return f},setPrototypeOf(){vi()}})}function Er(e,t=1){P(e,e.v+t)}var xr,$r,kr;function jt(){if(xr===void 0){xr=window;var e=Element.prototype,t=Node.prototype;$r=Ne(t,"firstChild").get,kr=Ne(t,"nextSibling").get,e.__click=void 0,e.__className="",e.__attributes=null,e.__styles=null,e.__e=void 0,Text.prototype.__t=void 0}}function kt(e=""){return document.createTextNode(e)}function De(e){return $r.call(e)}function $e(e){return kr.call(e)}function Q(e,t){if(!F)return De(e);var r=De(z);return r===null&&(r=z.appendChild(kt())),xe(r),r}function Bt(e,t){if(!F){var r=De(e);return r instanceof Comment&&r.data===""?$e(r):r}return z}function pe(e,t=1,r=!1){let o=F?z:e;for(var i;t--;)i=o,o=$e(o);if(!F)return o;var l=o==null?void 0:o.nodeType;if(r&&l!==3){var a=kt();return o===null?i==null||i.after(a):o.before(a),xe(a),a}return xe(o),o}function wi(e){e.textContent=""}function at(e){var t=oe|Ee;y===null?t|=Le:y.f|=_r;var r=R!==null&&R.f&oe?R:null;const o={children:null,ctx:B,deps:null,equals:mr,f:t,fn:e,reactions:null,v:null,version:0,parent:r??y};return r!==null&&(r.children??(r.children=[])).push(o),o}function Cr(e){var t=e.children;if(t!==null){e.children=null;for(var r=0;r<t.length;r+=1){var o=t[r];o.f&oe?Ht(o):Pe(o)}}}function bi(e){for(var t=e.parent;t!==null;){if(!(t.f&oe))return t;t=t.parent}return null}function Rr(e){var t,r=y;he(bi(e));try{Cr(e),t=Yr(e)}finally{he(r)}return t}function Ar(e){var t=Rr(e),r=(Ge||e.f&Le)&&e.deps!==null?ot:J;_e(e,r),e.equals(t)||(e.v=t,e.version=Hr())}function Ht(e){Cr(e),ct(e,0),_e(e,Ue),e.v=e.children=e.deps=e.ctx=e.reactions=null}function Ei(e){y===null&&R===null&&ui(),R!==null&&R.f&Le&&si(),Qt&&ai()}function xi(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function He(e,t,r,o=!0){var i=(e&it)!==0,l=y,a={ctx:B,deps:null,deriveds:null,nodes_start:null,nodes_end:null,f:e|Ee,first:null,fn:t,last:null,next:null,parent:i?null:l,prev:null,teardown:null,transitions:null,version:0};if(r){var d=We;try{Vr(!0),Nt(a),a.f|=ni}catch(c){throw Pe(a),c}finally{Vr(d)}}else t!==null&&Lt(a);var u=r&&a.deps===null&&a.first===null&&a.nodes_start===null&&a.teardown===null&&(a.f&_r)===0;if(!u&&!i&&o&&(l!==null&&xi(a,l),R!==null&&R.f&oe)){var f=R;(f.children??(f.children=[])).push(a)}return a}function $i(e){const t=He(nt,null,!1);return _e(t,J),t.teardown=e,t}function Yt(e){Ei();var t=y!==null&&(y.f&le)!==0&&B!==null&&!B.m;if(t){var r=B;(r.e??(r.e=[])).push({fn:e,effect:y,reaction:R})}else{var o=Wt(e);return o}}function Ir(e){const t=He(it,e,!0);return()=>{Pe(t)}}function Wt(e){return He(vr,e,!1)}function Zt(e){return He(nt,e,!0)}function Ye(e){return Gt(e)}function Gt(e,t=0){return He(nt|qt|t,e,!0)}function Ct(e,t=!0){return He(nt|le,e,!0,t)}function Sr(e){var t=e.teardown;if(t!==null){const r=Qt,o=R;jr(!0),ke(null);try{t.call(null)}finally{jr(r),ke(o)}}}function Tr(e){var t=e.deriveds;if(t!==null){e.deriveds=null;for(var r=0;r<t.length;r+=1)Ht(t[r])}}function Nr(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){var o=r.next;Pe(r,t),r=o}}function ki(e){for(var t=e.first;t!==null;){var r=t.next;t.f&le||Pe(t),t=r}}function Pe(e,t=!0){var r=!1;if((t||e.f&ii)&&e.nodes_start!==null){for(var o=e.nodes_start,i=e.nodes_end;o!==null;){var l=o===i?null:$e(o);o.remove(),o=l}r=!0}Nr(e,t&&!r),Tr(e),ct(e,0),_e(e,Ue);var a=e.transitions;if(a!==null)for(const u of a)u.stop();Sr(e);var d=e.parent;d!==null&&d.first!==null&&Lr(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes_start=e.nodes_end=null}function Lr(e){var t=e.parent,r=e.prev,o=e.next;r!==null&&(r.next=o),o!==null&&(o.prev=r),t!==null&&(t.first===e&&(t.first=o),t.last===e&&(t.last=r))}function Dr(e,t){var r=[];Pr(e,r,!0),Ci(r,()=>{Pe(e),t&&t()})}function Ci(e,t){var r=e.length;if(r>0){var o=()=>--r||t();for(var i of e)i.out(o)}else t()}function Pr(e,t,r){if(!(e.f&qe)){if(e.f^=qe,e.transitions!==null)for(const a of e.transitions)(a.is_global||r)&&t.push(a);for(var o=e.first;o!==null;){var i=o.next,l=(o.f&Vt)!==0||(o.f&le)!==0;Pr(o,t,l?r:!1),o=i}}}function zr(e){Or(e,!0)}function Or(e,t){if(e.f&qe){ft(e)&&Nt(e),e.f^=qe;for(var r=e.first;r!==null;){var o=r.next,i=(r.f&Vt)!==0||(r.f&le)!==0;Or(r,i?t:!1),r=o}if(e.transitions!==null)for(const l of e.transitions)(l.is_global||t)&&l.in()}}const Ri=typeof requestIdleCallback>"u"?e=>setTimeout(e,1):requestIdleCallback;let Rt=!1,At=!1,Jt=[],Kt=[];function Fr(){Rt=!1;const e=Jt.slice();Jt=[],hr(e)}function Mr(){At=!1;const e=Kt.slice();Kt=[],hr(e)}function Xt(e){Rt||(Rt=!0,queueMicrotask(Fr)),Jt.push(e)}function Ai(e){At||(At=!0,Ri(Mr)),Kt.push(e)}function Ii(){Rt&&Fr(),At&&Mr()}function qr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}const Ur=0,Si=1;let It=!1,St=Ur,st=!1,ut=null,We=!1,Qt=!1;function Vr(e){We=e}function jr(e){Qt=e}let ze=[],Ze=0,el=[],R=null;function ke(e){R=e}let y=null;function he(e){y=e}let ve=null;function Ti(e){ve=e}let j=null,ee=0,Ce=null;function Ni(e){Ce=e}let Br=0,Ge=!1,B=null;function Hr(){return++Br}function Li(){return!yr}function ft(e){var a,d;var t=e.f;if(t&Ee)return!0;if(t&ot){var r=e.deps,o=(t&Le)!==0;if(r!==null){var i;if(t&xt){for(i=0;i<r.length;i++)((a=r[i]).reactions??(a.reactions=[])).push(e);e.f^=xt}for(i=0;i<r.length;i++){var l=r[i];if(ft(l)&&Ar(l),o&&y!==null&&!Ge&&!((d=l==null?void 0:l.reactions)!=null&&d.includes(e))&&(l.reactions??(l.reactions=[])).push(e),l.version>e.version)return!0}}o||_e(e,J)}return!1}function Di(e,t){for(var r=t;r!==null;){if(r.f&Ut)try{r.fn(e);return}catch{r.f^=Ut}r=r.parent}throw It=!1,e}function Pi(e){return(e.f&Ue)===0&&(e.parent===null||(e.parent.f&Ut)===0)}function Tt(e,t,r,o){if(It){if(r===null&&(It=!1),Pi(t))throw e;return}r!==null&&(It=!0);{Di(e,t);return}}function Yr(e){var _;var t=j,r=ee,o=Ce,i=R,l=Ge,a=ve,d=B,u=e.f;j=null,ee=0,Ce=null,R=u&(le|it)?null:e,Ge=!We&&(u&Le)!==0,ve=null,B=e.ctx;try{var f=(0,e.fn)(),c=e.deps;if(j!==null){var v;if(ct(e,ee),c!==null&&ee>0)for(c.length=ee+j.length,v=0;v<j.length;v++)c[ee+v]=j[v];else e.deps=c=j;if(!Ge)for(v=ee;v<c.length;v++)((_=c[v]).reactions??(_.reactions=[])).push(e)}else c!==null&&ee<c.length&&(ct(e,ee),c.length=ee);return f}finally{j=t,ee=r,Ce=o,R=i,Ge=l,ve=a,B=d}}function zi(e,t){let r=t.reactions;if(r!==null){var o=r.indexOf(e);if(o!==-1){var i=r.length-1;i===0?r=t.reactions=null:(r[o]=r[i],r.pop())}}r===null&&t.f&oe&&(j===null||!j.includes(t))&&(_e(t,ot),t.f&(Le|xt)||(t.f^=xt),ct(t,0))}function ct(e,t){var r=e.deps;if(r!==null)for(var o=t;o<r.length;o++)zi(e,r[o])}function Nt(e){var t=e.f;if(!(t&Ue)){_e(e,J);var r=y,o=B;y=e;try{t&qt?ki(e):Nr(e),Tr(e),Sr(e);var i=Yr(e);e.teardown=typeof i=="function"?i:null,e.version=Br}catch(l){Tt(l,e,r,o||e.ctx)}finally{y=r}}}function Wr(){if(Ze>1e3){Ze=0;try{fi()}catch(e){if(ut!==null)Tt(e,ut,null);else throw e}}Ze++}function Zr(e){var t=e.length;if(t!==0){Wr();var r=We;We=!0;try{for(var o=0;o<t;o++){var i=e[o];i.f&J||(i.f^=J);var l=[];Gr(i,l),Oi(l)}}finally{We=r}}}function Oi(e){var t=e.length;if(t!==0)for(var r=0;r<t;r++){var o=e[r];if(!(o.f&(Ue|qe)))try{ft(o)&&(Nt(o),o.deps===null&&o.first===null&&o.nodes_start===null&&(o.teardown===null?Lr(o):o.fn=null))}catch(i){Tt(i,o,null,o.ctx)}}}function Fi(){if(st=!1,Ze>1001)return;const e=ze;ze=[],Zr(e),st||(Ze=0,ut=null)}function Lt(e){St===Ur&&(st||(st=!0,queueMicrotask(Fi))),ut=e;for(var t=e;t.parent!==null;){t=t.parent;var r=t.f;if(r&(it|le)){if(!(r&J))return;t.f^=J}}ze.push(t)}function Gr(e,t){var r=e.first,o=[];e:for(;r!==null;){var i=r.f,l=(i&le)!==0,a=l&&(i&J)!==0,d=r.next;if(!a&&!(i&qe))if(i&nt){if(l)r.f^=J;else try{ft(r)&&Nt(r)}catch(v){Tt(v,r,null,r.ctx)}var u=r.first;if(u!==null){r=u;continue}}else i&vr&&o.push(r);if(d===null){let v=r.parent;for(;v!==null;){if(e===v)break e;var f=v.next;if(f!==null){r=f;continue e}v=v.parent}}r=d}for(var c=0;c<o.length;c++)u=o[c],t.push(u),Gr(u,t)}function C(e){var t=St,r=ze;try{Wr();const i=[];St=Si,ze=i,st=!1,Zr(r);var o=e==null?void 0:e();return Ii(),(ze.length>0||i.length>0)&&C(),Ze=0,ut=null,o}finally{St=t,ze=r}}async function Mi(){await Promise.resolve(),C()}function h(e){var c;var t=e.f,r=(t&oe)!==0;if(r&&t&Ue){var o=Rr(e);return Ht(e),o}if(R!==null){ve!==null&&ve.includes(e)&&_i();var i=R.deps;j===null&&i!==null&&i[ee]===e?ee++:j===null?j=[e]:j.push(e),Ce!==null&&y!==null&&y.f&J&&!(y.f&le)&&Ce.includes(e)&&(_e(y,Ee),Lt(y))}else if(r&&e.deps===null)for(var l=e,a=l.parent,d=l;a!==null;)if(a.f&oe){var u=a;d=u,a=u.parent}else{var f=a;(c=f.deriveds)!=null&&c.includes(d)||(f.deriveds??(f.deriveds=[])).push(d);break}return r&&(l=e,ft(l)&&Ar(l)),e.v}function Je(e){const t=R;try{return R=null,e()}finally{R=t}}const qi=~(Ee|ot|J);function _e(e,t){e.f=e.f&qi|t}function Jr(e,t=!1,r){B={p:B,c:null,e:null,m:!1,s:e,x:null,l:null}}function Kr(e){const t=B;if(t!==null){e!==void 0&&(t.x=e);const a=t.e;if(a!==null){var r=y,o=R;t.e=null;try{for(var i=0;i<a.length;i++){var l=a[i];he(l.effect),ke(l.reaction),Wt(l.fn)}}finally{he(r),ke(o)}}B=t.p,t.m=!0}return e||{}}let Xr=!1;function Qr(){Xr||(Xr=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const r of e.target.elements)(t=r.__on_r)==null||t.call(r)})},{capture:!0}))}function en(e){var t=R,r=y;ke(null),he(null);try{return e()}finally{ke(t),he(r)}}function Ui(e,t,r,o=r){e.addEventListener(t,()=>en(r));const i=e.__on_r;i?e.__on_r=()=>{i(),o(!0)}:e.__on_r=()=>o(!0),Qr()}const tn=new Set,er=new Set;function Vi(e,t,r,o){function i(l){if(o.capture||dt.call(t,l),!l.cancelBubble)return en(()=>r.call(this,l))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Xt(()=>{t.addEventListener(e,i,o)}):t.addEventListener(e,i,o),i}function ji(e,t,r,o,i){var l={capture:o,passive:i},a=Vi(e,t,r,l);(t===document.body||t===window||t===document)&&$i(()=>{t.removeEventListener(e,a,l)})}function Bi(e){for(var t=0;t<e.length;t++)tn.add(e[t]);for(var r of er)r(e)}function dt(e){var q;var t=this,r=t.ownerDocument,o=e.type,i=((q=e.composedPath)==null?void 0:q.call(e))||[],l=i[0]||e.target,a=0,d=e.__root;if(d){var u=i.indexOf(d);if(u!==-1&&(t===document||t===window)){e.__root=t;return}var f=i.indexOf(t);if(f===-1)return;u<=f&&(a=u)}if(l=i[a]||e.target,l!==t){Et(e,"currentTarget",{configurable:!0,get(){return l||r}});var c=R,v=y;ke(null),he(null);try{for(var _,m=[];l!==null;){var w=l.assignedSlot||l.parentNode||l.host||null;try{var L=l["__"+o];if(L!==void 0&&!l.disabled)if(dr(L)){var[M,...ne]=L;M.apply(l,[e,...ne])}else L.call(l,e)}catch(Y){_?m.push(Y):_=Y}if(e.cancelBubble||w===t||w===null)break;l=w}if(_){for(let Y of m)queueMicrotask(()=>{throw Y});throw _}}finally{e.__root=t,delete e.currentTarget,ke(c),he(v)}}}function rn(e){var t=document.createElement("template");return t.innerHTML=e,t.content}function Re(e,t){var r=y;r.nodes_start===null&&(r.nodes_start=e,r.nodes_end=t)}function se(e,t){var r=(t&Kn)!==0,o=(t&Xn)!==0,i,l=!e.startsWith("<!>");return()=>{if(F)return Re(z,null),z;i===void 0&&(i=rn(l?e:"<!>"+e),r||(i=De(i)));var a=o?document.importNode(i,!0):i.cloneNode(!0);if(r){var d=De(a),u=a.lastChild;Re(d,u)}else Re(a,a);return a}}function Hi(){if(F)return Re(z,null),z;var e=document.createDocumentFragment(),t=document.createComment(""),r=kt();return e.append(t,r),Re(t,r),e}function te(e,t){if(F){y.nodes_end=z,Be();return}e!==null&&e.before(t)}const Yi=["touchstart","touchmove"];function Wi(e){return Yi.includes(e)}function nn(e,t){return on(e,t)}function Zi(e,t){jt(),t.intro=t.intro??!1;const r=t.target,o=F,i=z;try{for(var l=De(r);l&&(l.nodeType!==8||l.data!==sr);)l=$e(l);if(!l)throw Me;je(!0),xe(l),Be();const a=on(e,{...t,anchor:l});if(z===null||z.nodeType!==8||z.data!==fr)throw $t(),Me;return je(!1),a}catch(a){if(a===Me)return t.recover===!1&&ci(),jt(),wi(r),je(!1),nn(e,t);throw a}finally{je(o),xe(i)}}const Ke=new Map;function on(e,{target:t,anchor:r,props:o={},events:i,context:l,intro:a=!0}){jt();var d=new Set,u=v=>{for(var _=0;_<v.length;_++){var m=v[_];if(!d.has(m)){d.add(m);var w=Wi(m);t.addEventListener(m,dt,{passive:w});var L=Ke.get(m);L===void 0?(document.addEventListener(m,dt,{passive:w}),Ke.set(m,1)):Ke.set(m,L+1)}}};u(Qn(tn)),er.add(u);var f=void 0,c=Ir(()=>{var v=r??t.appendChild(kt());return Ct(()=>{if(l){Jr({});var _=B;_.c=l}i&&(o.$$events=i),F&&Re(v,null),f=e(v,o)||{},F&&(y.nodes_end=z),l&&Kr()}),()=>{var w;for(var _ of d){t.removeEventListener(_,dt);var m=Ke.get(_);--m===0?(document.removeEventListener(_,dt),Ke.delete(_)):Ke.set(_,m)}er.delete(u),tr.delete(f),v!==r&&((w=v.parentNode)==null||w.removeChild(v))}});return tr.set(f,c),f}let tr=new WeakMap;function Gi(e){const t=tr.get(e);t&&t()}function Ae(e,t,r=!1){F&&Be();var o=e,i=null,l=null,a=G,d=r?Vt:0,u=!1;const f=(v,_=!0)=>{u=!0,c(_,v)},c=(v,_)=>{if(a===(a=v))return;let m=!1;if(F){const w=o.data===ur;!!a===w&&(o=yi(),xe(o),je(!1),m=!0)}a?(i?zr(i):_&&(i=Ct(()=>_(o))),l&&Dr(l,()=>{l=null})):(l?zr(l):_&&(l=Ct(()=>_(o))),i&&Dr(i,()=>{i=null})),m&&je(!0)};Gt(()=>{u=!1,t(f),u||c(null,null)},d),F&&(o=z)}function Xe(e,t,r,o,i){var l=e,a="",d;Gt(()=>{if(a===(a=t()??"")){F&&Be();return}d!==void 0&&(Pe(d),d=void 0),a!==""&&(d=Ct(()=>{if(F){z.data;for(var u=Be(),f=u;u!==null&&(u.nodeType!==8||u.data!=="");)f=u,u=$e(u);if(u===null)throw $t(),Me;Re(z,f),l=xe(u);return}var c=a+"",v=rn(c);Re(De(v),v.lastChild),l.before(v)}))})}function Ji(e,t,r,o,i){var d;F&&Be();var l=(d=t.$$slots)==null?void 0:d[r],a=!1;l===!0&&(l=t.children,a=!0),l===void 0||l(e,a?()=>o:o)}function Ki(e,t){Xt(()=>{var r=e.getRootNode(),o=r.host?r:r.head??r.ownerDocument.head;if(!o.querySelector("#"+t.hash)){const i=document.createElement("style");i.id=t.hash,i.textContent=t.code,o.appendChild(i)}})}function ln(e){if(F){var t=!1,r=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var o=e.value;ue(e,"value",null),e.value=o}if(e.hasAttribute("checked")){var i=e.checked;ue(e,"checked",null),e.checked=i}}};e.__on_r=r,Ai(r),Qr()}}function Xi(e,t){var r=e.__attributes??(e.__attributes={});r.value===(r.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!=="PROGRESS")||(e.value=t)}function ue(e,t,r,o){var i=e.__attributes??(e.__attributes={});F&&(i[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName==="LINK")||i[t]!==(i[t]=r)&&(t==="style"&&"__styles"in e&&(e.__styles={}),t==="loading"&&(e[oi]=r),r==null?e.removeAttribute(t):typeof r!="string"&&Qi(e).includes(t)?e[t]=r:e.setAttribute(t,r))}var an=new Map;function Qi(e){var t=an.get(e.nodeName);if(t)return t;an.set(e.nodeName,t=[]);for(var r,o=Mt(e),i=Element.prototype;i!==o;){r=ei(o);for(var l in r)r[l].set&&t.push(l);o=Mt(o)}return t}function eo(e,t,r){if(r){if(e.classList.contains(t))return;e.classList.add(t)}else{if(!e.classList.contains(t))return;e.classList.remove(t)}}function to(e,t,r=t){Ui(e,"change",o=>{var i=o?e.defaultChecked:e.checked;r(i)}),(F&&e.defaultChecked!==e.checked||Je(t)==null)&&r(e.checked),Zt(()=>{var o=t();e.checked=!!o})}function sn(e,t){return e===t||(e==null?void 0:e[lt])===t}function un(e={},t,r,o){return Wt(()=>{var i,l;return Zt(()=>{i=l,l=[],Je(()=>{e!==r(...l)&&(t(e,...l),i&&sn(r(...i),e)&&t(null,...i))})}),()=>{Xt(()=>{l&&sn(r(...l),e)&&t(null,...l)})}}),e}function fn(e){B===null&&qr(),Yt(()=>{const t=Je(e);if(typeof t=="function")return t})}function ro(e){B===null&&qr(),fn(()=>()=>Je(e))}let Dt=!1;function no(e){var t=Dt;try{return Dt=!1,[e(),Dt]}finally{Dt=t}}function io(e){for(var t=y,r=y;t!==null&&!(t.f&(le|it));)t=t.parent;try{return he(t),e()}finally{he(r)}}function S(e,t,r,o){var Ie;var i=(r&wt)!==0,l=!yr,a=(r&Gn)!==0,d=(r&Jn)!==0,u=!1,f;a?[f,u]=no(()=>e[t]):f=e[t];var c=lt in e||gr in e,v=((Ie=Ne(e,t))==null?void 0:Ie.set)??(c&&a&&t in e?I=>e[t]=I:void 0),_=o,m=!0,w=!1,L=()=>(w=!0,m&&(m=!1,d?_=Je(o):_=o),_);f===void 0&&o!==void 0&&(v&&l&&di(),f=L(),v&&v(f));var M;if(M=()=>{var I=e[t];return I===void 0?L():(m=!0,w=!1,I)},!(r&Zn))return M;if(v){var ne=e.$$legacy;return function(I,W){return arguments.length>0?((!W||ne||u)&&v(W?M():I),I):M()}}var q=!1,Y=!1,we=wr(f),H=io(()=>at(()=>{var I=M(),W=h(we);return q?(q=!1,Y=!0,W):(Y=!1,we.v=I)}));return i||(H.equals=pr),function(I,W){if(arguments.length>0){const ge=W?h(H):a?ae(I):I;return H.equals(ge)||(q=!0,P(we,ge),w&&_!==void 0&&(_=ge),Je(()=>h(H))),I}return h(H)}}function oo(e){return new lo(e)}class lo{constructor(t){lr(this,ye);lr(this,re);var l;var r=new Map,o=(a,d)=>{var u=wr(d);return r.set(a,u),u};const i=new Proxy({...t.props||{},$$events:{}},{get(a,d){return h(r.get(d)??o(d,Reflect.get(a,d)))},has(a,d){return d===gr?!0:(h(r.get(d)??o(d,Reflect.get(a,d))),Reflect.has(a,d))},set(a,d,u){return P(r.get(d)??o(d,u),u),Reflect.set(a,d,u)}});ar(this,re,(t.hydrate?Zi:nn)(t.component,{target:t.target,anchor:t.anchor,props:i,context:t.context,intro:t.intro??!1,recover:t.recover})),(!((l=t==null?void 0:t.props)!=null&&l.$$host)||t.sync===!1)&&C(),ar(this,ye,i.$$events);for(const a of Object.keys(K(this,re)))a==="$set"||a==="$destroy"||a==="$on"||Et(this,a,{get(){return K(this,re)[a]},set(d){K(this,re)[a]=d},enumerable:!0});K(this,re).$set=a=>{Object.assign(i,a)},K(this,re).$destroy=()=>{Gi(K(this,re))}}$set(t){K(this,re).$set(t)}$on(t,r){K(this,ye)[t]=K(this,ye)[t]||[];const o=(...i)=>r.call(this,...i);return K(this,ye)[t].push(o),()=>{K(this,ye)[t]=K(this,ye)[t].filter(i=>i!==o)}}$destroy(){K(this,re).$destroy()}}ye=new WeakMap,re=new WeakMap;let cn;typeof HTMLElement=="function"&&(cn=class extends HTMLElement{constructor(t,r,o){super();ce(this,"$$ctor");ce(this,"$$s");ce(this,"$$c");ce(this,"$$cn",!1);ce(this,"$$d",{});ce(this,"$$r",!1);ce(this,"$$p_d",{});ce(this,"$$l",{});ce(this,"$$l_u",new Map);ce(this,"$$me");this.$$ctor=t,this.$$s=r,o&&this.attachShadow({mode:"open"})}addEventListener(t,r,o){if(this.$$l[t]=this.$$l[t]||[],this.$$l[t].push(r),this.$$c){const i=this.$$c.$on(t,r);this.$$l_u.set(r,i)}super.addEventListener(t,r,o)}removeEventListener(t,r,o){if(super.removeEventListener(t,r,o),this.$$c){const i=this.$$l_u.get(r);i&&(i(),this.$$l_u.delete(r))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let t=function(i){return l=>{const a=document.createElement("slot");i!=="default"&&(a.name=i),te(l,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const r={},o=ao(this);for(const i of this.$$s)i in o&&(i==="default"&&!this.$$d.children?(this.$$d.children=t(i),r.default=!0):r[i]=t(i));for(const i of this.attributes){const l=this.$$g_p(i.name);l in this.$$d||(this.$$d[l]=Pt(l,i.value,this.$$p_d,"toProp"))}for(const i in this.$$p_d)!(i in this.$$d)&&this[i]!==void 0&&(this.$$d[i]=this[i],delete this[i]);this.$$c=oo({component:this.$$ctor,target:this.shadowRoot||this,props:{...this.$$d,$$slots:r,$$host:this}}),this.$$me=Ir(()=>{Zt(()=>{var i;this.$$r=!0;for(const l of bt(this.$$c)){if(!((i=this.$$p_d[l])!=null&&i.reflect))continue;this.$$d[l]=this.$$c[l];const a=Pt(l,this.$$d[l],this.$$p_d,"toAttribute");a==null?this.removeAttribute(this.$$p_d[l].attribute||l):this.setAttribute(this.$$p_d[l].attribute||l,a)}this.$$r=!1})});for(const i in this.$$l)for(const l of this.$$l[i]){const a=this.$$c.$on(i,l);this.$$l_u.set(l,a)}this.$$l={}}}attributeChangedCallback(t,r,o){var i;this.$$r||(t=this.$$g_p(t),this.$$d[t]=Pt(t,o,this.$$p_d,"toProp"),(i=this.$$c)==null||i.$set({[t]:this.$$d[t]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(t){return bt(this.$$p_d).find(r=>this.$$p_d[r].attribute===t||!this.$$p_d[r].attribute&&r.toLowerCase()===t)||t}});function Pt(e,t,r,o){var l;const i=(l=r[e])==null?void 0:l.type;if(t=i==="Boolean"&&typeof t!="boolean"?t!=null:t,!o||!r[e])return t;if(o==="toAttribute")switch(i){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t??null;default:return t}else switch(i){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function ao(e){const t={};return e.childNodes.forEach(r=>{t[r.slot||"default"]=!0}),t}function so(e,t,r,o,i,l){let a=class extends cn{constructor(){super(e,r,i),this.$$p_d=t}static get observedAttributes(){return bt(t).map(d=>(t[d].attribute||d).toLowerCase())}};return bt(t).forEach(d=>{Et(a.prototype,d,{get(){return this.$$c&&d in this.$$c?this.$$c[d]:this.$$d[d]},set(u){var v;u=Pt(d,u,t),this.$$d[d]=u;var f=this.$$c;if(f){var c=(v=Ne(f,d))==null?void 0:v.get;c?f[d]=u:f.$set({[d]:u})}}})}),o.forEach(d=>{Et(a.prototype,d,{get(){var u;return(u=this.$$c)==null?void 0:u[d]}})}),e.element=a,a}const dn=new TextEncoder;function uo(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")}async function fo(e,t="SHA-256",r=1e5){const o=Date.now().toString(16);e||(e=Math.round(Math.random()*r));const i=await hn(o,e,t);return{algorithm:t,challenge:i,salt:o,signature:""}}async function hn(e,t,r){if(typeof crypto>"u"||!("subtle"in crypto)||!("digest"in crypto.subtle))throw new Error("Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).");return uo(await crypto.subtle.digest(r.toUpperCase(),dn.encode(e+t)))}function co(e,t,r="SHA-256",o=1e6,i=0){const l=new AbortController,a=Date.now();return{promise:(async()=>{for(let u=i;u<=o;u+=1){if(l.signal.aborted)return null;if(await hn(t,u,r)===e)return{number:u,took:Date.now()-a}}return null})(),controller:l}}function ho(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{}}function vo(e){const t=atob(e),r=new Uint8Array(t.length);for(let o=0;o<t.length;o++)r[o]=t.charCodeAt(o);return r}function _o(e,t=12){const r=new Uint8Array(t);for(let o=0;o<t;o++)r[o]=e%256,e=Math.floor(e/256);return r}async function go(e,t="",r=1e6,o=0){const i="AES-GCM",l=new AbortController,a=Date.now(),d=async()=>{for(let c=o;c<=r;c+=1){if(l.signal.aborted||!u||!f)return null;try{const v=await crypto.subtle.decrypt({name:i,iv:_o(c)},u,f);if(v)return{clearText:new TextDecoder().decode(v),took:Date.now()-a}}catch{}}return null};let u=null,f=null;try{f=vo(e);const c=await crypto.subtle.digest("SHA-256",dn.encode(t));u=await crypto.subtle.importKey("raw",c,i,!1,["decrypt"])}catch{return{promise:Promise.reject(),controller:l}}return{promise:d(),controller:l}}var b=(e=>(e.ERROR="error",e.VERIFIED="verified",e.VERIFYING="verifying",e.UNVERIFIED="unverified",e.EXPIRED="expired",e))(b||{}),mo=se('<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class="svelte-ddsc3z"><path d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z" fill="currentColor" opacity=".25" class="svelte-ddsc3z"></path><path d="M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z" fill="currentColor" class="altcha-spinner svelte-ddsc3z"></path></svg>'),po=se('<span role="status" aria-live="polite" class="svelte-ddsc3z"><!></span> <input type="hidden" class="svelte-ddsc3z">',1),yo=se('<span role="status" aria-live="polite" class="svelte-ddsc3z"><!></span>'),wo=se('<label class="svelte-ddsc3z"><!></label>'),bo=se('<div class="svelte-ddsc3z"><a target="_blank" class="altcha-logo svelte-ddsc3z"><svg width="22" height="22" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-ddsc3z"><path d="M2.33955 16.4279C5.88954 20.6586 12.1971 21.2105 16.4279 17.6604C18.4699 15.947 19.6548 13.5911 19.9352 11.1365L17.9886 10.4279C17.8738 12.5624 16.909 14.6459 15.1423 16.1284C11.7577 18.9684 6.71167 18.5269 3.87164 15.1423C1.03163 11.7577 1.4731 6.71166 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577C16.9767 5.86872 17.5322 7.02798 17.804 8.2324L19.9522 9.01429C19.7622 7.07737 19.0059 5.17558 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956C-0.658625 5.88958 -1.21046 12.1971 2.33955 16.4279Z" fill="currentColor" class="svelte-ddsc3z"></path><path d="M3.57212 2.33956C1.65755 3.94607 0.496389 6.11731 0.12782 8.40523L2.04639 9.13961C2.26047 7.15832 3.21057 5.25375 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577L13.8302 6.78606L19.9633 9.13364C19.7929 7.15555 19.0335 5.20847 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956Z" fill="currentColor" class="svelte-ddsc3z"></path><path d="M7 10H5C5 12.7614 7.23858 15 10 15C12.7614 15 15 12.7614 15 10H13C13 11.6569 11.6569 13 10 13C8.3431 13 7 11.6569 7 10Z" fill="currentColor" class="svelte-ddsc3z"></path></svg></a></div>'),Eo=se('<div class="svelte-ddsc3z"><!></div>'),xo=se('<div class="svelte-ddsc3z"><!></div>'),$o=se('<div class="altcha-error svelte-ddsc3z"><svg width="14" height="14" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="svelte-ddsc3z"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" class="svelte-ddsc3z"></path></svg> <!></div>'),ko=se('<div class="altcha-footer svelte-ddsc3z"><div class="svelte-ddsc3z"><!></div></div>'),Co=se('<div class="altcha-anchor-arrow svelte-ddsc3z"></div>'),Ro=se('<!> <div class="altcha svelte-ddsc3z"><div class="altcha-main svelte-ddsc3z"><!> <div class="altcha-checkbox svelte-ddsc3z"><input type="checkbox" class="svelte-ddsc3z"></div> <div class="altcha-label svelte-ddsc3z"><!></div> <!></div> <!> <!> <!></div>',1);const Ao={hash:"svelte-ddsc3z",code:`.altcha.svelte-ddsc3z {background:var(--altcha-color-base, transparent);border:var(--altcha-border-width, 1px) solid var(--altcha-color-border, #a0a0a0);border-radius:var(--altcha-border-radius, 3px);color:var(--altcha-color-text, currentColor);display:flex;flex-direction:column;max-width:var(--altcha-max-width, 260px);position:relative;text-align:left;}.altcha.svelte-ddsc3z:focus-within {border-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z {background:var(--altcha-color-base, white);display:none;filter:drop-shadow(3px 3px 6px rgba(0, 0, 0, 0.2));left:-100%;position:fixed;top:-100%;width:var(--altcha-max-width, 260px);z-index:999999;}.altcha[data-floating=top].svelte-ddsc3z .altcha-anchor-arrow:where(.svelte-ddsc3z) {border-bottom-color:transparent;border-top-color:var(--altcha-color-border, #a0a0a0);bottom:-12px;top:auto;}.altcha[data-floating=bottom].svelte-ddsc3z:focus-within::after {border-bottom-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating=top].svelte-ddsc3z:focus-within::after {border-top-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z:not([data-state=unverified]) {display:block;}.altcha-anchor-arrow.svelte-ddsc3z {border:6px solid transparent;border-bottom-color:var(--altcha-color-border, #a0a0a0);content:"";height:0;left:12px;position:absolute;top:-12px;width:0;}.altcha-main.svelte-ddsc3z {align-items:center;display:flex;gap:0.4rem;padding:0.7rem;}.altcha-label.svelte-ddsc3z {flex-grow:1;}.altcha-label.svelte-ddsc3z label:where(.svelte-ddsc3z) {cursor:pointer;}.altcha-logo.svelte-ddsc3z {color:currentColor;opacity:0.3;}.altcha-logo.svelte-ddsc3z:hover {opacity:1;}.altcha-error.svelte-ddsc3z {color:var(--altcha-color-error-text, #f23939);display:flex;font-size:0.85rem;gap:0.3rem;padding:0 0.7rem 0.7rem;}.altcha-footer.svelte-ddsc3z {align-items:center;background-color:var(--altcha-color-footer-bg, transparent);display:flex;font-size:0.75rem;opacity:0.4;padding:0.2rem 0.7rem;text-align:right;}.altcha-footer.svelte-ddsc3z:hover {opacity:1;}.altcha-footer.svelte-ddsc3z > :where(.svelte-ddsc3z):first-child {flex-grow:1;}.altcha-footer.svelte-ddsc3z a {color:currentColor;}.altcha-checkbox.svelte-ddsc3z {display:flex;align-items:center;height:24px;width:24px;}.altcha-checkbox.svelte-ddsc3z input:where(.svelte-ddsc3z) {width:18px;height:18px;margin:0;}.altcha-hidden.svelte-ddsc3z {display:none;}.altcha-spinner.svelte-ddsc3z {
|
|
2
|
+
animation: svelte-ddsc3z-altcha-spinner 0.75s infinite linear;transform-origin:center;}
|
|
3
|
+
|
|
4
|
+
@keyframes svelte-ddsc3z-altcha-spinner {
|
|
5
|
+
100% {
|
|
6
|
+
transform: rotate(360deg);
|
|
7
|
+
}
|
|
8
|
+
}`};function vn(e,t){var jn,Bn;Jr(t,!0),Ki(e,Ao);let r=S(t,"auto",7,void 0),o=S(t,"blockspam",7,void 0),i=S(t,"challengeurl",7,void 0),l=S(t,"challengejson",7,void 0),a=S(t,"customfetch",7,void 0),d=S(t,"debug",7,!1),u=S(t,"delay",7,0),f=S(t,"expire",7,void 0),c=S(t,"floating",7,void 0),v=S(t,"floatinganchor",7,void 0),_=S(t,"floatingoffset",7,void 0),m=S(t,"hidefooter",7,!1),w=S(t,"hidelogo",7,!1),L=S(t,"name",7,"altcha"),M=S(t,"maxnumber",7,1e6),ne=S(t,"mockerror",7,!1),q=S(t,"obfuscated",7,void 0),Y=S(t,"plugins",7,void 0),we=S(t,"refetchonexpire",7,!0),H=S(t,"spamfilter",7,!1),Ie=S(t,"strings",7,void 0),I=S(t,"test",7,!1),W=S(t,"verifyurl",7,void 0),ge=S(t,"workers",23,()=>Math.min(16,navigator.hardwareConcurrency||8)),ht=S(t,"workerurl",7,void 0);const _n=["SHA-256","SHA-384","SHA-512"],gn="Visit Altcha.org",mn="https://altcha.org/",vt=(n,s)=>{t.$$host.dispatchEvent(new CustomEvent(n,{detail:s}))},pn=(Bn=(jn=document.documentElement.lang)==null?void 0:jn.split("-"))==null?void 0:Bn[0],rr=at(()=>{var n;return i()&&new URL(i(),location.origin).host.endsWith(".altcha.org")&&!!((n=i())!=null&&n.includes("apiKey=ckey_"))}),nr=at(()=>l()?In(l()):void 0),yn=at(()=>Ie()?In(Ie()):{}),ie=at(()=>{var n;return{ariaLinkLabel:gn,error:"Verification failed. Try again later.",expired:"Verification expired. Try again.",footer:`Protected by <a href="${mn}" target="_blank" aria-label="${((n=h(yn))==null?void 0:n.ariaLinkLabel)||gn}">ALTCHA</a>`,label:"I'm not a robot",verified:"Verified",verifying:"Verifying...",waitAlert:"Verifying... please wait.",...h(yn)}});let Qe=Ve(!1),T=Ve(ae(b.UNVERIFIED)),Z=Ve(void 0),_t=Ve(null),et=null,E=null,tt=Ve(null),me=null,Se=[],Oe=Ve(null);Yt(()=>{zo(h(tt))}),Yt(()=>{Oo(h(T))}),ro(()=>{Io(),E&&(E.removeEventListener("submit",kn),E.removeEventListener("reset",Cn),E.removeEventListener("focusin",$n),E=null),me&&(clearTimeout(me),me=null),document.removeEventListener("click",En),document.removeEventListener("scroll",xn),window.removeEventListener("resize",An)}),fn(()=>{var n;N("mounted","1.1.0-beta.1"),N("workers",ge()),Do(),N("plugins",Se.length?Se.map(s=>s.constructor.pluginName).join(", "):"none"),I()&&N("using test mode"),f()&&Ot(f()),r()!==void 0&&N("auto",r()),c()!==void 0&&Sn(c()),E=(n=h(Z))==null?void 0:n.closest("form"),E&&(E.addEventListener("submit",kn,{capture:!0}),E.addEventListener("reset",Cn),r()==="onfocus"&&E.addEventListener("focusin",$n)),r()==="onload"&&(q()?gt():Te()),h(rr)&&(m()||w())&&N("Attributes hidefooter and hidelogo ignored because usage with free API Keys requires attribution."),requestAnimationFrame(()=>{vt("load")})});function wn(n,s){return btoa(JSON.stringify({algorithm:n.algorithm,challenge:n.challenge,number:s.number,salt:n.salt,signature:n.signature,test:I()?!0:void 0,took:s.took}))}function Io(){for(const n of Se)n.destroy()}function bn(){i()&&we()&&h(T)===b.VERIFIED?Te():mt(b.EXPIRED,h(ie).expired)}async function So(){var n;if(ne())throw N("mocking error"),new Error("Mocked error.");if(h(nr))return N("using provided json data"),h(nr);if(I())return N("generating test challenge",{test:I()}),fo(typeof I()!="boolean"?+I():void 0);{if(!i()&&E){const D=E.getAttribute("action");D!=null&&D.includes("/form/")&&i(D+"/altcha")}if(!i())throw new Error("Attribute challengeurl not set.");N("fetching challenge from",i());let s=null,g=null;if(a())if(N("using customfetch"),typeof a()=="string"){if(s=globalThis[a()]||null,!s)throw new Error(`Custom fetch function not found: ${a()}`)}else s=a();const x={headers:H()!==!1?{"x-altcha-spam-filter":"1"}:{}};if(s){if(g=await s(i(),x),!g||!(g instanceof Response))throw new Error("Custom fetch function did not return a response.")}else g=await fetch(i(),x);if(g.status!==200)throw new Error(`Server responded with ${g.status}.`);const O=g.headers.get("Expires"),A=g.headers.get("X-Altcha-Config"),p=await g.json(),U=new URLSearchParams((n=p.salt.split("?"))==null?void 0:n[1]),be=U.get("expires")||U.get("expire");if(be){const D=new Date(+be*1e3),fe=isNaN(D.getTime())?0:D.getTime()-Date.now();fe>0&&Ot(fe)}if(A)try{const D=JSON.parse(A);D&&typeof D=="object"&&(D.verifyurl&&(D.verifyurl=new URL(D.verifyurl,new URL(i())).toString()),Ln(D))}catch(D){N("unable to configure from X-Altcha-Config",D)}if(!f()&&(O!=null&&O.length)){const D=Date.parse(O);if(D){const fe=D-Date.now();fe>0&&Ot(fe)}}return p}}function To(n){var g;const s=E==null?void 0:E.querySelector(typeof n=="string"?`input[name="${n}"]`:'input[type="email"]:not([data-no-spamfilter])');return((g=s==null?void 0:s.value)==null?void 0:g.slice(s.value.indexOf("@")))||void 0}function No(){return H()==="ipAddress"?{blockedCountries:void 0,classifier:void 0,disableRules:void 0,email:!1,expectedCountries:void 0,expectedLanguages:void 0,fields:!1,ipAddress:void 0,text:void 0,timeZone:void 0}:typeof H()=="object"?H():{blockedCountries:void 0,classifier:void 0,disableRules:void 0,email:void 0,expectedCountries:void 0,expectedLanguages:void 0,fields:void 0,ipAddress:void 0,text:void 0,timeZone:void 0}}function Lo(n){return[...(E==null?void 0:E.querySelectorAll(n!=null&&n.length?n.map(g=>`input[name="${g}"]`).join(", "):'input[type="text"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])'))||[]].reduce((g,x)=>{const O=x.name,A=x.value;return O&&A&&(g[O]=/\n/.test(A)?A.replace(new RegExp("(?<!\\r)\\n","g"),`\r
|
|
9
|
+
`):A),g},{})}function Do(){const n=Y()!==void 0?Y().split(","):void 0;for(const s of globalThis.altchaPlugins)(!n||n.includes(s.pluginName))&&Se.push(new s({el:h(Z),clarify:gt,dispatch:vt,getConfiguration:Dn,getFloatingAnchor:Pn,getState:zn,log:N,reset:mt,solve:Nn,setState:Fe,setFloatingAnchor:On,verify:Te}))}function N(...n){(d()||n.some(s=>s instanceof Error))&&console[n[0]instanceof Error?"error":"log"]("ALTCHA",`[name=${L()}]`,...n)}function Po(){[b.UNVERIFIED,b.ERROR,b.EXPIRED].includes(h(T))?H()!==!1&&(E==null?void 0:E.reportValidity())===!1?P(Qe,!1):q()?gt():Te():P(Qe,!0)}function En(n){const s=n.target;c()&&s&&!h(Z).contains(s)&&(h(T)===b.VERIFIED||r()==="off"&&h(T)===b.UNVERIFIED)&&(h(Z).style.display="none")}function xn(){c()&&h(T)!==b.UNVERIFIED&&zt()}function zo(n){for(const s of Se)typeof s.onErrorChange=="function"&&s.onErrorChange(h(tt))}function $n(n){h(T)===b.UNVERIFIED&&Te()}function kn(n){E&&r()==="onsubmit"?h(T)===b.UNVERIFIED?(n.preventDefault(),n.stopPropagation(),Te().then(()=>{E==null||E.requestSubmit()})):h(T)!==b.VERIFIED&&(n.preventDefault(),n.stopPropagation(),h(T)===b.VERIFYING&&Rn()):E&&c()&&r()==="off"&&h(T)===b.UNVERIFIED&&(n.preventDefault(),n.stopPropagation(),h(Z).style.display="block",zt())}function Cn(){mt()}function Rn(){h(T)===b.VERIFYING&&h(ie).waitAlert&&alert(h(ie).waitAlert)}function Oo(n){for(const s of Se)typeof s.onStateChange=="function"&&s.onStateChange(h(T));c()&&h(T)!==b.UNVERIFIED&&requestAnimationFrame(()=>{zt()}),P(Qe,h(T)===b.VERIFIED)}function An(){c()&&zt()}function In(n){return JSON.parse(n)}function zt(n=20){if(h(Z))if(et||(et=(v()?document.querySelector(v()):E==null?void 0:E.querySelector('input[type="submit"], button[type="submit"], button:not([type="button"]):not([type="reset"])'))||E),et){const s=parseInt(_(),10)||12,g=et.getBoundingClientRect(),x=h(Z).getBoundingClientRect(),O=document.documentElement.clientHeight,A=document.documentElement.clientWidth,p=c()==="auto"?g.bottom+x.height+s+n>O:c()==="top",U=Math.max(n,Math.min(A-n-x.width,g.left+g.width/2-x.width/2));if(p?h(Z).style.top=`${g.top-(x.height+s)}px`:h(Z).style.top=`${g.bottom+s}px`,h(Z).style.left=`${U}px`,h(Z).setAttribute("data-floating",p?"top":"bottom"),h(_t)){const be=h(_t).getBoundingClientRect();h(_t).style.left=g.left-U+g.width/2-be.width/2+"px"}}else N("unable to find floating anchor element")}async function Fo(n){if(!W())throw new Error("Attribute verifyurl not set.");N("requesting server verification from",W());const s={payload:n};if(H()!==!1){const{blockedCountries:O,classifier:A,disableRules:p,email:U,expectedLanguages:be,expectedCountries:D,fields:fe,ipAddress:yt,text:Ko,timeZone:Hn}=No();s.blockedCountries=O,s.classifier=A,s.disableRules=p,s.email=U===!1?void 0:To(U),s.expectedCountries=D,s.expectedLanguages=be||(pn?[pn]:void 0),s.fields=fe===!1?void 0:Lo(fe),s.ipAddress=yt===!1?void 0:yt||"auto",s.text=Ko,s.timeZone=Hn===!1?void 0:Hn||ho()}const g=await fetch(W(),{body:JSON.stringify(s),headers:{"content-type":"application/json"},method:"POST"});if(g.status!==200)throw new Error(`Server responded with ${g.status}.`);const x=await g.json();if(x!=null&&x.payload&&P(Oe,ae(x.payload)),vt("serververification",x),o()&&x.classification==="BAD")throw new Error("SpamFilter returned negative classification.")}function Ot(n){N("expire",n),me&&(clearTimeout(me),me=null),n<1?bn():me=setTimeout(bn,n)}function Sn(n){N("floating",n),c()!==n&&(h(Z).style.left="",h(Z).style.top=""),c(n===!0||n===""?"auto":n===!1||n==="false"?void 0:c()),c()?(r()||r("onsubmit"),document.addEventListener("scroll",xn),document.addEventListener("click",En),window.addEventListener("resize",An)):r()==="onsubmit"&&r(void 0)}function Tn(n){if(!n.algorithm)throw new Error("Invalid challenge. Property algorithm is missing.");if(n.signature===void 0)throw new Error("Invalid challenge. Property signature is missing.");if(!_n.includes(n.algorithm.toUpperCase()))throw new Error(`Unknown algorithm value. Allowed values: ${_n.join(", ")}`);if(!n.challenge||n.challenge.length<40)throw new Error("Challenge is too short. Min. 40 chars.");if(!n.salt||n.salt.length<10)throw new Error("Salt is too short. Min. 10 chars.")}async function Nn(n){let s=null;if("Worker"in window){try{s=await Mo(n,n.maxnumber)}catch(g){N(g)}if((s==null?void 0:s.number)!==void 0||"obfuscated"in n)return{data:n,solution:s}}if("obfuscated"in n){const g=await go(n.obfuscated,n.key,n.maxnumber);return{data:n,solution:await g.promise}}return{data:n,solution:await co(n.challenge,n.salt,n.algorithm,n.maxnumber||M()).promise}}async function Mo(n,s=typeof I()=="number"?I():M(),g=Math.ceil(ge())){const x=[];g=Math.min(16,Math.max(1,g));for(let p=0;p<g;p++)x.push(altchaCreateWorker(ht()));const O=Math.ceil(s/g),A=await Promise.all(x.map((p,U)=>{const be=U*O;return new Promise(D=>{p.addEventListener("message",fe=>{if(fe.data)for(const yt of x)yt!==p&&yt.postMessage({type:"abort"});D(fe.data)}),p.postMessage({payload:n,max:be+O,start:be,type:"work"})})}));for(const p of x)p.terminate();return A.find(p=>!!p)||null}async function gt(){if(!q()){Fe(b.ERROR);return}const n=Se.find(s=>s.constructor.pluginName==="obfuscation");if(!n||!("clarify"in n)){Fe(b.ERROR),N("Plugin `obfuscation` not found. Import `altcha/plugins/obfuscation` to load it.");return}if("clarify"in n&&typeof n.clarify=="function")return n.clarify()}function Ln(n){n.obfuscated!==void 0&&q(n.obfuscated),n.auto!==void 0&&(r(n.auto),r()==="onload"&&(q()?gt():Te())),n.blockspam!==void 0&&o(!!n.blockspam),n.customfetch!==void 0&&a(n.customfetch),n.floatinganchor!==void 0&&v(n.floatinganchor),n.delay!==void 0&&u(n.delay),n.floatingoffset!==void 0&&_(n.floatingoffset),n.floating!==void 0&&Sn(n.floating),n.expire!==void 0&&(Ot(n.expire),f(n.expire)),n.challenge&&(l(typeof n.challenge=="string"?n.challenge:JSON.stringify(n.challenge)),Tn(h(nr))),n.challengeurl!==void 0&&i(n.challengeurl),n.debug!==void 0&&d(!!n.debug),n.hidefooter!==void 0&&m(!!n.hidefooter),n.hidelogo!==void 0&&w(!!n.hidelogo),n.maxnumber!==void 0&&M(+n.maxnumber),n.mockerror!==void 0&&ne(!!n.mockerror),n.name!==void 0&&L(n.name),n.refetchonexpire!==void 0&&we(!!n.refetchonexpire),n.spamfilter!==void 0&&H(typeof n.spamfilter=="object"?n.spamfilter:!!n.spamfilter),n.strings&&Ie(typeof n.strings=="string"?n.strings:JSON.stringify(n.strings)),n.test!==void 0&&I(typeof n.test=="number"?n.test:!!n.test),n.verifyurl!==void 0&&W(n.verifyurl),n.workers!==void 0&&ge(+n.workers),n.workerurl!==void 0&&ht(n.workerurl)}function Dn(){return{auto:r(),blockspam:o(),challengeurl:i(),debug:d(),delay:u(),expire:f(),floating:c(),floatinganchor:v(),floatingoffset:_(),hidefooter:m(),hidelogo:w(),name:L(),maxnumber:M(),mockerror:ne(),obfuscated:q(),refetchonexpire:we(),spamfilter:H(),strings:h(ie),test:I(),verifyurl:W(),workers:ge(),workerurl:ht()}}function Pn(){return et}function qo(n){return Se.find(s=>s.constructor.pluginName===n)}function zn(){return h(T)}function mt(n=b.UNVERIFIED,s=null){me&&(clearTimeout(me),me=null),P(Qe,!1),P(Oe,null),Fe(n,s)}function On(n){et=n}function Fe(n,s=null){P(T,ae(n)),P(tt,ae(s)),vt("statechange",{payload:h(Oe),state:h(T)})}async function Te(){return mt(b.VERIFYING),await new Promise(n=>setTimeout(n,u()||0)),So().then(n=>(Tn(n),N("challenge",n),Nn(n))).then(({data:n,solution:s})=>{if(N("solution",s),"challenge"in n&&s&&!("clearText"in s))if((s==null?void 0:s.number)!==void 0){if(W())return Fo(wn(n,s));P(Oe,ae(wn(n,s))),N("payload",h(Oe))}else throw N("Unable to find a solution. Ensure that the 'maxnumber' attribute is greater than the randomly generated number."),new Error("Unexpected result returned.")}).then(()=>{Fe(b.VERIFIED),N("verified"),Mi().then(()=>{vt("verified",{payload:h(Oe)})})}).catch(n=>{N(n),Fe(b.ERROR,n.message)})}var Fn=Ro(),Mn=Bt(Fn);Ji(Mn,t,"default",{});var pt=pe(Mn,2),ir=Q(pt),qn=Q(ir);{var Uo=n=>{var s=mo();te(n,s)};Ae(qn,n=>{h(T)===b.VERIFYING&&n(Uo)})}var Ft=pe(qn,2),rt=Q(Ft);ln(rt),rt.__change=Po,X(Ft);var or=pe(Ft,2),Vo=Q(or);{var jo=n=>{var s=po(),g=Bt(s),x=Q(g);Xe(x,()=>h(ie).verified),X(g);var O=pe(g,2);ln(O),Ye(()=>{ue(O,"name",L()),Xi(O,h(Oe))}),te(n,s)},Bo=n=>{var s=Hi(),g=Bt(s);{var x=A=>{var p=yo(),U=Q(p);Xe(U,()=>h(ie).verifying),X(p),te(A,p)},O=A=>{var p=wo(),U=Q(p);Xe(U,()=>h(ie).label),X(p),Ye(()=>ue(p,"for",`${L()??""}_checkbox`)),te(A,p)};Ae(g,A=>{h(T)===b.VERIFYING?A(x):A(O,!1)},!0)}te(n,s)};Ae(Vo,n=>{h(T)===b.VERIFIED?n(jo):n(Bo,!1)})}X(or);var Ho=pe(or,2);{var Yo=n=>{var s=bo(),g=Q(s);ue(g,"href",mn),X(s),Ye(()=>ue(g,"aria-label",h(ie).ariaLinkLabel)),te(n,s)};Ae(Ho,n=>{(w()!==!0||h(rr))&&n(Yo)})}X(ir);var Un=pe(ir,2);{var Wo=n=>{var s=$o(),g=pe(Q(s),2);{var x=A=>{var p=Eo(),U=Q(p);Xe(U,()=>h(ie).expired),X(p),Ye(()=>ue(p,"title",h(tt))),te(A,p)},O=A=>{var p=xo(),U=Q(p);Xe(U,()=>h(ie).error),X(p),Ye(()=>ue(p,"title",h(tt))),te(A,p)};Ae(g,A=>{h(T)===b.EXPIRED?A(x):A(O,!1)})}X(s),te(n,s)};Ae(Un,n=>{(h(tt)||h(T)===b.EXPIRED)&&n(Wo)})}var Vn=pe(Un,2);{var Zo=n=>{var s=ko(),g=Q(s),x=Q(g);Xe(x,()=>h(ie).footer),X(g),X(s),te(n,s)};Ae(Vn,n=>{h(ie).footer&&(m()!==!0||h(rr))&&n(Zo)})}var Go=pe(Vn,2);{var Jo=n=>{var s=Co();un(s,g=>P(_t,g),()=>h(_t)),te(n,s)};Ae(Go,n=>{c()&&n(Jo)})}return X(pt),un(pt,n=>P(Z,n),()=>h(Z)),Ye(()=>{ue(pt,"data-state",h(T)),ue(pt,"data-floating",c()),eo(Ft,"altcha-hidden",h(T)===b.VERIFYING),ue(rt,"id",`${L()??""}_checkbox`),rt.required=r()!=="onsubmit"&&(!c()||r()!=="off")}),ji("invalid",rt,Rn),to(rt,()=>h(Qe),n=>P(Qe,n)),te(e,Fn),Kr({clarify:gt,configure:Ln,getConfiguration:Dn,getFloatingAnchor:Pn,getPlugin:qo,getState:zn,reset:mt,setFloatingAnchor:On,setState:Fe,verify:Te,get auto(){return r()},set auto(n=void 0){r(n),C()},get blockspam(){return o()},set blockspam(n=void 0){o(n),C()},get challengeurl(){return i()},set challengeurl(n=void 0){i(n),C()},get challengejson(){return l()},set challengejson(n=void 0){l(n),C()},get customfetch(){return a()},set customfetch(n=void 0){a(n),C()},get debug(){return d()},set debug(n=!1){d(n),C()},get delay(){return u()},set delay(n=0){u(n),C()},get expire(){return f()},set expire(n=void 0){f(n),C()},get floating(){return c()},set floating(n=void 0){c(n),C()},get floatinganchor(){return v()},set floatinganchor(n=void 0){v(n),C()},get floatingoffset(){return _()},set floatingoffset(n=void 0){_(n),C()},get hidefooter(){return m()},set hidefooter(n=!1){m(n),C()},get hidelogo(){return w()},set hidelogo(n=!1){w(n),C()},get name(){return L()},set name(n="altcha"){L(n),C()},get maxnumber(){return M()},set maxnumber(n=1e6){M(n),C()},get mockerror(){return ne()},set mockerror(n=!1){ne(n),C()},get obfuscated(){return q()},set obfuscated(n=void 0){q(n),C()},get plugins(){return Y()},set plugins(n=void 0){Y(n),C()},get refetchonexpire(){return we()},set refetchonexpire(n=!0){we(n),C()},get spamfilter(){return H()},set spamfilter(n=!1){H(n),C()},get strings(){return Ie()},set strings(n=void 0){Ie(n),C()},get test(){return I()},set test(n=!1){I(n),C()},get verifyurl(){return W()},set verifyurl(n=void 0){W(n),C()},get workers(){return ge()},set workers(n=Math.min(16,navigator.hardwareConcurrency||8)){ge(n),C()},get workerurl(){return ht()},set workerurl(n=void 0){ht(n),C()}})}Bi(["change"]),customElements.define("altcha-widget",so(vn,{blockspam:{type:"Boolean"},debug:{type:"Boolean"},delay:{type:"Number"},expire:{type:"Number"},floatingoffset:{type:"Number"},hidefooter:{type:"Boolean"},hidelogo:{type:"Boolean"},maxnumber:{type:"Number"},mockerror:{type:"Boolean"},refetchonexpire:{type:"Boolean"},test:{type:"Boolean"},workers:{type:"Number"},auto:{},challengeurl:{},challengejson:{},customfetch:{},floating:{},floatinganchor:{},name:{},obfuscated:{},plugins:{},spamfilter:{},strings:{},verifyurl:{},workerurl:{}},["default"],["clarify","configure","getConfiguration","getFloatingAnchor","getPlugin","getState","reset","setFloatingAnchor","setState","verify"],!1)),globalThis.altchaCreateWorker=e=>new Worker(new URL(e||"./worker.js",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:k&&k.tagName.toUpperCase()==="SCRIPT"&&k.src||new URL("altcha.umd.cjs",document.baseURI).href)),globalThis.altchaPlugins=globalThis.altchaPlugins||[],$.Altcha=vn,Object.defineProperty($,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "altcha",
|
|
3
3
|
"description": "GDPR compliant, self-hosted CAPTCHA alternative.",
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Daniel Regeci",
|
|
@@ -79,21 +79,21 @@
|
|
|
79
79
|
"postinstall": "node postinstall.js"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@
|
|
83
|
-
"@
|
|
84
|
-
"@sveltejs/vite-plugin-svelte": "^3.1.2",
|
|
82
|
+
"@playwright/test": "^1.49.1",
|
|
83
|
+
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
|
85
84
|
"@tsconfig/svelte": "^5.0.4",
|
|
86
85
|
"@types/node": "^20.16.3",
|
|
87
86
|
"husky": "^9.1.5",
|
|
88
87
|
"prettier": "3.2.5",
|
|
89
88
|
"prettier-plugin-svelte": "^3.2.6",
|
|
89
|
+
"rimraf": "^6.0.1",
|
|
90
90
|
"rollup-plugin-css-only": "^4.5.2",
|
|
91
91
|
"sass": "^1.77.8",
|
|
92
|
-
"svelte": "^
|
|
93
|
-
"svelte-check": "^
|
|
92
|
+
"svelte": "^5.0.0",
|
|
93
|
+
"svelte-check": "^4.0.0",
|
|
94
94
|
"tslib": "^2.7.0",
|
|
95
95
|
"typescript": "^5.5.4",
|
|
96
|
-
"vite": "^5.4.
|
|
96
|
+
"vite": "^5.4.4",
|
|
97
97
|
"vitest": "^0.34.6"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|