@botpoison/browser 0.1.32 → 0.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,27 +1,30 @@
1
+ type ProgressCallback = (progress: number) => void;
2
+ type SignedChallenge = {
3
+ payload: {
4
+ nonce: string;
5
+ difficulty: number;
6
+ hardness: number;
7
+ };
8
+ };
9
+
1
10
  declare global {
2
11
  interface Window {
3
12
  __BOTPOISON_VERSION__: string | undefined;
4
13
  __BOTPOISON_SUBMIT_LISTENER__: boolean | undefined;
5
- __BOTPOISON_HEARTBEAT_DISPATCHER__: boolean | undefined;
14
+ __BOTPOISON_SESSION_OPENED__: boolean | undefined;
6
15
  }
7
16
  }
8
17
  type BotpoisonOptions = {
9
18
  publicKey: string;
19
+ baseUrl?: string;
10
20
  };
11
21
  type ChallengeOptions = {
12
22
  onProgress?: ProgressCallback;
13
23
  };
14
- type ProgressCallback = (progress: number) => void;
15
- type SignedChallenge = {
16
- payload: {
17
- nonce: string;
18
- difficulty: number;
19
- hardness: number;
20
- };
21
- };
22
24
  declare class Botpoison {
23
25
  private readonly publicKey;
24
- constructor({ publicKey }: BotpoisonOptions);
26
+ private readonly baseUrl?;
27
+ constructor({ publicKey, baseUrl }: BotpoisonOptions);
25
28
  static init(): void;
26
29
  challenge(options?: ChallengeOptions): Promise<{
27
30
  solution: string;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var __botpoison=(()=>{var UF=Object.create;var pF=Object.defineProperty;var HF=Object.getOwnPropertyDescriptor;var KF=Object.getOwnPropertyNames;var MF=Object.getPrototypeOf,jF=Object.prototype.hasOwnProperty;var zF=(E,c)=>()=>(c||E((c={exports:{}}).exports,c),c.exports),JF=(E,c)=>{for(var d in c)pF(E,d,{get:c[d],enumerable:!0})},wF=(E,c,d,O)=>{if(c&&typeof c=="object"||typeof c=="function")for(let m of KF(c))!jF.call(E,m)&&m!==d&&pF(E,m,{get:()=>c[m],enumerable:!(O=HF(c,m))||O.enumerable});return E};var VF=(E,c,d)=>(d=E!=null?UF(MF(E)):{},wF(c||!E||!E.__esModule?pF(d,"default",{value:E,enumerable:!0}):d,E)),LF=E=>wF(pF({},"__esModule",{value:!0}),E);var gF=zF((QF,CF)=>{"use strict";(function(){"use strict";var E="input is invalid type",c="finalize already called",d=typeof window=="object",O=d?window:{};O.JS_SHA512_NO_WINDOW&&(d=!1);var m=!d&&typeof self=="object",R=!O.JS_SHA512_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;R?O=global:m&&(O=self);var rF=!O.JS_SHA512_NO_COMMON_JS&&typeof CF=="object"&&CF.exports,lF=typeof define=="function"&&define.amd,aF=!O.JS_SHA512_NO_ARRAY_BUFFER&&typeof ArrayBuffer!="undefined",F="0123456789abcdef".split(""),PF=[-2147483648,8388608,32768,128],eF=[24,16,8,0],nF=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],cF=["hex","array","digest","arrayBuffer"],p=[];(O.JS_SHA512_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(t){return Object.prototype.toString.call(t)==="[object Array]"}),aF&&(O.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(t){return typeof t=="object"&&t.buffer&&t.buffer.constructor===ArrayBuffer});var vF=function(t,e){return function(r){return new v(e,!0).update(r)[t]()}},AF=function(t){var e=vF("hex",t);e.create=function(){return new v(t)},e.update=function(B){return e.create().update(B)};for(var r=0;r<cF.length;++r){var f=cF[r];e[f]=vF(f,t)}return e},SF=function(t,e){return function(r,f){return new oF(r,e,!0).update(f)[t]()}},EF=function(t){var e=SF("hex",t);e.create=function(B){return new oF(B,t)},e.update=function(B,n){return e.create(B).update(n)};for(var r=0;r<cF.length;++r){var f=cF[r];e[f]=SF(f,t)}return e};function v(t,e){e?(p[0]=p[1]=p[2]=p[3]=p[4]=p[5]=p[6]=p[7]=p[8]=p[9]=p[10]=p[11]=p[12]=p[13]=p[14]=p[15]=p[16]=p[17]=p[18]=p[19]=p[20]=p[21]=p[22]=p[23]=p[24]=p[25]=p[26]=p[27]=p[28]=p[29]=p[30]=p[31]=p[32]=0,this.blocks=p):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t==384?(this.h0h=3418070365,this.h0l=3238371032,this.h1h=1654270250,this.h1l=914150663,this.h2h=2438529370,this.h2l=812702999,this.h3h=355462360,this.h3l=4144912697,this.h4h=1731405415,this.h4l=4290775857,this.h5h=2394180231,this.h5l=1750603025,this.h6h=3675008525,this.h6l=1694076839,this.h7h=1203062813,this.h7l=3204075428):t==256?(this.h0h=573645204,this.h0l=4230739756,this.h1h=2673172387,this.h1l=3360449730,this.h2h=596883563,this.h2l=1867755857,this.h3h=2520282905,this.h3l=1497426621,this.h4h=2519219938,this.h4l=2827943907,this.h5h=3193839141,this.h5l=1401305490,this.h6h=721525244,this.h6l=746961066,this.h7h=246885852,this.h7l=2177182882):t==224?(this.h0h=2352822216,this.h0l=424955298,this.h1h=1944164710,this.h1l=2312950998,this.h2h=502970286,this.h2l=855612546,this.h3h=1738396948,this.h3l=1479516111,this.h4h=258812777,this.h4l=2077511080,this.h5h=2011393907,this.h5l=79989058,this.h6h=1067287976,this.h6l=1780299464,this.h7h=286451373,this.h7l=2446758561):(this.h0h=1779033703,this.h0l=4089235720,this.h1h=3144134277,this.h1l=2227873595,this.h2h=1013904242,this.h2l=4271175723,this.h3h=2773480762,this.h3l=1595750129,this.h4h=1359893119,this.h4l=2917565137,this.h5h=2600822924,this.h5l=725511199,this.h6h=528734635,this.h6l=4215389547,this.h7h=1541459225,this.h7l=327033209),this.bits=t,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1}v.prototype.update=function(t){if(this.finalized)throw new Error(c);var e,r=typeof t;if(r!=="string"){if(r==="object"){if(t===null)throw new Error(E);if(aF&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!aF||!ArrayBuffer.isView(t)))throw new Error(E)}else throw new Error(E);e=!0}for(var f,B=0,n,C=t.length,s=this.blocks;B<C;){if(this.hashed&&(this.hashed=!1,s[0]=this.block,s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=s[16]=s[17]=s[18]=s[19]=s[20]=s[21]=s[22]=s[23]=s[24]=s[25]=s[26]=s[27]=s[28]=s[29]=s[30]=s[31]=s[32]=0),e)for(n=this.start;B<C&&n<128;++B)s[n>>2]|=t[B]<<eF[n++&3];else for(n=this.start;B<C&&n<128;++B)f=t.charCodeAt(B),f<128?s[n>>2]|=f<<eF[n++&3]:f<2048?(s[n>>2]|=(192|f>>6)<<eF[n++&3],s[n>>2]|=(128|f&63)<<eF[n++&3]):f<55296||f>=57344?(s[n>>2]|=(224|f>>12)<<eF[n++&3],s[n>>2]|=(128|f>>6&63)<<eF[n++&3],s[n>>2]|=(128|f&63)<<eF[n++&3]):(f=65536+((f&1023)<<10|t.charCodeAt(++B)&1023),s[n>>2]|=(240|f>>18)<<eF[n++&3],s[n>>2]|=(128|f>>12&63)<<eF[n++&3],s[n>>2]|=(128|f>>6&63)<<eF[n++&3],s[n>>2]|=(128|f&63)<<eF[n++&3]);this.lastByteIndex=n,this.bytes+=n-this.start,n>=128?(this.block=s[32],this.start=n-128,this.hash(),this.hashed=!0):this.start=n}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this},v.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex;t[32]=this.block,t[e>>2]|=PF[e&3],this.block=t[32],e>=112&&(this.hashed||this.hash(),t[0]=this.block,t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=t[16]=t[17]=t[18]=t[19]=t[20]=t[21]=t[22]=t[23]=t[24]=t[25]=t[26]=t[27]=t[28]=t[29]=t[30]=t[31]=t[32]=0),t[30]=this.hBytes<<3|this.bytes>>>29,t[31]=this.bytes<<3,this.hash()}},v.prototype.hash=function(){var t=this.h0h,e=this.h0l,r=this.h1h,f=this.h1l,B=this.h2h,n=this.h2l,C=this.h3h,s=this.h3l,u=this.h4h,D=this.h4l,S=this.h5h,w=this.h5l,g=this.h6h,T=this.h6l,I=this.h7h,N=this.h7l,b=this.blocks,A,j,z,J,V,h,x,i,l,dF,DF,_F,yF,bF,OF,BF,uF,hF,xF,o,a,_,y,iF,sF;for(A=32;A<160;A+=2)o=b[A-30],a=b[A-29],j=(o>>>1|a<<31)^(o>>>8|a<<24)^o>>>7,z=(a>>>1|o<<31)^(a>>>8|o<<24)^(a>>>7|o<<25),o=b[A-4],a=b[A-3],J=(o>>>19|a<<13)^(a>>>29|o<<3)^o>>>6,V=(a>>>19|o<<13)^(o>>>29|a<<3)^(a>>>6|o<<26),o=b[A-32],a=b[A-31],_=b[A-14],y=b[A-13],h=(y&65535)+(a&65535)+(z&65535)+(V&65535),x=(y>>>16)+(a>>>16)+(z>>>16)+(V>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(j&65535)+(J&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(j>>>16)+(J>>>16)+(i>>>16),b[A]=l<<16|i&65535,b[A+1]=x<<16|h&65535;var L=t,W=e,P=r,U=f,H=B,K=n,k=C,$=s,Y=u,G=D,X=S,Z=w,q=g,Q=T,FF=I,tF=N;for(BF=P&H,uF=U&K,A=0;A<160;A+=8)j=(L>>>28|W<<4)^(W>>>2|L<<30)^(W>>>7|L<<25),z=(W>>>28|L<<4)^(L>>>2|W<<30)^(L>>>7|W<<25),J=(Y>>>14|G<<18)^(Y>>>18|G<<14)^(G>>>9|Y<<23),V=(G>>>14|Y<<18)^(G>>>18|Y<<14)^(Y>>>9|G<<23),dF=L&P,DF=W&U,hF=dF^L&H^BF,xF=DF^W&K^uF,iF=Y&X^~Y&q,sF=G&Z^~G&Q,o=b[A],a=b[A+1],_=nF[A],y=nF[A+1],h=(y&65535)+(a&65535)+(sF&65535)+(V&65535)+(tF&65535),x=(y>>>16)+(a>>>16)+(sF>>>16)+(V>>>16)+(tF>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(iF&65535)+(J&65535)+(FF&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(iF>>>16)+(J>>>16)+(FF>>>16)+(i>>>16),o=l<<16|i&65535,a=x<<16|h&65535,h=(xF&65535)+(z&65535),x=(xF>>>16)+(z>>>16)+(h>>>16),i=(hF&65535)+(j&65535)+(x>>>16),l=(hF>>>16)+(j>>>16)+(i>>>16),_=l<<16|i&65535,y=x<<16|h&65535,h=($&65535)+(a&65535),x=($>>>16)+(a>>>16)+(h>>>16),i=(k&65535)+(o&65535)+(x>>>16),l=(k>>>16)+(o>>>16)+(i>>>16),FF=l<<16|i&65535,tF=x<<16|h&65535,h=(y&65535)+(a&65535),x=(y>>>16)+(a>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(i>>>16),k=l<<16|i&65535,$=x<<16|h&65535,j=(k>>>28|$<<4)^($>>>2|k<<30)^($>>>7|k<<25),z=($>>>28|k<<4)^(k>>>2|$<<30)^(k>>>7|$<<25),J=(FF>>>14|tF<<18)^(FF>>>18|tF<<14)^(tF>>>9|FF<<23),V=(tF>>>14|FF<<18)^(tF>>>18|FF<<14)^(FF>>>9|tF<<23),_F=k&L,yF=$&W,hF=_F^k&P^dF,xF=yF^$&U^DF,iF=FF&Y^~FF&X,sF=tF&G^~tF&Z,o=b[A+2],a=b[A+3],_=nF[A+2],y=nF[A+3],h=(y&65535)+(a&65535)+(sF&65535)+(V&65535)+(Q&65535),x=(y>>>16)+(a>>>16)+(sF>>>16)+(V>>>16)+(Q>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(iF&65535)+(J&65535)+(q&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(iF>>>16)+(J>>>16)+(q>>>16)+(i>>>16),o=l<<16|i&65535,a=x<<16|h&65535,h=(xF&65535)+(z&65535),x=(xF>>>16)+(z>>>16)+(h>>>16),i=(hF&65535)+(j&65535)+(x>>>16),l=(hF>>>16)+(j>>>16)+(i>>>16),_=l<<16|i&65535,y=x<<16|h&65535,h=(K&65535)+(a&65535),x=(K>>>16)+(a>>>16)+(h>>>16),i=(H&65535)+(o&65535)+(x>>>16),l=(H>>>16)+(o>>>16)+(i>>>16),q=l<<16|i&65535,Q=x<<16|h&65535,h=(y&65535)+(a&65535),x=(y>>>16)+(a>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(i>>>16),H=l<<16|i&65535,K=x<<16|h&65535,j=(H>>>28|K<<4)^(K>>>2|H<<30)^(K>>>7|H<<25),z=(K>>>28|H<<4)^(H>>>2|K<<30)^(H>>>7|K<<25),J=(q>>>14|Q<<18)^(q>>>18|Q<<14)^(Q>>>9|q<<23),V=(Q>>>14|q<<18)^(Q>>>18|q<<14)^(q>>>9|Q<<23),bF=H&k,OF=K&$,hF=bF^H&L^_F,xF=OF^K&W^yF,iF=q&FF^~q&Y,sF=Q&tF^~Q&G,o=b[A+4],a=b[A+5],_=nF[A+4],y=nF[A+5],h=(y&65535)+(a&65535)+(sF&65535)+(V&65535)+(Z&65535),x=(y>>>16)+(a>>>16)+(sF>>>16)+(V>>>16)+(Z>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(iF&65535)+(J&65535)+(X&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(iF>>>16)+(J>>>16)+(X>>>16)+(i>>>16),o=l<<16|i&65535,a=x<<16|h&65535,h=(xF&65535)+(z&65535),x=(xF>>>16)+(z>>>16)+(h>>>16),i=(hF&65535)+(j&65535)+(x>>>16),l=(hF>>>16)+(j>>>16)+(i>>>16),_=l<<16|i&65535,y=x<<16|h&65535,h=(U&65535)+(a&65535),x=(U>>>16)+(a>>>16)+(h>>>16),i=(P&65535)+(o&65535)+(x>>>16),l=(P>>>16)+(o>>>16)+(i>>>16),X=l<<16|i&65535,Z=x<<16|h&65535,h=(y&65535)+(a&65535),x=(y>>>16)+(a>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(i>>>16),P=l<<16|i&65535,U=x<<16|h&65535,j=(P>>>28|U<<4)^(U>>>2|P<<30)^(U>>>7|P<<25),z=(U>>>28|P<<4)^(P>>>2|U<<30)^(P>>>7|U<<25),J=(X>>>14|Z<<18)^(X>>>18|Z<<14)^(Z>>>9|X<<23),V=(Z>>>14|X<<18)^(Z>>>18|X<<14)^(X>>>9|Z<<23),BF=P&H,uF=U&K,hF=BF^P&k^bF,xF=uF^U&$^OF,iF=X&q^~X&FF,sF=Z&Q^~Z&tF,o=b[A+6],a=b[A+7],_=nF[A+6],y=nF[A+7],h=(y&65535)+(a&65535)+(sF&65535)+(V&65535)+(G&65535),x=(y>>>16)+(a>>>16)+(sF>>>16)+(V>>>16)+(G>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(iF&65535)+(J&65535)+(Y&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(iF>>>16)+(J>>>16)+(Y>>>16)+(i>>>16),o=l<<16|i&65535,a=x<<16|h&65535,h=(xF&65535)+(z&65535),x=(xF>>>16)+(z>>>16)+(h>>>16),i=(hF&65535)+(j&65535)+(x>>>16),l=(hF>>>16)+(j>>>16)+(i>>>16),_=l<<16|i&65535,y=x<<16|h&65535,h=(W&65535)+(a&65535),x=(W>>>16)+(a>>>16)+(h>>>16),i=(L&65535)+(o&65535)+(x>>>16),l=(L>>>16)+(o>>>16)+(i>>>16),Y=l<<16|i&65535,G=x<<16|h&65535,h=(y&65535)+(a&65535),x=(y>>>16)+(a>>>16)+(h>>>16),i=(_&65535)+(o&65535)+(x>>>16),l=(_>>>16)+(o>>>16)+(i>>>16),L=l<<16|i&65535,W=x<<16|h&65535;h=(e&65535)+(W&65535),x=(e>>>16)+(W>>>16)+(h>>>16),i=(t&65535)+(L&65535)+(x>>>16),l=(t>>>16)+(L>>>16)+(i>>>16),this.h0h=l<<16|i&65535,this.h0l=x<<16|h&65535,h=(f&65535)+(U&65535),x=(f>>>16)+(U>>>16)+(h>>>16),i=(r&65535)+(P&65535)+(x>>>16),l=(r>>>16)+(P>>>16)+(i>>>16),this.h1h=l<<16|i&65535,this.h1l=x<<16|h&65535,h=(n&65535)+(K&65535),x=(n>>>16)+(K>>>16)+(h>>>16),i=(B&65535)+(H&65535)+(x>>>16),l=(B>>>16)+(H>>>16)+(i>>>16),this.h2h=l<<16|i&65535,this.h2l=x<<16|h&65535,h=(s&65535)+($&65535),x=(s>>>16)+($>>>16)+(h>>>16),i=(C&65535)+(k&65535)+(x>>>16),l=(C>>>16)+(k>>>16)+(i>>>16),this.h3h=l<<16|i&65535,this.h3l=x<<16|h&65535,h=(D&65535)+(G&65535),x=(D>>>16)+(G>>>16)+(h>>>16),i=(u&65535)+(Y&65535)+(x>>>16),l=(u>>>16)+(Y>>>16)+(i>>>16),this.h4h=l<<16|i&65535,this.h4l=x<<16|h&65535,h=(w&65535)+(Z&65535),x=(w>>>16)+(Z>>>16)+(h>>>16),i=(S&65535)+(X&65535)+(x>>>16),l=(S>>>16)+(X>>>16)+(i>>>16),this.h5h=l<<16|i&65535,this.h5l=x<<16|h&65535,h=(T&65535)+(Q&65535),x=(T>>>16)+(Q>>>16)+(h>>>16),i=(g&65535)+(q&65535)+(x>>>16),l=(g>>>16)+(q>>>16)+(i>>>16),this.h6h=l<<16|i&65535,this.h6l=x<<16|h&65535,h=(N&65535)+(tF&65535),x=(N>>>16)+(tF>>>16)+(h>>>16),i=(I&65535)+(FF&65535)+(x>>>16),l=(I>>>16)+(FF>>>16)+(i>>>16),this.h7h=l<<16|i&65535,this.h7l=x<<16|h&65535},v.prototype.hex=function(){this.finalize();var t=this.h0h,e=this.h0l,r=this.h1h,f=this.h1l,B=this.h2h,n=this.h2l,C=this.h3h,s=this.h3l,u=this.h4h,D=this.h4l,S=this.h5h,w=this.h5l,g=this.h6h,T=this.h6l,I=this.h7h,N=this.h7l,b=this.bits,A=F[t>>28&15]+F[t>>24&15]+F[t>>20&15]+F[t>>16&15]+F[t>>12&15]+F[t>>8&15]+F[t>>4&15]+F[t&15]+F[e>>28&15]+F[e>>24&15]+F[e>>20&15]+F[e>>16&15]+F[e>>12&15]+F[e>>8&15]+F[e>>4&15]+F[e&15]+F[r>>28&15]+F[r>>24&15]+F[r>>20&15]+F[r>>16&15]+F[r>>12&15]+F[r>>8&15]+F[r>>4&15]+F[r&15]+F[f>>28&15]+F[f>>24&15]+F[f>>20&15]+F[f>>16&15]+F[f>>12&15]+F[f>>8&15]+F[f>>4&15]+F[f&15]+F[B>>28&15]+F[B>>24&15]+F[B>>20&15]+F[B>>16&15]+F[B>>12&15]+F[B>>8&15]+F[B>>4&15]+F[B&15]+F[n>>28&15]+F[n>>24&15]+F[n>>20&15]+F[n>>16&15]+F[n>>12&15]+F[n>>8&15]+F[n>>4&15]+F[n&15]+F[C>>28&15]+F[C>>24&15]+F[C>>20&15]+F[C>>16&15]+F[C>>12&15]+F[C>>8&15]+F[C>>4&15]+F[C&15];return b>=256&&(A+=F[s>>28&15]+F[s>>24&15]+F[s>>20&15]+F[s>>16&15]+F[s>>12&15]+F[s>>8&15]+F[s>>4&15]+F[s&15]),b>=384&&(A+=F[u>>28&15]+F[u>>24&15]+F[u>>20&15]+F[u>>16&15]+F[u>>12&15]+F[u>>8&15]+F[u>>4&15]+F[u&15]+F[D>>28&15]+F[D>>24&15]+F[D>>20&15]+F[D>>16&15]+F[D>>12&15]+F[D>>8&15]+F[D>>4&15]+F[D&15]+F[S>>28&15]+F[S>>24&15]+F[S>>20&15]+F[S>>16&15]+F[S>>12&15]+F[S>>8&15]+F[S>>4&15]+F[S&15]+F[w>>28&15]+F[w>>24&15]+F[w>>20&15]+F[w>>16&15]+F[w>>12&15]+F[w>>8&15]+F[w>>4&15]+F[w&15]),b==512&&(A+=F[g>>28&15]+F[g>>24&15]+F[g>>20&15]+F[g>>16&15]+F[g>>12&15]+F[g>>8&15]+F[g>>4&15]+F[g&15]+F[T>>28&15]+F[T>>24&15]+F[T>>20&15]+F[T>>16&15]+F[T>>12&15]+F[T>>8&15]+F[T>>4&15]+F[T&15]+F[I>>28&15]+F[I>>24&15]+F[I>>20&15]+F[I>>16&15]+F[I>>12&15]+F[I>>8&15]+F[I>>4&15]+F[I&15]+F[N>>28&15]+F[N>>24&15]+F[N>>20&15]+F[N>>16&15]+F[N>>12&15]+F[N>>8&15]+F[N>>4&15]+F[N&15]),A},v.prototype.toString=v.prototype.hex,v.prototype.digest=function(){this.finalize();var t=this.h0h,e=this.h0l,r=this.h1h,f=this.h1l,B=this.h2h,n=this.h2l,C=this.h3h,s=this.h3l,u=this.h4h,D=this.h4l,S=this.h5h,w=this.h5l,g=this.h6h,T=this.h6l,I=this.h7h,N=this.h7l,b=this.bits,A=[t>>24&255,t>>16&255,t>>8&255,t&255,e>>24&255,e>>16&255,e>>8&255,e&255,r>>24&255,r>>16&255,r>>8&255,r&255,f>>24&255,f>>16&255,f>>8&255,f&255,B>>24&255,B>>16&255,B>>8&255,B&255,n>>24&255,n>>16&255,n>>8&255,n&255,C>>24&255,C>>16&255,C>>8&255,C&255];return b>=256&&A.push(s>>24&255,s>>16&255,s>>8&255,s&255),b>=384&&A.push(u>>24&255,u>>16&255,u>>8&255,u&255,D>>24&255,D>>16&255,D>>8&255,D&255,S>>24&255,S>>16&255,S>>8&255,S&255,w>>24&255,w>>16&255,w>>8&255,w&255),b==512&&A.push(g>>24&255,g>>16&255,g>>8&255,g&255,T>>24&255,T>>16&255,T>>8&255,T&255,I>>24&255,I>>16&255,I>>8&255,I&255,N>>24&255,N>>16&255,N>>8&255,N&255),A},v.prototype.array=v.prototype.digest,v.prototype.arrayBuffer=function(){this.finalize();var t=this.bits,e=new ArrayBuffer(t/8),r=new DataView(e);return r.setUint32(0,this.h0h),r.setUint32(4,this.h0l),r.setUint32(8,this.h1h),r.setUint32(12,this.h1l),r.setUint32(16,this.h2h),r.setUint32(20,this.h2l),r.setUint32(24,this.h3h),t>=256&&r.setUint32(28,this.h3l),t>=384&&(r.setUint32(32,this.h4h),r.setUint32(36,this.h4l),r.setUint32(40,this.h5h),r.setUint32(44,this.h5l)),t==512&&(r.setUint32(48,this.h6h),r.setUint32(52,this.h6l),r.setUint32(56,this.h7h),r.setUint32(60,this.h7l)),e},v.prototype.clone=function(){var t=new v(this.bits,!1);return this.copyTo(t),t},v.prototype.copyTo=function(t){var e=0,r=["h0h","h0l","h1h","h1l","h2h","h2l","h3h","h3l","h4h","h4l","h5h","h5l","h6h","h6l","h7h","h7l","start","bytes","hBytes","finalized","hashed","lastByteIndex"];for(e=0;e<r.length;++e)t[r[e]]=this[r[e]];for(e=0;e<this.blocks.length;++e)t.blocks[e]=this.blocks[e]};function oF(t,e,r){var f,B=typeof t;if(B!=="string"){if(B==="object"){if(t===null)throw new Error(E);if(aF&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!aF||!ArrayBuffer.isView(t)))throw new Error(E)}else throw new Error(E);f=!0}var n=t.length;if(!f){for(var C=[],n=t.length,s=0,u,D=0;D<n;++D)u=t.charCodeAt(D),u<128?C[s++]=u:u<2048?(C[s++]=192|u>>6,C[s++]=128|u&63):u<55296||u>=57344?(C[s++]=224|u>>12,C[s++]=128|u>>6&63,C[s++]=128|u&63):(u=65536+((u&1023)<<10|t.charCodeAt(++D)&1023),C[s++]=240|u>>18,C[s++]=128|u>>12&63,C[s++]=128|u>>6&63,C[s++]=128|u&63);t=C}t.length>128&&(t=new v(e,!0).update(t).array());for(var S=[],w=[],D=0;D<128;++D){var g=t[D]||0;S[D]=92^g,w[D]=54^g}v.call(this,e,r),this.update(w),this.oKeyPad=S,this.inner=!0,this.sharedMemory=r}oF.prototype=new v,oF.prototype.finalize=function(){if(v.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();v.call(this,this.bits,this.sharedMemory),this.update(this.oKeyPad),this.update(t),v.prototype.finalize.call(this)}},oF.prototype.clone=function(){var t=new oF([],this.bits,!1);this.copyTo(t),t.inner=this.inner;for(var e=0;e<this.oKeyPad.length;++e)t.oKeyPad[e]=this.oKeyPad[e];return t};var M=AF(512);M.sha512=M,M.sha384=AF(384),M.sha512_256=AF(256),M.sha512_224=AF(224),M.sha512.hmac=EF(512),M.sha384.hmac=EF(384),M.sha512_256.hmac=EF(256),M.sha512_224.hmac=EF(224),rF?CF.exports=M:(O.sha512=M.sha512,O.sha384=M.sha384,O.sha512_256=M.sha512_256,O.sha512_224=M.sha512_224,lF&&define(function(){return M}))})()});var ZF={};JF(ZF,{default:()=>fF});var mF=VF(gF()),WF=async({input:E,expected:c})=>{let d=0;for(;;){let O=(0,mF.sha512)(`${E}:${d}`);if(d%4e4===0&&await TF(0),O.substring(0,c.length)===c)return d.toString();d++}},TF=E=>new Promise(c=>setTimeout(c,E)),kF=async({challenge:E,onProgress:c})=>{let{nonce:d,difficulty:O,hardness:m}=E.payload,R=[];c==null||c(0);for(let rF=0;rF<m;rF++){let lF=await WF({input:`${d}:${rF}`,expected:"0".repeat(O)});R.push(lF),c==null||c(R.length/m),await TF(0)}return R},IF=kF;var NF="https://api.botpoison.com",RF=()=>{YF(),GF(),XF()},fF=class{constructor({publicKey:c}){this.publicKey=c}static init(){RF()}async challenge(c){let{onProgress:d}=c||{},m=await(await fetch(`${NF}/challenge`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({publicKey:this.publicKey,hostname:location.hostname,version:"0.1.32"})})).json(),R=await IF({challenge:m,onProgress:d});return{solution:btoa(JSON.stringify({challenge:m,solutions:R}))}}},$F=({formElement:E,id:c,name:d,value:O})=>{let m=document.getElementById(c);if(!m){let R=document.createElement("input");R.setAttribute("type","hidden"),R.setAttribute("id",c),R.setAttribute("name",d),E.appendChild(R),m=R}m.setAttribute("value",O)},YF=()=>{typeof document!="undefined"&&(window.__BOTPOISON_VERSION__="0.1.32")},GF=()=>{typeof document!="undefined"&&(window.__BOTPOISON_SUBMIT_LISTENER__||(window.__BOTPOISON_SUBMIT_LISTENER__=!0,document.addEventListener("submit",E=>{try{let c=E.target;if(c){let d=c,O=d.dataset.botpoisonPublicKey;if(O){E.preventDefault(),d.dispatchEvent(new CustomEvent("botpoison-challenge-start"));let m=new fF({publicKey:O}),R="_botpoison",rF=R;m.challenge().then(({solution:lF})=>{d.dispatchEvent(new CustomEvent("botpoison-challenge-success")),$F({formElement:d,id:R,name:rF,value:lF}),HTMLFormElement.prototype.submit.call(d)}).catch(lF=>{console.error(lF),d.dispatchEvent(new CustomEvent("botpoison-challenge-error"))})}}}catch(c){console.error(c)}return!0})))},XF=()=>{if(typeof document!="undefined"&&!window.__BOTPOISON_HEARTBEAT_DISPATCHER__){if(window.__BOTPOISON_HEARTBEAT_DISPATCHER__=!0,!!1)return;let c=()=>{fetch(`${NF}/heartbeat`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({hostname:location.hostname})})};c(),setInterval(()=>{c()},300*1e3)}};RF();return LF(ZF);})();
1
+ "use strict";var __botpoison=(()=>{var QF=Object.create;var DF=Object.defineProperty;var F0=Object.getOwnPropertyDescriptor;var t0=Object.getOwnPropertyNames;var h0=Object.getPrototypeOf,e0=Object.prototype.hasOwnProperty;var x0=(s,n)=>()=>(n||s((n={exports:{}}).exports,n),n.exports),i0=(s,n)=>{for(var a in n)DF(s,a,{get:n[a],enumerable:!0})},kF=(s,n,a,C)=>{if(n&&typeof n=="object"||typeof n=="function")for(let w of t0(n))!e0.call(s,w)&&w!==a&&DF(s,w,{get:()=>n[w],enumerable:!(C=F0(n,w))||C.enumerable});return s};var s0=(s,n,a)=>(a=s!=null?QF(h0(s)):{},kF(n||!s||!s.__esModule?DF(a,"default",{value:s,enumerable:!0}):a,s)),n0=s=>kF(DF({},"__esModule",{value:!0}),s);var MF=x0((d0,mF)=>{"use strict";(function(){"use strict";var s="input is invalid type",n="finalize already called",a=typeof window=="object",C=a?window:{};C.JS_SHA512_NO_WINDOW&&(a=!1);var w=!a&&typeof self=="object",tF=!C.JS_SHA512_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;tF?C=global:w&&(C=self);var nF=!C.JS_SHA512_NO_COMMON_JS&&typeof mF=="object"&&mF.exports,oF=typeof define=="function"&&define.amd,cF=!C.JS_SHA512_NO_ARRAY_BUFFER&&typeof ArrayBuffer!="undefined",F="0123456789abcdef".split(""),ZF=[-2147483648,8388608,32768,128],sF=[24,16,8,0],rF=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],AF=["hex","array","digest","arrayBuffer"],d=[];(C.JS_SHA512_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(t){return Object.prototype.toString.call(t)==="[object Array]"}),cF&&(C.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(t){return typeof t=="object"&&t.buffer&&t.buffer.constructor===ArrayBuffer});var UF=function(t,r){return function(o){return new g(r,!0).update(o)[t]()}},BF=function(t){var r=UF("hex",t);r.create=function(){return new g(t)},r.update=function(A){return r.create().update(A)};for(var o=0;o<AF.length;++o){var p=AF[o];r[p]=UF(p,t)}return r},RF=function(t,r){return function(o,p){return new lF(o,r,!0).update(p)[t]()}},CF=function(t){var r=RF("hex",t);r.create=function(A){return new lF(A,t)},r.update=function(A,l){return r.create(A).update(l)};for(var o=0;o<AF.length;++o){var p=AF[o];r[p]=RF(p,t)}return r};function g(t,r){r?(d[0]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=d[16]=d[17]=d[18]=d[19]=d[20]=d[21]=d[22]=d[23]=d[24]=d[25]=d[26]=d[27]=d[28]=d[29]=d[30]=d[31]=d[32]=0,this.blocks=d):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t==384?(this.h0h=3418070365,this.h0l=3238371032,this.h1h=1654270250,this.h1l=914150663,this.h2h=2438529370,this.h2l=812702999,this.h3h=355462360,this.h3l=4144912697,this.h4h=1731405415,this.h4l=4290775857,this.h5h=2394180231,this.h5l=1750603025,this.h6h=3675008525,this.h6l=1694076839,this.h7h=1203062813,this.h7l=3204075428):t==256?(this.h0h=573645204,this.h0l=4230739756,this.h1h=2673172387,this.h1l=3360449730,this.h2h=596883563,this.h2l=1867755857,this.h3h=2520282905,this.h3l=1497426621,this.h4h=2519219938,this.h4l=2827943907,this.h5h=3193839141,this.h5l=1401305490,this.h6h=721525244,this.h6l=746961066,this.h7h=246885852,this.h7l=2177182882):t==224?(this.h0h=2352822216,this.h0l=424955298,this.h1h=1944164710,this.h1l=2312950998,this.h2h=502970286,this.h2l=855612546,this.h3h=1738396948,this.h3l=1479516111,this.h4h=258812777,this.h4l=2077511080,this.h5h=2011393907,this.h5l=79989058,this.h6h=1067287976,this.h6l=1780299464,this.h7h=286451373,this.h7l=2446758561):(this.h0h=1779033703,this.h0l=4089235720,this.h1h=3144134277,this.h1l=2227873595,this.h2h=1013904242,this.h2l=4271175723,this.h3h=2773480762,this.h3l=1595750129,this.h4h=1359893119,this.h4l=2917565137,this.h5h=2600822924,this.h5l=725511199,this.h6h=528734635,this.h6l=4215389547,this.h7h=1541459225,this.h7l=327033209),this.bits=t,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1}g.prototype.update=function(t){if(this.finalized)throw new Error(n);var r,o=typeof t;if(o!=="string"){if(o==="object"){if(t===null)throw new Error(s);if(cF&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!cF||!ArrayBuffer.isView(t)))throw new Error(s)}else throw new Error(s);r=!0}for(var p,A=0,l,_=t.length,i=this.blocks;A<_;){if(this.hashed&&(this.hashed=!1,i[0]=this.block,i[1]=i[2]=i[3]=i[4]=i[5]=i[6]=i[7]=i[8]=i[9]=i[10]=i[11]=i[12]=i[13]=i[14]=i[15]=i[16]=i[17]=i[18]=i[19]=i[20]=i[21]=i[22]=i[23]=i[24]=i[25]=i[26]=i[27]=i[28]=i[29]=i[30]=i[31]=i[32]=0),r)for(l=this.start;A<_&&l<128;++A)i[l>>2]|=t[A]<<sF[l++&3];else for(l=this.start;A<_&&l<128;++A)p=t.charCodeAt(A),p<128?i[l>>2]|=p<<sF[l++&3]:p<2048?(i[l>>2]|=(192|p>>6)<<sF[l++&3],i[l>>2]|=(128|p&63)<<sF[l++&3]):p<55296||p>=57344?(i[l>>2]|=(224|p>>12)<<sF[l++&3],i[l>>2]|=(128|p>>6&63)<<sF[l++&3],i[l>>2]|=(128|p&63)<<sF[l++&3]):(p=65536+((p&1023)<<10|t.charCodeAt(++A)&1023),i[l>>2]|=(240|p>>18)<<sF[l++&3],i[l>>2]|=(128|p>>12&63)<<sF[l++&3],i[l>>2]|=(128|p>>6&63)<<sF[l++&3],i[l>>2]|=(128|p&63)<<sF[l++&3]);this.lastByteIndex=l,this.bytes+=l-this.start,l>=128?(this.block=i[32],this.start=l-128,this.hash(),this.hashed=!0):this.start=l}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this},g.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,r=this.lastByteIndex;t[32]=this.block,t[r>>2]|=ZF[r&3],this.block=t[32],r>=112&&(this.hashed||this.hash(),t[0]=this.block,t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=t[16]=t[17]=t[18]=t[19]=t[20]=t[21]=t[22]=t[23]=t[24]=t[25]=t[26]=t[27]=t[28]=t[29]=t[30]=t[31]=t[32]=0),t[30]=this.hBytes<<3|this.bytes>>>29,t[31]=this.bytes<<3,this.hash()}},g.prototype.hash=function(){var t=this.h0h,r=this.h0l,o=this.h1h,p=this.h1l,A=this.h2h,l=this.h2l,_=this.h3h,i=this.h3l,B=this.h4h,D=this.h4l,O=this.h5h,v=this.h5l,b=this.h6h,T=this.h6l,N=this.h7h,I=this.h7l,S=this.blocks,E,M,K,j,H,h,e,x,f,vF,bF,wF,TF,NF,IF,dF,_F,hF,eF,c,u,y,m,xF,iF;for(E=32;E<160;E+=2)c=S[E-30],u=S[E-29],M=(c>>>1|u<<31)^(c>>>8|u<<24)^c>>>7,K=(u>>>1|c<<31)^(u>>>8|c<<24)^(u>>>7|c<<25),c=S[E-4],u=S[E-3],j=(c>>>19|u<<13)^(u>>>29|c<<3)^c>>>6,H=(u>>>19|c<<13)^(c>>>29|u<<3)^(u>>>6|c<<26),c=S[E-32],u=S[E-31],y=S[E-14],m=S[E-13],h=(m&65535)+(u&65535)+(K&65535)+(H&65535),e=(m>>>16)+(u>>>16)+(K>>>16)+(H>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(M&65535)+(j&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(M>>>16)+(j>>>16)+(x>>>16),S[E]=f<<16|x&65535,S[E+1]=e<<16|h&65535;var z=t,J=r,P=o,U=p,R=A,k=l,V=_,$=i,W=B,G=D,Y=O,q=v,X=b,Z=T,Q=N,FF=I;for(dF=P&R,_F=U&k,E=0;E<160;E+=8)M=(z>>>28|J<<4)^(J>>>2|z<<30)^(J>>>7|z<<25),K=(J>>>28|z<<4)^(z>>>2|J<<30)^(z>>>7|J<<25),j=(W>>>14|G<<18)^(W>>>18|G<<14)^(G>>>9|W<<23),H=(G>>>14|W<<18)^(G>>>18|W<<14)^(W>>>9|G<<23),vF=z&P,bF=J&U,hF=vF^z&R^dF,eF=bF^J&k^_F,xF=W&Y^~W&X,iF=G&q^~G&Z,c=S[E],u=S[E+1],y=rF[E],m=rF[E+1],h=(m&65535)+(u&65535)+(iF&65535)+(H&65535)+(FF&65535),e=(m>>>16)+(u>>>16)+(iF>>>16)+(H>>>16)+(FF>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(xF&65535)+(j&65535)+(Q&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(xF>>>16)+(j>>>16)+(Q>>>16)+(x>>>16),c=f<<16|x&65535,u=e<<16|h&65535,h=(eF&65535)+(K&65535),e=(eF>>>16)+(K>>>16)+(h>>>16),x=(hF&65535)+(M&65535)+(e>>>16),f=(hF>>>16)+(M>>>16)+(x>>>16),y=f<<16|x&65535,m=e<<16|h&65535,h=($&65535)+(u&65535),e=($>>>16)+(u>>>16)+(h>>>16),x=(V&65535)+(c&65535)+(e>>>16),f=(V>>>16)+(c>>>16)+(x>>>16),Q=f<<16|x&65535,FF=e<<16|h&65535,h=(m&65535)+(u&65535),e=(m>>>16)+(u>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(x>>>16),V=f<<16|x&65535,$=e<<16|h&65535,M=(V>>>28|$<<4)^($>>>2|V<<30)^($>>>7|V<<25),K=($>>>28|V<<4)^(V>>>2|$<<30)^(V>>>7|$<<25),j=(Q>>>14|FF<<18)^(Q>>>18|FF<<14)^(FF>>>9|Q<<23),H=(FF>>>14|Q<<18)^(FF>>>18|Q<<14)^(Q>>>9|FF<<23),wF=V&z,TF=$&J,hF=wF^V&P^vF,eF=TF^$&U^bF,xF=Q&W^~Q&Y,iF=FF&G^~FF&q,c=S[E+2],u=S[E+3],y=rF[E+2],m=rF[E+3],h=(m&65535)+(u&65535)+(iF&65535)+(H&65535)+(Z&65535),e=(m>>>16)+(u>>>16)+(iF>>>16)+(H>>>16)+(Z>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(xF&65535)+(j&65535)+(X&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(xF>>>16)+(j>>>16)+(X>>>16)+(x>>>16),c=f<<16|x&65535,u=e<<16|h&65535,h=(eF&65535)+(K&65535),e=(eF>>>16)+(K>>>16)+(h>>>16),x=(hF&65535)+(M&65535)+(e>>>16),f=(hF>>>16)+(M>>>16)+(x>>>16),y=f<<16|x&65535,m=e<<16|h&65535,h=(k&65535)+(u&65535),e=(k>>>16)+(u>>>16)+(h>>>16),x=(R&65535)+(c&65535)+(e>>>16),f=(R>>>16)+(c>>>16)+(x>>>16),X=f<<16|x&65535,Z=e<<16|h&65535,h=(m&65535)+(u&65535),e=(m>>>16)+(u>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(x>>>16),R=f<<16|x&65535,k=e<<16|h&65535,M=(R>>>28|k<<4)^(k>>>2|R<<30)^(k>>>7|R<<25),K=(k>>>28|R<<4)^(R>>>2|k<<30)^(R>>>7|k<<25),j=(X>>>14|Z<<18)^(X>>>18|Z<<14)^(Z>>>9|X<<23),H=(Z>>>14|X<<18)^(Z>>>18|X<<14)^(X>>>9|Z<<23),NF=R&V,IF=k&$,hF=NF^R&z^wF,eF=IF^k&J^TF,xF=X&Q^~X&W,iF=Z&FF^~Z&G,c=S[E+4],u=S[E+5],y=rF[E+4],m=rF[E+5],h=(m&65535)+(u&65535)+(iF&65535)+(H&65535)+(q&65535),e=(m>>>16)+(u>>>16)+(iF>>>16)+(H>>>16)+(q>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(xF&65535)+(j&65535)+(Y&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(xF>>>16)+(j>>>16)+(Y>>>16)+(x>>>16),c=f<<16|x&65535,u=e<<16|h&65535,h=(eF&65535)+(K&65535),e=(eF>>>16)+(K>>>16)+(h>>>16),x=(hF&65535)+(M&65535)+(e>>>16),f=(hF>>>16)+(M>>>16)+(x>>>16),y=f<<16|x&65535,m=e<<16|h&65535,h=(U&65535)+(u&65535),e=(U>>>16)+(u>>>16)+(h>>>16),x=(P&65535)+(c&65535)+(e>>>16),f=(P>>>16)+(c>>>16)+(x>>>16),Y=f<<16|x&65535,q=e<<16|h&65535,h=(m&65535)+(u&65535),e=(m>>>16)+(u>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(x>>>16),P=f<<16|x&65535,U=e<<16|h&65535,M=(P>>>28|U<<4)^(U>>>2|P<<30)^(U>>>7|P<<25),K=(U>>>28|P<<4)^(P>>>2|U<<30)^(P>>>7|U<<25),j=(Y>>>14|q<<18)^(Y>>>18|q<<14)^(q>>>9|Y<<23),H=(q>>>14|Y<<18)^(q>>>18|Y<<14)^(Y>>>9|q<<23),dF=P&R,_F=U&k,hF=dF^P&V^NF,eF=_F^U&$^IF,xF=Y&X^~Y&Q,iF=q&Z^~q&FF,c=S[E+6],u=S[E+7],y=rF[E+6],m=rF[E+7],h=(m&65535)+(u&65535)+(iF&65535)+(H&65535)+(G&65535),e=(m>>>16)+(u>>>16)+(iF>>>16)+(H>>>16)+(G>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(xF&65535)+(j&65535)+(W&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(xF>>>16)+(j>>>16)+(W>>>16)+(x>>>16),c=f<<16|x&65535,u=e<<16|h&65535,h=(eF&65535)+(K&65535),e=(eF>>>16)+(K>>>16)+(h>>>16),x=(hF&65535)+(M&65535)+(e>>>16),f=(hF>>>16)+(M>>>16)+(x>>>16),y=f<<16|x&65535,m=e<<16|h&65535,h=(J&65535)+(u&65535),e=(J>>>16)+(u>>>16)+(h>>>16),x=(z&65535)+(c&65535)+(e>>>16),f=(z>>>16)+(c>>>16)+(x>>>16),W=f<<16|x&65535,G=e<<16|h&65535,h=(m&65535)+(u&65535),e=(m>>>16)+(u>>>16)+(h>>>16),x=(y&65535)+(c&65535)+(e>>>16),f=(y>>>16)+(c>>>16)+(x>>>16),z=f<<16|x&65535,J=e<<16|h&65535;h=(r&65535)+(J&65535),e=(r>>>16)+(J>>>16)+(h>>>16),x=(t&65535)+(z&65535)+(e>>>16),f=(t>>>16)+(z>>>16)+(x>>>16),this.h0h=f<<16|x&65535,this.h0l=e<<16|h&65535,h=(p&65535)+(U&65535),e=(p>>>16)+(U>>>16)+(h>>>16),x=(o&65535)+(P&65535)+(e>>>16),f=(o>>>16)+(P>>>16)+(x>>>16),this.h1h=f<<16|x&65535,this.h1l=e<<16|h&65535,h=(l&65535)+(k&65535),e=(l>>>16)+(k>>>16)+(h>>>16),x=(A&65535)+(R&65535)+(e>>>16),f=(A>>>16)+(R>>>16)+(x>>>16),this.h2h=f<<16|x&65535,this.h2l=e<<16|h&65535,h=(i&65535)+($&65535),e=(i>>>16)+($>>>16)+(h>>>16),x=(_&65535)+(V&65535)+(e>>>16),f=(_>>>16)+(V>>>16)+(x>>>16),this.h3h=f<<16|x&65535,this.h3l=e<<16|h&65535,h=(D&65535)+(G&65535),e=(D>>>16)+(G>>>16)+(h>>>16),x=(B&65535)+(W&65535)+(e>>>16),f=(B>>>16)+(W>>>16)+(x>>>16),this.h4h=f<<16|x&65535,this.h4l=e<<16|h&65535,h=(v&65535)+(q&65535),e=(v>>>16)+(q>>>16)+(h>>>16),x=(O&65535)+(Y&65535)+(e>>>16),f=(O>>>16)+(Y>>>16)+(x>>>16),this.h5h=f<<16|x&65535,this.h5l=e<<16|h&65535,h=(T&65535)+(Z&65535),e=(T>>>16)+(Z>>>16)+(h>>>16),x=(b&65535)+(X&65535)+(e>>>16),f=(b>>>16)+(X>>>16)+(x>>>16),this.h6h=f<<16|x&65535,this.h6l=e<<16|h&65535,h=(I&65535)+(FF&65535),e=(I>>>16)+(FF>>>16)+(h>>>16),x=(N&65535)+(Q&65535)+(e>>>16),f=(N>>>16)+(Q>>>16)+(x>>>16),this.h7h=f<<16|x&65535,this.h7l=e<<16|h&65535},g.prototype.hex=function(){this.finalize();var t=this.h0h,r=this.h0l,o=this.h1h,p=this.h1l,A=this.h2h,l=this.h2l,_=this.h3h,i=this.h3l,B=this.h4h,D=this.h4l,O=this.h5h,v=this.h5l,b=this.h6h,T=this.h6l,N=this.h7h,I=this.h7l,S=this.bits,E=F[t>>28&15]+F[t>>24&15]+F[t>>20&15]+F[t>>16&15]+F[t>>12&15]+F[t>>8&15]+F[t>>4&15]+F[t&15]+F[r>>28&15]+F[r>>24&15]+F[r>>20&15]+F[r>>16&15]+F[r>>12&15]+F[r>>8&15]+F[r>>4&15]+F[r&15]+F[o>>28&15]+F[o>>24&15]+F[o>>20&15]+F[o>>16&15]+F[o>>12&15]+F[o>>8&15]+F[o>>4&15]+F[o&15]+F[p>>28&15]+F[p>>24&15]+F[p>>20&15]+F[p>>16&15]+F[p>>12&15]+F[p>>8&15]+F[p>>4&15]+F[p&15]+F[A>>28&15]+F[A>>24&15]+F[A>>20&15]+F[A>>16&15]+F[A>>12&15]+F[A>>8&15]+F[A>>4&15]+F[A&15]+F[l>>28&15]+F[l>>24&15]+F[l>>20&15]+F[l>>16&15]+F[l>>12&15]+F[l>>8&15]+F[l>>4&15]+F[l&15]+F[_>>28&15]+F[_>>24&15]+F[_>>20&15]+F[_>>16&15]+F[_>>12&15]+F[_>>8&15]+F[_>>4&15]+F[_&15];return S>=256&&(E+=F[i>>28&15]+F[i>>24&15]+F[i>>20&15]+F[i>>16&15]+F[i>>12&15]+F[i>>8&15]+F[i>>4&15]+F[i&15]),S>=384&&(E+=F[B>>28&15]+F[B>>24&15]+F[B>>20&15]+F[B>>16&15]+F[B>>12&15]+F[B>>8&15]+F[B>>4&15]+F[B&15]+F[D>>28&15]+F[D>>24&15]+F[D>>20&15]+F[D>>16&15]+F[D>>12&15]+F[D>>8&15]+F[D>>4&15]+F[D&15]+F[O>>28&15]+F[O>>24&15]+F[O>>20&15]+F[O>>16&15]+F[O>>12&15]+F[O>>8&15]+F[O>>4&15]+F[O&15]+F[v>>28&15]+F[v>>24&15]+F[v>>20&15]+F[v>>16&15]+F[v>>12&15]+F[v>>8&15]+F[v>>4&15]+F[v&15]),S==512&&(E+=F[b>>28&15]+F[b>>24&15]+F[b>>20&15]+F[b>>16&15]+F[b>>12&15]+F[b>>8&15]+F[b>>4&15]+F[b&15]+F[T>>28&15]+F[T>>24&15]+F[T>>20&15]+F[T>>16&15]+F[T>>12&15]+F[T>>8&15]+F[T>>4&15]+F[T&15]+F[N>>28&15]+F[N>>24&15]+F[N>>20&15]+F[N>>16&15]+F[N>>12&15]+F[N>>8&15]+F[N>>4&15]+F[N&15]+F[I>>28&15]+F[I>>24&15]+F[I>>20&15]+F[I>>16&15]+F[I>>12&15]+F[I>>8&15]+F[I>>4&15]+F[I&15]),E},g.prototype.toString=g.prototype.hex,g.prototype.digest=function(){this.finalize();var t=this.h0h,r=this.h0l,o=this.h1h,p=this.h1l,A=this.h2h,l=this.h2l,_=this.h3h,i=this.h3l,B=this.h4h,D=this.h4l,O=this.h5h,v=this.h5l,b=this.h6h,T=this.h6l,N=this.h7h,I=this.h7l,S=this.bits,E=[t>>24&255,t>>16&255,t>>8&255,t&255,r>>24&255,r>>16&255,r>>8&255,r&255,o>>24&255,o>>16&255,o>>8&255,o&255,p>>24&255,p>>16&255,p>>8&255,p&255,A>>24&255,A>>16&255,A>>8&255,A&255,l>>24&255,l>>16&255,l>>8&255,l&255,_>>24&255,_>>16&255,_>>8&255,_&255];return S>=256&&E.push(i>>24&255,i>>16&255,i>>8&255,i&255),S>=384&&E.push(B>>24&255,B>>16&255,B>>8&255,B&255,D>>24&255,D>>16&255,D>>8&255,D&255,O>>24&255,O>>16&255,O>>8&255,O&255,v>>24&255,v>>16&255,v>>8&255,v&255),S==512&&E.push(b>>24&255,b>>16&255,b>>8&255,b&255,T>>24&255,T>>16&255,T>>8&255,T&255,N>>24&255,N>>16&255,N>>8&255,N&255,I>>24&255,I>>16&255,I>>8&255,I&255),E},g.prototype.array=g.prototype.digest,g.prototype.arrayBuffer=function(){this.finalize();var t=this.bits,r=new ArrayBuffer(t/8),o=new DataView(r);return o.setUint32(0,this.h0h),o.setUint32(4,this.h0l),o.setUint32(8,this.h1h),o.setUint32(12,this.h1l),o.setUint32(16,this.h2h),o.setUint32(20,this.h2l),o.setUint32(24,this.h3h),t>=256&&o.setUint32(28,this.h3l),t>=384&&(o.setUint32(32,this.h4h),o.setUint32(36,this.h4l),o.setUint32(40,this.h5h),o.setUint32(44,this.h5l)),t==512&&(o.setUint32(48,this.h6h),o.setUint32(52,this.h6l),o.setUint32(56,this.h7h),o.setUint32(60,this.h7l)),r},g.prototype.clone=function(){var t=new g(this.bits,!1);return this.copyTo(t),t},g.prototype.copyTo=function(t){var r=0,o=["h0h","h0l","h1h","h1l","h2h","h2l","h3h","h3l","h4h","h4l","h5h","h5l","h6h","h6l","h7h","h7l","start","bytes","hBytes","finalized","hashed","lastByteIndex"];for(r=0;r<o.length;++r)t[o[r]]=this[o[r]];for(r=0;r<this.blocks.length;++r)t.blocks[r]=this.blocks[r]};function lF(t,r,o){var p,A=typeof t;if(A!=="string"){if(A==="object"){if(t===null)throw new Error(s);if(cF&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!cF||!ArrayBuffer.isView(t)))throw new Error(s)}else throw new Error(s);p=!0}var l=t.length;if(!p){for(var _=[],l=t.length,i=0,B,D=0;D<l;++D)B=t.charCodeAt(D),B<128?_[i++]=B:B<2048?(_[i++]=192|B>>6,_[i++]=128|B&63):B<55296||B>=57344?(_[i++]=224|B>>12,_[i++]=128|B>>6&63,_[i++]=128|B&63):(B=65536+((B&1023)<<10|t.charCodeAt(++D)&1023),_[i++]=240|B>>18,_[i++]=128|B>>12&63,_[i++]=128|B>>6&63,_[i++]=128|B&63);t=_}t.length>128&&(t=new g(r,!0).update(t).array());for(var O=[],v=[],D=0;D<128;++D){var b=t[D]||0;O[D]=92^b,v[D]=54^b}g.call(this,r,o),this.update(v),this.oKeyPad=O,this.inner=!0,this.sharedMemory=o}lF.prototype=new g,lF.prototype.finalize=function(){if(g.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();g.call(this,this.bits,this.sharedMemory),this.update(this.oKeyPad),this.update(t),g.prototype.finalize.call(this)}},lF.prototype.clone=function(){var t=new lF([],this.bits,!1);this.copyTo(t),t.inner=this.inner;for(var r=0;r<this.oKeyPad.length;++r)t.oKeyPad[r]=this.oKeyPad[r];return t};var L=BF(512);L.sha512=L,L.sha384=BF(384),L.sha512_256=BF(256),L.sha512_224=BF(224),L.sha512.hmac=CF(512),L.sha384.hmac=CF(384),L.sha512_256.hmac=CF(256),L.sha512_224.hmac=CF(224),nF?mF.exports=L:(C.sha512=L.sha512,C.sha384=L.sha384,C.sha512_256=L.sha512_256,C.sha512_224=L.sha512_224,oF&&define(function(){return L}))})()});var p0={};i0(p0,{default:()=>OF});var aF="https://api.botpoison.com",uF="_botpoison";var LF=({formElement:s,value:n})=>{let a=s.querySelector(`input[name="${uF}"]`);if(!a){let C=s.ownerDocument;a=C.createElement("input"),a.setAttribute("type","hidden"),a.setAttribute("name",uF),C.getElementById(uF)||a.setAttribute("id",uF),s.appendChild(a)}return a.setAttribute("value",n),a},yF=({formElement:s,name:n})=>{s.dispatchEvent(new CustomEvent(`botpoison-challenge-${n}`))};var KF=s0(MF()),r0=async({input:s,expected:n})=>{let a=0;for(;;){let C=(0,KF.sha512)(`${s}:${a}`);if(a%4e4===0&&await jF(0),C.substring(0,n.length)===n)return a.toString();a++}},jF=s=>new Promise(n=>setTimeout(n,s)),o0=async({challenge:s,onProgress:n})=>{let{nonce:a,difficulty:C,hardness:w}=s.payload,tF=[];n==null||n(0);for(let nF=0;nF<w;nF++){let oF=await r0({input:`${a}:${nF}`,expected:"0".repeat(C)});tF.push(oF),n==null||n(tF.length/w),await jF(0)}return tF},HF=o0;var zF="_botpoison.v2.session.",fF,PF=new Map,JF=()=>{if(fF!==void 0)return fF;try{let s=window.sessionStorage,n=`${zF}probe`;s.setItem(n,"1"),s.removeItem(n),fF=s}catch(s){fF=null}return fF},pF=s=>`${zF}${s}`,SF=s=>{var a;let n=JF();if(!n)return PF.get(pF(s));try{return(a=n.getItem(pF(s)))!=null?a:void 0}catch(C){return PF.get(pF(s))}},VF=(s,n)=>{let a=JF();if(a)try{a.setItem(pF(s),n);return}catch(C){fF=null}PF.set(pF(s),n)};var EF,$F=(s=aF)=>SF(s),WF=(s,n)=>{let a=n==null?void 0:n.token;typeof a=="string"&&VF(s,a)},GF=({baseUrl:s=aF}={})=>SF(s)?Promise.resolve():EF||(EF=fetch(`${s}/session`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:"{}"}).then(async n=>{n.ok&&WF(s,await n.json())}).catch(()=>{}).finally(()=>{EF=void 0}),EF),YF=({challenge:s,solutions:n,baseUrl:a=aF})=>fetch(`${a}/session`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({challenge:s,solutions:n,token:SF(a)})}).then(async C=>{C.ok&&WF(a,await C.json())}).catch(()=>{});var l0=()=>typeof location=="undefined"?void 0:location.hostname,gF=async({publicKey:s,baseUrl:n=aF,onProgress:a})=>{let w=await(await fetch(`${n}/challenge`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({publicKey:s,hostname:l0(),version:"0.1.34",token:$F(n)})})).json(),tF=await HF({challenge:w,onProgress:a});return YF({challenge:w,solutions:tF,baseUrl:n}),{solution:btoa(JSON.stringify({challenge:w,solutions:tF}))}};var a0=s=>{if(!s||!s.tagName)return;let n=s;if(n.tagName!=="FORM")return;let a=n,C=a.dataset.botpoisonPublicKey;return C?{formElement:a,publicKey:C}:void 0},qF=({documentRef:s,baseUrl:n})=>{let a=C=>{try{let w=a0(C.target);if(!w)return;let{formElement:tF,publicKey:nF}=w;C.preventDefault(),yF({formElement:tF,name:"start"}),gF({publicKey:nF,baseUrl:n}).then(({solution:oF})=>{yF({formElement:tF,name:"success"}),LF({formElement:tF,value:oF}),HTMLFormElement.prototype.submit.call(tF)}).catch(oF=>{console.error(oF),yF({formElement:tF,name:"error"})})}catch(w){console.error(w)}};return s.addEventListener("submit",a),{dispose:()=>{s.removeEventListener("submit",a)}}};var XF=()=>{f0(),c0(),u0()},OF=class{constructor({publicKey:n,baseUrl:a}){this.publicKey=n,this.baseUrl=a}static init(){XF()}async challenge(n){let{onProgress:a}=n||{};return gF({publicKey:this.publicKey,baseUrl:this.baseUrl,onProgress:a})}},f0=()=>{typeof document!="undefined"&&(window.__BOTPOISON_VERSION__="0.1.34")},c0=()=>{typeof document!="undefined"&&(window.__BOTPOISON_SUBMIT_LISTENER__||(window.__BOTPOISON_SUBMIT_LISTENER__=!0,qF({documentRef:document})))},u0=()=>{if(typeof document=="undefined"||window.__BOTPOISON_SESSION_OPENED__)return;window.__BOTPOISON_SESSION_OPENED__=!0;let s=()=>{GF()};typeof requestIdleCallback=="function"?requestIdleCallback(s,{timeout:2e3}):setTimeout(s,0)};XF();return n0(p0);})();
2
2
  /*! Bundled license information:
3
3
 
4
4
  js-sha512/src/sha512.js:
package/dist/index.mjs CHANGED
@@ -1,3 +1,35 @@
1
+ // src/constants.ts
2
+ var DEFAULT_BASE_URL = "https://api.botpoison.com";
3
+ var SOLUTION_FIELD_NAME = "_botpoison";
4
+
5
+ // src/dom.ts
6
+ var setSolution = ({
7
+ formElement,
8
+ value
9
+ }) => {
10
+ let input = formElement.querySelector(
11
+ `input[name="${SOLUTION_FIELD_NAME}"]`
12
+ );
13
+ if (!input) {
14
+ const ownerDocument = formElement.ownerDocument;
15
+ input = ownerDocument.createElement("input");
16
+ input.setAttribute("type", "hidden");
17
+ input.setAttribute("name", SOLUTION_FIELD_NAME);
18
+ if (!ownerDocument.getElementById(SOLUTION_FIELD_NAME)) {
19
+ input.setAttribute("id", SOLUTION_FIELD_NAME);
20
+ }
21
+ formElement.appendChild(input);
22
+ }
23
+ input.setAttribute("value", value);
24
+ return input;
25
+ };
26
+ var dispatchChallengeEvent = ({
27
+ formElement,
28
+ name
29
+ }) => {
30
+ formElement.dispatchEvent(new CustomEvent(`botpoison-challenge-${name}`));
31
+ };
32
+
1
33
  // src/computeSolutions.ts
2
34
  import { sha512 } from "js-sha512";
3
35
  var computeCollisionInteger = async ({
@@ -37,149 +69,231 @@ var computeSolutions = async ({
37
69
  };
38
70
  var computeSolutions_default = computeSolutions;
39
71
 
72
+ // src/storage.ts
73
+ var PREFIX = "_botpoison.v2.session.";
74
+ var backing;
75
+ var memory = /* @__PURE__ */ new Map();
76
+ var getBacking = () => {
77
+ if (backing !== void 0) {
78
+ return backing;
79
+ }
80
+ try {
81
+ const candidate = window.sessionStorage;
82
+ const probe = `${PREFIX}probe`;
83
+ candidate.setItem(probe, "1");
84
+ candidate.removeItem(probe);
85
+ backing = candidate;
86
+ } catch (e) {
87
+ backing = null;
88
+ }
89
+ return backing;
90
+ };
91
+ var keyFor = (baseUrl) => `${PREFIX}${baseUrl}`;
92
+ var readSessionToken = (baseUrl) => {
93
+ var _a;
94
+ const store2 = getBacking();
95
+ if (!store2) {
96
+ return memory.get(keyFor(baseUrl));
97
+ }
98
+ try {
99
+ return (_a = store2.getItem(keyFor(baseUrl))) != null ? _a : void 0;
100
+ } catch (e) {
101
+ return memory.get(keyFor(baseUrl));
102
+ }
103
+ };
104
+ var writeSessionToken = (baseUrl, token) => {
105
+ const store2 = getBacking();
106
+ if (store2) {
107
+ try {
108
+ store2.setItem(keyFor(baseUrl), token);
109
+ return;
110
+ } catch (e) {
111
+ backing = null;
112
+ }
113
+ }
114
+ memory.set(keyFor(baseUrl), token);
115
+ };
116
+
117
+ // src/session.ts
118
+ var inFlight;
119
+ var getSessionToken = (baseUrl = DEFAULT_BASE_URL) => readSessionToken(baseUrl);
120
+ var store = (baseUrl, body) => {
121
+ const token = body == null ? void 0 : body.token;
122
+ if (typeof token === "string") {
123
+ writeSessionToken(baseUrl, token);
124
+ }
125
+ };
126
+ var openSession = ({
127
+ baseUrl = DEFAULT_BASE_URL
128
+ } = {}) => {
129
+ if (readSessionToken(baseUrl)) {
130
+ return Promise.resolve();
131
+ }
132
+ if (inFlight) {
133
+ return inFlight;
134
+ }
135
+ inFlight = fetch(`${baseUrl}/session`, {
136
+ method: "POST",
137
+ headers: { "Content-Type": "application/json", Accept: "application/json" },
138
+ body: "{}"
139
+ }).then(async (response) => {
140
+ if (response.ok) {
141
+ store(baseUrl, await response.json());
142
+ }
143
+ }).catch(() => void 0).finally(() => {
144
+ inFlight = void 0;
145
+ });
146
+ return inFlight;
147
+ };
148
+ var exchangeSolved = ({
149
+ challenge,
150
+ solutions,
151
+ baseUrl = DEFAULT_BASE_URL
152
+ }) => fetch(`${baseUrl}/session`, {
153
+ method: "POST",
154
+ headers: { "Content-Type": "application/json", Accept: "application/json" },
155
+ body: JSON.stringify({
156
+ challenge,
157
+ solutions,
158
+ token: readSessionToken(baseUrl)
159
+ })
160
+ }).then(async (response) => {
161
+ if (response.ok) {
162
+ store(baseUrl, await response.json());
163
+ }
164
+ }).catch(() => void 0);
165
+
166
+ // src/runChallenge.ts
167
+ var hostname = () => typeof location === "undefined" ? void 0 : location.hostname;
168
+ var runChallenge = async ({
169
+ publicKey,
170
+ baseUrl = DEFAULT_BASE_URL,
171
+ onProgress
172
+ }) => {
173
+ const response = await fetch(`${baseUrl}/challenge`, {
174
+ method: "POST",
175
+ headers: {
176
+ "Content-Type": "application/json",
177
+ Accept: "application/json"
178
+ },
179
+ body: JSON.stringify({
180
+ publicKey,
181
+ hostname: hostname(),
182
+ // Copies of this bundle stay embedded in sites for years, so the API
183
+ // has to start collecting this long before it can act on it.
184
+ version: "0.1.34",
185
+ token: getSessionToken(baseUrl)
186
+ })
187
+ });
188
+ const challenge = await response.json();
189
+ const solutions = await computeSolutions_default({
190
+ challenge,
191
+ onProgress
192
+ });
193
+ void exchangeSolved({ challenge, solutions, baseUrl });
194
+ const serialized = btoa(
195
+ JSON.stringify({
196
+ challenge,
197
+ solutions
198
+ })
199
+ );
200
+ return {
201
+ solution: serialized
202
+ };
203
+ };
204
+
205
+ // src/autoSubmit.ts
206
+ var protectedForm = (target) => {
207
+ if (!target || !target.tagName) {
208
+ return void 0;
209
+ }
210
+ const element = target;
211
+ if (element.tagName !== "FORM") {
212
+ return void 0;
213
+ }
214
+ const formElement = element;
215
+ const publicKey = formElement.dataset.botpoisonPublicKey;
216
+ return publicKey ? { formElement, publicKey } : void 0;
217
+ };
218
+ var createAutoSubmit = ({
219
+ documentRef,
220
+ baseUrl
221
+ }) => {
222
+ const onSubmit = (event) => {
223
+ try {
224
+ const found = protectedForm(event.target);
225
+ if (!found) {
226
+ return;
227
+ }
228
+ const { formElement, publicKey } = found;
229
+ event.preventDefault();
230
+ dispatchChallengeEvent({ formElement, name: "start" });
231
+ runChallenge({ publicKey, baseUrl }).then(({ solution }) => {
232
+ dispatchChallengeEvent({ formElement, name: "success" });
233
+ setSolution({ formElement, value: solution });
234
+ HTMLFormElement.prototype.submit.call(formElement);
235
+ }).catch((error) => {
236
+ console.error(error);
237
+ dispatchChallengeEvent({ formElement, name: "error" });
238
+ });
239
+ } catch (error) {
240
+ console.error(error);
241
+ }
242
+ };
243
+ documentRef.addEventListener("submit", onSubmit);
244
+ return {
245
+ dispose: () => {
246
+ documentRef.removeEventListener("submit", onSubmit);
247
+ }
248
+ };
249
+ };
250
+
40
251
  // src/index.ts
41
- var BASE_URL = "https://api.botpoison.com";
42
252
  var init = () => {
43
253
  addVersion();
44
254
  addSubmitListener();
45
- addHeartbeatDispatcher();
255
+ startSession();
46
256
  };
47
257
  var Botpoison = class {
48
- constructor({ publicKey }) {
258
+ constructor({ publicKey, baseUrl }) {
49
259
  this.publicKey = publicKey;
260
+ this.baseUrl = baseUrl;
50
261
  }
51
262
  static init() {
52
263
  init();
53
264
  }
54
265
  async challenge(options) {
55
266
  const { onProgress } = options || {};
56
- const response = await fetch(`${BASE_URL}/challenge`, {
57
- method: "POST",
58
- headers: {
59
- "Content-Type": "application/json",
60
- Accept: "application/json"
61
- },
62
- body: JSON.stringify({
63
- publicKey: this.publicKey,
64
- hostname: location.hostname,
65
- // Copies of this bundle stay embedded in sites for years, so the API
66
- // has to start collecting this long before it can act on it.
67
- version: "0.1.32"
68
- })
69
- });
70
- const challenge = await response.json();
71
- const solutions = await computeSolutions_default({
72
- challenge,
267
+ return runChallenge({
268
+ publicKey: this.publicKey,
269
+ baseUrl: this.baseUrl,
73
270
  onProgress
74
271
  });
75
- const serialized = btoa(
76
- JSON.stringify({
77
- challenge,
78
- solutions
79
- })
80
- );
81
- return {
82
- solution: serialized
83
- };
84
- }
85
- };
86
- var appendOrUpdateBotpoisonInput = ({
87
- formElement,
88
- id,
89
- name,
90
- value
91
- }) => {
92
- let input = document.getElementById(id);
93
- if (!input) {
94
- const newInput = document.createElement("input");
95
- newInput.setAttribute("type", "hidden");
96
- newInput.setAttribute("id", id);
97
- newInput.setAttribute("name", name);
98
- formElement.appendChild(newInput);
99
- input = newInput;
100
272
  }
101
- input.setAttribute("value", value);
102
273
  };
103
274
  var addVersion = () => {
104
275
  if (typeof document !== "undefined") {
105
- window.__BOTPOISON_VERSION__ = "0.1.32";
276
+ window.__BOTPOISON_VERSION__ = "0.1.34";
106
277
  }
107
278
  };
108
279
  var addSubmitListener = () => {
109
280
  if (typeof document !== "undefined") {
110
281
  if (!window.__BOTPOISON_SUBMIT_LISTENER__) {
111
282
  window.__BOTPOISON_SUBMIT_LISTENER__ = true;
112
- document.addEventListener("submit", (event) => {
113
- try {
114
- const formEventTarget = event.target;
115
- if (formEventTarget) {
116
- const formElement = formEventTarget;
117
- const publicKey = formElement.dataset.botpoisonPublicKey;
118
- if (publicKey) {
119
- event.preventDefault();
120
- formElement.dispatchEvent(
121
- new CustomEvent("botpoison-challenge-start")
122
- );
123
- const botpoison = new Botpoison({
124
- publicKey
125
- });
126
- const id = `_botpoison`;
127
- const name = id;
128
- botpoison.challenge().then(({ solution }) => {
129
- formElement.dispatchEvent(
130
- new CustomEvent("botpoison-challenge-success")
131
- );
132
- appendOrUpdateBotpoisonInput({
133
- formElement,
134
- id,
135
- name,
136
- value: solution
137
- });
138
- HTMLFormElement.prototype.submit.call(formElement);
139
- }).catch((error) => {
140
- console.error(error);
141
- formElement.dispatchEvent(
142
- new CustomEvent("botpoison-challenge-error")
143
- );
144
- });
145
- }
146
- }
147
- } catch (error) {
148
- console.error(error);
149
- }
150
- return true;
151
- });
283
+ createAutoSubmit({ documentRef: document });
152
284
  }
153
285
  }
154
286
  };
155
- var addHeartbeatDispatcher = () => {
156
- if (typeof document !== "undefined") {
157
- if (!window.__BOTPOISON_HEARTBEAT_DISPATCHER__) {
158
- window.__BOTPOISON_HEARTBEAT_DISPATCHER__ = true;
159
- const enabled = false;
160
- if (!enabled) {
161
- return;
162
- }
163
- const dispatch = () => {
164
- void fetch(`${BASE_URL}/heartbeat`, {
165
- method: "POST",
166
- headers: {
167
- "Content-Type": "application/json",
168
- Accept: "application/json"
169
- },
170
- body: JSON.stringify({
171
- hostname: location.hostname
172
- })
173
- });
174
- };
175
- dispatch();
176
- setInterval(
177
- () => {
178
- dispatch();
179
- },
180
- 5 * 60 * 1e3
181
- );
182
- }
287
+ var startSession = () => {
288
+ if (typeof document === "undefined" || window.__BOTPOISON_SESSION_OPENED__) {
289
+ return;
290
+ }
291
+ window.__BOTPOISON_SESSION_OPENED__ = true;
292
+ const open = () => void openSession();
293
+ if (typeof requestIdleCallback === "function") {
294
+ requestIdleCallback(open, { timeout: 2e3 });
295
+ } else {
296
+ setTimeout(open, 0);
183
297
  }
184
298
  };
185
299
  init();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@botpoison/browser",
3
3
  "private": false,
4
- "version": "0.1.32",
4
+ "version": "0.1.34",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.20.1",
29
- "tslib": "^2.3.1",
29
+ "happy-dom": "^20.11.1",
30
30
  "tsup": "^8.5.1",
31
31
  "typescript": "^6.0.3",
32
32
  "vite": "^6.4.3",