@devvit/public-api 0.11.5-next-2024-12-09-cc5ef651d.0 → 0.11.5-next-2024-12-09-b30c26d0a.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/apis/redis/RedisClient.d.ts +2 -0
- package/apis/redis/RedisClient.d.ts.map +1 -1
- package/apis/redis/RedisClient.js +8 -0
- package/meta.json +6 -6
- package/meta.min.json +5 -5
- package/package.json +6 -6
- package/public-api.d.ts +77 -0
- package/public-api.iife.js +116 -1
- package/public-api.min.js +4 -4
- package/public-api.min.js.map +3 -3
- package/types/redis.d.ts +32 -0
- package/types/redis.d.ts.map +1 -1
package/public-api.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var TS=Object.create;var Rm=Object.defineProperty;var AS=Object.getOwnPropertyDescriptor;var ES=Object.getOwnPropertyNames;var RS=Object.getPrototypeOf,OS=Object.prototype.hasOwnProperty;var Om=r=>{throw TypeError(r)};var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var BS=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ES(e))!OS.call(r,n)&&n!==t&&Rm(r,n,{get:()=>e[n],enumerable:!(i=AS(e,n))||i.enumerable});return r};var Ln=(r,e,t)=>(t=r!=null?TS(RS(r)):{},BS(e||!r||!r.__esModule?Rm(t,"default",{value:r,enumerable:!0}):t,r));var ll=(r,e,t)=>e.has(r)||Om("Cannot "+t);var s=(r,e,t)=>(ll(r,e,"read from private field"),t?t.call(r):e.get(r)),l=(r,e,t)=>e.has(r)?Om("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),d=(r,e,t,i)=>(ll(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),S=(r,e,t)=>(ll(r,e,"access private method"),t);var Bm=(r,e,t,i)=>({set _(n){d(r,e,n,t)},get _(){return s(r,e,i)}});var le=h((dO,Mm)=>{Mm.exports=function(r){try{return!!r()}catch{return!0}}});var la=h((lO,Um)=>{var MS=le();Um.exports=!MS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Z=h((uO,Nm)=>{var Lm=la(),Dm=Function.prototype,ul=Dm.call,US=Lm&&Dm.bind.bind(ul,ul);Nm.exports=Lm?US:function(r){return function(){return ul.apply(r,arguments)}}});var Hm=h((cO,_m)=>{var LS=Math.ceil,DS=Math.floor;_m.exports=Math.trunc||function(e){var t=+e;return(t>0?DS:LS)(t)}});var ua=h((mO,qm)=>{var NS=Hm();qm.exports=function(r){var e=+r;return e!==e||e===0?0:NS(e)}});var ge=h((pO,jm)=>{var ca=function(r){return r&&r.Math==Math&&r};jm.exports=ca(typeof globalThis=="object"&&globalThis)||ca(typeof window=="object"&&window)||ca(typeof self=="object"&&self)||ca(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Gr=h((gO,Wm)=>{Wm.exports=!1});var ma=h((hO,Vm)=>{var Gm=ge(),_S=Object.defineProperty;Vm.exports=function(r,e){try{_S(Gm,r,{value:e,configurable:!0,writable:!0})}catch{Gm[r]=e}return e}});var pa=h((fO,Jm)=>{var HS=ge(),qS=ma(),zm="__core-js_shared__",jS=HS[zm]||qS(zm,{});Jm.exports=jS});var cl=h((vO,Km)=>{var WS=Gr(),$m=pa();(Km.exports=function(r,e){return $m[r]||($m[r]=e!==void 0?e:{})})("versions",[]).push({version:"3.27.2",mode:WS?"pure":"global",copyright:"\xA9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.27.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var ga=h((yO,Xm)=>{Xm.exports=function(r){return r==null}});var ha=h((bO,Zm)=>{var GS=ga(),VS=TypeError;Zm.exports=function(r){if(GS(r))throw VS("Can't call method on "+r);return r}});var Dn=h((kO,Qm)=>{var zS=ha(),JS=Object;Qm.exports=function(r){return JS(zS(r))}});var we=h((SO,Ym)=>{var $S=Z(),KS=Dn(),XS=$S({}.hasOwnProperty);Ym.exports=Object.hasOwn||function(e,t){return XS(KS(e),t)}});var ml=h((PO,ep)=>{var ZS=Z(),QS=0,YS=Math.random(),eP=ZS(1 .toString);ep.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+eP(++QS+YS,36)}});var rp=h((CO,tp)=>{tp.exports=typeof navigator<"u"&&String(navigator.userAgent)||""});var lp=h((wO,dp)=>{var ap=ge(),pl=rp(),ip=ap.process,np=ap.Deno,sp=ip&&ip.versions||np&&np.version,op=sp&&sp.v8,qe,fa;op&&(qe=op.split("."),fa=qe[0]>0&&qe[0]<4?1:+(qe[0]+qe[1]));!fa&&pl&&(qe=pl.match(/Edge\/(\d+)/),(!qe||qe[1]>=74)&&(qe=pl.match(/Chrome\/(\d+)/),qe&&(fa=+qe[1])));dp.exports=fa});var gl=h((IO,cp)=>{var up=lp(),tP=le();cp.exports=!!Object.getOwnPropertySymbols&&!tP(function(){var r=Symbol();return!String(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&up&&up<41})});var hl=h((xO,mp)=>{var rP=gl();mp.exports=rP&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Ie=h((FO,gp)=>{var iP=ge(),nP=cl(),pp=we(),sP=ml(),oP=gl(),aP=hl(),Vr=iP.Symbol,fl=nP("wks"),dP=aP?Vr.for||Vr:Vr&&Vr.withoutSetter||sP;gp.exports=function(r){return pp(fl,r)||(fl[r]=oP&&pp(Vr,r)?Vr[r]:dP("Symbol."+r)),fl[r]}});var vp=h((TO,fp)=>{var lP=Ie(),uP=lP("toStringTag"),hp={};hp[uP]="z";fp.exports=String(hp)==="[object z]"});var yl=h((AO,yp)=>{var vl=typeof document=="object"&&document.all,cP=typeof vl>"u"&&vl!==void 0;yp.exports={all:vl,IS_HTMLDDA:cP}});var Q=h((EO,kp)=>{var bp=yl(),mP=bp.all;kp.exports=bp.IS_HTMLDDA?function(r){return typeof r=="function"||r===mP}:function(r){return typeof r=="function"}});var va=h((RO,Pp)=>{var Sp=Z(),pP=Sp({}.toString),gP=Sp("".slice);Pp.exports=function(r){return gP(pP(r),8,-1)}});var Nn=h((OO,Cp)=>{var hP=vp(),fP=Q(),ya=va(),vP=Ie(),yP=vP("toStringTag"),bP=Object,kP=ya(function(){return arguments}())=="Arguments",SP=function(r,e){try{return r[e]}catch{}};Cp.exports=hP?ya:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=SP(e=bP(r),yP))=="string"?t:kP?ya(e):(i=ya(e))=="Object"&&fP(e.callee)?"Arguments":i}});var _n=h((BO,wp)=>{var PP=Nn(),CP=String;wp.exports=function(r){if(PP(r)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return CP(r)}});var kl=h((MO,Fp)=>{var bl=Z(),wP=ua(),IP=_n(),xP=ha(),FP=bl("".charAt),Ip=bl("".charCodeAt),TP=bl("".slice),xp=function(r){return function(e,t){var i=IP(xP(e)),n=wP(t),o=i.length,a,c;return n<0||n>=o?r?"":void 0:(a=Ip(i,n),a<55296||a>56319||n+1===o||(c=Ip(i,n+1))<56320||c>57343?r?FP(i,n):a:r?TP(i,n,n+2):(a-55296<<10)+(c-56320)+65536)}};Fp.exports={codeAt:xp(!1),charAt:xp(!0)}});var Ep=h((UO,Ap)=>{var AP=ge(),EP=Q(),Tp=AP.WeakMap;Ap.exports=EP(Tp)&&/native code/.test(String(Tp))});var Ct=h((LO,Bp)=>{var Rp=Q(),Op=yl(),RP=Op.all;Bp.exports=Op.IS_HTMLDDA?function(r){return typeof r=="object"?r!==null:Rp(r)||r===RP}:function(r){return typeof r=="object"?r!==null:Rp(r)}});var he=h((DO,Mp)=>{var OP=le();Mp.exports=!OP(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Pl=h((NO,Lp)=>{var BP=ge(),Up=Ct(),Sl=BP.document,MP=Up(Sl)&&Up(Sl.createElement);Lp.exports=function(r){return MP?Sl.createElement(r):{}}});var Cl=h((_O,Dp)=>{var UP=he(),LP=le(),DP=Pl();Dp.exports=!UP&&!LP(function(){return Object.defineProperty(DP("div"),"a",{get:function(){return 7}}).a!=7})});var wl=h((HO,Np)=>{var NP=he(),_P=le();Np.exports=NP&&_P(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Ze=h((qO,_p)=>{var HP=Ct(),qP=String,jP=TypeError;_p.exports=function(r){if(HP(r))return r;throw jP(qP(r)+" is not an object")}});var je=h((jO,Hp)=>{var WP=la(),ba=Function.prototype.call;Hp.exports=WP?ba.bind(ba):function(){return ba.apply(ba,arguments)}});var Hn=h((WO,qp)=>{var Il=ge(),GP=Q(),VP=function(r){return GP(r)?r:void 0};qp.exports=function(r,e){return arguments.length<2?VP(Il[r]):Il[r]&&Il[r][e]}});var xl=h((GO,jp)=>{var zP=Z();jp.exports=zP({}.isPrototypeOf)});var Fl=h((VO,Wp)=>{var JP=Hn(),$P=Q(),KP=xl(),XP=hl(),ZP=Object;Wp.exports=XP?function(r){return typeof r=="symbol"}:function(r){var e=JP("Symbol");return $P(e)&&KP(e.prototype,ZP(r))}});var Tl=h((zO,Gp)=>{var QP=String;Gp.exports=function(r){try{return QP(r)}catch{return"Object"}}});var ka=h((JO,Vp)=>{var YP=Q(),eC=Tl(),tC=TypeError;Vp.exports=function(r){if(YP(r))return r;throw tC(eC(r)+" is not a function")}});var Sa=h(($O,zp)=>{var rC=ka(),iC=ga();zp.exports=function(r,e){var t=r[e];return iC(t)?void 0:rC(t)}});var $p=h((KO,Jp)=>{var Al=je(),El=Q(),Rl=Ct(),nC=TypeError;Jp.exports=function(r,e){var t,i;if(e==="string"&&El(t=r.toString)&&!Rl(i=Al(t,r))||El(t=r.valueOf)&&!Rl(i=Al(t,r))||e!=="string"&&El(t=r.toString)&&!Rl(i=Al(t,r)))return i;throw nC("Can't convert object to primitive value")}});var Qp=h((XO,Zp)=>{var sC=je(),Kp=Ct(),Xp=Fl(),oC=Sa(),aC=$p(),dC=Ie(),lC=TypeError,uC=dC("toPrimitive");Zp.exports=function(r,e){if(!Kp(r)||Xp(r))return r;var t=oC(r,uC),i;if(t){if(e===void 0&&(e="default"),i=sC(t,r,e),!Kp(i)||Xp(i))return i;throw lC("Can't convert object to primitive value")}return e===void 0&&(e="number"),aC(r,e)}});var Pa=h((ZO,Yp)=>{var cC=Qp(),mC=Fl();Yp.exports=function(r){var e=cC(r,"string");return mC(e)?e:e+""}});var Qe=h(tg=>{var pC=he(),gC=Cl(),hC=wl(),Ca=Ze(),eg=Pa(),fC=TypeError,Ol=Object.defineProperty,vC=Object.getOwnPropertyDescriptor,Bl="enumerable",Ml="configurable",Ul="writable";tg.f=pC?hC?function(e,t,i){if(Ca(e),t=eg(t),Ca(i),typeof e=="function"&&t==="prototype"&&"value"in i&&Ul in i&&!i[Ul]){var n=vC(e,t);n&&n[Ul]&&(e[t]=i.value,i={configurable:Ml in i?i[Ml]:n[Ml],enumerable:Bl in i?i[Bl]:n[Bl],writable:!1})}return Ol(e,t,i)}:Ol:function(e,t,i){if(Ca(e),t=eg(t),Ca(i),gC)try{return Ol(e,t,i)}catch{}if("get"in i||"set"in i)throw fC("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var zr=h((YO,rg)=>{rg.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var wa=h((eB,ig)=>{var yC=he(),bC=Qe(),kC=zr();ig.exports=yC?function(r,e,t){return bC.f(r,e,kC(1,t))}:function(r,e,t){return r[e]=t,r}});var Ia=h((tB,sg)=>{var SC=cl(),PC=ml(),ng=SC("keys");sg.exports=function(r){return ng[r]||(ng[r]=PC(r))}});var xa=h((rB,og)=>{og.exports={}});var Jr=h((iB,lg)=>{var CC=Ep(),dg=ge(),wC=Ct(),IC=wa(),Ll=we(),Dl=pa(),xC=Ia(),FC=xa(),ag="Object already initialized",Nl=dg.TypeError,TC=dg.WeakMap,Fa,qn,Ta,AC=function(r){return Ta(r)?qn(r):Fa(r,{})},EC=function(r){return function(e){var t;if(!wC(e)||(t=qn(e)).type!==r)throw Nl("Incompatible receiver, "+r+" required");return t}};CC||Dl.state?(We=Dl.state||(Dl.state=new TC),We.get=We.get,We.has=We.has,We.set=We.set,Fa=function(r,e){if(We.has(r))throw Nl(ag);return e.facade=r,We.set(r,e),e},qn=function(r){return We.get(r)||{}},Ta=function(r){return We.has(r)}):(or=xC("state"),FC[or]=!0,Fa=function(r,e){if(Ll(r,or))throw Nl(ag);return e.facade=r,IC(r,or,e),e},qn=function(r){return Ll(r,or)?r[or]:{}},Ta=function(r){return Ll(r,or)});var We,or;lg.exports={set:Fa,get:qn,has:Ta,enforce:AC,getterFor:EC}});var _l=h(mg=>{"use strict";var ug={}.propertyIsEnumerable,cg=Object.getOwnPropertyDescriptor,RC=cg&&!ug.call({1:2},1);mg.f=RC?function(e){var t=cg(this,e);return!!t&&t.enumerable}:ug});var ql=h((sB,pg)=>{var OC=Z(),BC=le(),MC=va(),Hl=Object,UC=OC("".split);pg.exports=BC(function(){return!Hl("z").propertyIsEnumerable(0)})?function(r){return MC(r)=="String"?UC(r,""):Hl(r)}:Hl});var $r=h((oB,gg)=>{var LC=ql(),DC=ha();gg.exports=function(r){return LC(DC(r))}});var jl=h(fg=>{var NC=he(),_C=je(),HC=_l(),qC=zr(),jC=$r(),WC=Pa(),GC=we(),VC=Cl(),hg=Object.getOwnPropertyDescriptor;fg.f=NC?hg:function(e,t){if(e=jC(e),t=WC(t),VC)try{return hg(e,t)}catch{}if(GC(e,t))return qC(!_C(HC.f,e,t),e[t])}});var Vl=h((dB,yg)=>{var Wl=he(),zC=we(),vg=Function.prototype,JC=Wl&&Object.getOwnPropertyDescriptor,Gl=zC(vg,"name"),$C=Gl&&function(){}.name==="something",KC=Gl&&(!Wl||Wl&&JC(vg,"name").configurable);yg.exports={EXISTS:Gl,PROPER:$C,CONFIGURABLE:KC}});var Jl=h((lB,bg)=>{var XC=Z(),ZC=Q(),zl=pa(),QC=XC(Function.toString);ZC(zl.inspectSource)||(zl.inspectSource=function(r){return QC(r)});bg.exports=zl.inspectSource});var Xl=h((uB,Pg)=>{var Kl=Z(),YC=le(),e0=Q(),Aa=we(),$l=he(),t0=Vl().CONFIGURABLE,r0=Jl(),Sg=Jr(),i0=Sg.enforce,n0=Sg.get,kg=String,Ea=Object.defineProperty,s0=Kl("".slice),o0=Kl("".replace),a0=Kl([].join),d0=$l&&!YC(function(){return Ea(function(){},"length",{value:8}).length!==8}),l0=String(String).split("String"),u0=Pg.exports=function(r,e,t){s0(kg(e),0,7)==="Symbol("&&(e="["+o0(kg(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),t&&t.getter&&(e="get "+e),t&&t.setter&&(e="set "+e),(!Aa(r,"name")||t0&&r.name!==e)&&($l?Ea(r,"name",{value:e,configurable:!0}):r.name=e),d0&&t&&Aa(t,"arity")&&r.length!==t.arity&&Ea(r,"length",{value:t.arity});try{t&&Aa(t,"constructor")&&t.constructor?$l&&Ea(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch{}var i=i0(r);return Aa(i,"source")||(i.source=a0(l0,typeof e=="string"?e:"")),r};Function.prototype.toString=u0(function(){return e0(this)&&n0(this).source||r0(this)},"toString")});var ar=h((cB,Cg)=>{var c0=Q(),m0=Qe(),p0=Xl(),g0=ma();Cg.exports=function(r,e,t,i){i||(i={});var n=i.enumerable,o=i.name!==void 0?i.name:e;if(c0(t)&&p0(t,o,i),i.global)n?r[e]=t:g0(e,t);else{try{i.unsafe?r[e]&&(n=!0):delete r[e]}catch{}n?r[e]=t:m0.f(r,e,{value:t,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return r}});var Zl=h((mB,wg)=>{var h0=ua(),f0=Math.max,v0=Math.min;wg.exports=function(r,e){var t=h0(r);return t<0?f0(t+e,0):v0(t,e)}});var xg=h((pB,Ig)=>{var y0=ua(),b0=Math.min;Ig.exports=function(r){return r>0?b0(y0(r),9007199254740991):0}});var Ra=h((gB,Fg)=>{var k0=xg();Fg.exports=function(r){return k0(r.length)}});var Eg=h((hB,Ag)=>{var S0=$r(),P0=Zl(),C0=Ra(),Tg=function(r){return function(e,t,i){var n=S0(e),o=C0(n),a=P0(i,o),c;if(r&&t!=t){for(;o>a;)if(c=n[a++],c!=c)return!0}else for(;o>a;a++)if((r||a in n)&&n[a]===t)return r||a||0;return!r&&-1}};Ag.exports={includes:Tg(!0),indexOf:Tg(!1)}});var Yl=h((fB,Og)=>{var w0=Z(),Ql=we(),I0=$r(),x0=Eg().indexOf,F0=xa(),Rg=w0([].push);Og.exports=function(r,e){var t=I0(r),i=0,n=[],o;for(o in t)!Ql(F0,o)&&Ql(t,o)&&Rg(n,o);for(;e.length>i;)Ql(t,o=e[i++])&&(~x0(n,o)||Rg(n,o));return n}});var Oa=h((vB,Bg)=>{Bg.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Ug=h(Mg=>{var T0=Yl(),A0=Oa(),E0=A0.concat("length","prototype");Mg.f=Object.getOwnPropertyNames||function(e){return T0(e,E0)}});var eu=h(Lg=>{Lg.f=Object.getOwnPropertySymbols});var Ng=h((kB,Dg)=>{var R0=Hn(),O0=Z(),B0=Ug(),M0=eu(),U0=Ze(),L0=O0([].concat);Dg.exports=R0("Reflect","ownKeys")||function(e){var t=B0.f(U0(e)),i=M0.f;return i?L0(t,i(e)):t}});var qg=h((SB,Hg)=>{var _g=we(),D0=Ng(),N0=jl(),_0=Qe();Hg.exports=function(r,e,t){for(var i=D0(e),n=_0.f,o=N0.f,a=0;a<i.length;a++){var c=i[a];!_g(r,c)&&!(t&&_g(t,c))&&n(r,c,o(e,c))}}});var Wg=h((PB,jg)=>{var H0=le(),q0=Q(),j0=/#|\.prototype\./,jn=function(r,e){var t=G0[W0(r)];return t==z0?!0:t==V0?!1:q0(e)?H0(e):!!e},W0=jn.normalize=function(r){return String(r).replace(j0,".").toLowerCase()},G0=jn.data={},V0=jn.NATIVE="N",z0=jn.POLYFILL="P";jg.exports=jn});var Wn=h((CB,Gg)=>{var tu=ge(),J0=jl().f,$0=wa(),K0=ar(),X0=ma(),Z0=qg(),Q0=Wg();Gg.exports=function(r,e){var t=r.target,i=r.global,n=r.stat,o,a,c,p,g,f;if(i?a=tu:n?a=tu[t]||X0(t,{}):a=(tu[t]||{}).prototype,a)for(c in e){if(g=e[c],r.dontCallGetSet?(f=J0(a,c),p=f&&f.value):p=a[c],o=Q0(i?c:t+(n?".":"#")+c,r.forced),!o&&p!==void 0){if(typeof g==typeof p)continue;Z0(g,p)}(r.sham||p&&p.sham)&&$0(g,"sham",!0),K0(a,c,g,r)}}});var ru=h((wB,Vg)=>{var Y0=Yl(),ew=Oa();Vg.exports=Object.keys||function(e){return Y0(e,ew)}});var Jg=h(zg=>{var tw=he(),rw=wl(),iw=Qe(),nw=Ze(),sw=$r(),ow=ru();zg.f=tw&&!rw?Object.defineProperties:function(e,t){nw(e);for(var i=sw(t),n=ow(t),o=n.length,a=0,c;o>a;)iw.f(e,c=n[a++],i[c]);return e}});var Kg=h((xB,$g)=>{var aw=Hn();$g.exports=aw("document","documentElement")});var Gn=h((FB,rh)=>{var dw=Ze(),lw=Jg(),Xg=Oa(),uw=xa(),cw=Kg(),mw=Pl(),pw=Ia(),Zg=">",Qg="<",nu="prototype",su="script",eh=pw("IE_PROTO"),iu=function(){},th=function(r){return Qg+su+Zg+r+Qg+"/"+su+Zg},Yg=function(r){r.write(th("")),r.close();var e=r.parentWindow.Object;return r=null,e},gw=function(){var r=mw("iframe"),e="java"+su+":",t;return r.style.display="none",cw.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(th("document.F=Object")),t.close(),t.F},Ba,Ma=function(){try{Ba=new ActiveXObject("htmlfile")}catch{}Ma=typeof document<"u"?document.domain&&Ba?Yg(Ba):gw():Yg(Ba);for(var r=Xg.length;r--;)delete Ma[nu][Xg[r]];return Ma()};uw[eh]=!0;rh.exports=Object.create||function(e,t){var i;return e!==null?(iu[nu]=dw(e),i=new iu,iu[nu]=null,i[eh]=e):i=Ma(),t===void 0?i:lw.f(i,t)}});var nh=h((TB,ih)=>{var hw=le();ih.exports=!hw(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var au=h((AB,oh)=>{var fw=we(),vw=Q(),yw=Dn(),bw=Ia(),kw=nh(),sh=bw("IE_PROTO"),ou=Object,Sw=ou.prototype;oh.exports=kw?ou.getPrototypeOf:function(r){var e=yw(r);if(fw(e,sh))return e[sh];var t=e.constructor;return vw(t)&&e instanceof t?t.prototype:e instanceof ou?Sw:null}});var cu=h((EB,lh)=>{"use strict";var Pw=le(),Cw=Q(),ww=Ct(),Iw=Gn(),ah=au(),xw=ar(),Fw=Ie(),Tw=Gr(),uu=Fw("iterator"),dh=!1,lt,du,lu;[].keys&&(lu=[].keys(),"next"in lu?(du=ah(ah(lu)),du!==Object.prototype&&(lt=du)):dh=!0);var Aw=!ww(lt)||Pw(function(){var r={};return lt[uu].call(r)!==r});Aw?lt={}:Tw&&(lt=Iw(lt));Cw(lt[uu])||xw(lt,uu,function(){return this});lh.exports={IteratorPrototype:lt,BUGGY_SAFARI_ITERATORS:dh}});var Vn=h((RB,ch)=>{var Ew=Qe().f,Rw=we(),Ow=Ie(),uh=Ow("toStringTag");ch.exports=function(r,e,t){r&&!t&&(r=r.prototype),r&&!Rw(r,uh)&&Ew(r,uh,{configurable:!0,value:e})}});var Kr=h((OB,mh)=>{mh.exports={}});var mu=h((BB,ph)=>{"use strict";var Bw=cu().IteratorPrototype,Mw=Gn(),Uw=zr(),Lw=Vn(),Dw=Kr(),Nw=function(){return this};ph.exports=function(r,e,t,i){var n=e+" Iterator";return r.prototype=Mw(Bw,{next:Uw(+!i,t)}),Lw(r,n,!1,!0),Dw[n]=Nw,r}});var hh=h((MB,gh)=>{var _w=Q(),Hw=String,qw=TypeError;gh.exports=function(r){if(typeof r=="object"||_w(r))return r;throw qw("Can't set "+Hw(r)+" as a prototype")}});var vh=h((UB,fh)=>{var jw=Z(),Ww=Ze(),Gw=hh();fh.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=jw(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),t(e,[]),r=e instanceof Array}catch{}return function(n,o){return Ww(n),Gw(o),r?t(n,o):n.__proto__=o,n}}():void 0)});var gu=h((LB,Fh)=>{"use strict";var Vw=Wn(),zw=je(),Ua=Gr(),Ih=Vl(),Jw=Q(),$w=mu(),yh=au(),bh=vh(),Kw=Vn(),Xw=wa(),pu=ar(),Zw=Ie(),kh=Kr(),xh=cu(),Qw=Ih.PROPER,Yw=Ih.CONFIGURABLE,Sh=xh.IteratorPrototype,La=xh.BUGGY_SAFARI_ITERATORS,zn=Zw("iterator"),Ph="keys",Jn="values",Ch="entries",wh=function(){return this};Fh.exports=function(r,e,t,i,n,o,a){$w(t,e,i);var c=function(B){if(B===n&&y)return y;if(!La&&B in f)return f[B];switch(B){case Ph:return function(){return new t(this,B)};case Jn:return function(){return new t(this,B)};case Ch:return function(){return new t(this,B)}}return function(){return new t(this)}},p=e+" Iterator",g=!1,f=r.prototype,m=f[zn]||f["@@iterator"]||n&&f[n],y=!La&&m||c(n),b=e=="Array"&&f.entries||m,P,x,I;if(b&&(P=yh(b.call(new r)),P!==Object.prototype&&P.next&&(!Ua&&yh(P)!==Sh&&(bh?bh(P,Sh):Jw(P[zn])||pu(P,zn,wh)),Kw(P,p,!0,!0),Ua&&(kh[p]=wh))),Qw&&n==Jn&&m&&m.name!==Jn&&(!Ua&&Yw?Xw(f,"name",Jn):(g=!0,y=function(){return zw(m,this)})),n)if(x={values:c(Jn),keys:o?y:c(Ph),entries:c(Ch)},a)for(I in x)(La||g||!(I in f))&&pu(f,I,x[I]);else Vw({target:e,proto:!0,forced:La||g},x);return(!Ua||a)&&f[zn]!==y&&pu(f,zn,y,{name:n}),kh[e]=y,x}});var hu=h((DB,Th)=>{Th.exports=function(r,e){return{value:r,done:e}}});var Oh=h(()=>{"use strict";var eI=kl().charAt,tI=_n(),Eh=Jr(),rI=gu(),Ah=hu(),Rh="String Iterator",iI=Eh.set,nI=Eh.getterFor(Rh);rI(String,"String",function(r){iI(this,{type:Rh,string:tI(r),index:0})},function(){var e=nI(this),t=e.string,i=e.index,n;return i>=t.length?Ah(void 0,!0):(n=eI(t,i),e.index+=n.length,Ah(n,!1))})});var fu=h((HB,Bh)=>{var sI=le(),oI=Ie(),aI=Gr(),dI=oI("iterator");Bh.exports=!sI(function(){var r=new URL("b?a=1&b=2&c=3","http://a"),e=r.searchParams,t="";return r.pathname="c%20d",e.forEach(function(i,n){e.delete("b"),t+=n+i}),aI&&!r.toJSON||!e.sort||r.href!=="http://a/c%20d?a=1&c=3"||e.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!e[dI]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||t!=="a1c3"||new URL("http://x",void 0).host!=="x"})});var Uh=h((qB,Mh)=>{var lI=va(),uI=Z();Mh.exports=function(r){if(lI(r)==="Function")return uI(r)}});var Da=h((jB,Dh)=>{var Lh=Uh(),cI=ka(),mI=la(),pI=Lh(Lh.bind);Dh.exports=function(r,e){return cI(r),e===void 0?r:mI?pI(r,e):function(){return r.apply(e,arguments)}}});var Hh=h((WB,_h)=>{var Nh=Xl(),gI=Qe();_h.exports=function(r,e,t){return t.get&&Nh(t.get,e,{getter:!0}),t.set&&Nh(t.set,e,{setter:!0}),gI.f(r,e,t)}});var vu=h((GB,qh)=>{var hI=xl(),fI=TypeError;qh.exports=function(r,e){if(hI(e,r))return r;throw fI("Incorrect invocation")}});var Vh=h((VB,Gh)=>{"use strict";var jh=he(),vI=Z(),yI=je(),bI=le(),yu=ru(),kI=eu(),SI=_l(),PI=Dn(),CI=ql(),Xr=Object.assign,Wh=Object.defineProperty,wI=vI([].concat);Gh.exports=!Xr||bI(function(){if(jh&&Xr({b:1},Xr(Wh({},"a",{enumerable:!0,get:function(){Wh(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var r={},e={},t=Symbol(),i="abcdefghijklmnopqrst";return r[t]=7,i.split("").forEach(function(n){e[n]=n}),Xr({},r)[t]!=7||yu(Xr({},e)).join("")!=i})?function(e,t){for(var i=PI(e),n=arguments.length,o=1,a=kI.f,c=SI.f;n>o;)for(var p=CI(arguments[o++]),g=a?wI(yu(p),a(p)):yu(p),f=g.length,m=0,y;f>m;)y=g[m++],(!jh||yI(c,p,y))&&(i[y]=p[y]);return i}:Xr});var $h=h((zB,Jh)=>{var II=je(),zh=Ze(),xI=Sa();Jh.exports=function(r,e,t){var i,n;zh(r);try{if(i=xI(r,"return"),!i){if(e==="throw")throw t;return t}i=II(i,r)}catch(o){n=!0,i=o}if(e==="throw")throw t;if(n)throw i;return zh(i),t}});var Xh=h((JB,Kh)=>{var FI=Ze(),TI=$h();Kh.exports=function(r,e,t,i){try{return i?e(FI(t)[0],t[1]):e(t)}catch(n){TI(r,"throw",n)}}});var Qh=h(($B,Zh)=>{var AI=Ie(),EI=Kr(),RI=AI("iterator"),OI=Array.prototype;Zh.exports=function(r){return r!==void 0&&(EI.Array===r||OI[RI]===r)}});var sf=h((KB,nf)=>{var BI=Z(),MI=le(),Yh=Q(),UI=Nn(),LI=Hn(),DI=Jl(),ef=function(){},NI=[],tf=LI("Reflect","construct"),bu=/^\s*(?:class|function)\b/,_I=BI(bu.exec),HI=!bu.exec(ef),$n=function(e){if(!Yh(e))return!1;try{return tf(ef,NI,e),!0}catch{return!1}},rf=function(e){if(!Yh(e))return!1;switch(UI(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return HI||!!_I(bu,DI(e))}catch{return!0}};rf.sham=!0;nf.exports=!tf||MI(function(){var r;return $n($n.call)||!$n(Object)||!$n(function(){r=!0})||r})?rf:$n});var ku=h((XB,of)=>{"use strict";var qI=Pa(),jI=Qe(),WI=zr();of.exports=function(r,e,t){var i=qI(e);i in r?jI.f(r,i,WI(0,t)):r[i]=t}});var Na=h((ZB,df)=>{var GI=Nn(),af=Sa(),VI=ga(),zI=Kr(),JI=Ie(),$I=JI("iterator");df.exports=function(r){if(!VI(r))return af(r,$I)||af(r,"@@iterator")||zI[GI(r)]}});var Su=h((QB,lf)=>{var KI=je(),XI=ka(),ZI=Ze(),QI=Tl(),YI=Na(),ex=TypeError;lf.exports=function(r,e){var t=arguments.length<2?YI(r):e;if(XI(t))return ZI(KI(t,r));throw ex(QI(r)+" is not iterable")}});var pf=h((YB,mf)=>{"use strict";var tx=Da(),rx=je(),ix=Dn(),nx=Xh(),sx=Qh(),ox=sf(),ax=Ra(),uf=ku(),dx=Su(),lx=Na(),cf=Array;mf.exports=function(e){var t=ix(e),i=ox(this),n=arguments.length,o=n>1?arguments[1]:void 0,a=o!==void 0;a&&(o=tx(o,n>2?arguments[2]:void 0));var c=lx(t),p=0,g,f,m,y,b,P;if(c&&!(this===cf&&sx(c)))for(y=dx(t,c),b=y.next,f=i?new this:[];!(m=rx(b,y)).done;p++)P=a?nx(y,o,[m.value,p],!0):m.value,uf(f,p,P);else for(g=ax(t),f=i?new this(g):cf(g);g>p;p++)P=a?o(t[p],p):t[p],uf(f,p,P);return f.length=p,f}});var Pu=h((eM,hf)=>{var gf=Zl(),ux=Ra(),cx=ku(),mx=Array,px=Math.max;hf.exports=function(r,e,t){for(var i=ux(r),n=gf(e,i),o=gf(t===void 0?i:t,i),a=mx(px(o-n,0)),c=0;n<o;n++,c++)cx(a,c,r[n]);return a.length=c,a}});var wf=h((tM,Cf)=>{var dr=Z(),Cu=2147483647,Kn=36,kf=1,xu=26,gx=38,hx=700,fx=72,vx=128,yx="-",bx=/[^\0-\u007E]/,Sf=/[.\u3002\uFF0E\uFF61]/g,ff="Overflow: input needs wider integers to process",wu=Kn-kf,vf=RangeError,kx=dr(Sf.exec),Zr=Math.floor,Iu=String.fromCharCode,yf=dr("".charCodeAt),Pf=dr([].join),wt=dr([].push),Sx=dr("".replace),Px=dr("".split),Cx=dr("".toLowerCase),wx=function(r){for(var e=[],t=0,i=r.length;t<i;){var n=yf(r,t++);if(n>=55296&&n<=56319&&t<i){var o=yf(r,t++);(o&64512)==56320?wt(e,((n&1023)<<10)+(o&1023)+65536):(wt(e,n),t--)}else wt(e,n)}return e},bf=function(r){return r+22+75*(r<26)},Ix=function(r,e,t){var i=0;for(r=t?Zr(r/hx):r>>1,r+=Zr(r/e);r>wu*xu>>1;)r=Zr(r/wu),i+=Kn;return Zr(i+(wu+1)*r/(r+gx))},xx=function(r){var e=[];r=wx(r);var t=r.length,i=vx,n=0,o=fx,a,c;for(a=0;a<r.length;a++)c=r[a],c<128&&wt(e,Iu(c));var p=e.length,g=p;for(p&&wt(e,yx);g<t;){var f=Cu;for(a=0;a<r.length;a++)c=r[a],c>=i&&c<f&&(f=c);var m=g+1;if(f-i>Zr((Cu-n)/m))throw vf(ff);for(n+=(f-i)*m,i=f,a=0;a<r.length;a++){if(c=r[a],c<i&&++n>Cu)throw vf(ff);if(c==i){for(var y=n,b=Kn;;){var P=b<=o?kf:b>=o+xu?xu:b-o;if(y<P)break;var x=y-P,I=Kn-P;wt(e,Iu(bf(P+x%I))),y=Zr(x/I),b+=Kn}wt(e,Iu(bf(y))),o=Ix(n,m,g==p),n=0,g++}}n++,i++}return Pf(e,"")};Cf.exports=function(r){var e=[],t=Px(Sx(Cx(r),Sf,"."),"."),i,n;for(i=0;i<t.length;i++)n=t[i],wt(e,kx(bx,n)?"xn--"+xx(n):n);return Pf(e,".")}});var Fu=h((rM,If)=>{var Fx=TypeError;If.exports=function(r,e){if(r<e)throw Fx("Not enough arguments");return r}});var Ff=h((iM,xf)=>{var Tx=Ie(),Ax=Gn(),Ex=Qe().f,Tu=Tx("unscopables"),Au=Array.prototype;Au[Tu]==null&&Ex(Au,Tu,{configurable:!0,value:Ax(null)});xf.exports=function(r){Au[Tu][r]=!0}});var Bf=h((nM,Of)=>{"use strict";var Rx=$r(),Eu=Ff(),Tf=Kr(),Ef=Jr(),Ox=Qe().f,Bx=gu(),_a=hu(),Mx=Gr(),Ux=he(),Rf="Array Iterator",Lx=Ef.set,Dx=Ef.getterFor(Rf);Of.exports=Bx(Array,"Array",function(r,e){Lx(this,{type:Rf,target:Rx(r),index:0,kind:e})},function(){var r=Dx(this),e=r.target,t=r.kind,i=r.index++;return!e||i>=e.length?(r.target=void 0,_a(void 0,!0)):t=="keys"?_a(i,!1):t=="values"?_a(e[i],!1):_a([i,e[i]],!1)},"values");var Af=Tf.Arguments=Tf.Array;Eu("keys");Eu("values");Eu("entries");if(!Mx&&Ux&&Af.name!=="values")try{Ox(Af,"name",{value:"values"})}catch{}});var Uf=h((sM,Mf)=>{var Nx=ar();Mf.exports=function(r,e,t){for(var i in e)Nx(r,i,e[i],t);return r}});var Nf=h((oM,Df)=>{var Lf=Pu(),_x=Math.floor,Ru=function(r,e){var t=r.length,i=_x(t/2);return t<8?Hx(r,e):qx(r,Ru(Lf(r,0,i),e),Ru(Lf(r,i),e),e)},Hx=function(r,e){for(var t=r.length,i=1,n,o;i<t;){for(o=i,n=r[i];o&&e(r[o-1],n)>0;)r[o]=r[--o];o!==i++&&(r[o]=n)}return r},qx=function(r,e,t,i){for(var n=e.length,o=t.length,a=0,c=0;a<n||c<o;)r[a+c]=a<n&&c<o?i(e[a],t[c])<=0?e[a++]:t[c++]:a<n?e[a++]:t[c++];return r};Df.exports=Ru});var qu=h((aM,nv)=>{"use strict";Bf();var Lu=Wn(),Yr=ge(),Ha=je(),Ye=Z(),jx=he(),Xf=fu(),Zf=ar(),Wx=Uf(),Gx=Vn(),Vx=mu(),_u=Jr(),Qf=vu(),Ou=Q(),zx=we(),Jx=Da(),$x=Nn(),Kx=Ze(),Yf=Ct(),fe=_n(),Xx=Gn(),_f=zr(),Du=Su(),Zx=Na(),Qr=Fu(),Qx=Ie(),Yx=Nf(),eF=Qx("iterator"),Qn="URLSearchParams",ev=Qn+"Iterator",tv=_u.set,Ge=_u.getterFor(Qn),tF=_u.getterFor(ev),rF=Object.getOwnPropertyDescriptor,Hu=function(r){if(!jx)return Yr[r];var e=rF(Yr,r);return e&&e.value},Hf=Hu("fetch"),ja=Hu("Request"),Xn=Hu("Headers"),Bu=ja&&ja.prototype,qf=Xn&&Xn.prototype,iF=Yr.RegExp,nF=Yr.TypeError,rv=Yr.decodeURIComponent,sF=Yr.encodeURIComponent,oF=Ye("".charAt),jf=Ye([].join),lr=Ye([].push),Nu=Ye("".replace),aF=Ye([].shift),Wf=Ye([].splice),Gf=Ye("".split),dF=Ye("".slice),lF=/\+/g,Vf=Array(4),uF=function(r){return Vf[r-1]||(Vf[r-1]=iF("((?:%[\\da-f]{2}){"+r+"})","gi"))},cF=function(r){try{return rv(r)}catch{return r}},zf=function(r){var e=Nu(r,lF," "),t=4;try{return rv(e)}catch{for(;t;)e=Nu(e,uF(t--),cF);return e}},mF=/[!'()~]|%20/g,pF={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},gF=function(r){return pF[r]},Jf=function(r){return Nu(sF(r),mF,gF)},Mu=Vx(function(e,t){tv(this,{type:ev,iterator:Du(Ge(e).entries),kind:t})},"Iterator",function(){var e=tF(this),t=e.kind,i=e.iterator.next(),n=i.value;return i.done||(i.value=t==="keys"?n.key:t==="values"?n.value:[n.key,n.value]),i},!0),iv=function(r){this.entries=[],this.url=null,r!==void 0&&(Yf(r)?this.parseObject(r):this.parseQuery(typeof r=="string"?oF(r,0)==="?"?dF(r,1):r:fe(r)))};iv.prototype={type:Qn,bindURL:function(r){this.url=r,this.update()},parseObject:function(r){var e=Zx(r),t,i,n,o,a,c,p;if(e)for(t=Du(r,e),i=t.next;!(n=Ha(i,t)).done;){if(o=Du(Kx(n.value)),a=o.next,(c=Ha(a,o)).done||(p=Ha(a,o)).done||!Ha(a,o).done)throw nF("Expected sequence with length 2");lr(this.entries,{key:fe(c.value),value:fe(p.value)})}else for(var g in r)zx(r,g)&&lr(this.entries,{key:g,value:fe(r[g])})},parseQuery:function(r){if(r)for(var e=Gf(r,"&"),t=0,i,n;t<e.length;)i=e[t++],i.length&&(n=Gf(i,"="),lr(this.entries,{key:zf(aF(n)),value:zf(jf(n,"="))}))},serialize:function(){for(var r=this.entries,e=[],t=0,i;t<r.length;)i=r[t++],lr(e,Jf(i.key)+"="+Jf(i.value));return jf(e,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Wa=function(){Qf(this,Zn);var e=arguments.length>0?arguments[0]:void 0;tv(this,new iv(e))},Zn=Wa.prototype;Wx(Zn,{append:function(e,t){Qr(arguments.length,2);var i=Ge(this);lr(i.entries,{key:fe(e),value:fe(t)}),i.updateURL()},delete:function(r){Qr(arguments.length,1);for(var e=Ge(this),t=e.entries,i=fe(r),n=0;n<t.length;)t[n].key===i?Wf(t,n,1):n++;e.updateURL()},get:function(e){Qr(arguments.length,1);for(var t=Ge(this).entries,i=fe(e),n=0;n<t.length;n++)if(t[n].key===i)return t[n].value;return null},getAll:function(e){Qr(arguments.length,1);for(var t=Ge(this).entries,i=fe(e),n=[],o=0;o<t.length;o++)t[o].key===i&&lr(n,t[o].value);return n},has:function(e){Qr(arguments.length,1);for(var t=Ge(this).entries,i=fe(e),n=0;n<t.length;)if(t[n++].key===i)return!0;return!1},set:function(e,t){Qr(arguments.length,1);for(var i=Ge(this),n=i.entries,o=!1,a=fe(e),c=fe(t),p=0,g;p<n.length;p++)g=n[p],g.key===a&&(o?Wf(n,p--,1):(o=!0,g.value=c));o||lr(n,{key:a,value:c}),i.updateURL()},sort:function(){var e=Ge(this);Yx(e.entries,function(t,i){return t.key>i.key?1:-1}),e.updateURL()},forEach:function(e){for(var t=Ge(this).entries,i=Jx(e,arguments.length>1?arguments[1]:void 0),n=0,o;n<t.length;)o=t[n++],i(o.value,o.key,this)},keys:function(){return new Mu(this,"keys")},values:function(){return new Mu(this,"values")},entries:function(){return new Mu(this,"entries")}},{enumerable:!0});Zf(Zn,eF,Zn.entries,{name:"entries"});Zf(Zn,"toString",function(){return Ge(this).serialize()},{enumerable:!0});Gx(Wa,Qn);Lu({global:!0,constructor:!0,forced:!Xf},{URLSearchParams:Wa});!Xf&&Ou(Xn)&&($f=Ye(qf.has),Kf=Ye(qf.set),Uu=function(r){if(Yf(r)){var e=r.body,t;if($x(e)===Qn)return t=r.headers?new Xn(r.headers):new Xn,$f(t,"content-type")||Kf(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),Xx(r,{body:_f(0,fe(e)),headers:_f(0,t)})}return r},Ou(Hf)&&Lu({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return Hf(e,arguments.length>1?Uu(arguments[1]):{})}}),Ou(ja)&&(qa=function(e){return Qf(this,Bu),new ja(e,arguments.length>1?Uu(arguments[1]):{})},Bu.constructor=qa,qa.prototype=Bu,Lu({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:qa})));var $f,Kf,Uu,qa;nv.exports={URLSearchParams:Wa,getState:Ge}});var Cv=h(()=>{"use strict";Oh();var hF=Wn(),ic=he(),fF=fu(),nc=ge(),sv=Da(),Ee=Z(),$a=ar(),xe=Hh(),vF=vu(),ec=we(),sc=Vh(),ei=pf(),Ve=Pu(),yF=kl().codeAt,bF=wf(),ct=_n(),kF=Vn(),SF=Fu(),vv=qu(),yv=Jr(),PF=yv.set,Ka=yv.getterFor("URL"),CF=vv.URLSearchParams,wF=vv.getState,Yn=nc.URL,tc=nc.TypeError,Xa=nc.parseInt,IF=Math.floor,ov=Math.pow,Ae=Ee("".charAt),ze=Ee(/./.exec),ts=Ee([].join),xF=Ee(1 .toString),FF=Ee([].pop),ri=Ee([].push),av=Ee("".replace),TF=Ee([].shift),AF=Ee("".split),is=Ee("".slice),Za=Ee("".toLowerCase),EF=Ee([].unshift),RF="Invalid authority",ju="Invalid scheme",ur="Invalid host",dv="Invalid port",bv=/[a-z]/i,OF=/[\d+-.a-z]/i,rc=/\d/,BF=/^0x/i,MF=/^[0-7]+$/,UF=/^\d+$/,kv=/^[\da-f]+$/i,LF=/[\0\t\n\r #%/:<>?@[\\\]^|]/,DF=/[\0\t\n\r #/:<>?@[\\\]^|]/,NF=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,_F=/[\t\n\r]/g,Fe,HF=function(r){var e=AF(r,"."),t,i,n,o,a,c,p;if(e.length&&e[e.length-1]==""&&e.length--,t=e.length,t>4)return r;for(i=[],n=0;n<t;n++){if(o=e[n],o=="")return r;if(a=10,o.length>1&&Ae(o,0)=="0"&&(a=ze(BF,o)?16:8,o=is(o,a==8?1:2)),o==="")c=0;else{if(!ze(a==10?UF:a==8?MF:kv,o))return r;c=Xa(o,a)}ri(i,c)}for(n=0;n<t;n++)if(c=i[n],n==t-1){if(c>=ov(256,5-t))return null}else if(c>255)return null;for(p=FF(i),n=0;n<i.length;n++)p+=i[n]*ov(256,3-n);return p},qF=function(r){var e=[0,0,0,0,0,0,0,0],t=0,i=null,n=0,o,a,c,p,g,f,m,y=function(){return Ae(r,n)};if(y()==":"){if(Ae(r,1)!=":")return;n+=2,t++,i=t}for(;y();){if(t==8)return;if(y()==":"){if(i!==null)return;n++,t++,i=t;continue}for(o=a=0;a<4&&ze(kv,y());)o=o*16+Xa(y(),16),n++,a++;if(y()=="."){if(a==0||(n-=a,t>6))return;for(c=0;y();){if(p=null,c>0)if(y()=="."&&c<4)n++;else return;if(!ze(rc,y()))return;for(;ze(rc,y());){if(g=Xa(y(),10),p===null)p=g;else{if(p==0)return;p=p*10+g}if(p>255)return;n++}e[t]=e[t]*256+p,c++,(c==2||c==4)&&t++}if(c!=4)return;break}else if(y()==":"){if(n++,!y())return}else if(y())return;e[t++]=o}if(i!==null)for(f=t-i,t=7;t!=0&&f>0;)m=e[t],e[t--]=e[i+f-1],e[i+--f]=m;else if(t!=8)return;return e},jF=function(r){for(var e=null,t=1,i=null,n=0,o=0;o<8;o++)r[o]!==0?(n>t&&(e=i,t=n),i=null,n=0):(i===null&&(i=o),++n);return n>t&&(e=i,t=n),e},es=function(r){var e,t,i,n;if(typeof r=="number"){for(e=[],t=0;t<4;t++)EF(e,r%256),r=IF(r/256);return ts(e,".")}else if(typeof r=="object"){for(e="",i=jF(r),t=0;t<8;t++)n&&r[t]===0||(n&&(n=!1),i===t?(e+=t?":":"::",n=!0):(e+=xF(r[t],16),t<7&&(e+=":")));return"["+e+"]"}return r},Ja={},Sv=sc({},Ja,{" ":1,'"':1,"<":1,">":1,"`":1}),Pv=sc({},Sv,{"#":1,"?":1,"{":1,"}":1}),Wu=sc({},Pv,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),It=function(r,e){var t=yF(r,0);return t>32&&t<127&&!ec(e,r)?r:encodeURIComponent(r)},Ga={ftp:21,file:null,http:80,https:443,ws:80,wss:443},rs=function(r,e){var t;return r.length==2&&ze(bv,Ae(r,0))&&((t=Ae(r,1))==":"||!e&&t=="|")},lv=function(r){var e;return r.length>1&&rs(is(r,0,2))&&(r.length==2||(e=Ae(r,2))==="/"||e==="\\"||e==="?"||e==="#")},WF=function(r){return r==="."||Za(r)==="%2e"},GF=function(r){return r=Za(r),r===".."||r==="%2e."||r===".%2e"||r==="%2e%2e"},Gu={},uv={},Vu={},cv={},mv={},zu={},pv={},gv={},Va={},za={},Ju={},$u={},Ku={},Xu={},hv={},Zu={},ti={},et={},fv={},cr={},ut={},oc=function(r,e,t){var i=ct(r),n,o,a;if(e){if(o=this.parse(i),o)throw tc(o);this.searchParams=null}else{if(t!==void 0&&(n=new oc(t,!0)),o=this.parse(i,null,n),o)throw tc(o);a=wF(new CF),a.bindURL(this),this.searchParams=a}};oc.prototype={type:"URL",parse:function(r,e,t){var i=this,n=e||Gu,o=0,a="",c=!1,p=!1,g=!1,f,m,y,b;for(r=ct(r),e||(i.scheme="",i.username="",i.password="",i.host=null,i.port=null,i.path=[],i.query=null,i.fragment=null,i.cannotBeABaseURL=!1,r=av(r,NF,"")),r=av(r,_F,""),f=ei(r);o<=f.length;){switch(m=f[o],n){case Gu:if(m&&ze(bv,m))a+=Za(m),n=uv;else{if(e)return ju;n=Vu;continue}break;case uv:if(m&&(ze(OF,m)||m=="+"||m=="-"||m=="."))a+=Za(m);else if(m==":"){if(e&&(i.isSpecial()!=ec(Ga,a)||a=="file"&&(i.includesCredentials()||i.port!==null)||i.scheme=="file"&&!i.host))return;if(i.scheme=a,e){i.isSpecial()&&Ga[i.scheme]==i.port&&(i.port=null);return}a="",i.scheme=="file"?n=Xu:i.isSpecial()&&t&&t.scheme==i.scheme?n=cv:i.isSpecial()?n=gv:f[o+1]=="/"?(n=mv,o++):(i.cannotBeABaseURL=!0,ri(i.path,""),n=fv)}else{if(e)return ju;a="",n=Vu,o=0;continue}break;case Vu:if(!t||t.cannotBeABaseURL&&m!="#")return ju;if(t.cannotBeABaseURL&&m=="#"){i.scheme=t.scheme,i.path=Ve(t.path),i.query=t.query,i.fragment="",i.cannotBeABaseURL=!0,n=ut;break}n=t.scheme=="file"?Xu:zu;continue;case cv:if(m=="/"&&f[o+1]=="/")n=Va,o++;else{n=zu;continue}break;case mv:if(m=="/"){n=za;break}else{n=et;continue}case zu:if(i.scheme=t.scheme,m==Fe)i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.query=t.query;else if(m=="/"||m=="\\"&&i.isSpecial())n=pv;else if(m=="?")i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.query="",n=cr;else if(m=="#")i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.query=t.query,i.fragment="",n=ut;else{i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.path.length--,n=et;continue}break;case pv:if(i.isSpecial()&&(m=="/"||m=="\\"))n=Va;else if(m=="/")n=za;else{i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,n=et;continue}break;case gv:if(n=Va,m!="/"||Ae(a,o+1)!="/")continue;o++;break;case Va:if(m!="/"&&m!="\\"){n=za;continue}break;case za:if(m=="@"){c&&(a="%40"+a),c=!0,y=ei(a);for(var P=0;P<y.length;P++){var x=y[P];if(x==":"&&!g){g=!0;continue}var I=It(x,Wu);g?i.password+=I:i.username+=I}a=""}else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(c&&a=="")return RF;o-=ei(a).length+1,a="",n=Ju}else a+=m;break;case Ju:case $u:if(e&&i.scheme=="file"){n=Zu;continue}else if(m==":"&&!p){if(a=="")return ur;if(b=i.parseHost(a),b)return b;if(a="",n=Ku,e==$u)return}else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(i.isSpecial()&&a=="")return ur;if(e&&a==""&&(i.includesCredentials()||i.port!==null))return;if(b=i.parseHost(a),b)return b;if(a="",n=ti,e)return;continue}else m=="["?p=!0:m=="]"&&(p=!1),a+=m;break;case Ku:if(ze(rc,m))a+=m;else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()||e){if(a!=""){var B=Xa(a,10);if(B>65535)return dv;i.port=i.isSpecial()&&B===Ga[i.scheme]?null:B,a=""}if(e)return;n=ti;continue}else return dv;break;case Xu:if(i.scheme="file",m=="/"||m=="\\")n=hv;else if(t&&t.scheme=="file")if(m==Fe)i.host=t.host,i.path=Ve(t.path),i.query=t.query;else if(m=="?")i.host=t.host,i.path=Ve(t.path),i.query="",n=cr;else if(m=="#")i.host=t.host,i.path=Ve(t.path),i.query=t.query,i.fragment="",n=ut;else{lv(ts(Ve(f,o),""))||(i.host=t.host,i.path=Ve(t.path),i.shortenPath()),n=et;continue}else{n=et;continue}break;case hv:if(m=="/"||m=="\\"){n=Zu;break}t&&t.scheme=="file"&&!lv(ts(Ve(f,o),""))&&(rs(t.path[0],!0)?ri(i.path,t.path[0]):i.host=t.host),n=et;continue;case Zu:if(m==Fe||m=="/"||m=="\\"||m=="?"||m=="#"){if(!e&&rs(a))n=et;else if(a==""){if(i.host="",e)return;n=ti}else{if(b=i.parseHost(a),b)return b;if(i.host=="localhost"&&(i.host=""),e)return;a="",n=ti}continue}else a+=m;break;case ti:if(i.isSpecial()){if(n=et,m!="/"&&m!="\\")continue}else if(!e&&m=="?")i.query="",n=cr;else if(!e&&m=="#")i.fragment="",n=ut;else if(m!=Fe&&(n=et,m!="/"))continue;break;case et:if(m==Fe||m=="/"||m=="\\"&&i.isSpecial()||!e&&(m=="?"||m=="#")){if(GF(a)?(i.shortenPath(),m!="/"&&!(m=="\\"&&i.isSpecial())&&ri(i.path,"")):WF(a)?m!="/"&&!(m=="\\"&&i.isSpecial())&&ri(i.path,""):(i.scheme=="file"&&!i.path.length&&rs(a)&&(i.host&&(i.host=""),a=Ae(a,0)+":"),ri(i.path,a)),a="",i.scheme=="file"&&(m==Fe||m=="?"||m=="#"))for(;i.path.length>1&&i.path[0]==="";)TF(i.path);m=="?"?(i.query="",n=cr):m=="#"&&(i.fragment="",n=ut)}else a+=It(m,Pv);break;case fv:m=="?"?(i.query="",n=cr):m=="#"?(i.fragment="",n=ut):m!=Fe&&(i.path[0]+=It(m,Ja));break;case cr:!e&&m=="#"?(i.fragment="",n=ut):m!=Fe&&(m=="'"&&i.isSpecial()?i.query+="%27":m=="#"?i.query+="%23":i.query+=It(m,Ja));break;case ut:m!=Fe&&(i.fragment+=It(m,Sv));break}o++}},parseHost:function(r){var e,t,i;if(Ae(r,0)=="["){if(Ae(r,r.length-1)!="]"||(e=qF(is(r,1,-1)),!e))return ur;this.host=e}else if(this.isSpecial()){if(r=bF(r),ze(LF,r)||(e=HF(r),e===null))return ur;this.host=e}else{if(ze(DF,r))return ur;for(e="",t=ei(r),i=0;i<t.length;i++)e+=It(t[i],Ja);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme=="file"},includesCredentials:function(){return this.username!=""||this.password!=""},isSpecial:function(){return ec(Ga,this.scheme)},shortenPath:function(){var r=this.path,e=r.length;e&&(this.scheme!="file"||e!=1||!rs(r[0],!0))&&r.length--},serialize:function(){var r=this,e=r.scheme,t=r.username,i=r.password,n=r.host,o=r.port,a=r.path,c=r.query,p=r.fragment,g=e+":";return n!==null?(g+="//",r.includesCredentials()&&(g+=t+(i?":"+i:"")+"@"),g+=es(n),o!==null&&(g+=":"+o)):e=="file"&&(g+="//"),g+=r.cannotBeABaseURL?a[0]:a.length?"/"+ts(a,"/"):"",c!==null&&(g+="?"+c),p!==null&&(g+="#"+p),g},setHref:function(r){var e=this.parse(r);if(e)throw tc(e);this.searchParams.update()},getOrigin:function(){var r=this.scheme,e=this.port;if(r=="blob")try{return new ii(r.path[0]).origin}catch{return"null"}return r=="file"||!this.isSpecial()?"null":r+"://"+es(this.host)+(e!==null?":"+e:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(r){this.parse(ct(r)+":",Gu)},getUsername:function(){return this.username},setUsername:function(r){var e=ei(ct(r));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var t=0;t<e.length;t++)this.username+=It(e[t],Wu)}},getPassword:function(){return this.password},setPassword:function(r){var e=ei(ct(r));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var t=0;t<e.length;t++)this.password+=It(e[t],Wu)}},getHost:function(){var r=this.host,e=this.port;return r===null?"":e===null?es(r):es(r)+":"+e},setHost:function(r){this.cannotBeABaseURL||this.parse(r,Ju)},getHostname:function(){var r=this.host;return r===null?"":es(r)},setHostname:function(r){this.cannotBeABaseURL||this.parse(r,$u)},getPort:function(){var r=this.port;return r===null?"":ct(r)},setPort:function(r){this.cannotHaveUsernamePasswordPort()||(r=ct(r),r==""?this.port=null:this.parse(r,Ku))},getPathname:function(){var r=this.path;return this.cannotBeABaseURL?r[0]:r.length?"/"+ts(r,"/"):""},setPathname:function(r){this.cannotBeABaseURL||(this.path=[],this.parse(r,ti))},getSearch:function(){var r=this.query;return r?"?"+r:""},setSearch:function(r){r=ct(r),r==""?this.query=null:(Ae(r,0)=="?"&&(r=is(r,1)),this.query="",this.parse(r,cr)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var r=this.fragment;return r?"#"+r:""},setHash:function(r){if(r=ct(r),r==""){this.fragment=null;return}Ae(r,0)=="#"&&(r=is(r,1)),this.fragment="",this.parse(r,ut)},update:function(){this.query=this.searchParams.serialize()||null}};var ii=function(e){var t=vF(this,ne),i=SF(arguments.length,1)>1?arguments[1]:void 0,n=PF(t,new oc(e,!1,i));ic||(t.href=n.serialize(),t.origin=n.getOrigin(),t.protocol=n.getProtocol(),t.username=n.getUsername(),t.password=n.getPassword(),t.host=n.getHost(),t.hostname=n.getHostname(),t.port=n.getPort(),t.pathname=n.getPathname(),t.search=n.getSearch(),t.searchParams=n.getSearchParams(),t.hash=n.getHash())},ne=ii.prototype,Te=function(r,e){return{get:function(){return Ka(this)[r]()},set:e&&function(t){return Ka(this)[e](t)},configurable:!0,enumerable:!0}};ic&&(xe(ne,"href",Te("serialize","setHref")),xe(ne,"origin",Te("getOrigin")),xe(ne,"protocol",Te("getProtocol","setProtocol")),xe(ne,"username",Te("getUsername","setUsername")),xe(ne,"password",Te("getPassword","setPassword")),xe(ne,"host",Te("getHost","setHost")),xe(ne,"hostname",Te("getHostname","setHostname")),xe(ne,"port",Te("getPort","setPort")),xe(ne,"pathname",Te("getPathname","setPathname")),xe(ne,"search",Te("getSearch","setSearch")),xe(ne,"searchParams",Te("getSearchParams")),xe(ne,"hash",Te("getHash","setHash")));$a(ne,"toJSON",function(){return Ka(this).serialize()},{enumerable:!0});$a(ne,"toString",function(){return Ka(this).serialize()},{enumerable:!0});Yn&&(Qu=Yn.createObjectURL,Yu=Yn.revokeObjectURL,Qu&&$a(ii,"createObjectURL",sv(Qu,Yn)),Yu&&$a(ii,"revokeObjectURL",sv(Yu,Yn)));var Qu,Yu;kF(ii,"URL");hF({global:!0,constructor:!0,forced:!fF,sham:!ic},{URL:ii})});var wv=h(()=>{Cv()});var Iv=h(()=>{"use strict";var VF=Wn(),zF=je();VF({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return zF(URL.prototype.toString,this)}})});var xv=h(()=>{qu()});var Tv=h((fM,Fv)=>{var JF=ge();Fv.exports=JF});var Ev=h((vM,Av)=>{wv();Iv();xv();var $F=Tv();Av.exports=$F.URL});var Bc=h((GD,_y)=>{var dA=Object.prototype.toString;_y.exports=function(e){if(e===void 0)return"undefined";if(e===null)return"null";var t=typeof e;if(t==="boolean")return"boolean";if(t==="string")return"string";if(t==="number")return"number";if(t==="symbol")return"symbol";if(t==="function")return pA(e)?"generatorfunction":"function";if(lA(e))return"array";if(fA(e))return"buffer";if(hA(e))return"arguments";if(cA(e))return"date";if(uA(e))return"error";if(mA(e))return"regexp";switch(Ny(e)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(gA(e))return"generator";switch(t=dA.call(e),t){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return t.slice(8,-1).toLowerCase().replace(/\s/g,"")};function Ny(r){return typeof r.constructor=="function"?r.constructor.name:null}function lA(r){return Array.isArray?Array.isArray(r):r instanceof Array}function uA(r){return r instanceof Error||typeof r.message=="string"&&r.constructor&&typeof r.constructor.stackTraceLimit=="number"}function cA(r){return r instanceof Date?!0:typeof r.toDateString=="function"&&typeof r.getDate=="function"&&typeof r.setDate=="function"}function mA(r){return r instanceof RegExp?!0:typeof r.flags=="string"&&typeof r.ignoreCase=="boolean"&&typeof r.multiline=="boolean"&&typeof r.global=="boolean"}function pA(r,e){return Ny(r)==="GeneratorFunction"}function gA(r){return typeof r.throw=="function"&&typeof r.return=="function"&&typeof r.next=="function"}function hA(r){try{if(typeof r.length=="number"&&typeof r.callee=="function")return!0}catch(e){if(e.message.indexOf("callee")!==-1)return!0}return!1}function fA(r){return r.constructor&&typeof r.constructor.isBuffer=="function"?r.constructor.isBuffer(r):!1}});var jy=h((VD,qy)=>{"use strict";var Hy=Symbol.prototype.valueOf,vA=Bc();function yA(r,e){switch(vA(r)){case"array":return r.slice();case"object":return Object.assign({},r);case"date":return new r.constructor(Number(r));case"map":return new Map(r);case"set":return new Set(r);case"buffer":return PA(r);case"symbol":return CA(r);case"arraybuffer":return kA(r);case"float32array":case"float64array":case"int16array":case"int32array":case"int8array":case"uint16array":case"uint32array":case"uint8clampedarray":case"uint8array":return SA(r);case"regexp":return bA(r);case"error":return Object.create(r);default:return r}}function bA(r){let e=r.flags!==void 0?r.flags:/\w+$/.exec(r)||void 0,t=new r.constructor(r.source,e);return t.lastIndex=r.lastIndex,t}function kA(r){let e=new r.constructor(r.byteLength);return new Uint8Array(e).set(new Uint8Array(r)),e}function SA(r,e){return new r.constructor(r.buffer,r.byteOffset,r.length)}function PA(r){let e=r.length,t=Buffer.allocUnsafe?Buffer.allocUnsafe(e):Buffer.from(e);return r.copy(t),t}function CA(r){return Hy?Object(Hy.call(r)):{}}qy.exports=yA});var Gy=h((zD,Wy)=>{"use strict";Wy.exports=function(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}});var Jy=h((JD,zy)=>{"use strict";var wA=Gy();function Vy(r){return wA(r)===!0&&Object.prototype.toString.call(r)==="[object Object]"}zy.exports=function(e){var t,i;return!(Vy(e)===!1||(t=e.constructor,typeof t!="function")||(i=t.prototype,Vy(i)===!1)||i.hasOwnProperty("isPrototypeOf")===!1)}});var Ky=h(($D,$y)=>{"use strict";var IA=jy(),xA=Bc(),FA=Jy();function Mc(r,e){switch(xA(r)){case"object":return TA(r,e);case"array":return AA(r,e);default:return IA(r)}}function TA(r,e){if(typeof e=="function")return e(r);if(e||FA(r)){let t=new r.constructor;for(let i in r)t[i]=Mc(r[i],e);return t}return r}function AA(r,e){let t=new r.constructor(r.length);for(let i=0;i<r.length;i++)t[i]=Mc(r[i],e);return t}$y.exports=Mc});var zc=h((vs,Fi)=>{var EA=200,Vc="__lodash_hash_undefined__",Cd=1,ab=2,db=9007199254740991,fd="[object Arguments]",Nc="[object Array]",RA="[object AsyncFunction]",lb="[object Boolean]",ub="[object Date]",cb="[object Error]",mb="[object Function]",OA="[object GeneratorFunction]",vd="[object Map]",pb="[object Number]",BA="[object Null]",xi="[object Object]",Xy="[object Promise]",MA="[object Proxy]",gb="[object RegExp]",yd="[object Set]",hb="[object String]",UA="[object Symbol]",LA="[object Undefined]",_c="[object WeakMap]",fb="[object ArrayBuffer]",bd="[object DataView]",DA="[object Float32Array]",NA="[object Float64Array]",_A="[object Int8Array]",HA="[object Int16Array]",qA="[object Int32Array]",jA="[object Uint8Array]",WA="[object Uint8ClampedArray]",GA="[object Uint16Array]",VA="[object Uint32Array]",zA=/[\\^$.*+?()[\]{}|]/g,JA=/^\[object .+?Constructor\]$/,$A=/^(?:0|[1-9]\d*)$/,W={};W[DA]=W[NA]=W[_A]=W[HA]=W[qA]=W[jA]=W[WA]=W[GA]=W[VA]=!0;W[fd]=W[Nc]=W[fb]=W[lb]=W[bd]=W[ub]=W[cb]=W[mb]=W[vd]=W[pb]=W[xi]=W[gb]=W[yd]=W[hb]=W[_c]=!1;var vb=typeof global=="object"&&global&&global.Object===Object&&global,KA=typeof self=="object"&&self&&self.Object===Object&&self,ht=vb||KA||Function("return this")(),yb=typeof vs=="object"&&vs&&!vs.nodeType&&vs,Zy=yb&&typeof Fi=="object"&&Fi&&!Fi.nodeType&&Fi,bb=Zy&&Zy.exports===yb,Uc=bb&&vb.process,Qy=function(){try{return Uc&&Uc.binding&&Uc.binding("util")}catch{}}(),Yy=Qy&&Qy.isTypedArray;function XA(r,e){for(var t=-1,i=r==null?0:r.length,n=0,o=[];++t<i;){var a=r[t];e(a,t,r)&&(o[n++]=a)}return o}function ZA(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}function QA(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}function YA(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}function eE(r){return function(e){return r(e)}}function tE(r,e){return r.has(e)}function rE(r,e){return r?.[e]}function iE(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}function nE(r,e){return function(t){return r(e(t))}}function sE(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}var oE=Array.prototype,aE=Function.prototype,wd=Object.prototype,Lc=ht["__core-js_shared__"],kb=aE.toString,rt=wd.hasOwnProperty,eb=function(){var r=/[^.]+$/.exec(Lc&&Lc.keys&&Lc.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),Sb=wd.toString,dE=RegExp("^"+kb.call(rt).replace(zA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),tb=bb?ht.Buffer:void 0,kd=ht.Symbol,rb=ht.Uint8Array,Pb=wd.propertyIsEnumerable,lE=oE.splice,yr=kd?kd.toStringTag:void 0,ib=Object.getOwnPropertySymbols,uE=tb?tb.isBuffer:void 0,cE=nE(Object.keys,Object),Hc=Ti(ht,"DataView"),ys=Ti(ht,"Map"),qc=Ti(ht,"Promise"),jc=Ti(ht,"Set"),Wc=Ti(ht,"WeakMap"),bs=Ti(Object,"create"),mE=Sr(Hc),pE=Sr(ys),gE=Sr(qc),hE=Sr(jc),fE=Sr(Wc),nb=kd?kd.prototype:void 0,Dc=nb?nb.valueOf:void 0;function br(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function vE(){this.__data__=bs?bs(null):{},this.size=0}function yE(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}function bE(r){var e=this.__data__;if(bs){var t=e[r];return t===Vc?void 0:t}return rt.call(e,r)?e[r]:void 0}function kE(r){var e=this.__data__;return bs?e[r]!==void 0:rt.call(e,r)}function SE(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=bs&&e===void 0?Vc:e,this}br.prototype.clear=vE;br.prototype.delete=yE;br.prototype.get=bE;br.prototype.has=kE;br.prototype.set=SE;function ft(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function PE(){this.__data__=[],this.size=0}function CE(r){var e=this.__data__,t=Id(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():lE.call(e,t,1),--this.size,!0}function wE(r){var e=this.__data__,t=Id(e,r);return t<0?void 0:e[t][1]}function IE(r){return Id(this.__data__,r)>-1}function xE(r,e){var t=this.__data__,i=Id(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}ft.prototype.clear=PE;ft.prototype.delete=CE;ft.prototype.get=wE;ft.prototype.has=IE;ft.prototype.set=xE;function kr(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function FE(){this.size=0,this.__data__={hash:new br,map:new(ys||ft),string:new br}}function TE(r){var e=xd(this,r).delete(r);return this.size-=e?1:0,e}function AE(r){return xd(this,r).get(r)}function EE(r){return xd(this,r).has(r)}function RE(r,e){var t=xd(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}kr.prototype.clear=FE;kr.prototype.delete=TE;kr.prototype.get=AE;kr.prototype.has=EE;kr.prototype.set=RE;function Sd(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new kr;++e<t;)this.add(r[e])}function OE(r){return this.__data__.set(r,Vc),this}function BE(r){return this.__data__.has(r)}Sd.prototype.add=Sd.prototype.push=OE;Sd.prototype.has=BE;function Lt(r){var e=this.__data__=new ft(r);this.size=e.size}function ME(){this.__data__=new ft,this.size=0}function UE(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}function LE(r){return this.__data__.get(r)}function DE(r){return this.__data__.has(r)}function NE(r,e){var t=this.__data__;if(t instanceof ft){var i=t.__data__;if(!ys||i.length<EA-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new kr(i)}return t.set(r,e),this.size=t.size,this}Lt.prototype.clear=ME;Lt.prototype.delete=UE;Lt.prototype.get=LE;Lt.prototype.has=DE;Lt.prototype.set=NE;function _E(r,e){var t=Pd(r),i=!t&&eR(r),n=!t&&!i&&Gc(r),o=!t&&!i&&!n&&Ab(r),a=t||i||n||o,c=a?YA(r.length,String):[],p=c.length;for(var g in r)(e||rt.call(r,g))&&!(a&&(g=="length"||n&&(g=="offset"||g=="parent")||o&&(g=="buffer"||g=="byteLength"||g=="byteOffset")||KE(g,p)))&&c.push(g);return c}function Id(r,e){for(var t=r.length;t--;)if(Ib(r[t][0],e))return t;return-1}function HE(r,e,t){var i=e(r);return Pd(r)?i:ZA(i,t(r))}function Ss(r){return r==null?r===void 0?LA:BA:yr&&yr in Object(r)?JE(r):YE(r)}function sb(r){return ks(r)&&Ss(r)==fd}function Cb(r,e,t,i,n){return r===e?!0:r==null||e==null||!ks(r)&&!ks(e)?r!==r&&e!==e:qE(r,e,t,i,Cb,n)}function qE(r,e,t,i,n,o){var a=Pd(r),c=Pd(e),p=a?Nc:Ut(r),g=c?Nc:Ut(e);p=p==fd?xi:p,g=g==fd?xi:g;var f=p==xi,m=g==xi,y=p==g;if(y&&Gc(r)){if(!Gc(e))return!1;a=!0,f=!1}if(y&&!f)return o||(o=new Lt),a||Ab(r)?wb(r,e,t,i,n,o):VE(r,e,p,t,i,n,o);if(!(t&Cd)){var b=f&&rt.call(r,"__wrapped__"),P=m&&rt.call(e,"__wrapped__");if(b||P){var x=b?r.value():r,I=P?e.value():e;return o||(o=new Lt),n(x,I,t,i,o)}}return y?(o||(o=new Lt),zE(r,e,t,i,n,o)):!1}function jE(r){if(!Tb(r)||ZE(r))return!1;var e=xb(r)?dE:JA;return e.test(Sr(r))}function WE(r){return ks(r)&&Fb(r.length)&&!!W[Ss(r)]}function GE(r){if(!QE(r))return cE(r);var e=[];for(var t in Object(r))rt.call(r,t)&&t!="constructor"&&e.push(t);return e}function wb(r,e,t,i,n,o){var a=t&Cd,c=r.length,p=e.length;if(c!=p&&!(a&&p>c))return!1;var g=o.get(r);if(g&&o.get(e))return g==e;var f=-1,m=!0,y=t&ab?new Sd:void 0;for(o.set(r,e),o.set(e,r);++f<c;){var b=r[f],P=e[f];if(i)var x=a?i(P,b,f,e,r,o):i(b,P,f,r,e,o);if(x!==void 0){if(x)continue;m=!1;break}if(y){if(!QA(e,function(I,B){if(!tE(y,B)&&(b===I||n(b,I,t,i,o)))return y.push(B)})){m=!1;break}}else if(!(b===P||n(b,P,t,i,o))){m=!1;break}}return o.delete(r),o.delete(e),m}function VE(r,e,t,i,n,o,a){switch(t){case bd:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case fb:return!(r.byteLength!=e.byteLength||!o(new rb(r),new rb(e)));case lb:case ub:case pb:return Ib(+r,+e);case cb:return r.name==e.name&&r.message==e.message;case gb:case hb:return r==e+"";case vd:var c=iE;case yd:var p=i&Cd;if(c||(c=sE),r.size!=e.size&&!p)return!1;var g=a.get(r);if(g)return g==e;i|=ab,a.set(r,e);var f=wb(c(r),c(e),i,n,o,a);return a.delete(r),f;case UA:if(Dc)return Dc.call(r)==Dc.call(e)}return!1}function zE(r,e,t,i,n,o){var a=t&Cd,c=ob(r),p=c.length,g=ob(e),f=g.length;if(p!=f&&!a)return!1;for(var m=p;m--;){var y=c[m];if(!(a?y in e:rt.call(e,y)))return!1}var b=o.get(r);if(b&&o.get(e))return b==e;var P=!0;o.set(r,e),o.set(e,r);for(var x=a;++m<p;){y=c[m];var I=r[y],B=e[y];if(i)var Ce=a?i(B,I,y,e,r,o):i(I,B,y,r,e,o);if(!(Ce===void 0?I===B||n(I,B,t,i,o):Ce)){P=!1;break}x||(x=y=="constructor")}if(P&&!x){var Pt=r.constructor,da=e.constructor;Pt!=da&&"constructor"in r&&"constructor"in e&&!(typeof Pt=="function"&&Pt instanceof Pt&&typeof da=="function"&&da instanceof da)&&(P=!1)}return o.delete(r),o.delete(e),P}function ob(r){return HE(r,iR,$E)}function xd(r,e){var t=r.__data__;return XE(e)?t[typeof e=="string"?"string":"hash"]:t.map}function Ti(r,e){var t=rE(r,e);return jE(t)?t:void 0}function JE(r){var e=rt.call(r,yr),t=r[yr];try{r[yr]=void 0;var i=!0}catch{}var n=Sb.call(r);return i&&(e?r[yr]=t:delete r[yr]),n}var $E=ib?function(r){return r==null?[]:(r=Object(r),XA(ib(r),function(e){return Pb.call(r,e)}))}:nR,Ut=Ss;(Hc&&Ut(new Hc(new ArrayBuffer(1)))!=bd||ys&&Ut(new ys)!=vd||qc&&Ut(qc.resolve())!=Xy||jc&&Ut(new jc)!=yd||Wc&&Ut(new Wc)!=_c)&&(Ut=function(r){var e=Ss(r),t=e==xi?r.constructor:void 0,i=t?Sr(t):"";if(i)switch(i){case mE:return bd;case pE:return vd;case gE:return Xy;case hE:return yd;case fE:return _c}return e});function KE(r,e){return e=e??db,!!e&&(typeof r=="number"||$A.test(r))&&r>-1&&r%1==0&&r<e}function XE(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}function ZE(r){return!!eb&&eb in r}function QE(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||wd;return r===t}function YE(r){return Sb.call(r)}function Sr(r){if(r!=null){try{return kb.call(r)}catch{}try{return r+""}catch{}}return""}function Ib(r,e){return r===e||r!==r&&e!==e}var eR=sb(function(){return arguments}())?sb:function(r){return ks(r)&&rt.call(r,"callee")&&!Pb.call(r,"callee")},Pd=Array.isArray;function tR(r){return r!=null&&Fb(r.length)&&!xb(r)}var Gc=uE||sR;function rR(r,e){return Cb(r,e)}function xb(r){if(!Tb(r))return!1;var e=Ss(r);return e==mb||e==OA||e==RA||e==MA}function Fb(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=db}function Tb(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}function ks(r){return r!=null&&typeof r=="object"}var Ab=Yy?eE(Yy):WE;function iR(r){return tR(r)?_E(r):GE(r)}function nR(){return[]}function sR(){return!1}Fi.exports=rR});var vS=h(Vd=>{"use strict";Vd.byteLength=BR;Vd.toByteArray=UR;Vd.fromByteArray=NR;var st=[],_e=[],OR=typeof Uint8Array<"u"?Uint8Array:Array,Cm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Dr=0,hS=Cm.length;Dr<hS;++Dr)st[Dr]=Cm[Dr],_e[Cm.charCodeAt(Dr)]=Dr;var Dr,hS;_e[45]=62;_e[95]=63;function fS(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var i=t===e?0:4-t%4;return[t,i]}function BR(r){var e=fS(r),t=e[0],i=e[1];return(t+i)*3/4-i}function MR(r,e,t){return(e+t)*3/4-t}function UR(r){var e,t=fS(r),i=t[0],n=t[1],o=new OR(MR(r,i,n)),a=0,c=n>0?i-4:i,p;for(p=0;p<c;p+=4)e=_e[r.charCodeAt(p)]<<18|_e[r.charCodeAt(p+1)]<<12|_e[r.charCodeAt(p+2)]<<6|_e[r.charCodeAt(p+3)],o[a++]=e>>16&255,o[a++]=e>>8&255,o[a++]=e&255;return n===2&&(e=_e[r.charCodeAt(p)]<<2|_e[r.charCodeAt(p+1)]>>4,o[a++]=e&255),n===1&&(e=_e[r.charCodeAt(p)]<<10|_e[r.charCodeAt(p+1)]<<4|_e[r.charCodeAt(p+2)]>>2,o[a++]=e>>8&255,o[a++]=e&255),o}function LR(r){return st[r>>18&63]+st[r>>12&63]+st[r>>6&63]+st[r&63]}function DR(r,e,t){for(var i,n=[],o=e;o<t;o+=3)i=(r[o]<<16&16711680)+(r[o+1]<<8&65280)+(r[o+2]&255),n.push(LR(i));return n.join("")}function NR(r){for(var e,t=r.length,i=t%3,n=[],o=16383,a=0,c=t-i;a<c;a+=o)n.push(DR(r,a,a+o>c?c:a+o));return i===1?(e=r[t-1],n.push(st[e>>2]+st[e<<4&63]+"==")):i===2&&(e=(r[t-2]<<8)+r[t-1],n.push(st[e>>10]+st[e>>4&63]+st[e<<2&63]+"=")),n.join("")}});var Sq=Ln(Ev(),1);function v(r,e){if(r==null)throw Error(e??"Expected nonnullish value.")}function mr(r,e){if(!r)throw Error(e)}var se;(function(r){r.COMMENT="t1_",r.ACCOUNT="t2_",r.LINK="t3_",r.MESSAGE="t4_",r.SUBREDDIT="t5_",r.AWARD="t6_"})(se||(se={}));function xt(r){return r.startsWith(se.COMMENT)}function Qa(r){return r.startsWith(se.ACCOUNT)}function pr(r){return r.startsWith(se.LINK)}function Rv(r){return r.startsWith(se.MESSAGE)}function Ov(r){return r.startsWith(se.SUBREDDIT)}function Bv(r){return r.startsWith(se.AWARD)}function KF(r){mr(xt(r),`Expected comment id to start with ${se.COMMENT}, got ${r}}`)}function XF(r){mr(Qa(r),`Expected account id to start with ${se.ACCOUNT}, got ${r}}`)}function ZF(r){mr(pr(r),`Expected link id to start with ${se.LINK}, got ${r}}`)}function QF(r){mr(Rv(r),`Expected message id to start with ${se.MESSAGE}, got ${r}}`)}function YF(r){mr(Ov(r),`Expected subreddit id to start with ${se.SUBREDDIT}, got ${r}}`)}function eT(r){mr(Bv(r),`Expected award id to start with ${se.AWARD}, got ${r}}`)}function ni(r){return KF(r),r}function oe(r){return XF(r),r}function ve(r){return ZF(r),r}function tT(r){return QF(r),r}function ie(r){return YF(r),r}function rT(r){return eT(r),r}function Re(r){if(xt(r))return ni(r);if(Qa(r))return oe(r);if(pr(r))return ve(r);if(Rv(r))return tT(r);if(Ov(r))return ie(r);if(Bv(r))return rT(r);throw new Error(`Expected thing id to start with ${Object.values(se).join(", ")} got ${r}}`)}function ac(r){return xt(r)}import*as C from"@devvit/protos";var Ya=class{constructor(e){}};var dc=(t=>(t.Installation="installation",t.App="app",t))(dc||{});function gr(r,e=new Set){for(let t of r){if(t.type==="group"){gr(t.fields,e);continue}let i=t.name;if(e.has(i))throw new Error(`Duplicate field name: ${i}`);e.add(i)}iT(r)}function iT(r){for(let e of r)if(e.type==="string"&&e.isSecret&&e.scope!=="app")throw`Invalid setting: only app settings can be secrets. Add "scope: SettingScope.App" to field "${e.name}"`}var Ft=Object.freeze({INTERVAL:0,FORM:1,STATE:2,CHANNEL:3});var FM=["3rd-party","activity","add-emoji","add","add-media","add-to-feed","admin","ads","ai","align-center","align-left","align-right","all","ama","appearance","approve","archived","aspect-ratio","aspect-rectangle","attach","audience","audio","author","automod","avatar-style","award","back","backup","ban","best","block","blockchain","bold","boost","bot","bounce","brand-awareness","browse","browser","cake","calendar","camera","campaign","caret-down","caret-left","caret-right","caret-up","chat","chat-group","chat-new","chat-private","checkbox-dismiss","checkbox","checkmark","chrome","clear","client-list","close","closed-captioning","code-block","code-inline","coins-color-old","coins","collapse-left","collapse-right","collectible-expressions","collection","comment","comments","communities","community","confidence","contest","controversial","conversion","copy-clipboard","crop","crosspost","crowd-control","custom-feed","customize","dashboard","day","delete-column","delete","delete-row","devvit","discover","dismiss-all","distinguish","down-arrow","down","download","downvote","downvotes","drag","drugs","duplicate","edit","effect","embed","emoji","end-live-chat","error","expand-left","expand-right","external","feed-video","filter","format","forward","funnel","gif-post","gold","hashtag","heart","help","hide","history","home","hot","ignore-reports","image-post","inbox","info","insert-column-left","insert-column-right","insert-row-above","insert-row-below","internet","invite","italic","join","joined","jump-down","jump-up","karma","keyboard","kick","language","leave","left","link","link-post","list-bulleted","list-numbered","live-chat","live","load","location","lock","logout","loop","macro","mark-read","marketplace","mask","media-gallery","meme","menu","message","mic","mic-mute","mod","mod-mail","mod-mode","mod-mute","mod-overflow","mod-queue","mod-unmute","music","mute","new","night","no-internet","notification","notification-frequent","notification-off","nsfw","nsfw-language","nsfw-violence","official","original","overflow-caret","overflow-horizontal","overflow-vertical","pause","payment","peace","pending-posts","phone","pin","play","poll-post","popular","posts","powerup","predictions","premium","privacy","profile","qa","qr-code","quarantined","quote","r-slash","radar","radio-button","raise-hand","random","ratings-everyone","ratings-mature","ratings-nsfw","ratings-violence","recovery-phrase","refresh","removal-reasons","remove","reply","report","reverse","rich-text","right","rising","rotate","rotate-image","rpan","rules","safari","save","save-view","saved","saved-response","search","self","send","settings","severity","share","share-new","show","side-menu","skipback10","skipforward10","sort-az","sort","sort-price","sort-za","spam","spoiler","sponsored","spreadsheet","star","statistics","status-live","sticker","strikethrough","subtract","superscript","swap-camera","swipe-back","swipe-down","swipe","swipe-up","table","tag","tap","text","text-post","text-size","toggle","tools","top","topic-activism","topic-addictionsupport","topic-advice","topic-animals","topic-anime","topic-art","topic-beauty","topic-business","topic-careers","topic-cars","topic-celebrity","topic-craftsdiy","topic-crypto","topic-culture","topic-diy","topic-entertainment","topic-ethics","topic-family","topic-fashion","topic","topic-fitness","topic-food","topic-funny","topic-gender","topic-health","topic-help","topic-history","topic-hobbies","topic-homegarden","topic-internet","topic-law","topic-learning","topic-lifestyle","topic-marketplace","topic-mature","topic-mensfashion","topic-menshealth","topic-meta","topic-military","topic-movies","topic-music","topic-news","topic-other","topic-outdoors","topic-pets","topic-photography","topic-places","topic-podcasts","topic-politics","topic-programming","topic-reading","topic-religion","topic-science","topic-sexorientation","topic-sports","topic-style","topic-tabletop","topic-technology","topic-television","topic-traumasupport","topic-travel","topic-videogaming","topic-womensfashion","topic-womenshealth","translate","translation-off","trim","u-slash","unban","undo","unheart","unlock","unmod","unpin","unstar","unverified","up-arrow","up","upload","upvote","upvotes","user","user-note","users","vault","verified","video-camera","video-feed","video-post","video-thread","video-transcription","view-card","view-classic","view-compact","view-grid","view-sort","views","volume","wallet","warning","webhook","whale","wiki-ban","wiki","wiki-unban","world","coins-color","powerup-color","powerup-fill-color","share-android","share-ios","video-live-1","video-live-fill-1","video-live","volume-mute","binoculars","caret-updown","planet","telescope"];import{AppSettingsDefinition as yT,GetFieldsResponse as bT}from"@devvit/protos";import{FormFieldType as Oe}from"@devvit/protos";function mt(r){return r.map(e=>{switch(e.type){case"string":return nT(e);case"image":return sT(e);case"paragraph":return oT(e);case"number":return aT(e);case"select":return dT(e);case"boolean":return lT(e);case"group":return uT(e);default:throw new Error("Unknown field type.")}})}function nT(r){return{defaultValue:{fieldType:Oe.STRING,stringValue:r.defaultValue},disabled:r.disabled,fieldConfig:{stringConfig:{placeholder:r.placeholder}},fieldId:r.name,fieldType:Oe.STRING,helpText:r.helpText,label:r.label,required:r.required,isSecret:r.isSecret}}function sT(r){return{disabled:r.disabled,fieldId:r.name,fieldType:Oe.IMAGE,helpText:r.helpText,label:r.label,required:r.required}}function oT(r){return{defaultValue:{fieldType:Oe.PARAGRAPH,stringValue:r.defaultValue},disabled:r.disabled,fieldConfig:{paragraphConfig:{lineHeight:r.lineHeight,placeholder:r.placeholder}},fieldId:r.name,fieldType:Oe.PARAGRAPH,helpText:r.helpText,label:r.label,required:r.required}}function aT(r){return{defaultValue:{fieldType:Oe.NUMBER,numberValue:r.defaultValue},disabled:r.disabled,fieldConfig:{numberConfig:{}},fieldId:r.name,fieldType:Oe.NUMBER,helpText:r.helpText,label:r.label,required:r.required}}function dT(r){return{defaultValue:{fieldType:Oe.SELECTION,selectionValue:{values:r.defaultValue??[]}},disabled:r.disabled,fieldConfig:{selectionConfig:{choices:r.options,multiSelect:r.multiSelect}},fieldId:r.name,fieldType:Oe.SELECTION,helpText:r.helpText,label:r.label,required:r.required}}function lT(r){return{defaultValue:{fieldType:Oe.BOOLEAN,boolValue:r.defaultValue},disabled:r.disabled,fieldId:r.name,fieldType:Oe.BOOLEAN,helpText:r.helpText,label:r.label}}function uT(r){return{fieldId:"",fieldType:Oe.GROUP,fieldConfig:{groupConfig:{fields:mt(r.fields)}},label:r.label,helpText:r.helpText}}function M(r,e){u.prototype[r]=e}import{ValidateFormResponse as vT}from"@devvit/protos";import{RealtimeSubscriptionStatus as Uv}from"@devvit/protos";var L=Object.freeze({Actor:"devvit-actor",App:"devvit-app",AppUser:"devvit-app-user",AppViewerAuthToken:"devvit-app-viewer-authorization",Caller:"devvit-caller",CallerPortID:"devvit-caller-port-id",Canary:"devvit-canary",Debug:"devvit-debug",GQLHost:"devvit-gql-host",Installation:"devvit-installation",ModPermissions:"devvit-mod-permissions",Post:"devvit-post",PostAuthor:"devvit-post-author",R2Auth:"devvit-sec-authorization",R2Host:"devvit-r2-host",RemoteHostname:"devvit-remote-hostname",SettingsUri:"devvit-sec-settings-uri",StreamID:"devvit-stream-id",Subreddit:"devvit-subreddit",SubredditName:"devvit-subreddit-name",TraceID:"devvit-trace-id",User:"devvit-user",UserAgent:"devvit-user-agent",Version:"devvit-version",Language:"devvit-accept-language",Timezone:"devvit-accept-timezone",AppDependencies:"devvit-app-dependencies"}),Mv;(function(r){r.Blocks="blocks",r.EmitSnapshots="emitSnapshots",r.EmitState="emitState",r.Realtime="realtime",r.Runtime="runtime",r.Surface="surface",r.UseAsync="useAsync",r.Payments="payments",r.Bootstrap="bootstrap",r.WebView="webView"})(Mv||(Mv={}));function Lv(r){function e(t){let n=r.currentHookIndex,o=r.getCurrentComponentState(),a=r.getPreviousComponentState(),c=r.metadata[L.App]?.values[0];v(c,"useChannel - app is missing from Context");let p=r.metadata[L.Installation]?.values[0];v(p,"useChannel - installation is missing from Context");async function g(I){let B=o[n].channel;if(o[n].active)if(o[n].connected)await r.realtime.send(B,I);else throw Error(`Failed to send to channel '${B}'; it is active but not yet connected`);else throw Error(`Cannot send a message over inactive channel: ${B}`)}function f(){if(!o[n].active){let I=o[n].channel;o[n].active=!0,r.addRealtimeChannel(I)}}function m(){if(o[n].active){let I=o[n].channel;o[n].active=!1,r.removeRealtimeChannel(I)}}function y(I){return async()=>{let B;switch(I.status){case Uv.REALTIME_SUBSCRIBED:o[n].connected=!0,B=t.onSubscribed?.();break;case Uv.REALTIME_UNSUBSCRIBED:o[n].connected=!1,B=t.onUnsubscribed?.();break;default:B=t.onMessage(I.event?.data?.msg);break}await B}}let b={channel:`${c}:${p}:${t.name}`,active:!1,connected:!1,preventCallback:!1,type:Ft.CHANNEL};n in o?b=o[n]:n in a&&(b=a[n]);let P=r.realtimeEvent;r.isInitialRender?b.active=!1:P&&b.active&&P.event.channel===b.channel&&(b.preventCallback||r.runHook(y(P)),r.rerenderIn(0)),o[n]=b,r.currentHookIndex++;let x=0;return b.active&&b.connected?x=2:b.active&&!b.connected?x=1:!b.active&&b.connected?x=3:!b.active&&!b.connected&&(x=4),{subscribe:f,unsubscribe:m,send:g,status:x}}return e}import{FormFieldType as si}from"@devvit/protos";function lc(r){switch(r.fieldType){case si.STRING:return r.stringValue;case si.IMAGE:return r.stringValue;case si.PARAGRAPH:return r.stringValue;case si.NUMBER:return r.numberValue;case si.BOOLEAN:return r.boolValue;case si.SELECTION:return r.selectionValue?.values??[];default:return}}function Tt(r){return Object.keys(r).reduce((e,t)=>{let i=lc(r[t]);return i!==void 0&&(e[t]=i),e},{})}function Dv(r){function e(t,i){let n=r.currentHookIndex,o=r.getCurrentComponentKey(),a=r.getCurrentComponentState(),c=r.getPreviousComponentState(),p=`form.hook.${o}.${n}`,g={formKey:p,preventSubmit:!1,type:Ft.FORM};n in a?g=a[n]:n in c&&(g=c[n]),a[n]=g,r.forms.set(p,t);let f=r.formSubmittedEvent;return f&&!g.preventSubmit&&f.formId===p&&r.runHook(async()=>{let m=i(Tt(f.results));m&&m instanceof Promise&&await m,r.rerenderIn(0)}),a[n].preventSubmit=!1,r.currentHookIndex++,p}return e}function Nv(r){function e(t,i){let n=r.currentHookIndex,o=r.getCurrentComponentState(),a=r.getPreviousComponentState(),c=100,p=Math.max(c,i),g={lastRun:void 0,running:!1,preventCallback:!1,type:Ft.INTERVAL};n in o?g=o[n]:n in a&&(g=a[n]);function f(){i<c&&console.error(`useInterval delay must be at least ${c}ms. Your interval of ${i}ms was automatically extended.`);for(let[y,b]of Object.entries(o))if(y!==n.toString()&&b?.type===Ft.INTERVAL&&b?.running)throw new Error("Only one useInterval hook may be running at a time");o[n]={running:!0,lastRun:o[n]?.lastRun??Date.now(),preventCallback:!1,type:Ft.INTERVAL},r.rerenderIn(p)}function m(){o[n].running=!1,o[n].lastRun=void 0,o[n].preventCallback=!1}return r.isEffectRender&&g.running&&(g.preventCallback||(g.lastRun===void 0||g.lastRun+p<Date.now())&&r.runHook(async()=>{let y=t();y&&y instanceof Promise&&await y,g.lastRun=Date.now()}),r.rerenderIn(p)),g.preventCallback=!1,o[n]=g,r.currentHookIndex++,{start:f,stop:m}}return e}function _v(r){function e(t){let i=r.currentHookIndex,n=r.getCurrentComponentState(),o=r.getPreviousComponentState();if(i in n)return r.currentHookIndex++,[n[i],a];if(r.isInitialRender||!(i in o)){let c=t instanceof Function?t():t;if(c instanceof Promise)throw(async()=>{n[i]=await c,r.currentHookIndex=0})();n[i]=c}else n[i]=o[i];function a(c){if(r.isRendering)throw new Error("Cannot call setState while rendering.");n[i]=c instanceof Function?c(n[i]):c}return r.currentHookIndex++,[n[i],a]}return e}var pc={now(){return new Date}};function Hv(r){return`__autocache__${r}`}function qv(r){return`__lock__${r}`}var mT=300,pT=1e3,ed=5e3,uc=3,jv=.1,Wv=1e3,gT=3e4;function Gv(r){if(r.error)throw new Error(r.error);return r.value}var At,Et,Be,oi,$,Vv,zv,Jv,cc,$v,Kv,mc,Xv,td=class{constructor(e,t,i=pc){l(this,$);l(this,At);l(this,Et,{});l(this,Be);l(this,oi);d(this,At,e),d(this,oi,t),d(this,Be,i)}async cache(e,t){d(this,Et,s(this,oi).__cache=s(this,oi).__cache??{}),S(this,$,Xv).call(this,t);let i=S(this,$,Vv).call(this,t.key);if(i!==void 0)return i;let n=await S(this,$,mc).call(this,t.key),o=await S(this,$,zv).call(this,t,n,e);return Gv(o)}};At=new WeakMap,Et=new WeakMap,Be=new WeakMap,oi=new WeakMap,$=new WeakSet,Vv=function(e){let t=s(this,Et)[e];if(t){let i=s(this,Be).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<uc&&Math.random()<jv&&t.errorTime+Wv<i;if(t?.expires&&t.expires<i&&t.checkedAt+Wv<i||n){delete s(this,Et)[e];return}else return Gv(t)}},zv=async function(e,t,i){let n=t?.expires,o=n?S(this,$,Kv).call(this,n):1;return!t||t?.error&&t.errorCount<uc&&jv>Math.random()||o>Math.random()?S(this,$,Jv).call(this,e,t,i):t},Jv=async function(e,t,i){let n=qv(e.key),o=s(this,Be).now().getTime(),a=new Date(o+e.ttl/2);if(await s(this,At).set(n,"1",{expiration:a,nx:!0}))return S(this,$,$v).call(this,e.key,t,i,e.ttl);if(t)return t;{let p=s(this,Be).now();return S(this,$,cc).call(this,p,e.key,e.ttl)}},cc=async function(e,t,i){let n=Math.min(i,pT),o=await S(this,$,mc).call(this,t);if(o)return o;if(s(this,Be).now().getTime()-e.getTime()>=n)throw new Error(`Cache request timed out trying to get data at key: ${t}`);return await new Promise(a=>setTimeout(a,mT)),S(this,$,cc).call(this,e,t,i)},$v=async function(e,t,i,n){let o=s(this,Be).now().getTime()+n;t=t??{value:null,expires:o,errorCount:0,error:null,errorTime:null,checkedAt:0};try{t.value=await i(),t.error=null,t.errorCount=0,t.errorTime=null}catch(a){t.value=null,t.error=a.message??"Unknown error",t.errorTime=s(this,Be).now().getTime(),t.errorCount++}return s(this,Et)[e]=t,await s(this,At).set(Hv(e),JSON.stringify(t),{expiration:new Date(o+gT)}),t.error&&t.errorCount<uc&&await s(this,At).del(qv(e)),t},Kv=function(e){let t=s(this,Be).now().getTime(),i=e-t;return i<0?1:i<1e3?.1:i<2e3?.01:i<3e3?.001:0},mc=async function(e){let t=await s(this,At).get(Hv(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Be).now().getTime(),s(this,Et)[e]=i,i}},Xv=function(e){e.ttl<ed&&(console.warn(`Cache TTL cannot be less than ${ed} milliseconds! Updating ttl value of ${e.ttl} to ${ed}.`),e.ttl=ed)};function Zv(r,e,t=pc){let i=new td(r,e,t);return i.cache.bind(i)}function Qv(r){new URL(r.slice(0,r.indexOf(",")))}var ai,di,ui,Yv,ey,li=class{constructor(){l(this,ui);l(this,ai,{});l(this,di,{});d(this,ai,u.assets),d(this,di,u.webViewAssets)}getURL(e,t){return typeof e=="string"?S(this,ui,Yv).call(this,e,t??{webView:!1}):S(this,ui,ey).call(this,e,t??{webView:!1})}};ai=new WeakMap,di=new WeakMap,ui=new WeakSet,Yv=function(e,t){let i=t.webView?s(this,di)[e]:s(this,ai)[e];if(i)return i;try{return Qv(e),encodeURI(e)}catch{return""}},ey=function(e,t){let i={},n=[],o=t.webView?s(this,di):s(this,ai);if(o)for(let a of e)if(o[a])i[a]=o[a];else try{Qv(a),i[a]=encodeURI(a)}catch{n.push(a)}else n=e;if(n.length>0)throw new Error(`The following assets were missing from the assets list: ${n.join(", ")}`);return i};var Rt,ci=class{constructor(e){l(this,Rt);d(this,Rt,e)}async get(e){let{messages:t}=await u.kvStorePlugin.Get({keys:[e]},s(this,Rt));try{if(t[e])return JSON.parse(t[e])}catch{return}}async put(e,t){let i={};i[e]=JSON.stringify(t),await u.kvStorePlugin.Put({messages:i},s(this,Rt))}async delete(e){await u.kvStorePlugin.Del({keys:[e]},s(this,Rt))}async list(){let{keys:e}=await u.kvStorePlugin.List({filter:"*"},s(this,Rt));return e}};Rt=new WeakMap;var ns,mi=class{constructor(e){l(this,ns);d(this,ns,e)}async upload(e){let t=await u.mediaPlugin.Upload(e,s(this,ns));if(!t.mediaId)throw new Error("unable to get mediaId via uploads");return Promise.resolve({mediaId:t.mediaId,mediaUrl:t.mediaUrl})}};ns=new WeakMap;var ss,pi=class{constructor(e){l(this,ss);d(this,ss,e)}async add(e){await u.modLogPlugin.Add(e,s(this,ss))}};ss=new WeakMap;var os,gi=class{constructor(e){l(this,os);d(this,os,e)}async send(e,t){await u.realtimePlugin.Send({channel:e,data:{msg:t}},s(this,os))}};os=new WeakMap;var k,as,ds,hi=class{constructor(e){l(this,k);l(this,as);l(this,ds);d(this,k,e),d(this,as,new id(e))}get modMail(){return s(this,as)}getSubredditById(e){return ye.getById(Re(e),s(this,k))}getSubredditInfoById(e){return ry(e,s(this,k))}getSubredditByName(e){return ye.getByName(e,s(this,k))}getSubredditInfoByName(e){return iy(e,s(this,k))}addSubredditRemovalReason(e,t){return ye.addRemovalReason(e,t.title,t.message,s(this,k))}getSubredditRemovalReasons(e){return ye.getRemovalReasons(e,s(this,k))}getCurrentSubreddit(){return ye.getFromMetadata(s(this,k))}getPostById(e){return z.getById(Re(e),s(this,k))}submitPost(e){return z.submit(e,s(this,k))}crosspost(e){return z.crosspost(e,s(this,k))}getUserById(e){return w.getById(Re(e),s(this,k))}getUserByUsername(e){return w.getByUsername(e,s(this,k))}async getCurrentUser(){return s(this,ds)??d(this,ds,w.getFromMetadata(L.User,s(this,k))),s(this,ds)}getAppUser(){return w.getFromMetadata(L.AppUser,s(this,k))}getSnoovatarUrl(e){return w.getSnoovatarUrl(e,s(this,k))}getCommentById(e){return te.getById(Re(e),s(this,k))}getComments(e){return te.getComments(e,s(this,k))}getCommentsByUser(e){return te.getCommentsByUser(e,s(this,k))}submitComment(e){return te.submit({...e,id:Re(e.id)},s(this,k))}getControversialPosts(e){return z.getControversialPosts(e,s(this,k))}getTopPosts(e){return z.getTopPosts(e,s(this,k))}getHotPosts(e){return z.getHotPosts(e,s(this,k))}getNewPosts(e){return z.getNewPosts(e,s(this,k))}getRisingPosts(e){return z.getRisingPosts(e,s(this,k))}getPostsByUser(e){return z.getPostsByUser(e,s(this,k))}getCommentsAndPostsByUser(e){return w.getOverview(e,s(this,k))}getModerationLog(e){return rd(e,s(this,k))}getApprovedUsers(e){return w.getSubredditUsersByType({type:"contributors",...e},s(this,k))}approveUser(e,t){return w.createRelationship({username:e,subredditName:t,type:"contributor"},s(this,k))}removeUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"contributor"},s(this,k))}getWikiContributors(e){return w.getSubredditUsersByType({type:"wikicontributors",...e},s(this,k))}addWikiContributor(e,t){return w.createRelationship({username:e,subredditName:t,type:"wikicontributor"},s(this,k))}removeWikiContributor(e,t){return w.removeRelationship({username:e,subredditName:t,type:"wikicontributor"},s(this,k))}getBannedUsers(e){return w.getSubredditUsersByType({type:"banned",...e},s(this,k))}banUser(e){return w.createRelationship({username:e.username,subredditName:e.subredditName,type:"banned",banReason:e.reason,banMessage:e.message,note:e.note,duration:e.duration,banContext:e.context},s(this,k))}unbanUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"banned"},s(this,k))}getBannedWikiContributors(e){return w.getSubredditUsersByType({type:"wikibanned",...e},s(this,k))}banWikiContributor(e){return w.createRelationship({...e,type:"wikibanned"},s(this,k))}unbanWikiContributor(e,t){return w.removeRelationship({username:e,subredditName:t,type:"wikibanned"},s(this,k))}getModerators(e){return w.getSubredditUsersByType({type:"moderators",...e},s(this,k))}inviteModerator(e){return w.createRelationship({type:"moderator_invite",subredditName:e.subredditName,username:e.username,permissions:e.permissions??[]},s(this,k))}revokeModeratorInvite(e,t){return w.removeRelationship({username:e,subredditName:t,type:"moderator_invite"},s(this,k))}removeModerator(e,t){return w.removeRelationship({type:"moderator",subredditName:t,username:e},s(this,k))}setModeratorPermissions(e,t,i){return w.setModeratorPermissions(e,t,i,s(this,k))}getMutedUsers(e){return w.getSubredditUsersByType({type:"muted",...e},s(this,k))}muteUser(e){return w.createRelationship({...e,type:"muted"},s(this,k))}unmuteUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"muted"},s(this,k))}getModNotes(e){return Me.get(e,s(this,k))}deleteModNote(e){return Me.delete(e,s(this,k))}addModNote(e){let t={...e,redditId:e.redditId?Re(e.redditId):void 0};return Me.add(t,s(this,k))}addRemovalNote(e){return Me.addRemovalNote(e,s(this,k))}async sendPrivateMessage(e){return hr.send(e,s(this,k))}async sendPrivateMessageAsSubreddit(e){return hr.sendAsSubreddit(e,s(this,k))}async approve(e){if(xt(e))return te.approve(e,s(this,k));if(pr(e))return z.approve(e,s(this,k));throw new Error("id must start with either t1_ or t3_")}async remove(e,t){if(xt(e))return te.remove(e,t,s(this,k));if(pr(e))return z.remove(e,t,s(this,k));throw new Error("id must start with either t1_ or t3_")}async getPostFlairTemplates(e){return ue.getPostFlairTemplates(e,s(this,k))}async getUserFlairTemplates(e){return ue.getUserFlairTemplates(e,s(this,k))}async createPostFlairTemplate(e){return ue.createPostFlairTemplate(e,s(this,k))}async createUserFlairTemplate(e){return ue.createUserFlairTemplate(e,s(this,k))}async editFlairTemplate(e){return ue.editFlairTemplate(e,s(this,k))}async deleteFlairTemplate(e,t){return ue.deleteFlairTemplate(e,t,s(this,k))}async setUserFlair(e){return Ue.setUserFlair(e,s(this,k))}async removeUserFlair(e,t){return Ue.removeUserFlair(e,t,s(this,k))}async setPostFlair(e){return Ue.setPostFlair(e,s(this,k))}async removePostFlair(e,t){return Ue.removePostFlair(e,ve(t),s(this,k))}async getWidgets(e){return ae.getWidgets(e,s(this,k))}async deleteWidget(e,t){return ae.delete(e,t,s(this,k))}async addWidget(e){return ae.add(e,s(this,k))}async reorderWidgets(e,t){return ae.reorder(e,t,s(this,k))}async getWikiPage(e,t){return be.getPage(e,t,s(this,k))}async getWikiPages(e){return be.getPages(e,s(this,k))}async createWikiPage(e){return be.createPage(e,s(this,k))}async updateWikiPage(e){return be.updatePage(e,s(this,k))}getWikiPageRevisions(e){return be.getPageRevisions(e,s(this,k))}async revertWikiPage(e,t,i){return be.revertPage(e,t,i,s(this,k))}async getWikiPageSettings(e,t){return be.getPageSettings(e,t,s(this,k))}async updateWikiPageSettings(e){return be.updatePageSettings(e,s(this,k))}async addEditorToWikiPage(e,t,i){return be.addEditor(e,t,i,s(this,k))}async removeEditorFromWikiPage(e,t,i){return be.removeEditor(e,t,i,s(this,k))}getMessages(e){return hr.getMessages(e,s(this,k))}markAllMessagesAsRead(){return hr.markAllAsRead(s(this,k))}report(e,t){return u.redditAPIPlugins.LinksAndComments.Report({reason:t.reason,thingId:e.id,srName:e.subredditName,usernames:e.authorName},s(this,k))}getModQueue(e){return ye.aboutLocation({...e,location:"modqueue"},s(this,k))}getReports(e){return ye.aboutLocation({...e,location:"reports"},s(this,k))}getSpam(e){return ye.aboutLocation({...e,location:"spam"},s(this,k))}getUnmoderated(e){return ye.aboutLocation({...e,location:"unmoderated"},s(this,k))}getEdited(e){return ye.aboutLocation({...e,location:"edited"},s(this,k))}getVaultByAddress(e){return oy(e,s(this,k))}getVaultByUserId(e){return ay(Re(e),s(this,k))}getSubredditLeaderboard(e){return ny(e,s(this,k))}getSubredditStyles(e){return sy(e,s(this,k))}async subscribeToCurrentSubreddit(){let e=await this.getCurrentSubreddit();await u.redditAPIPlugins.Subreddits.Subscribe({action:"sub",actionSource:"",srName:e.name,sr:"",skipInitialDefaults:!0},s(this,k))}async unsubscribeFromCurrentSubreddit(){let e=await this.getCurrentSubreddit();await u.redditAPIPlugins.Subreddits.Subscribe({action:"unsub",actionSource:"",srName:e.name,sr:"",skipInitialDefaults:!1},s(this,k))}};k=new WeakMap,as=new WeakMap,ds=new WeakMap;import{RedisKeyScope as gc}from"@devvit/protos";function nd(r){return r&&typeof r=="object"&&"message"in r&&r.message!==void 0&&typeof r.message=="string"?r.message.includes("redis: nil"):!1}var E,R,O,hc=class{constructor(e,t,i){l(this,E);l(this,R);l(this,O);d(this,E,e),d(this,R,t),d(this,O,i)}async get(e){return await s(this,E).Get({key:e,transactionId:s(this,R)},s(this,O)),this}async multi(){await s(this,E).Multi(s(this,R),s(this,O))}async set(e,t,i){let n;return i?.expiration&&(n=Math.floor((i.expiration.getTime()-Date.now())/1e3),n<1&&(n=1)),await s(this,E).Set({key:e,value:t,nx:i?.nx===!0,xx:i?.xx===!0,expiration:n||0,transactionId:s(this,R)},s(this,O)),this}async del(...e){return await s(this,E).Del({keys:e,transactionId:s(this,R)},s(this,O)),this}async type(e){return await s(this,E).Type({key:e,transactionId:s(this,R)},s(this,O)),this}async exec(){let e=await s(this,E).Exec(s(this,R),s(this,O)),t=[];for(let i of e.response)i.members?t.push(i.members):i.nil!==void 0?t.push(null):i.num!==void 0?t.push(i.num):i.values!==void 0?t.push(i.values.values):i.str!==void 0?t.push(i.str):i.dbl!==void 0&&t.push(i.dbl);return t}async discard(){await s(this,E).Discard(s(this,R),s(this,O))}async watch(...e){return await s(this,E).Watch({keys:e,transactionId:s(this,R)},s(this,O)),this}async unwatch(){return await s(this,E).Unwatch(s(this,R),s(this,O)),this}async getRange(e,t,i){return await s(this,E).GetRange({key:e,start:t,end:i,transactionId:s(this,R)},s(this,O)),this}async setRange(e,t,i){return await s(this,E).SetRange({key:e,offset:t,value:i,transactionId:s(this,R)},s(this,O)),this}async strlen(e){return this.strLen(e)}async strLen(e){return await s(this,E).Strlen({key:e,transactionId:s(this,R)},s(this,O)),this}async mget(e){return this.mGet(e)}async mGet(e){return await s(this,E).MGet({keys:e,transactionId:s(this,R)},s(this,O)),this}async mset(e){return this.mSet(e)}async mSet(e){let t=Object.entries(e).map(([i,n])=>({key:i,value:n}));return await s(this,E).MSet({kv:t,transactionId:s(this,R)},s(this,O)),this}async incrBy(e,t){return await s(this,E).IncrBy({key:e,value:t,transactionId:s(this,R)},s(this,O)),this}async expire(e,t){return await s(this,E).Expire({key:e,seconds:t,transactionId:s(this,R)},s(this,O)),this}async expireTime(e){return await s(this,E).ExpireTime({key:e,transactionId:s(this,R)},s(this,O)),this}async zAdd(e,...t){return await s(this,E).ZAdd({key:e,members:t,transactionId:s(this,R)},s(this,O)),this}async zScore(e,t){return await s(this,E).ZScore({key:{key:e,transactionId:s(this,R)},member:t},s(this,O)),this}async zRank(e,t){return await s(this,E).ZRank({key:{key:e,transactionId:s(this,R)},member:t},s(this,O)),this}async zIncrBy(e,t,i){return await s(this,E).ZIncrBy({key:e,member:t,value:i,transactionId:s(this,R)},s(this,O)),this}async zScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,transactionId:s(this,R)};return await s(this,E).ZScan(o,s(this,O)),this}async zCard(e){return await s(this,E).ZCard({key:e,transactionId:s(this,R)},s(this,O)),this}async zRange(e,t,i,n){let o={rev:!1,byLex:!1,byScore:!1,offset:0,count:1e3};return n?.reverse&&(o.rev=n.reverse),n?.by==="lex"?o.byLex=!0:n?.by==="score"&&(o.byScore=!0),await s(this,E).ZRange({key:{key:e,transactionId:s(this,R)},start:t+"",stop:i+"",...o},s(this,O)),this}async zRem(e,t){return await s(this,E).ZRem({key:{key:e,transactionId:s(this,R)},members:t},s(this,O)),this}async zRemRangeByLex(e,t,i){return await s(this,E).ZRemRangeByLex({key:{key:e,transactionId:s(this,R)},min:t,max:i},s(this,O)),this}async zRemRangeByRank(e,t,i){return await s(this,E).ZRemRangeByRank({key:{key:e,transactionId:s(this,R)},start:t,stop:i},s(this,O)),this}async zRemRangeByScore(e,t,i){return await s(this,E).ZRemRangeByScore({key:{key:e,transactionId:s(this,R)},min:t,max:i},s(this,O)),this}async hgetall(e){return this.hGetAll(e)}async hGetAll(e){return await s(this,E).HGetAll({key:e,transactionId:s(this,R)},s(this,O)),this}async hget(e,t){return this.hGet(e,t)}async hGet(e,t){return await s(this,E).HGet({key:e,field:t,transactionId:s(this,R)},s(this,O)),this}async hset(e,t){return this.hSet(e,t)}async hSet(e,t){let i=Object.entries(t).map(([n,o])=>({field:n,value:o}));return await s(this,E).HSet({key:e,fv:i,transactionId:s(this,R)},s(this,O)),this}async hincrby(e,t,i){return this.hIncrBy(e,t,i)}async hIncrBy(e,t,i){return await s(this,E).HIncrBy({key:e,field:t,value:i,transactionId:s(this,R)},s(this,O)),this}async hdel(e,t){return this.hDel(e,t)}async hDel(e,t){return await s(this,E).HDel({key:e,fields:t,transactionId:s(this,R)},s(this,O)),this}async hscan(e,t,i,n){return this.hScan(e,t,i,n)}async hScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,transactionId:s(this,R)};return await s(this,E).HScan(o,s(this,O)),this}async hkeys(e){return this.hKeys(e)}async hKeys(e){return await s(this,E).HKeys({key:e,transactionId:s(this,R)},s(this,O)),this}async hlen(e){return this.hLen(e)}async hLen(e){return await s(this,E).HLen({key:e,transactionId:s(this,R)},s(this,O)),this}};E=new WeakMap,R=new WeakMap,O=new WeakMap;var U,fi,fc=class fc{constructor(e,t=void 0,i=gc.INSTALLATION){l(this,U);l(this,fi);d(this,U,e),d(this,fi,t),this.scope=i,this.global=i===gc.INSTALLATION?new fc(s(this,U),s(this,fi),gc.GLOBAL):this}get storage(){return s(this,fi)||u.redisPlugin}async watch(...e){let t=await this.storage.Watch({keys:e},s(this,U));return new hc(this.storage,t,s(this,U))}async get(e){try{let t=await this.storage.Get({key:e,scope:this.scope},{...s(this,U),"throw-redis-nil":{values:["true"]}});return t!==null?t.value??void 0:t}catch(t){if(nd(t))return;throw t}}async set(e,t,i){let n;return i?.expiration&&(n=Math.floor((i.expiration.getTime()-Date.now())/1e3),n<1&&(n=1)),(await this.storage.Set({key:e,value:t,nx:i?.nx===!0&&!i.xx,xx:i?.xx===!0&&!i.nx,expiration:n||0,scope:this.scope},s(this,U))).value}async del(...e){await this.storage.Del({keys:e,scope:this.scope},s(this,U))}async incrBy(e,t){return(await this.storage.IncrBy({key:e,value:t,scope:this.scope},s(this,U))).value}async getRange(e,t,i){let n=await this.storage.GetRange({key:e,start:t,end:i,scope:this.scope},s(this,U));return n!==null?n.value:n}async setRange(e,t,i){return(await this.storage.SetRange({key:e,offset:t,value:i,scope:this.scope},s(this,U))).value}async strlen(e){return this.strLen(e)}async strLen(e){return(await this.storage.Strlen({key:e,scope:this.scope},s(this,U))).value}async expire(e,t){await this.storage.Expire({key:e,seconds:t,scope:this.scope},s(this,U))}async expireTime(e){return(await this.storage.ExpireTime({key:e,scope:this.scope},s(this,U))).value}async zAdd(e,...t){return(await this.storage.ZAdd({key:e,members:t,scope:this.scope},s(this,U))).value}async zRange(e,t,i,n){let o={rev:!1,byLex:!1,byScore:!1,offset:0,count:1e3};return n?.reverse&&(o.rev=n.reverse),n?.by==="lex"?o.byLex=!0:n?.by==="score"?o.byScore=!0:(o.offset=0,o.count=0),(await this.storage.ZRange({key:{key:e},start:t+"",stop:i+"",...o,scope:this.scope},s(this,U))).members}async zRem(e,t){return(await this.storage.ZRem({key:{key:e},members:t,scope:this.scope},s(this,U))).value}async zRemRangeByLex(e,t,i){return(await this.storage.ZRemRangeByLex({key:{key:e},min:t,max:i,scope:this.scope},s(this,U))).value}async zRemRangeByRank(e,t,i){return(await this.storage.ZRemRangeByRank({key:{key:e},start:t,stop:i,scope:this.scope},s(this,U))).value}async zRemRangeByScore(e,t,i){return(await this.storage.ZRemRangeByScore({key:{key:e},min:t,max:i,scope:this.scope},s(this,U))).value}async zScore(e,t){try{let i=await this.storage.ZScore({key:{key:e},member:t,scope:this.scope},{...s(this,U),"throw-redis-nil":{values:["true"]}});return i!==null?i.value:i}catch(i){if(nd(i))return;throw i}}async zRank(e,t){try{let i=await this.storage.ZRank({key:{key:e},member:t,scope:this.scope},{...s(this,U),"throw-redis-nil":{values:["true"]}});return i!==null?i.value:i}catch(i){if(nd(i))return;throw i}}async zIncrBy(e,t,i){let n=await this.storage.ZIncrBy({key:e,member:t,value:i,scope:this.scope},s(this,U));return n!==null?n.value:n}async mget(e){return this.mGet(e)}async mGet(e){let t=await this.storage.MGet({keys:e,scope:this.scope},s(this,U));return t!==null?t.values.map(i=>i||null):t}async mset(e){return this.mSet(e)}async mSet(e){let t=Object.entries(e).map(([i,n])=>({key:i,value:n}));await this.storage.MSet({kv:t,scope:this.scope},s(this,U))}async zCard(e){let t=await this.storage.ZCard({key:e,scope:this.scope},s(this,U));return t!==null?t.value:t}async zScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,scope:this.scope};return await this.storage.ZScan(o,s(this,U))}async type(e){let t=await this.storage.Type({key:e,scope:this.scope},s(this,U));return t!==null?t.value:t}async hget(e,t){return this.hGet(e,t)}async hGet(e,t){try{let i=await this.storage.HGet({key:e,field:t,scope:this.scope},{...s(this,U),"throw-redis-nil":{values:["true"]}});return i!==null?i.value??void 0:i}catch(i){if(nd(i))return;throw i}}async hset(e,t){return this.hSet(e,t)}async hSet(e,t){let i=Object.entries(t).map(([o,a])=>({field:o,value:a}));return(await this.storage.HSet({key:e,fv:i,scope:this.scope},s(this,U))).value}async hgetall(e){return this.hGetAll(e)}async hGetAll(e){let t=await this.storage.HGetAll({key:e,scope:this.scope},s(this,U));return t!==null?t.fieldValues:t}async hdel(e,t){return this.hDel(e,t)}async hDel(e,t){return(await this.storage.HDel({key:e,fields:t,scope:this.scope},s(this,U))).value}async hscan(e,t,i,n){return this.hScan(e,t,i,n)}async hScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,scope:this.scope};return await this.storage.HScan(o,s(this,U))}async hkeys(e){return this.hKeys(e)}async hKeys(e){let t=await this.storage.HKeys({key:e,scope:this.scope},s(this,U));return t!==null?t.keys:t}async hincrby(e,t,i){return this.hIncrBy(e,t,i)}async hIncrBy(e,t,i){return(await this.storage.HIncrBy({key:e,field:t,value:i,scope:this.scope},s(this,U))).value}async hlen(e){return this.hLen(e)}async hLen(e){return(await this.storage.HLen({key:e,scope:this.scope})).value}};U=new WeakMap,fi=new WeakMap;var vi=fc;var fr,yi=class{constructor(e){l(this,fr);d(this,fr,e)}async runJob(e){return(await u.schedulerPlugin.Schedule({action:{type:e.name,data:e.data},cron:"cron"in e?e.cron:void 0,when:"runAt"in e?e.runAt:void 0},s(this,fr))).id}async cancelJob(e){await u.schedulerPlugin.Cancel({id:e},s(this,fr))}async listJobs(){return(await u.schedulerPlugin.List({after:new Date(0),before:new Date(Date.now()+31536e7)},s(this,fr))).actions.map(t=>(v(t.request?.action,"Scheduled job is malformed"),"when"in t.request&&t.request.when!=null?{id:t.id,name:t.request.action.type,runAt:t.request.when,data:t.request.action.data}:{id:t.id,name:t.request.action.type,cron:t.request.cron??"",data:t.request.action}))}};fr=new WeakMap;var ls,bi=class{constructor(e){l(this,ls);d(this,ls,e)}async get(e){return(await this.getAll())[e]}async getAll(){let t=await u.settingsPlugin.GetSettings({},s(this,ls));if(!t.installationSettings)throw new Error("Could not get installation settings");if(!t.appSettings)throw new Error("Could not get app settings");return{...dy(t.installationSettings.settings,u.installationSettings),...dy(t.appSettings.settings,u.appSettings)}}};ls=new WeakMap;function dy(r,e){let t=Object.keys(r).reduce((i,n)=>(i[n]=lc(r[n]),i),{});return e&&ly(t,e),t}function ly(r,e){for(let t of e)t.type==="group"?ly(r,t.fields):!(t.name in r)&&"defaultValue"in t&&(r[t.name]=t.defaultValue)}import{EffectType as sd,ToastAppearance as uy}from"@devvit/protos";var Ot,ki,us,ad,od=class{constructor(e){l(this,Ot,[]);l(this,ki);l(this,us);l(this,ad,(e,t)=>{let i=t!==void 0?e:"",n=t!==void 0?t:e;s(this,Ot).push({type:sd.EFFECT_WEB_VIEW,webView:{postMessage:{webViewId:i,app:{message:n}}}})});d(this,ki,e),d(this,us,{postMessage:s(this,ad)})}get webView(){return s(this,us)}showForm(e,t){let i=u.formDefinitions.get(e);if(!i&&s(this,ki)){let a=s(this,ki).forms.get(e);a&&(i={form:a,onSubmit:()=>{}})}if(!i)throw new Error("Form does not exist. Make sure you have added it using Devvit.createForm at the root of your app.");let n=i.form instanceof Function?i.form(t??{}):i.form,o={fields:[],id:e,title:n.title,acceptLabel:n.acceptLabel,cancelLabel:n.cancelLabel,shortDescription:n.description};gr(n.fields),o.fields=mt(n.fields),s(this,Ot).push({type:sd.EFFECT_SHOW_FORM,showForm:{form:o}})}showToast(e){let t;e instanceof Object?t={text:e.text,appearance:e.appearance==="success"?uy.SUCCESS:uy.NEUTRAL}:t={text:e},s(this,Ot).push({type:sd.EFFECT_SHOW_TOAST,showToast:{toast:t}})}navigateTo(e){let t;typeof e=="string"?t=new URL(e).toString():t=new URL(e.permalink,"https://www.reddit.com").toString(),s(this,Ot).push({type:sd.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}get __effects(){return s(this,Ot)}};Ot=new WeakMap,ki=new WeakMap,us=new WeakMap,ad=new WeakMap;function Le({metadata:r,ui:e,hooks:t,reconciler:i}){let n=new pi(r),o=new ci(r),a=new vi(r),c=Zv(a,i?i.state:{}),p=new hi(r),g=new yi(r),f=new bi(r),m=e?new od(i):void 0,y=new mi(r),b=new li,P=new gi(r),x=t&&i?_v(i):void 0,I=t&&i?Nv(i):void 0,B=t&&i?Dv(i):void 0,Ce=t&&i?Lv(i):void 0;return{modLog:n,kvStore:o,redis:a,reddit:p,scheduler:g,settings:f,media:y,assets:b,realtime:P,get useForm(){return B??(()=>{throw new Error("useForm() is unavailable")})},get cache(){return c??(()=>{throw new Error("cache() is unavailable")})},get useState(){return x??(()=>{throw new Error("useState() is unavailable")})},get useInterval(){return I??(()=>{throw new Error("useInterval() is unavailable")})},get useChannel(){return Ce??(()=>{throw new Error("useChannel() is unavailable")})},get ui(){if(!m)throw new Error("ui client is not available");return m}}}var cy={name:"@devvit/public-api",version:"0.11.5-dev",license:"BSD-3-Clause",repository:{type:"git",url:"https://developers.reddit.com/"},type:"module",exports:{".":"./dist/index.js","./package.json":"./package.json","./*":"./dist/*"},main:"./dist/index.js",files:["dist/**"],scripts:{build:"yarn build:icon-types && yarn build:semantic-colors && tsc && cp -af devvit.tsconfig.json dist/ && yarn build:types && yarn build:min && yarn build:unmin","build:icon-types":"make-icons src/types/icons.ts","build:min":"esbuild --bundle --sourcemap=linked --target=es2020 --format=esm --metafile=dist/meta.min.json --outfile=dist/public-api.min.js --external:@devvit/protos --minify src/index.ts","build:semantic-colors":"node scripts/make-semantic-colors.js","build:types":"api-extractor run && sed -ne '/declare global {/,$ p' src/devvit/Devvit.ts >> dist/public-api.d.ts","build:unmin":"esbuild --bundle --sourcemap=inline --target=es2020 --format=iife --metafile=dist/meta.json --outfile=dist/public-api.iife.js --global-name=devvitPublicAPI src/index.ts",clean:"rm -rf .turbo api-extractor coverage dist src/devvit/internals/semanticColors.ts src/types/icons.ts || :",clobber:"yarn clean && rm -rf node_modules",dev:"tsc -w","dev:build":"chokidar ./src --command 'yarn build' --ignore './src/types/icons.ts' --ignore './src/devvit/internals/semanticColors.ts'",lint:"redlint .","lint:fix":"yarn lint --fix",prepublishOnly:"publish-package-json",test:"yarn test:unit && yarn test:types && yarn test:size","test:size":"filesize","test:types":"tsc --noEmit","test:unit":"vitest run","test:unit-with-coverage":"vitest run --coverage"},types:"./dist/index.d.ts",dependencies:{"@devvit/protos":"0.11.5-dev","@devvit/shared-types":"0.11.5-dev","base64-js":"1.5.1","clone-deep":"4.0.1","core-js":"3.27.2","lodash.isequal":"4.5.0"},devDependencies:{"@ampproject/filesize":"4.3.0","@devvit/repo-tools":"0.11.5-dev","@devvit/tsconfig":"0.11.5-dev","@microsoft/api-extractor":"7.41.0","@reddit/faceplate-ui":"18.0.1","@types/clone-deep":"4.0.1","@types/core-js":"2.5.6","@types/lodash.isequal":"4.5.6","@vitest/coverage-c8":"0.32.0","chokidar-cli":"3.0.0",esbuild:"0.23.0",eslint:"9.11.1",typescript:"5.3.2",vitest:"1.6.0"},publishConfig:{directory:"dist"},filesize:{"dist/public-api.min.js":{gzip:"80 KB",none:"260 KB"}},source:"./src/index.ts"};function ce(r,e,t){let i=r[L.Subreddit]?.values[0];v(i,"subreddit is missing from Context");let n=r[L.SubredditName]?.values[0],o=r[L.AppUser]?.values[0],a=r[L.App]?.values[0],c=r[L.Version]?.values[0],p=r[L.User]?.values[0],g=fT(r);return{get appAccountId(){return v(o,"appAccountId is missing from Context"),o},subredditId:i,subredditName:n,userId:p,postId:e,commentId:t,appName:a,appVersion:c,debug:g,toJSON(){return{appAccountId:o,appName:a,appVersion:c,subredditId:i,subredditName:n,userId:p,postId:e,commentId:t,debug:g}}}}function fT(r){let e={blocks:void 0,emitSnapshots:void 0,emitState:void 0,realtime:void 0,runtime:void 0,surface:void 0,useAsync:void 0,payments:void 0,bootstrap:void 0,webView:void 0},t={};for(let n in e)t[n.toLowerCase()]=n;let i={};for(let n of(r[L.Debug]?.values??[]).join().split(",")){let[o,a]=n.split("=");o&&(o=o.trim(),a=a?.trim(),o.toLowerCase()in t&&(o=t[o.toLowerCase()]),i[o]??(i[o]=a||"true"))}return r[L.Debug]&&console.info(`[api] @devvit/public-api v${cy.version} ${Object.entries(i).map(([n,o])=>`${n}=${o}`).join(" ")}`),{...i,metadata:r}}function my(r){return r.flatMap(e=>e.type==="group"?my(e.fields):e)}async function dd(r,e,t){if(!e)throw new Error("Settings were not defined.");let i={success:!0,errors:{}},n=Tt(r.fieldValues),o=my(e);return await Promise.all(o.map(async a=>{let c=a.name;if(c&&a.onValidate){let p=n[c],g=a.onValidate,f=Object.assign(Le({metadata:t}),ce(t)),m=await g({value:p,isEditing:r.editing},f);m&&(i.success=!1,i.errors[c]=m)}})),vT.fromJSON(i)}async function kT(){if(!u.appSettings)throw new Error("App settings were not defined.");return bT.fromJSON({fields:{fields:mt(u.appSettings)}})}async function ST(r,e){return dd(r,u.appSettings,e)}function py(r){r.provides(yT),M("GetAppSettingsFields",kT),M("ValidateAppForm",ST)}import{CustomPostDefinition as TT,RenderPostResponse as AT}from"@devvit/protos";import{BlockRenderEventType as Ec,EffectType as Ty}from"@devvit/protos";function Si(r){return r.__effects}function gy(){let r=new Set;return e=>{let t=e,i=1;for(;r.has(t);)t=`${e}.${i++}`;return r.add(t),t}}import{BlockActionType as Ac,BlockAvatarBackground as wy,BlockAvatarFacing as Iy,BlockAvatarSize as Bt,BlockBorderWidth as md,BlockButtonAppearance as Mt,BlockButtonSize as Sc,BlockGap as pd,BlockHorizontalAlignment as Pc,BlockIconSize as gd,BlockImageResizeMode as cs,BlockPadding as ms,BlockRadius as ps,BlockSpacerShape as Cc,BlockSpacerSize as hd,BlockStackDirection as wc,BlockTextOutline as Ic,BlockTextOverflow as xc,BlockTextSize as Ci,BlockTextStyle as Fc,BlockTextWeight as xy,BlockType as tt,BlockVerticalAlignment as Tc}from"@devvit/protos";var vc={"alienblue-100":"#DCE2FB","alienblue-200":"#B8C5FC","alienblue-25":"#F7F8FD","alienblue-300":"#90A9FD","alienblue-400":"#648EFC","alienblue-50":"#EEF0FB","alienblue-500":"#1870F4","alienblue-600":"#115BCA","alienblue-700":"#0A449B","alienblue-75":"#E6E9FB","alienblue-800":"#0A2F6C","alienblue-900":"#0A1A3F","alienblue-950":"#07102B","berrypurple-100":"#F3DAFB","berrypurple-200":"#EAB3FD","berrypurple-25":"#FBF6FD","berrypurple-300":"#DE8BFF","berrypurple-400":"#CF5FFF","berrypurple-50":"#F8EDFC","berrypurple-500":"#BC0EFF","berrypurple-600":"#9B00D4","berrypurple-700":"#7600A3","berrypurple-75":"#F6E4FB","berrypurple-800":"#520472","berrypurple-900":"#300643","berrypurple-950":"#20042A",black:"#000000","black-opacity-0":"#00000000","black-opacity-10":"#00000019","black-opacity-15":"#00000026","black-opacity-20":"#00000033","black-opacity-25":"#0000003F","black-opacity-33":"#00000054","black-opacity-5":"#0000000C","black-opacity-50":"#0000007F","black-opacity-60":"#00000099","black-opacity-67":"#000000AA","black-opacity-80":"#000000CC","black-opacity-90":"#000000E5","brown-100":"#F1DFCF","brown-200":"#E9BE95","brown-25":"#FBF7F4","brown-300":"#DC9D5D","brown-400":"#BA854E","brown-50":"#F7EFE9","brown-500":"#9A6D3F","brown-600":"#7B5631","brown-700":"#5D4023","brown-75":"#F4E7DC","brown-800":"#3F2C19","brown-900":"#221A11","brown-950":"#15100A","coolgray-100":"#DBE4E9","coolgray-150":"#C9D7DE","coolgray-200":"#B7CAD4","coolgray-25":"#F6F8F9","coolgray-250":"#A4BDCA","coolgray-300":"#97AFBC","coolgray-350":"#8BA2AD","coolgray-400":"#7F949F","coolgray-450":"#748791","coolgray-50":"#EEF1F3","coolgray-500":"#667780","coolgray-525":"#576F76","coolgray-550":"#5C6C74","coolgray-600":"#536168","coolgray-650":"#48545B","coolgray-700":"#3D494E","coolgray-75":"#E5EBEE","coolgray-750":"#333D42","coolgray-800":"#2A3236","coolgray-850":"#21272A","coolgray-900":"#181C1F","coolgray-950":"#0E1113","global-black":{light:"#000000",dark:"#000000"},"global-brand-orangered":{light:"#FF4500",dark:"#FF4500"},"global-white":{light:"#FFFFFF",dark:"#FFFFFF"},"kiwigreen-100":"#A8F5A0","kiwigreen-200":"#58E15B","kiwigreen-25":"#EBFDE7","kiwigreen-300":"#00C61C","kiwigreen-400":"#01A816","kiwigreen-50":"#DDF8D7","kiwigreen-500":"#008A10","kiwigreen-600":"#016E0B","kiwigreen-700":"#005306","kiwigreen-75":"#CAF5C2","kiwigreen-800":"#033902","kiwigreen-900":"#0D2005","kiwigreen-950":"#081404","lightblue-100":"#CAE7FB","lightblue-200":"#87D0FD","lightblue-25":"#F3F9FD","lightblue-300":"#02B9FB","lightblue-400":"#029DD5","lightblue-50":"#E6F3FC","lightblue-500":"#007FAE","lightblue-600":"#01668D","lightblue-700":"#014D6B","lightblue-75":"#D9EDFB","lightblue-800":"#03354B","lightblue-900":"#051E2B","lightblue-950":"#04131A","lime-100":"#B7F28E","lime-200":"#90DA58","lime-25":"#EEFDDC","lime-300":"#6DBF01","lime-400":"#5BA200","lime-50":"#E0F8C8","lime-500":"#4A8500","lime-600":"#3A6A00","lime-700":"#2A5000","lime-75":"#CEF5AD","lime-800":"#1E3702","lime-900":"#151E05","lime-950":"#0D1304","mintgreen-100":"#9BF5D9","mintgreen-200":"#00E2B7","mintgreen-25":"#E7FDF5","mintgreen-300":"#00C29D","mintgreen-400":"#01A484","mintgreen-50":"#D7F8EC","mintgreen-500":"#01876D","mintgreen-600":"#006C56","mintgreen-700":"#015140","mintgreen-75":"#C0F5E3","mintgreen-800":"#00382B","mintgreen-900":"#032019","mintgreen-950":"#03140F","orangered-100":"#FCDBCF","orangered-200":"#FDB498","orangered-25":"#FDF6F4","orangered-300":"#FF895D","orangered-400":"#FF4500","orangered-50":"#FCEEE8","orangered-500":"#D93900","orangered-600":"#AE2C00","orangered-700":"#842100","orangered-75":"#FBE5DC","orangered-800":"#591B02","orangered-900":"#2F1405","orangered-950":"#1C0D04","periwinkle-100":"#E6DFFB","periwinkle-200":"#CDBEFD","periwinkle-25":"#F9F7FD","periwinkle-300":"#B29FFF","periwinkle-400":"#9580FF","periwinkle-50":"#F2EFFC","periwinkle-500":"#6A5CFF","periwinkle-600":"#523DFF","periwinkle-700":"#4001EA","periwinkle-75":"#ECE7FB","periwinkle-800":"#250AA6","periwinkle-900":"#160E5B","periwinkle-950":"#0C083F","poopbrown-100":"#FEEEDD","poopbrown-200":"#F6DDC3","poopbrown-300":"#EECCAA","poopbrown-400":"#CAA075","poopbrown-50":"#FEF7EE","poopbrown-500":"#9A6D3F","poopbrown-600":"#6E4924","poopbrown-700":"#54371A","poopbrown-800":"#3B2510","poopbrown-900":"#29190A","poopbrown-950":"#110B04","puregray-100":"#F2F2F2","puregray-150":"#EBEBEB","puregray-200":"#E4E4E4","puregray-250":"#DDDDDD","puregray-300":"#D6D6D6","puregray-350":"#C3C3C3","puregray-400":"#ACACAC","puregray-450":"#919191","puregray-50":"#F8F8F8","puregray-500":"#767676","puregray-550":"#5C5C5C","puregray-600":"#434343","puregray-650":"#393939","puregray-700":"#303030","puregray-750":"#272727","puregray-800":"#1E1E1E","puregray-850":"#181818","puregray-900":"#131313","puregray-950":"#080808","red-100":"#FBDBD4","red-200":"#FDB3A4","red-25":"#FDF6F5","red-300":"#FF8773","red-400":"#FF4F40","red-50":"#FCEEEA","red-500":"#EB001F","red-600":"#BC0117","red-700":"#90000F","red-75":"#FBE4DF","red-800":"#650405","red-900":"#340F05","red-950":"#1F0B04","sakurapink-100":"#FBD9EB","sakurapink-200":"#FDAEDA","sakurapink-25":"#FDF6F9","sakurapink-300":"#FF7ECA","sakurapink-400":"#FF38BB","sakurapink-50":"#FCEDF4","sakurapink-500":"#DE019F","sakurapink-600":"#B2007F","sakurapink-700":"#880060","sakurapink-75":"#FBE3EF","sakurapink-800":"#5F0443","sakurapink-900":"#380626","sakurapink-950":"#250419",transparent:"transparent",white:"#ffffff","white-opacity-0":"#FFFFFF00","white-opacity-10":"#FFFFFF19","white-opacity-15":"#FFFFFF26","white-opacity-20":"#FFFFFF33","white-opacity-25":"#FFFFFF3F","white-opacity-5":"#FFFFFF0C","white-opacity-50":"#FFFFFF7F","yellow-100":"#FFE284","yellow-200":"#FFBF0B","yellow-25":"#FFF9E0","yellow-300":"#D8A100","yellow-400":"#B78800","yellow-50":"#FFF3C0","yellow-500":"#977000","yellow-600":"#785800","yellow-700":"#5B4200","yellow-75":"#FFEAA2","yellow-800":"#3F2D00","yellow-900":"#231A03","yellow-950":"#161003","yelloworange-100":"#FCDCC8","yelloworange-200":"#FDB586","yelloworange-25":"#FDF7F3","yelloworange-300":"#FF8A35","yelloworange-400":"#E46C00","yelloworange-50":"#FCEEE6","yelloworange-500":"#BD5800","yelloworange-600":"#974500","yelloworange-700":"#733300","yelloworange-75":"#FBE5D7","yelloworange-800":"#4E2402","yelloworange-900":"#2A1705","yelloworange-950":"#1A0E04","action-downvote":{light:"#6A5CFF",dark:"#6A5CFF"},"action-upvote":{light:"#D93900",dark:"#D93900"},"ai-background-weaker":{light:"#E7FDF5",dark:"#00382B"},"ai-plain":{light:"#006C56",dark:"#01A484"},"ai-plain-hover":{light:"#015140",dark:"#00C29D"},"alert-caution":{light:"#977000",dark:"#977000"},"avatar-gradient":{light:"",dark:""},"brand-background":{light:"#D93900",dark:"#D93900"},"brand-background-hover":{light:"#AE2C00",dark:"#AE2C00"},"brand-gradient-active":{light:"",dark:""},"brand-gradient-active-highlight":{light:"",dark:""},"brand-gradient-default":{light:"",dark:""},"brand-gradient-default-highlight":{light:"",dark:""},"brand-gradient-hover":{light:"",dark:""},"brand-gradient-hover-highlight":{light:"",dark:""},"brand-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"category-live":{light:"#D93900",dark:"#D93900"},"category-nsfw":{light:"#DE019F",dark:"#DE019F"},"category-spoiler":{light:"#131313",dark:"#F2F2F2"},"caution-background":{light:"#FFBF0B",dark:"#D8A100"},"caution-background-hover":{light:"#D8A100",dark:"#FFBF0B"},"caution-onBackground":{light:"#000000",dark:"#000000"},"caution-plain":{light:"#785800",dark:"#FFBF0B"},"caution-plain-hover":{light:"#5B4200",dark:"#FFE284"},"danger-background":{light:"#EB001F",dark:"#BC0117"},"danger-background-disabled":{light:"#FDB3A4",dark:"#340F05"},"danger-background-hover":{light:"#BC0117",dark:"#EB001F"},"danger-background-weaker":{light:"#FBDBD4",dark:"#650405"},"danger-content":{light:"#BC0117",dark:"#FF4F40"},"danger-content-default":{light:"#ffffff",dark:"#ffffff"},"danger-content-hover":{light:"#90000F",dark:"#FF8773"},"danger-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"danger-plain":{light:"#BC0117",dark:"#FF8773"},"danger-plain-hover":{light:"#90000F",dark:"#FDB3A4"},"downvote-background":{light:"#6A5CFF",dark:"#6A5CFF"},"downvote-background-disabled":{light:"#6a5cff4d",dark:"#6a5cff4d"},"downvote-background-hover":{light:"#523DFF",dark:"#523DFF"},"downvote-content":{light:"#523DFF",dark:"#9580FF"},"downvote-content-weak":{light:"#6A5CFF",dark:"#6A5CFF"},"downvote-disabled":{light:"#523DFF4c",dark:"#9580FF4c"},"downvote-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"downvote-onStrongScrim":{light:"#B29FFF",dark:"#B29FFF"},"downvote-onStrongScrim-disabled":{light:"#b29fff4d",dark:"#b29fff4d"},"downvote-onStrongScrim-weaker":{light:"#9580FF",dark:"#9580FF"},"downvote-plain":{light:"#523DFF",dark:"#9580FF"},"downvote-plain-disabled":{light:"#523dff4d",dark:"#9580ff4d"},"downvote-plain-weaker":{light:"#6A5CFF",dark:"#6A5CFF"},"elevation-large1":{light:"#0000003F",dark:"#0000007F"},"elevation-large2":{light:"#00000026",dark:"#00000033"},"elevation-medium1":{light:"#0000003F",dark:"#0000007F"},"elevation-medium2":{light:"#00000019",dark:"#00000033"},"elevation-small":{light:"#00000026",dark:"#00000054"},"elevation-xsmall":{light:"#0000003F",dark:"#000000AA"},favorite:{light:"#977000",dark:"#B78800"},"global-admin":{light:"#D93900",dark:"#D93900"},"global-alienblue":{light:"#1870F4",dark:"#1870F4"},"global-darkblue":{light:"#2A3236",dark:"#2A3236"},"global-focus":{light:"#029DD5",dark:"#007FAE"},"global-gold":{light:"#B78800",dark:"#D8A100"},"global-moderator":{light:"#008A10",dark:"#008A10"},"global-nsfw":{light:"#DE019F",dark:"#DE019F"},"global-offline":{light:"#667780",dark:"#667780"},"global-online":{light:"#00C61C",dark:"#00C61C"},"global-orangered":{light:"#FF4500",dark:"#FF4500"},"global-stars":{light:"#977000",dark:"#D8A100"},"gradient-media":{light:"",dark:""},"gradient-media-strong":{light:"",dark:""},"identity-admin":{light:"#D93900",dark:"#D93900"},"identity-coins":{light:"#B78800",dark:"#B78800"},"identity-moderator":{light:"#008A10",dark:"#008A10"},"identity-self":{light:"#01876D",dark:"#01876D"},"interactive-background-disabled":{light:"#0000000C",dark:"#FFFFFF0C"},"interactive-content-disabled":{light:"#0000003F",dark:"#FFFFFF3F"},"interactive-focused":{light:"#007FAE",dark:"#007FAE"},"interactive-pressed":{light:"#00000026",dark:"#FFFFFF26"},"inverted-interactive-background-disabled":{light:"#FFFFFF0C",dark:"#0000000C"},"inverted-interactive-content-disabled":{light:"#FFFFFF3F",dark:"#0000003F"},"inverted-interactive-pressed":{light:"#FFFFFF26",dark:"#00000026"},"inverted-neutral-background":{light:"#0E1113",dark:"#FFFFFF"},"inverted-neutral-background-hover":{light:"#181C1F",dark:"#F6F8F9"},"inverted-neutral-border":{light:"#FFFFFF33",dark:"#00000033"},"inverted-neutral-content":{light:"#B7CAD4",dark:"#333D42"},"inverted-neutral-content-strong":{light:"#EEF1F3",dark:"#181C1F"},"inverted-secondary-background":{light:"#2A3236",dark:"#E5EBEE"},"inverted-secondary-background-hover":{light:"#333D42",dark:"#DBE4E9"},"inverted-secondary-background-selected":{light:"#3D494E",dark:"#C9D7DE"},"inverted-secondary-onBackground":{light:"#FFFFFF",dark:"#000000"},"inverted-secondary-plain":{light:"#DBE4E9",dark:"#181C1F"},"inverted-secondary-plain-hover":{light:"#FFFFFF",dark:"#000000"},"media-background":{light:"#00000099",dark:"#00000099"},"media-background-hover":{light:"#000000cc",dark:"#000000cc"},"media-background-selected":{light:"#000000cc",dark:"#000000cc"},"media-border-selected":{light:"#FFFFFF",dark:"#FFFFFF"},"media-border-weak":{light:"#FFFFFF19",dark:"#FFFFFF19"},"media-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"media-onBackground-disabled":{light:"#FFFFFF3F",dark:"#FFFFFF3F"},"media-onBackground-weak":{light:"#E5EBEE",dark:"#E5EBEE"},"media-onbackground":{light:"#ffffff",dark:"#ffffff"},"media-onbackground-disabled":{light:"#ffffff3f",dark:"#ffffff3f"},"media-onbackground-weak":{light:"#B7CAD4",dark:"#B7CAD4"},"neutral-background":{light:"#FFFFFF",dark:"#0E1113"},"neutral-background-container":{light:"#F6F8F9",dark:"#181C1F"},"neutral-background-container-hover":{light:"#EEF1F3",dark:"#21272A"},"neutral-background-container-strong":{light:"#EEF1F3",dark:"#21272A"},"neutral-background-container-strong-hover":{light:"#E5EBEE",dark:"#2A3236"},"neutral-background-gilded":{light:"#FFF9E0",dark:"#181C1F"},"neutral-background-gilded-hover":{light:"#FFF3C0",dark:"#21272A"},"neutral-background-hover":{light:"#F6F8F9",dark:"#181C1F"},"neutral-background-medium":{light:"#F8F8F8",dark:"#131313"},"neutral-background-pinned":{light:"#FFFFFF",dark:"#0E1113"},"neutral-background-selected":{light:"#E5EBEE",dark:"#2A3236"},"neutral-background-strong":{light:"#FFFFFF",dark:"#181C1F"},"neutral-background-strong-hover":{light:"#F6F8F9",dark:"#21272A"},"neutral-background-weak":{light:"#F6F8F9",dark:"#000000"},"neutral-background-weak-hover":{light:"#EEF1F3",dark:"#0E1113"},"neutral-border":{light:"#00000033",dark:"#FFFFFF33"},"neutral-border-medium":{light:"#0000007F",dark:"#FFFFFF7F"},"neutral-border-strong":{light:"#181C1F",dark:"#F6F8F9"},"neutral-border-weak":{light:"#00000019",dark:"#FFFFFF19"},"neutral-content":{light:"#333D42",dark:"#B7CAD4"},"neutral-content-disabled":{light:"#D6D6D6",dark:"#303030"},"neutral-content-strong":{light:"#181C1F",dark:"#EEF1F3"},"neutral-content-weak":{light:"#5C6C74",dark:"#8BA2AD"},offline:{light:"#767676",dark:"#767676"},online:{light:"#01A816",dark:"#01A816"},"opacity-08":{light:"#13131314",dark:"#13131314"},"opacity-50":{light:"#0000007f",dark:"#F2F2F27f"},"opacity-highlight":{light:"",dark:""},pizzaRed:{light:"#ef5350",dark:"#c62828"},primary:{light:"#115BCA",dark:"#648EFC"},"primary-background":{light:"#0A449B",dark:"#115BCA"},"primary-background-hover":{light:"#0A2F6C",dark:"#1870F4"},"primary-background-selected":{light:"#0A1A3F",dark:"#648EFC"},"primary-border":{light:"#0A449B",dark:"#648EFC"},"primary-border-hover":{light:"#0A2F6C",dark:"#90A9FD"},"primary-hover":{light:"#0A449B",dark:"#90A9FD"},"primary-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"primary-onBackground-selected":{light:"#FFFFFF",dark:"#000000"},"primary-plain":{light:"#0A449B",dark:"#648EFC"},"primary-plain-hover":{light:"#0A2F6C",dark:"#90A9FD"},"primary-plain-visited":{light:"#7600A3",dark:"#CF5FFF"},"primary-visited":{light:"#9B00D4",dark:"#CF5FFF"},scrim:{light:"#00000099",dark:"#00000099"},"scrim-background":{light:"#00000099",dark:"#00000099"},"scrim-background-strong":{light:"#000000CC",dark:"#000000CC"},"scrim-gradient":{light:"",dark:""},"scrim-strong":{light:"#000000cc",dark:"#000000cc"},secondary:{light:"#21272A",dark:"#DBE4E9"},"secondary-background":{light:"#E5EBEE",dark:"#2A3236"},"secondary-background-hover":{light:"#DBE4E9",dark:"#333D42"},"secondary-background-selected":{light:"#C9D7DE",dark:"#3D494E"},"secondary-hover":{light:"#000000",dark:"#ffffff"},"secondary-onBackground":{light:"#000000",dark:"#FFFFFF"},"secondary-plain":{light:"#181C1F",dark:"#DBE4E9"},"secondary-plain-hover":{light:"#000000",dark:"#FFFFFF"},"secondary-plain-weak":{light:"#5C6C74",dark:"#8BA2AD"},"secondary-weak":{light:"#576F76",dark:"#748791"},"success-background":{light:"#008A10",dark:"#016E0B"},"success-background-hover":{light:"#016E0B",dark:"#008A10"},"success-content":{light:"#016E0B",dark:"#01A816"},"success-hover":{light:"#005306",dark:"#00C61C"},"success-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"success-plain":{light:"#016E0B",dark:"#00C61C"},"success-plain-hover":{light:"#005306",dark:"#58E15B"},"tone-1":{light:"#131313",dark:"#F2F2F2"},"tone-2":{light:"#434343",dark:"#ACACAC"},"tone-3":{light:"#ACACAC",dark:"#434343"},"tone-4":{light:"#E4E4E4",dark:"#303030"},"tone-5":{light:"#F2F2F2",dark:"#1E1E1E"},"tone-6":{light:"#F8F8F8",dark:"#131313"},"tone-7":{light:"#ffffff",dark:"#080808"},"transparent-background-hover":{light:"#74879119",dark:"#66778019"},"ui-canvas":{light:"#F2F2F2",dark:"#080808"},"ui-modalbackground":{light:"#FFFFFF",dark:"#181C1F"},"upvote-background":{light:"#D93900",dark:"#D93900"},"upvote-background-disabled":{light:"#d939004d",dark:"#d939004d"},"upvote-background-hover":{light:"#AE2C00",dark:"#AE2C00"},"upvote-content":{light:"#AE2C00",dark:"#FF4500"},"upvote-content-weak":{light:"#FF4500",dark:"#FF4500"},"upvote-disabled":{light:"#AE2C004c",dark:"#FF45004c"},"upvote-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"upvote-onStrongScrim":{light:"#FF895D",dark:"#FF895D"},"upvote-onStrongScrim-disabled":{light:"#ff895d4d",dark:"#ff895d4d"},"upvote-onStrongScrim-weaker":{light:"#FF4500",dark:"#FF4500"},"upvote-plain":{light:"#AE2C00",dark:"#FF895D"},"upvote-plain-disabled":{light:"#ae2c004d",dark:"#ff895d4d"},"upvote-plain-weaker":{light:"#FF4500",dark:"#FF4500"},"warning-background":{light:"#B78800",dark:"#B78800"},"warning-background-hover":{light:"#977000",dark:"#D8A100"},"warning-content":{light:"#785800",dark:"#B78800"},"warning-content-hover":{light:"#5B4200",dark:"#D8A100"},"warning-onBackground":{light:"#000000",dark:"#000000"}};var hy={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",transparent:"#FFFFFF00",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},fy=r=>!!r.match(/^(#[0-9a-fA-F]{3,8}).*/),vy=r=>r in vc,yc=r=>r in hy,yy=r=>!!r.match(/^rgba?\(.*/),by=r=>!!r.match(/^hsla?\(.*/),ky=(r,e="light")=>{if(yc(r))return ld(r);let i=vc[r];return typeof i=="string"?i:i[e]},ld=r=>hy[r]??r,Sy=r=>{let[e,t,i,n]=r.replace(/^rgba?\(|\s+|\)$/g,"").split(",");if(!e||!t||!i)return r;let a=[...[e,t,i].map(p=>parseFloat(p))];if(n){let p=parseFloat(n),g=Math.round(p*255);a.push(g)}return`#${a.map(p=>p.toString(16).padStart(2,"0")).join("")}`};import{BlockStackDirection as ud}from"@devvit/protos";var bc={stackParentLayout:{hasHeight:!0,hasWidth:!0,direction:ud.UNRECOGNIZED,alignment:void 0}};function Cy(r,e,t){if(!e)return{hasHeight:!1,hasWidth:!1};let{growDirection:i,stretchDirection:n}=PT(r?.grow,e.direction,e.alignment),o=t?.height?.value?.value||t?.height?.min?.value||Py(2,i,n,e.hasHeight),a=t?.width?.value?.value||t?.width?.min?.value||Py(1,i,n,e.hasWidth);return{hasHeight:!!o,hasWidth:!!a}}function Py(r,e,t,i){return e===r&&i||t===r&&i}function PT(r,e,t){let i=e===ud.STACK_VERTICAL||e===ud.UNRECOGNIZED,n=e===ud.STACK_HORIZONTAL,o=0;n&&r?o=1:i&&r&&(o=2);let a=t===void 0||t.horizontal===void 0,c=t===void 0||t.vertical===void 0,p=n?!!c:i?!!a:!1,g=0;return n&&p?g=2:i&&p&&(g=1),{growDirection:o,stretchDirection:g}}import{BlockSizeUnit as vr,BlockStackDirection as cd}from"@devvit/protos";function Pi(r){if(r==null)return;if(typeof r=="number")return{value:r,unit:vr.SIZE_UNIT_PERCENT};let e=r.match(/^(\d+(?:\.\d+)?)(px|%)?$/);if(e==null)return;let t=vr.SIZE_UNIT_PERCENT;return e.at(2)==="px"&&(t=vr.SIZE_UNIT_PIXELS),{value:Number.parseFloat(e[1]),unit:t}}function CT(r,e){return(r.width?.value?.unit===vr.SIZE_UNIT_PERCENT||r.width?.min?.unit===vr.SIZE_UNIT_PERCENT)&&(e.direction===cd.STACK_HORIZONTAL||e.direction===cd.STACK_DEPTH)&&(e.hasWidth||(r.width=void 0)),(r.height?.value?.unit===vr.SIZE_UNIT_PERCENT||r.height?.min?.unit===vr.SIZE_UNIT_PERCENT)&&(e.direction===cd.STACK_VERTICAL||e.direction===cd.STACK_DEPTH)&&(e.hasHeight||(r.height=void 0)),r}function kc(r,e){if(r){let t=r.width!=null||r.minWidth!=null||r.maxWidth!=null,i=r.height!=null||r.minHeight!=null||r.maxHeight!=null;if(t||i||r.grow!=null){let n={width:t?{value:Pi(r.width),min:Pi(r.minWidth),max:Pi(r.maxWidth)}:void 0,height:i?{value:Pi(r.height),min:Pi(r.minHeight),max:Pi(r.maxHeight)}:void 0,grow:r.grow};return e.stackParentLayout&&(n=CT(n,e.stackParentLayout)),n}}}var Fy="data-",wT=new Set(["onPress","onMessage"]),IT=new Map([["onPress",Ac.ACTION_CLICK],["onMessage",Ac.ACTION_WEBVIEW]]),gs,wi=class{constructor(e=()=>{}){l(this,gs);d(this,gs,e)}createBlocksElementOrThrow({type:e,props:t,children:i}){let n=this.createBlocksElement({type:e,props:t,children:i},bc);if(!n)throw new Error(`Could not create block of type ${e}`);return n}createBlocksElement({type:e,props:t,children:i},n){switch(e){case"blocks":return this.makeRoot(t,...i);case"hstack":return this.makeHStack(t,n,...i);case"vstack":return this.makeVStack(t,n,...i);case"zstack":return this.makeZStack(t,n,...i);case"text":return this.makeText(t,n,...i);case"button":return this.makeButton(t,n,...i);case"image":return this.makeImage(t,n);case"spacer":return this.makeSpacer(t,n);case"icon":return this.makeIcon(t,n);case"avatar":return this.makeAvatar(t,n);case"webview":return this.makeWebView(t,n);case"__fragment":throw new Error("root fragment is not supported - use 'blocks' instead")}}makeRootHeight(e){switch(e){case"regular":return 320;case"tall":return 512}}makeBlockPadding(e){switch(e){case"none":return ms.PADDING_NONE;case"xsmall":return ms.PADDING_XSMALL;case"small":return ms.PADDING_SMALL;case"medium":return ms.PADDING_MEDIUM;case"large":return ms.PADDING_LARGE}}makeBlockRadius(e){switch(e){case"none":return ps.RADIUS_NONE;case"small":return ps.RADIUS_SMALL;case"medium":return ps.RADIUS_MEDIUM;case"large":return ps.RADIUS_LARGE;case"full":return ps.RADIUS_FULL}}makeBlockGap(e){switch(e){case"none":return pd.GAP_NONE;case"small":return pd.GAP_SMALL;case"medium":return pd.GAP_MEDIUM;case"large":return pd.GAP_LARGE}}makeBlockAlignment(e){if(e===void 0)return;let t,i;if(e.includes("top")?t=Tc.ALIGN_TOP:e.includes("middle")?t=Tc.ALIGN_MIDDLE:e.includes("bottom")&&(t=Tc.ALIGN_BOTTOM),e.includes("start")?i=Pc.ALIGN_START:e.includes("center")?i=Pc.ALIGN_CENTER:e.includes("end")&&(i=Pc.ALIGN_END),t!==void 0||i!==void 0)return{vertical:t,horizontal:i}}makeBlockBorder(e,t,i,n){if(!e&&!t)return;let o;switch(e){case"none":o=md.BORDER_WIDTH_NONE;break;case"thin":o=md.BORDER_WIDTH_THIN;break;case"thick":o=md.BORDER_WIDTH_THICK;break;default:o=md.BORDER_WIDTH_THIN;break}let a=t??"neutral-border-weak",c=this.getThemedColors(a,i,n);return{width:o,color:c?.light,colors:c}}makeBlockTextSize(e){switch(e){case"xsmall":return Ci.TEXT_SIZE_XSMALL;case"small":return Ci.TEXT_SIZE_SMALL;case"medium":return Ci.TEXT_SIZE_MEDIUM;case"large":return Ci.TEXT_SIZE_LARGE;case"xlarge":return Ci.TEXT_SIZE_XLARGE;case"xxlarge":return Ci.TEXT_SIZE_XXLARGE}}makeBlockTextStyle(e){switch(e){case"body":return Fc.TEXT_STYLE_BODY;case"metadata":return Fc.TEXT_STYLE_METADATA;case"heading":return Fc.TEXT_STYLE_HEADING}}makeBlockTextOutline(e){switch(e){case"none":return Ic.TEXT_OUTLINE_NONE;case"thin":return Ic.TEXT_OUTLINE_THIN;case"thick":return Ic.TEXT_OUTLINE_THICK}}makeBlockTextWeight(e){switch(e){case"regular":return xy.TEXT_WEIGHT_REGULAR;case"bold":return xy.TEXT_WEIGHT_BOLD}}makeBlockTextOverflow(e){switch(e){case"clip":return xc.TEXT_OVERFLOW_CLIP;case"ellipsis":return xc.TEXT_OVERFLOW_ELLIPSE}return xc.TEXT_OVERFLOW_ELLIPSE}makeBlockButtonAppearance(e){switch(e){case"secondary":return Mt.BUTTON_APPEARANCE_SECONDARY;case"primary":return Mt.BUTTON_APPEARANCE_PRIMARY;case"plain":return Mt.BUTTON_APPEARANCE_PLAIN;case"bordered":return Mt.BUTTON_APPEARANCE_BORDERED;case"media":return Mt.BUTTON_APPEARANCE_MEDIA;case"destructive":return Mt.BUTTON_APPEARANCE_DESTRUCTIVE;case"caution":return Mt.BUTTON_APPEARANCE_CAUTION;case"success":return Mt.BUTTON_APPEARANCE_SUCCESS}}makeBlockButtonSize(e){switch(e){case"small":return Sc.BUTTON_SIZE_SMALL;case"medium":return Sc.BUTTON_SIZE_MEDIUM;case"large":return Sc.BUTTON_SIZE_LARGE}}makeBlockImageResizeMode(e){switch(e){case"none":return cs.IMAGE_RESIZE_NONE;case"fit":return cs.IMAGE_RESIZE_FIT;case"fill":return cs.IMAGE_RESIZE_FILL;case"cover":return cs.IMAGE_RESIZE_COVER;case"scale-down":return cs.IMAGE_RESIZE_SCALE_DOWN}}makeBlockSpacerSize(e){switch(e){case"xsmall":return hd.SPACER_XSMALL;case"small":return hd.SPACER_SMALL;case"medium":return hd.SPACER_MEDIUM;case"large":return hd.SPACER_LARGE}}makeBlockSpacerShape(e){switch(e){case"invisible":return Cc.SPACER_INVISIBLE;case"thin":return Cc.SPACER_THIN;case"square":return Cc.SPACER_SQUARE}}makeBlockIconSize(e){switch(e){case"xsmall":return gd.ICON_SIZE_XSMALL;case"small":return gd.ICON_SIZE_SMALL;case"medium":return gd.ICON_SIZE_MEDIUM;case"large":return gd.ICON_SIZE_LARGE}}makeBlockAvatarSize(e){switch(e){case"xxsmall":return Bt.AVATAR_SIZE_XXSMALL;case"xsmall":return Bt.AVATAR_SIZE_XSMALL;case"small":return Bt.AVATAR_SIZE_SMALL;case"medium":return Bt.AVATAR_SIZE_MEDIUM;case"large":return Bt.AVATAR_SIZE_LARGE;case"xlarge":return Bt.AVATAR_SIZE_XXLARGE;case"xxlarge":return Bt.AVATAR_SIZE_XXLARGE;case"xxxlarge":return Bt.AVATAR_SIZE_XXXLARGE}}makeBlockAvatarFacing(e){switch(e){case"left":return Iy.AVATAR_FACING_LEFT;case"right":return Iy.AVATAR_FACING_RIGHT}}makeBlockAvatarBackground(e){switch(e){case"dark":return wy.AVATAR_BG_DARK;case"light":return wy.AVATAR_BG_LIGHT}}getDataSet(e){return Object.keys(e).filter(t=>t.startsWith(Fy)).reduce((t,i)=>(t[i.substring(Fy.length)]=e[i],t),{})}makeActions(e,t){let i=[],n=this.getDataSet(t);return wT.forEach(o=>{if(o in t){let a=t[o];i.push({type:IT.get(o)??Ac.UNRECOGNIZED,id:a.toString(),data:n})}}),i}blockColorToHex(e,t="light"){if(e)return e=e.toLowerCase(),fy(e)?e:vy(e)?ky(e,t):yc(e)?ld(e):yy(e)?Sy(e):by(e)?e:(console.warn(`Could not parse color: ${e}.`),ld("red"))}childrenToBlocks(e,t){return e.flatMap(i=>(typeof i!="string"?this.createBlocksElement(i,t):void 0)??[])}getThemedColors(e,t,i){let n=this.blockColorToHex(t,"light"),o=this.blockColorToHex(i,"dark"),a=[];if(e&&(!n||!o)){let c=Array.from(e?.matchAll(/[\w#-]+(?:\([\w\t ,.#-]+\))?/g)??[]);a.push(...c.map(p=>p[0]))}return n||(n=this.blockColorToHex(a?.at(0),"light")),o||(o=this.blockColorToHex(a?.at(1)??a?.at(0),"dark")),n||o?{light:n,dark:o}:void 0}parsePixels(e){return typeof e=="string"?Number(e.slice(0,-2)):e}resolveAssetUrl(e,t){return s(this,gs).call(this)?.getURL(e,t)??e}childrenToString(e){return e.map(t=>t.toString()).join("")}makeRoot(e,...t){return this.wrapRoot(e,this.childrenToBlocks(t,bc))}wrapRoot(e,t){return this.makeBlock(tt.BLOCK_ROOT,{},{},{rootConfig:{children:t,height:this.makeRootHeight(u.customPostType?.height??e?.height??"regular")}})}makeStackBlock(e,t,i,n){let o=this.getThemedColors(t?.backgroundColor,t?.lightBackgroundColor,t?.darkBackgroundColor),a=this.makeBlockAlignment(t?.alignment),c=kc(t,i),p=Cy(t,i.stackParentLayout,c);return this.makeBlock(tt.BLOCK_STACK,t,i,{stackConfig:{alignment:a,backgroundColor:o?.light,backgroundColors:o,border:this.makeBlockBorder(t?.border,t?.borderColor,t?.lightBorderColor,t?.darkBorderColor),children:this.childrenToBlocks(n,{stackParentLayout:{...p,direction:e,alignment:a}}),cornerRadius:this.makeBlockRadius(t?.cornerRadius),direction:e,gap:this.makeBlockGap(t?.gap),padding:this.makeBlockPadding(t?.padding),reverse:t?.reverse}})}makeHStack(e,t,...i){return this.makeStackBlock(wc.STACK_HORIZONTAL,e,t,i)}makeVStack(e,t,...i){return this.makeStackBlock(wc.STACK_VERTICAL,e,t,i)}makeZStack(e,t,...i){return this.makeStackBlock(wc.STACK_DEPTH,e,t,i)}makeText(e,t,...i){let n=this.getThemedColors(e?.color,e?.lightColor,e?.darkColor);return this.makeBlock(tt.BLOCK_TEXT,e,t,{textConfig:{alignment:this.makeBlockAlignment(e?.alignment),color:n?.light,colors:n,outline:this.makeBlockTextOutline(e?.outline),size:this.makeBlockTextSize(e?.size),style:this.makeBlockTextStyle(e?.style),text:this.childrenToString(i),weight:this.makeBlockTextWeight(e?.weight),selectable:e?.selectable,wrap:e?.wrap,overflow:this.makeBlockTextOverflow(e?.overflow)}})}makeButton(e,t,...i){let n=this.getThemedColors(e?.textColor,e?.lightTextColor,e?.darkTextColor);return this.makeBlock(tt.BLOCK_BUTTON,e,t,{buttonConfig:{buttonAppearance:this.makeBlockButtonAppearance(e?.appearance),icon:e?.icon,buttonSize:this.makeBlockButtonSize(e?.size),text:this.childrenToString(i),textColor:n?.light,textColors:n,disabled:e?.disabled}})}makeImage(e,t){return e&&this.makeBlock(tt.BLOCK_IMAGE,e,t,{imageConfig:{description:e?.description,resizeMode:this.makeBlockImageResizeMode(e.resizeMode),url:this.resolveAssetUrl(e.url),width:this.parsePixels(e.imageWidth),height:this.parsePixels(e.imageHeight)}})}makeSpacer(e,t){return this.makeBlock(tt.BLOCK_SPACER,e,t,{spacerConfig:{size:this.makeBlockSpacerSize(e?.size),shape:this.makeBlockSpacerShape(e?.shape)}})}makeIcon(e,t){let i=this.getThemedColors(e?.color,e?.lightColor,e?.darkColor);return e&&this.makeBlock(tt.BLOCK_ICON,e,t,{iconConfig:{icon:e.name,color:i?.light,colors:i,size:this.makeBlockIconSize(e.size)}})}makeAvatar(e,t){return e&&this.makeBlock(tt.BLOCK_AVATAR,e,t,{avatarConfig:{thingId:e.thingId,size:this.makeBlockAvatarSize(e.size),facing:this.makeBlockAvatarFacing(e.facing),background:this.makeBlockAvatarBackground(e.background)}})}makeWebView(e,t){return e&&this.makeBlock(tt.BLOCK_WEBVIEW,e,t,{webviewConfig:{url:this.resolveAssetUrl(e.url,{webView:!0}),state:e.state}})}makeBlock(e,t,i,n){return{type:e,sizes:kc(t,i),config:n,actions:(t&&this.makeActions(e,t))??[],id:t?.id,key:t?.key}}ensureRootBlock(e){let t;if(e.type===tt.BLOCK_ROOT?(e.config?.rootConfig&&u.customPostType?.height&&(e.config.rootConfig.height=this.makeRootHeight(u.customPostType?.height)),t=e):t=this.wrapRoot(void 0,[e]),!t)throw new Error("Could not create root block");return t}};gs=new WeakMap;function Ay(r){if(typeof r=="string")throw new Error("Root element cannot be a string")}var Ey=r=>{let e="",t=r.props?Object.keys(r.props).map(i=>i==="onPress"?"":`${i}="${r.props[i]}"`).join(" "):"";e+=`<${r.type}${t?" "+t:""}>`;for(let i of r.children)typeof i=="string"?e+=i:e+=Ey(i);return e+=`</${r.type}>`,e};function xT(r){return" ".repeat(r)}function FT(r){let e="",t=0,i=r.split(/>\s*</);for(let n=0;n<i.length;n++){let o=i[n];n===0&&(o=o.trim()),n===i.length-1&&(o=o.trim());let a=o.charAt(0)==="/";a&&t--,e+=xT(t),n!==0&&(e+="<"),e+=o,n!==i.length-1&&(e+=`>
|
|
2
|
-
`),!a&&o.indexOf("</")===-1&&o.charAt(o.length-1)!=="/"&&t++}return e}var De,Ry,hs,Rc,fs,pt=class{constructor(e,t,i,n,o){l(this,De);this.renderState={};this.currentComponentKey=[];this.currentHookIndex=0;this.actions=new Map;this.forms=new Map;this.realtimeChannels=[];this.realtimeUpdated=!1;this.pendingHooks=[];this.isRendering=!1;this.transformer=new wi(()=>this.assets);this.effects=[];l(this,fs,!1);this.component=e,this.event=t,this.state={__renderState:{},...i},this.metadata=n,this.state.__realtimeChannels&&(this.realtimeChannels=this.state.__realtimeChannels);let a=Le({reconciler:this,hooks:!0,ui:!0,metadata:n});this.cache=a.cache,this.modLog=a.modLog,this.reddit=a.reddit,this.kvStore=a.kvStore,this.redis=a.redis,this.settings=a.settings,this.scheduler=a.scheduler,this.media=a.media,this.assets=a.assets,this.realtime=a.realtime,this.dimensions=o,this.ui=a.ui,this.hooks={useState:a.useState,useInterval:a.useInterval,useForm:a.useForm,useChannel:a.useChannel}}emitEffect(e,t){this.effects.push(t)}async render(){await this.reconcile(),this.isRendering=!0;let e=await this.buildBlocksUI();return this.isRendering=!1,e}makeUniqueActionID(e){let t=e,i=1;for(;this.actions.has(t);)t=`${e}.${i++}`;return t}async reconcile(){let e=S(this,De,hs).call(this),t={type:this.component,props:e,children:[]},i=await this.processBlock(t);if(Ay(i),this.transformer.createBlocksElementOrThrow(i),this.isUserActionRender&&this.blockRenderEventId){let n=this.actions.get(this.blockRenderEventId);n&&await n(this.event.data)}for(let n of this.pendingHooks)await n();this.buildNextState(),S(this,De,Ry).call(this)}async buildBlocksUI(){let e=S(this,De,hs).call(this),t={type:this.component,props:e,children:[]},i=await this.renderElement(e,t);return this.transformer.ensureRootBlock(i)}async renderElement(e,t){let i=await this.processBlock(t);return Ay(i),(u.debug.emitSnapshots||e.debug.emitSnapshots)&&console.debug(FT(Ey(i))),(u.debug.emitState||e.debug.emitState)&&console.debug(JSON.stringify(this.state,void 0,2)),this.transformer.createBlocksElementOrThrow(i)}async processProps(e){let t=e.props??{},i=["onPress","onMessage"];for(let n of i)if(n in t){let o=t[n],a=o?.name,c=this.makeUniqueActionID(`${e.type}.${a??n}`);this.actions.set(c,o),t[n]=c}}async processBlock(e,t=gy(),i=[]){let n=e;if(typeof n.type=="string"){let c=[];for(let m=0;m<n.children.length;m++){let y=n.children[m];y!=null&&c.push(await this.processBlock(y,t,[...i,`${n.type}.${m}`]))}let p=c.flat(),g=S(this,De,Rc).call(this,p);return await this.processProps(n),{type:n.type,props:n.props,children:g}}if(typeof n.type=="function"){let c=t(`${i.length?i.join("."):"root"}.${n.type.name.length?n.type.name:"anonymous"}`);this.currentComponentKey.push(c),this.renderState[c]||(this.renderState[c]={});let p=n.children.flatMap(m=>m),g={...S(this,De,hs).call(this),...n.props,children:p},f;for(;f===void 0;)try{f=await n.type(g,S(this,De,hs).call(this))}catch(m){if(m instanceof Promise)f=await m;else throw m}if(!this.isInitialRender){let m=this.getPreviousComponentState();if(Object.keys(m).length!==this.currentHookIndex)throw new Error("Invalid hook call. Hooks can only be called at the top-level of a function component. Make sure that you are not calling hooks inside loops, conditions, or nested functions.")}if(this.currentComponentKey.pop(),this.currentHookIndex=0,typeof f=="object")return this.processBlock(f,t,[...i,n.type.name])}if(typeof n=="string")return n;if(typeof n=="number")return`${n}`;let o=[],a="";return Array.isArray(n)?o=n:typeof n.type>"u"&&n.children&&(o=n.children,a="fragmentChild."),{type:"__fragment",props:void 0,children:await Promise.all(o.flatMap(async(c,p)=>await this.processBlock(c,t,[...i,`${a}${p}`])))}}getCurrentComponentKey(){if(!this.currentComponentKey.at(-1))throw new Error("Current component key is missing");return this.currentComponentKey}getCurrentComponentState(){let e=this.currentComponentKey.at(-1);if(!e)throw new Error("Current component key is missing");return this.renderState[e]}getPreviousComponentState(){let e=this.currentComponentKey.at(-1);if(!e)throw new Error("Current component key is missing");return this.state.__renderState[e]||(this.state.__renderState[e]={}),this.state.__renderState[e]}get isInitialRender(){return this.event?this.event.type===Ec.RENDER_INITIAL:!1}get isUserActionRender(){return this.event?this.event.type===Ec.RENDER_USER_ACTION:!1}get isEffectRender(){return this.event?this.event.type===Ec.RENDER_EFFECT_EVENT:!1}get formSubmittedEvent(){return this.event?this.event.formSubmitted:!1}get blockRenderEventId(){return this.event?this.event.id:!1}get realtimeEvent(){if(!this.event)return!1;let e=this.event.realtimeEvent;return e?.event?.channel?e:!1}runHook(e){this.pendingHooks.push(e)}rerenderIn(e){s(this,fs)||(d(this,fs,!0),this.effects.push({type:Ty.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:e/1e3}}))}addRealtimeChannel(e){this.realtimeChannels.push(e),this.realtimeUpdated=!0}removeRealtimeChannel(e){this.realtimeChannels=this.realtimeChannels.filter(t=>t!==e),this.realtimeUpdated=!0}get realtimeEffect(){return this.realtimeUpdated&&this.realtimeChannels.length>0?[{type:Ty.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:this.realtimeChannels}}]:[]}getEffects(){return[...Si(this.ui),...this.effects,...this.realtimeEffect]}buildNextState(){for(let e of Object.keys(this.renderState))this.renderState[e]=Object.values(this.renderState[e]);this.state={__postData:this.state.__postData,__renderState:this.renderState,__cache:this.state.__cache,...this.realtimeChannels.length>0?{__realtimeChannels:this.realtimeChannels}:{}}}};De=new WeakSet,Ry=function(){this.actions.clear(),this.currentComponentKey=[],this.currentHookIndex=0,this.pendingHooks=[],this.realtimeChannels=[],this.realtimeUpdated=!1},hs=function(){let e={...ce(this.metadata,this.state.__postData?.thingId),modLog:this.modLog,reddit:this.reddit,cache:this.cache,kvStore:this.kvStore,redis:this.redis,settings:this.settings,scheduler:this.scheduler,media:this.media,assets:this.assets,realtime:this.realtime,ui:this.ui,dimensions:this.dimensions,uiEnvironment:{timezone:this.metadata[L.Timezone]?.values[0],locale:this.metadata[L.Language]?.values[0],dimensions:this.dimensions},...this.hooks};return e.debug.effects=this,e},Rc=function(e){let t=[];for(let i of e)typeof i=="string"?t.push(i):i.type==="__fragment"?t.push(...S(this,De,Rc).call(this,i.children)):t.push(i);return t},fs=new WeakMap;async function ET(r,e){let t=u.customPostType;if(!t)throw new Error("Custom post type not registered");let i=new pt((o,a)=>t.render(a),r.blocks,r.state,e,r.dimensions),n=await i.render();return AT.fromJSON({state:i.state,blocks:{ui:n},effects:i.getEffects()})}function Oy(r){r.provides(TT),M("RenderPost",ET)}import{GetFieldsResponse as RT,InstallationSettingsDefinition as OT}from"@devvit/protos";async function BT(){if(!u.installationSettings)throw new Error("Installation settings were not defined.");return RT.fromJSON({fields:{fields:mt(u.installationSettings)}})}async function MT(r,e){return dd(r,u.installationSettings,e)}function By(r){r.provides(OT),M("GetSettingsFields",BT),M("ValidateForm",MT)}import{ContextActionDefinition as UT,ContextActionList as LT,ContextActionResponse as DT}from"@devvit/protos";var My=r=>`menuItem.${r}`;function Oc(r){return u.menuItems.find((e,t)=>My(t)===r)}async function NT(r,e){let t=u.menuItems;if(!t.length)throw new Error("No menu items registered.");let i=t.map((n,o)=>({actionId:My(o),name:n.label,description:n.description,contexts:{subreddit:n.location.includes("subreddit"),post:n.location.includes("post"),comment:n.location.includes("comment")},users:{loggedOut:n.forUserType?.includes("loggedOut"),moderator:n.forUserType?.includes("moderator")},postFilters:n.postFilter==="currentApp"?{currentApp:!0}:void 0}));return LT.fromJSON({actions:i})}async function _T(r,e){let t=Oc(r.actionId);if(!t)throw new Error(`MenuItem ${r.actionId} not found`);let i=r.comment?.id&&`t1_${r.comment.id}`,n=r.post?.id&&`t3_${r.post.id}`,o=r.subreddit?.id&&`t5_${r.subreddit.id}`,a=i||n||o;v(a,"targetId is missing from ContextActionRequest");let c={targetId:a,location:r.comment?"comment":r.post?"post":"subreddit"},p=Object.assign(Le({ui:!0,metadata:e}),ce(e,n,i),{uiEnvironment:{timezone:e[L.Timezone]?.values[0],locale:e[L.Language]?.values[0]}});return await t.onPress(c,p),DT.fromJSON({effects:Si(p.ui)})}function Uy(r){r.provides(UT),M("GetActions",NT),M("OnAction",_T)}function gt(r){return r?r===!0?!0:r.enabled:!1}import{SchedulerHandlerDefinition as HT}from"@devvit/protos";async function qT(r,e){let t=r.type,i=u.scheduledJobHandlers.get(t);if(!i)throw new Error(`Job ${t} not found`);let n={name:t,data:r.data},o=Object.assign(Le({metadata:e}),ce(e));await i(n,o)}function Ly(r){r.provides(HT),M("HandleScheduledAction",qT)}import{OnAppInstallDefinition as jT,OnAppUpgradeDefinition as WT,OnAutomoderatorFilterCommentDefinition as GT,OnAutomoderatorFilterPostDefinition as VT,OnCommentCreateDefinition as zT,OnCommentDeleteDefinition as JT,OnCommentReportDefinition as $T,OnCommentSubmitDefinition as KT,OnCommentUpdateDefinition as XT,OnModActionDefinition as ZT,OnModMailDefinition as QT,OnPostCreateDefinition as YT,OnPostDeleteDefinition as eA,OnPostFlairUpdateDefinition as tA,OnPostNsfwUpdateDefinition as rA,OnPostReportDefinition as iA,OnPostSpoilerUpdateDefinition as nA,OnPostSubmitDefinition as sA,OnPostUpdateDefinition as oA}from"@devvit/protos";var Ii;(function(r){function e(a,c){return a.length<=c?a:`${a.slice(0,c-1)}\u2026`}r.ellipsize=e;function t(a){return a[0]==null?a:`${a[0].toLocaleUpperCase()}${a.slice(1)}`}r.capitalize=t;function i(a){return a==null||/^\s*$/.test(a)}r.isBlank=i;function n(a,c="stack"){return a instanceof Error?`${a[c]||a.stack||a.message||a.name}`:String(a)}r.caughtToString=n;function o(a,c="stack"){return a instanceof Error?`${a[c]||a.stack||a.message||a.name}`:String(a)}r.caughtToStringUntyped=o})(Ii||(Ii={}));function X(r,e){return v(e),async(t,i)=>{let n={...t,type:r},o=Object.assign(Le({metadata:i}),ce(i)),a=await Promise.allSettled(e.map(p=>p(n,o))),c=aA(a);if(c)throw c.err;return{}}}function Dy(r){for(let e of u.triggerOnEventHandlers.keys())switch(e){case"PostSubmit":r.provides(sA),M("OnPostSubmit",X("PostSubmit",u.triggerOnEventHandlers.get(e)));break;case"PostCreate":r.provides(YT),M("OnPostCreate",X("PostCreate",u.triggerOnEventHandlers.get(e)));break;case"PostUpdate":r.provides(oA),M("OnPostUpdate",X("PostUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostReport":r.provides(iA),M("OnPostReport",X("PostReport",u.triggerOnEventHandlers.get(e)));break;case"PostDelete":r.provides(eA),M("OnPostDelete",X("PostDelete",u.triggerOnEventHandlers.get(e)));break;case"PostFlairUpdate":r.provides(tA),M("OnPostFlairUpdate",X("PostFlairUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentSubmit":r.provides(KT),M("OnCommentSubmit",X("CommentSubmit",u.triggerOnEventHandlers.get(e)));break;case"CommentCreate":r.provides(zT),M("OnCommentCreate",X("CommentCreate",u.triggerOnEventHandlers.get(e)));break;case"CommentUpdate":r.provides(XT),M("OnCommentUpdate",X("CommentUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentReport":r.provides($T),M("OnCommentReport",X("CommentReport",u.triggerOnEventHandlers.get(e)));break;case"CommentDelete":r.provides(JT),M("OnCommentDelete",X("CommentDelete",u.triggerOnEventHandlers.get(e)));break;case"AppInstall":r.provides(jT),M("OnAppInstall",X("AppInstall",u.triggerOnEventHandlers.get(e)));break;case"AppUpgrade":r.provides(WT),M("OnAppUpgrade",X("AppUpgrade",u.triggerOnEventHandlers.get(e)));break;case"ModAction":r.provides(ZT),M("OnModAction",X("ModAction",u.triggerOnEventHandlers.get(e)));break;case"ModMail":r.provides(QT),M("OnModMail",X("ModMail",u.triggerOnEventHandlers.get(e)));break;case"PostNsfwUpdate":r.provides(rA),M("OnPostNsfwUpdate",X("PostNsfwUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostSpoilerUpdate":r.provides(nA),M("OnPostSpoilerUpdate",X("PostSpoilerUpdate",u.triggerOnEventHandlers.get(e)));break;case"AutomoderatorFilterPost":r.provides(VT),M("OnAutomoderatorFilterPost",X("AutomoderatorFilterPost",u.triggerOnEventHandlers.get(e)));break;case"AutomoderatorFilterComment":r.provides(GT),M("OnAutomoderatorFilterComment",X("AutomoderatorFilterComment",u.triggerOnEventHandlers.get(e)));break;default:throw new Error(`Unknown trigger event: ${e}`)}}function aA(r){let e=r.reduce((t,i)=>i.status==="rejected"?[...t,i.reason]:t,[]);if(e.length!==0)return e.length===1?{err:e[0]}:{err:new Error(e.map(t=>Ii.caughtToString(t)).join(`
|
|
3
|
-
`))}}import{EffectType as oR,HandleUIEventResponse as Jc,UIEventHandlerDefinition as aR}from"@devvit/protos";var Eb=Ln(Ky(),1),Rb=Ln(zc(),1);async function dR(r,e){let t=r.state??{},i=(0,Eb.default)(t),n=Le({ui:!0,metadata:e});if(r.event?.formSubmitted&&r.event.formSubmitted.formId){let p=r.event.formSubmitted.formId;if(p.includes("form.hook.")&&u.customPostType){let b=new pt((P,x)=>u.customPostType?.render(x)??null,r.event,r.state,e,void 0);return await b.reconcile(),Jc.fromJSON({state:b.state,effects:b.getEffects()})}let g=u.formDefinitions.get(p);if(!g)throw new Error(`Form with key ${p} not found`);let f,m;if(i.__contextAction){let{actionId:b,thingId:P}=i.__contextAction,x=Oc(b);x?.location==="post"?f=P:x?.location==="comment"&&(m=P)}let y=Object.assign(n,ce(e,f,m),{uiEnvironment:{timezone:e[L.Timezone]?.values[0],locale:e[L.Language]?.values[0]}});await g.onSubmit({values:Tt(r.event.formSubmitted.results)},y)}else if(r.event?.realtimeEvent){if(u.customPostType){let p=new pt((g,f)=>u.customPostType?.render(f)??null,r.event,r.state,e,void 0);return await p.reconcile(),Jc.fromJSON({state:p.state,effects:p.getEffects()})}}else if(r.event?.toastAction)throw new Error("Toast actions not yet implemented");let o=!(0,Rb.default)(t,i),a=Si(n.ui),c=o?[...a,{type:oR.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:0}}]:a;return Jc.fromJSON({state:i,effects:c})}function Ob(r){r.provides(aR),M("HandleUIEvent",dR)}import{CustomPostDefinition as _d,UIResponse as ak}from"@devvit/protos";import{UIEventScope as fR}from"@devvit/protos";var $c="ServerCallRequired";function Fd(r){return r?.message===$c}var Qc={now(){return new Date}};function Bb(r){return`__autocache__${r}`}function Mb(r){return`__lock__${r}`}var lR=300,uR=1e3,Td=5e3,Kc=3,Ub=.1,Lb=1e3,cR=3e4;function Db(r){if(r.error)throw new Error(r.error);return r.value}var Dt,Nt,Ne,Ai,K,Nb,_b,Hb,Xc,qb,jb,Zc,Wb,Ad=class{constructor(e,t,i=Qc){l(this,K);l(this,Dt);l(this,Nt,{});l(this,Ne);l(this,Ai);d(this,Dt,e),d(this,Ai,t),d(this,Ne,i)}async cache(e,t){var a;(a=s(this,Ai)).__cache??(a.__cache={}),d(this,Nt,s(this,Ai).__cache),S(this,K,Wb).call(this,t);let i=S(this,K,Nb).call(this,t.key);if(i!==void 0)return i;let n=await S(this,K,Zc).call(this,t.key),o=await S(this,K,_b).call(this,t,n,e);return Db(o)}};Dt=new WeakMap,Nt=new WeakMap,Ne=new WeakMap,Ai=new WeakMap,K=new WeakSet,Nb=function(e){let t=s(this,Nt)[e];if(t){let i=s(this,Ne).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<Kc&&Math.random()<Ub&&t.errorTime+Lb<i;if(t?.expires&&t.expires<i&&t.checkedAt+Lb<i||n){delete s(this,Nt)[e];return}else return Db(t)}},_b=async function(e,t,i){let n=t?.expires,o=n?S(this,K,jb).call(this,n):1;return!t||t?.error&&t.errorCount<Kc&&Ub>Math.random()||o>Math.random()?S(this,K,Hb).call(this,e,t,i):t},Hb=async function(e,t,i){let n=Mb(e.key),o=s(this,Ne).now().getTime(),a=new Date(o+e.ttl/2);if(await s(this,Dt).set(n,"1",{expiration:a,nx:!0}))return S(this,K,qb).call(this,e.key,t,i,e.ttl);if(t)return t;{let p=s(this,Ne).now();return S(this,K,Xc).call(this,p,e.key,e.ttl)}},Xc=async function(e,t,i){let n=Math.min(i,uR),o=await S(this,K,Zc).call(this,t);if(o)return o;if(s(this,Ne).now().getTime()-e.getTime()>=n)throw new Error(`Cache request timed out trying to get data at key: ${t}`);return await new Promise(a=>setTimeout(a,lR)),S(this,K,Xc).call(this,e,t,i)},qb=async function(e,t,i,n){let o=s(this,Ne).now().getTime()+n;t=t??{value:null,expires:o,errorCount:0,error:null,errorTime:null,checkedAt:0};try{t.value=await i(),t.error=null,t.errorCount=0,t.errorTime=null}catch(a){t.value=null,t.error=a.message??"Unknown error",t.errorTime=s(this,Ne).now().getTime(),t.errorCount++}return s(this,Nt)[e]=t,await s(this,Dt).set(Bb(e),JSON.stringify(t),{expiration:new Date(o+cR)}),t.error&&t.errorCount<Kc&&await s(this,Dt).del(Mb(e)),t},jb=function(e){let t=s(this,Ne).now().getTime(),i=e-t;return i<0?1:i<1e3?.1:i<2e3?.01:i<3e3?.001:0},Zc=async function(e){let t=await s(this,Dt).get(Bb(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Ne).now().getTime(),s(this,Nt)[e]=i,i}},Wb=function(e){e.ttl<Td&&(console.warn(`Cache TTL cannot be less than ${Td} milliseconds! Updating ttl value of ${e.ttl} to ${Td}.`),e.ttl=Td)};function Gb(r,e,t=Qc){let i=new Ad(r,e,t);return i.cache.bind(i)}import{EffectType as Ed,ToastAppearance as Jb}from"@devvit/protos";function Vb(r){let e=r.match(/form\.hook\.(.+)\.0/);if(e?.[1])return e[1]}var Yc=class{constructor(e,t,i){this.state=null;this.hookId=e.hookId,this.form=t,this.onSubmit=i,this.onUIEvent=async n=>{n.formSubmitted&&await i(Tt(n.formSubmitted.results))}}};function em(r,e){let t=Je({namespace:"useForm",initializer:i=>new Yc(i,r,e)});return mR({id:t.hookId})}function mR(r){return`form.hook.${r.id}.0`}function zb(r,e){let t=Vb(e);return r.getHook({id:t})}var vt,Od,Ps,Bd,Rd=class{constructor(e){l(this,vt);l(this,Od,0);l(this,Ps);l(this,Bd,(e,t)=>{let i=t!==void 0?e:"",n=t!==void 0?t:e;s(this,vt).emitEffect(`postMessage${Bm(this,Od)._++}`,{type:Ed.EFFECT_WEB_VIEW,webView:{postMessage:{webViewId:i,app:{message:n}}}})});d(this,vt,e),d(this,Ps,{postMessage:s(this,Bd)})}get webView(){return s(this,Ps)}showForm(e,t){let i=zb(s(this,vt),e);if(!i)throw new Error("Form does not exist. Make sure you have added it using useForm.");let n=i.form instanceof Function?i.form(t??{}):i.form,o={fields:[],id:e,title:n.title,acceptLabel:n.acceptLabel,cancelLabel:n.cancelLabel,shortDescription:n.description};gr(n.fields),o.fields=mt(n.fields),s(this,vt).emitEffect(e,{type:Ed.EFFECT_SHOW_FORM,showForm:{form:o}})}showToast(e){let t;e instanceof Object?t={text:e.text,appearance:e.appearance==="success"?Jb.SUCCESS:Jb.NEUTRAL}:t={text:e},s(this,vt).emitEffect(e.toString(),{type:Ed.EFFECT_SHOW_TOAST,showToast:{toast:t}})}navigateTo(e){let t;typeof e=="string"?t=new URL(e).toString():t=new URL(e.permalink,"https://www.reddit.com").toString(),s(this,vt).emitEffect(t,{type:Ed.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}};vt=new WeakMap,Od=new WeakMap,Ps=new WeakMap,Bd=new WeakMap;import{EffectType as pR,RealtimeSubscriptionStatus as $b}from"@devvit/protos";var _t,it,Ht,Pr,Cs,rm,Md=class Md{constructor(e,t){l(this,Cs);l(this,_t);l(this,it);l(this,Ht);l(this,Pr);d(this,_t,t.context),d(this,it,!!t.context._devvitContext?.debug.realtime),d(this,Pr,e),d(this,Ht,t.invalidate);let i=t.context.meta[L.App]?.values[0];if(!i)throw Error("useChannel missing app ID metadata");let n=t.context.meta[L.Installation]?.values[0];if(!n)throw Error("useChannel missing install ID from metadata");let o=`${i}:${n}:${e.name}`;if(Object.values(s(this,_t)._hooks).filter(c=>c instanceof Md).some(c=>c.state.channel===o))throw Error(`useChannel channel names must be unique; "${o}" duplicated`);this.state={channel:o,connected:!1,subscribed:!1}}async onUIEvent(e){let t=e.realtimeEvent;if(!(!t||!this.state.subscribed))switch(t.status){case $b.REALTIME_SUBSCRIBED:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" connected`),this.state.connected=!0,s(this,Ht).call(this),await s(this,Pr).onSubscribed?.();break;case $b.REALTIME_UNSUBSCRIBED:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" disconnected`),this.state.connected=!1,s(this,Ht).call(this),await s(this,Pr).onUnsubscribed?.();break;default:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" received message: ${JSON.stringify(e,void 0,2)}`),s(this,Pr).onMessage(t.event?.data?.msg);break}}async send(e){if(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" send message: ${JSON.stringify(e,void 0,2)}`),!this.state.subscribed||!this.state.connected)throw console.debug(`[realtime] "${this.state.channel}" send failed; channel not connected`),Error(`useChannel send failed; "${this.state.channel}" channel not connected`);await s(this,_t).devvitContext.realtime.send(this.state.channel,e)}get status(){return this.state.subscribed&&this.state.connected?2:this.state.subscribed&&!this.state.connected?1:!this.state.subscribed&&this.state.connected?3:4}subscribe(){this.state.subscribed||(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" subscribed`),this.state.subscribed=!0,s(this,Ht).call(this),S(this,Cs,rm).call(this))}unsubscribe(){this.state.subscribed&&(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" unsubscribed`),this.state.subscribed=!1,s(this,Ht).call(this),S(this,Cs,rm).call(this))}};_t=new WeakMap,it=new WeakMap,Ht=new WeakMap,Pr=new WeakMap,Cs=new WeakSet,rm=function(){let e=Object.values(s(this,_t)._hooks).filter(t=>t instanceof Md&&t.state.subscribed).map(t=>t.state.channel);s(this,_t).emitEffect(this.state.channel,{type:pR.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:e}})};var tm=Md;function im(r){if(!r.name||/[^a-zA-Z0-9_]/.test(r.name))throw Error(`useChannel error: The name "${r.name}" you provided for the hook is invalid. Valid names can only contain letters, numbers, and underscores (_).`);let e=`useChannel:${r.name}`;return Je({id:e,namespace:e,initializer:t=>new tm(r,t)})}import{EffectType as nm}from"@devvit/protos";function Kb(r){return typeof r=="object"&&r!==null&&"__deleted"in r}var Cr,qt,Ei=class Ei{constructor(e,t){l(this,Cr);this._segments=[];l(this,qt,{});this._prevHooks={};this._prevHookId="";this._effects={};this._changed={};this._touched={};this._requeueEvents=[];this._rootProps={};this._generated={};this._undeliveredHandlers={};this.request=e,this.meta=t,d(this,Cr,e.state??{__cache:{}}),this._rootProps=e.props??{}}get devvitContext(){if(!this._devvitContext)throw new Error("Devvit context not available");return this._devvitContext}set devvitContext(e){this._devvitContext=e}get _changedState(){let e={__cache:s(this,Cr).__cache??{}};for(let i in this._changed)e[i]=this._state[i];let t=new Set(Object.keys(this._state));return Object.keys(s(this,qt)).forEach(i=>{i!=="__cache"&&t.delete(i)}),t.forEach(i=>{if(i==="__cache")return;let n={__deleted:!0};this._state[i]=e[i]=n}),e}get _hooks(){return s(this,qt)}set _hooks(e){this._prevHooks=s(this,qt),d(this,qt,e)}get _state(){return s(this,Cr)}set _state(e){d(this,Cr,e)}push(e){this._segments.push({...e,next:0})}pop(){this._segments.pop()}addUndeliveredEventHandler(e,t){this._undeliveredHandlers[e]=t}addGlobalUndeliveredEventHandler(e,t){Ei.addGlobalUndeliveredEventHandler(e,t)}getHook(e){return s(this,qt)[e.id]}static addGlobalUndeliveredEventHandler(e,t){Ei._staticUndeliveredHandlers[e]=t}async handleUndeliveredEvent(e){let t={...Ei._staticUndeliveredHandlers,...this._undeliveredHandlers};for(let[i,n]of Object.entries(t))await n(e,this)}emitEffect(e,t){this._effects[e]=t}addToRequeueEvents(...e){this._devvitContext?.debug.blocks&&console.debug("[blocks] requeueing events",e);let t=e.reduce((i,n)=>(n.retry?i.retry.push(n):i.normal.push(n),i),{retry:[],normal:[]});this._requeueEvents=[...t.retry,...this._requeueEvents,...t.normal]}get effects(){return Object.values(this._effects)}nextHookId(e){e.key===void 0&&(e.key=this._segments[this._segments.length-1].next+++""),this.push(e);try{let t=[];for(let n=this._segments.length-1;n>=0;n--){let o=this._segments[n];if(o.id){t.unshift(o.id);break}let a=[];o.namespace&&a.push(o.namespace),o.key!==void 0&&o.key!==!1&&a.push(o.key),t.unshift(a.join("-"))}let i=t.join(".");if(this._generated[i]&&!e.shared)throw new Error(`Hook id ${i} already used, cannot register another hook with the same id`);return this._generated[i]=!0,this._prevHookId=i,i}finally{this.pop()}}};Cr=new WeakMap,qt=new WeakMap,Ei._staticUndeliveredHandlers={};var Ri=Ei;var jt={};Ri.addGlobalUndeliveredEventHandler("intervals",async(r,e)=>{r.timer&&r.hook&&(delete jt[r.hook],e.emitEffect("timers",{type:nm.EFFECT_SET_INTERVALS,interval:{intervals:jt}}))});var Wt,Oi,ws,Bi,sm=class{constructor(e,t,i){l(this,Wt);l(this,Oi);l(this,ws);l(this,Bi);this.state={duration:{seconds:0,nanos:0},running:!1};d(this,Oi,i.invalidate),d(this,Wt,i.hookId),d(this,ws,e),d(this,Bi,i.context);let n=Math.floor(t/1e3),o=t%1e3*1e6;this.state.duration={seconds:n,nanos:o}}onStateLoaded(){this.state.running?jt[s(this,Wt)]={duration:this.state.duration}:delete jt[s(this,Wt)]}async onUIEvent(e){await s(this,ws).call(this)}start(){jt[s(this,Wt)]={duration:this.state.duration},this.state.running=!0,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:nm.EFFECT_SET_INTERVALS,interval:{intervals:jt}})}stop(){delete jt[s(this,Wt)],this.state.running=!1,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:nm.EFFECT_SET_INTERVALS,interval:{intervals:jt}})}};Wt=new WeakMap,Oi=new WeakMap,ws=new WeakMap,Bi=new WeakMap;function om(r,e){let t=Je({namespace:"useInterval",initializer:i=>new sm(r,e,i)});return{start:()=>t.start(),stop:()=>t.stop()}}import{UIEventScope as hR}from"@devvit/protos";var wr=class extends Error{};import{UIEventScope as Xb}from"@devvit/protos";var Zb=Ln(zc(),1);function dm(r){if(r instanceof Error){if(r.message===$c)throw r;return console.error(r),{message:r.message,details:r.stack??""}}else return console.error(r),{message:"Unknown error",details:Ii.caughtToString(r)}}var $e,nt,Mi,Is,Ui,am=class{constructor(e,t,i){l(this,$e);l(this,nt);l(this,Mi);l(this,Is);l(this,Ui);d(this,$e,!!i.context.devvitContext.debug.useAsync),s(this,$e)&&console.debug("[useAsync] v1",t),this.state={data:null,load_state:"initial",error:null,depends:null},d(this,nt,i.hookId),this.initializer=e,d(this,Mi,i.invalidate),d(this,Is,i.context),this.localDepends=t.depends??null,d(this,Ui,t)}onStateLoaded(){if(s(this,$e)&&console.debug("[useAsync] async onLoad ",s(this,nt),this.state),s(this,$e)&&console.debug("[useAsync] async onLoad have ",this.localDepends,"and",this.state.depends),!(0,Zb.default)(this.localDepends,this.state.depends)||this.state.load_state==="initial"){s(this,$e)&&console.debug("[useAsync] attempting to resolve for hookId",s(this,nt)),this.state.load_state="loading",this.state.depends=this.localDepends,s(this,Mi).call(this);let e={scope:Xb.ALL,hook:s(this,nt),async:!0,asyncRequest:{requestId:s(this,nt)+"-"+JSON.stringify(this.state.depends)}};s(this,$e)&&console.debug("[useAsync] onLoad requeue"),s(this,Is).addToRequeueEvents(e)}}async onUIEvent(e,t){if(e.asyncRequest){let i={requestId:e.asyncRequest.requestId};try{i.data={value:await this.initializer()}}catch(o){i.error=dm(o)}let n={scope:Xb.ALL,asyncResponse:i,hook:s(this,nt)};s(this,$e)&&console.debug("[useAsync] onReq requeue"),t.addToRequeueEvents(n)}else if(e.asyncResponse){let i=s(this,nt)+"-"+JSON.stringify(this.state.depends);e.asyncResponse.requestId===i?(this.state={...this.state,data:e.asyncResponse.data?.value??null,error:e.asyncResponse.error??null,load_state:e.asyncResponse.error?"error":"loaded"},s(this,Ui).finally&&await s(this,Ui).finally(this.state.data,this.state.error?new Error(this.state.error?.message??"Unknown error"):null),s(this,Mi).call(this)):s(this,$e)&&console.debug("[useAsync] onResp skip, stale event",e.asyncResponse.requestId," !== ",i)}else throw new Error("Unknown event type")}};$e=new WeakMap,nt=new WeakMap,Mi=new WeakMap,Is=new WeakMap,Ui=new WeakMap;function gR(r,e={}){let t=Je({namespace:"useAsync",initializer:i=>new am(r,e,i)});return{data:t.state.data,error:t.state.error,loading:t.state.load_state==="loading"}}var yt,Li,Ir,xr,lm=class{constructor(e,t){this.state={value:null,load_state:"initial",error:null};l(this,yt);l(this,Li);l(this,Ir);l(this,xr);d(this,Ir,e),d(this,xr,t.hookId),d(this,yt,t.invalidate),d(this,Li,t.context)}async onUIEvent(){if(this.state.load_state==="loading"&&this._promise){try{this.state.value=await this._promise,this.state.load_state="loaded"}catch(e){this.state.load_state="error",this.state.error=dm(e)}s(this,yt).call(this)}else console.warn("Invalid state: ",this.state.load_state,this._promise)}setter(e){this.state.value=e instanceof Function?e(this.state.value):e,this.state.load_state="loaded",s(this,yt).call(this)}onStateLoaded(){if(this._promise=s(this,Li)._prevHooks[s(this,xr)]?._promise,this.state.load_state==="loading")throw new wr;if(this.state.load_state==="error")throw new Error(this.state.error?.message??"Unknown error");if(this.state.load_state==="initial"){let e;try{e=s(this,Ir)instanceof Function?s(this,Ir).call(this):s(this,Ir)}catch(t){console.log("error in loading async",t),this.state.load_state="error",s(this,yt).call(this);return}if(e instanceof Promise){this._promise=e,this.state.load_state="loading";let t={scope:hR.ALL,asyncRequest:{requestId:s(this,xr)},hook:s(this,xr)};throw s(this,Li).addToRequeueEvents(t),s(this,yt).call(this),new wr}else this.state.value=e,this.state.load_state="loaded";s(this,yt).call(this)}}};yt=new WeakMap,Li=new WeakMap,Ir=new WeakMap,xr=new WeakMap;function um(r){let e=Je({namespace:"useState",initializer:t=>new lm(r,t)});return[e.state.value,e.setter.bind(e)]}var Ud=class{buildContext(e,t,i){let n=new pi(i),o=new ci(i),a=new vi(i),c=new hi(i),p=new yi(i),g=new bi(i),f=new Rd(e),m=new mi(i),y=new li,b=new gi(i),P=Gb(a,e._state),x={modLog:n,kvStore:o,redis:a,reddit:c,scheduler:p,settings:g,media:m,assets:y,realtime:b,ui:f,useState:um,useChannel:im,useInterval:om,useForm:em,cache:P,dimensions:t.env?.dimensions,uiEnvironment:{timezone:i[L.Timezone]?.values[0],locale:i[L.Language]?.values[0],dimensions:t.env?.dimensions}},I=ce(i,t.props?.postId);return I.debug.effects=e,{...I,...x}}};var ke=null;function Qb(r){return JSON.parse(JSON.stringify(r))}function vR(r){if(!(r!==""&&!/[-.]/.test(r)))throw new Error(`Hook with namespace '${r}' is invalid. Hook namespaces cannot be empty string or contain dashes/dots because they are used as delimiters internally. Please update the hook namespace and try again.`)}function Je({initializer:r,...e}){if(!ke)throw new Error("Hooks can only be declared at the top of a component. You cannot declare hooks outside of components or inside of event handlers. It's almost always a mistake to declare hooks inside of loops or conditionals.");vR(e.namespace);let t=ke.nextHookId(e),i=ke,n={hookId:t,invalidate:()=>{i._changed[t]=!0,i._state[t]=i?._hooks[t]?.state},context:ke},o=ke._state[t]===void 0||Kb(ke._state[t]);ke._hooks[t]=ke._hooks[t]??r(n);let a=ke._hooks[t];return o||(a.state=ke._state[t]),a.onStateLoaded?.(),o&&a.state!==void 0&&a.state!==null&&n.invalidate(),a}var yR=null,Yb=64,Di,Nd,xs,F,me,Ld,ek,cm,tk,mm,pm,Dd,gm,rk,Fr=class{constructor(e){l(this,F);l(this,Di);l(this,Nd,new Ud);l(this,xs,new wi(()=>this._latestRenderContext?.devvitContext?.assets));this._latestRenderContext=null;s(this,F,me)&&console.debug("[blocks] BlocksHandler v1"),d(this,Di,e),yR=this}async handle(e,t){let i=new Ri(e,t),n=s(this,Nd).buildContext(i,e,t);i.devvitContext=n;let o,a=e.events,p=!e.events?.length||a.some(P=>!P.async),g=a.some(P=>P.blocking),f,m,y=[...a];a.length===0&&a.push({scope:fR.ALL}),s(this,F,me)&&console.debug("[blocks] starting processing events");let b=0;for(;a.length>0;){if(b++>Yb)throw new Error(`Exceeded maximum iterations of ${Yb}`);s(this,F,me)&&console.debug("[blocks] processing events loop iteration",a.length);let P=[];if(!a[0].async)P.push(a.shift());else for(;a[0]?.async;)P.push(a.shift());if(!P.length)throw Error("batch must have at least one event");try{if(P[0].async){let I=Qb(i._state);await S(this,F,ek).call(this,i,...P),i._state=I}else await S(this,F,tk).call(this,i,...P)}catch(I){if(!Fd(I))throw I;if(s(this,F,me)&&console.debug("[blocks] caught in handler",I),i._latestRenderContent=void 0,m){i._state=m._state,i._changed=f,i._effects=m._effects;let B=y.map(Ce=>{let Pt={...Ce};return Pt.retry=!0,Pt});i.addToRequeueEvents(...B);break}else throw Fd(I)||console.error("[blocks] unhandled error in handler",I),I}s(this,F,me)&&console.debug("[blocks] remaining events",i._requeueEvents);let x=[];for(let I of i._requeueEvents){if(!p&&!I.async){s(this,F,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch A",I),x.push(I);continue}if(p&&I.async&&!g){s(this,F,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch B",I),x.push(I);continue}s(this,F,me)&&console.debug("[blocks] reprocessing event in BlocksHandler",I),a.push(I)}i._requeueEvents=x,a.length>0&&(f={...i._changed},m={_state:Qb(i._state),_effects:{...i._effects}},y=[...a])}if(p){i._latestRenderContent||(i._latestRenderContent=S(this,F,mm).call(this,s(this,Di),i.request.props??{},i));let P=i._latestRenderContent;P&&(o=s(this,xs).createBlocksElementOrThrow(P),o=s(this,xs).ensureRootBlock(o))}return{state:i._changedState,effects:i.effects,blocks:o,events:i._requeueEvents}}};Di=new WeakMap,Nd=new WeakMap,xs=new WeakMap,F=new WeakSet,me=function(){return!!this._latestRenderContext?.devvitContext.debug.blocks},Ld=function(e,...t){e._hooks={},S(this,F,mm).call(this,s(this,Di),e.request.props??{},e)},ek=async function(e,...t){S(this,F,Ld).call(this,e,...t),await Promise.all(t.map(async i=>{if(!i.async)throw new Error("You can't mix main and other queues in one batch. This is likely a platform bug. Please file an issue in the Discord for someone to help! https://discord.com/channels/1050224141732687912/1115441897079574620");await S(this,F,cm).call(this,e,i)}))},cm=async function(e,t){let i=e._hooks[t.hook];if(i?.onUIEvent)try{await i.onUIEvent(t,e)}catch(n){throw Fd(n)?s(this,F,me)&&console.error("Server call required",n):console.error("Error in event handler",n),n}else await e.handleUndeliveredEvent(t)},tk=async function(e,...t){for(let i of t)s(this,F,me)&&console.log("[blocks] handling main queue event",i),s(this,F,me)&&console.log("[blocks] before",e._state),S(this,F,Ld).call(this,e,i),await S(this,F,cm).call(this,e,i),s(this,F,me)&&console.log("[blocks] after",e._state);S(this,F,Ld).call(this,e)},mm=function(e,t,i){s(this,F,me)&&console.debug("[blocks] renderRoot"),i._generated={},ke=i,this._latestRenderContext=i;try{let n=S(this,F,pm).call(this,e,t,i);if(n.length!==1)throw new Error(`There can only be one root element, received: ${n.length}. Please wrap these elements in a <vstack></vstack> or <hstack></hstack> to continue. Fragments cannot be used as a root element.`);let o=n[0];if(o==="[object Promise]")throw new Error('Root elements cannot be async. To use data from an async endpoint, please use "const [data] = useState(async () => {/** your async code */})".');if(typeof o=="string")throw new Error("The root element must return a valid block, not a string. Try wrapping the element in a <text>your content</text> tag to continue.");return i._latestRenderContent=o,o}catch(n){if(n instanceof wr)return;throw n}finally{ke=null}},pm=function(e,t,i){i.push({namespace:e.name||"anonymous",...t});try{let n=e(t,i.devvitContext);if(n instanceof Promise)throw new Error(`Components (found: ${e.name??"unknown component"}) cannot be async. To use data from an async endpoint, please use "const [data] = useState(async () => {/** your async code */})".`);return S(this,F,gm).call(this,n,i)}finally{i.pop()}},Dd=function(e,t){return e=e.flat(1/0),e.flatMap((i,n)=>(i&&typeof i=="object"&&"props"in i&&(i.props?.key||(i.props=i.props??{},i.props.key=`${n}`)),S(this,F,gm).call(this,i,t)))},gm=function(e,t){if(Array.isArray(e))return S(this,F,Dd).call(this,e,t);if(bR(e))if(e.type===void 0)try{return t.push({namespace:"fragment",...e.props}),S(this,F,Dd).call(this,e.children,t)}finally{t.pop()}else if(typeof e.type=="function"){let i={...e.props,children:e.children.flat(1/0)};return S(this,F,pm).call(this,e.type,i,t)}else try{t.push({namespace:e.type,...e.props});let i=S(this,F,Dd).call(this,e.children,t),n=S(this,F,rk).call(this,e.props??{});return[{type:e.type,children:i,props:n}]}finally{t.pop()}else return[(e??"").toString()]},rk=function(e){let t={};for(let i in e)if(!(typeof e[i]>"u"))if(typeof e[i]=="function"){let n=Je({namespace:i,key:!1,initializer:({hookId:o})=>({hookId:o,state:null,onUIEvent:a=>{if(a.userAction)return e[i](a.userAction.data);if(a.webView?.postMessage)return e[i](a.webView.postMessage.message)}})});t[i]=n.hookId,"captureHookRef"in e[i]&&e[i].captureHookRef()}else{let n=JSON.parse(JSON.stringify(e[i]));n!=null&&(t[i]=n)}return t};function bR(r){return typeof r=="object"&&r!=null&&"type"in r}var ik=r=>{let e=Number(r.trim().split(".").pop());return isNaN(e)?void 0:e},nk=r=>{let[e,t,i]=r.trim().split(";");if(!e||!t||!i){console.warn(`Received a malformed devvit-user-agent! Received: '${r}'`);return}if(e!=="Reddit"){console.warn(`Received unknown company name in user agent! Received: '${r}'`);return}if(t==="iOS"){let n=ik(i);if(n===void 0){console.warn(`Could not parse version number from user agent! Received: '${r}'`);return}return{company:"Reddit",platform:"iOS",rawVersion:i,versionNumber:n}}if(t==="Android"){let n=ik(i);if(n===void 0){console.warn(`Could not parse version number from user agent! Received: '${r}'`);return}return{company:"Reddit",platform:"Android",rawVersion:i,versionNumber:n}}if(t==="Shreddit")return{company:"Reddit",platform:"Shreddit",rawVersion:i};if(t==="Play")return{company:"Reddit",platform:"Play",rawVersion:i};console.warn("Received unknown platform:",t)},sk=r=>r?r.platform==="Android"?r.versionNumber<1875012:r.platform==="iOS"?r.versionNumber<614973:!1:(console.warn(`Could not parse devvit-user-agent! Received: '${JSON.stringify(r)}'`),!1),kR=r=>{switch(r){case"Android":return"https://play.google.com/store/apps/details?id=com.reddit.frontpage";case"iOS":return"https://apps.apple.com/us/app/reddit/id1064216828";case"Play":case"Shreddit":break;default:console.error(`No upgrade link for platform: ${r}`)}},SR=({platform:r},e)=>u.createElement("blocks",null,u.createElement("vstack",{alignment:"middle center",height:100,width:100},u.createElement("vstack",{maxWidth:"300px",gap:"large",alignment:"middle center"},u.createElement("vstack",{gap:"medium",alignment:"middle center"},u.createElement("image",{imageHeight:100,imageWidth:100,url:"https://i.redd.it/p1vmc5ulmpib1.png"}),u.createElement("text",{size:"large",weight:"bold",wrap:!0,alignment:"center"},"Uh oh, the app you're trying to use requires the latest version of Reddit. Please upgrade your app to continue.")),u.createElement("hstack",{alignment:"middle center"},u.createElement("button",{onPress:()=>{let t=kR(r);t?e.ui.navigateTo(t):console.warn("No upgrade link found for platform:",r)}},"Upgrade"))))),ok=r=>()=>u.createElement(SR,{platform:r});var PR=()=>u.createElement("vstack",{alignment:"center middle",width:"100%",height:"100%"},u.createElement("text",null,"This feature is not available yet")),CR=[[_d,_d.methods.renderPostContent,(r,e)=>u.customPostType?.render(e)??null],[_d,_d.methods.renderPostComposer,(r,e)=>u.createElement(PR,null)]];function wR(r){return async(e,t)=>{let i=nk(t["devvit-user-agent"]?.values?.[0]??"");if(i&&sk(i)){let o=new Fr(ok(i.platform));return ak.fromJSON(await o.handle(e,t))}let n=new Fr(r);return ak.fromJSON(await n.handle(e,t))}}function dk(r){for(let[e,t,i]of CR)r.provides(e),M(t.name,wR(i))}var Ni,Fs,_i,Tr,Ar,Hi,qi,Er,Gt,Ts,As,Rr,G,N=class N extends Ya{static configure(e){d(this,_i,{...s(this,_i),...e}),gt(e.http)&&this.use(C.HTTPDefinition),(gt(e.kvStore)||gt(e.redis))&&(this.use(C.KVStoreDefinition),this.use(C.RedisAPIDefinition)),gt(e.media)&&this.use(C.MediaServiceDefinition),gt(e.modLog)&&this.use(C.ModlogDefinition),gt(e.redditAPI)&&(this.use(C.FlairDefinition),this.use(C.GraphQLDefinition),this.use(C.LinksAndCommentsDefinition),this.use(C.ListingsDefinition),this.use(C.ModerationDefinition),this.use(C.ModNoteDefinition),this.use(C.NewModmailDefinition),this.use(C.PrivateMessagesDefinition),this.use(C.SubredditsDefinition),this.use(C.UsersDefinition),this.use(C.WidgetsDefinition),this.use(C.WikiDefinition)),gt(e.realtime)&&this.use(C.RealtimeDefinition)}static addMenuItem(e){s(this,qi).push(e)}static addCustomPostType(e){d(this,Tr,e)}static createForm(e,t){let i=`form.${s(this,Ar).size}`;return s(this,Ar).set(i,{form:e,onSubmit:t}),i}static addSchedulerJob(e){if(s(this,G)[C.SchedulerDefinition.fullName]||this.use(C.SchedulerDefinition),s(this,Er).has(e.name))throw new Error(`Job ${e.name} is already defined`);s(this,Er).set(e.name,e.onRun)}static addSettings(e){gr(e);let t=e.filter(n=>n.type==="group"||!n.scope||n.scope==="installation"),i=e.filter(n=>n.type!=="group"&&n.scope==="app");t.length>0&&d(this,Hi,t),i.length>0&&d(this,Ni,i),s(this,G)[C.SettingsDefinition.fullName]||this.use(C.SettingsDefinition)}static addTrigger(e){if("events"in e){for(let t of e.events)this.addTrigger({event:t,onEvent:(i,n)=>e.onEvent(i,n)});return this}return s(this,Gt).has(e.event)?s(this,Gt).get(e.event)?.push(e.onEvent):s(this,Gt).set(e.event,[e.onEvent]),N}static provide(e){s(this,As).push(e)}static use(e,t){s(this,Rr)[e.fullName]={def:e,options:t??{},handler:void 0};let i={};for(let n of Object.values(e.methods))i[n.name]=(o,a)=>s(this,Rr)[e.fullName].handler?.[n.name]?.(n.requestType?.fromPartial(o??{}),a);return s(this,G)[e.fullName]=i,i}static get redditAPIPlugins(){if(!gt(s(this,_i).redditAPI))throw new Error("Reddit API is not enabled. You can enable it by passing `redditAPI: true` to `Devvit.configure`.");return{Flair:s(this,G)[C.FlairDefinition.fullName],GraphQL:s(this,G)[C.GraphQLDefinition.fullName],LinksAndComments:s(this,G)[C.LinksAndCommentsDefinition.fullName],Listings:s(this,G)[C.ListingsDefinition.fullName],Moderation:s(this,G)[C.ModerationDefinition.fullName],ModNote:s(this,G)[C.ModNoteDefinition.fullName],NewModmail:s(this,G)[C.NewModmailDefinition.fullName],PrivateMessages:s(this,G)[C.PrivateMessagesDefinition.fullName],Subreddits:s(this,G)[C.SubredditsDefinition.fullName],Users:s(this,G)[C.UsersDefinition.fullName],Widgets:s(this,G)[C.WidgetsDefinition.fullName],Wiki:s(this,G)[C.WikiDefinition.fullName]}}static get modLogPlugin(){let e=s(this,G)[C.ModlogDefinition.fullName];if(!e)throw new Error("ModLog is not enabled. You can enable it by passing `modLog: true` to `Devvit.configure`");return e}static get schedulerPlugin(){let e=s(this,G)[C.SchedulerDefinition.fullName];if(!e)throw new Error("Scheduler is not enabled. You can enable it by calling `Devvit.addSchedulerJob` at the top level of your app.");return e}static get kvStorePlugin(){let e=s(this,G)[C.KVStoreDefinition.fullName];if(!e)throw new Error("Key Value Store is not enabled. You can enable it by passing `kvStore: true` to `Devvit.configure`");return e}static get redisPlugin(){let e=s(this,G)[C.RedisAPIDefinition.fullName];if(!e)throw new Error("Redis is not enabled. You can enable it by passing `redis: true` to `Devvit.configure`");return e}static get mediaPlugin(){let e=s(this,G)[C.MediaServiceDefinition.fullName];if(!e)throw new Error("MediaService is not enabled. You can enable it by passing `media: true` to `Devvit.configure`");return e}static get settingsPlugin(){let e=s(this,G)[C.SettingsDefinition.fullName];if(!e)throw new Error("Settings must first be configured with `Devvit.addSettings()` before they can be accessed");return e}static get realtimePlugin(){let e=s(this,G)[C.RealtimeDefinition.fullName];if(!e)throw new Error("Realtime is not enabled. You can enable it by passing `realtime: true` to `Devvit.configure`");return e}static get menuItems(){return s(this,qi)}static get customPostType(){return s(this,Tr)}static get formDefinitions(){return s(this,Ar)}static get scheduledJobHandlers(){return s(this,Er)}static get installationSettings(){return s(this,Hi)}static get appSettings(){return s(this,Ni)}static get triggerOnEventHandlers(){return s(this,Gt)}static get assets(){return s(this,Fs)}static get webViewAssets(){return s(this,Ts)}constructor(e){super(e),d(N,Fs,e.assets??{}),d(N,Ts,e.webviewAssets??{});for(let t in s(N,Rr)){let i=s(N,Rr)[t];i.handler=e.use(i.def,i.options)}s(N,qi).length>0&&Uy(e),s(N,Er).size>0&&Ly(e),s(N,Tr)&&(Oy(e),dk(e)),(s(N,Tr)||s(N,Ar).size>0)&&Ob(e),s(N,Hi)&&By(e),s(N,Ni)&&py(e),s(N,Gt).size>0&&Dy(e);for(let t of s(N,As))e.provides(t)}};Ni=new WeakMap,Fs=new WeakMap,_i=new WeakMap,Tr=new WeakMap,Ar=new WeakMap,Hi=new WeakMap,qi=new WeakMap,Er=new WeakMap,Gt=new WeakMap,Ts=new WeakMap,As=new WeakMap,Rr=new WeakMap,G=new WeakMap,N.debug={},l(N,Ni),l(N,Fs,{}),l(N,_i,{}),l(N,Tr),l(N,Ar,new Map),l(N,Hi),l(N,qi,[]),l(N,Er,new Map),l(N,Gt,new Map),l(N,Ts,{}),l(N,As,[]),l(N,Rr,{}),l(N,G,{});var u=N;(e=>{function r(t,i,...n){return{type:t,props:i,children:n}}e.createElement=r})(u||(u={}));function Y(r){let e=Object.getOwnPropertyDescriptors(r.constructor.prototype);for(let[t,i]of Object.entries(e))i.get&&Object.defineProperty(r,t,{...i,enumerable:!0})}var hm;(function(r){r[r.bold=1]="bold",r[r.italic=2]="italic",r[r.underline=4]="underline",r[r.strikethrough=8]="strikethrough",r[r.subscript=16]="subscript",r[r.superscript=32]="superscript",r[r.monospace=64]="monospace"})(hm||(hm={}));var lk="text",uk="raw",ck="br",mk="link",pk="c/",gk="p/",hk="r/",fk="u/",vk="@",yk="spoilertext",bk="par",kk="h",Sk="hr",Pk="blockquote",Ck="code",wk="li",Ik="list",xk="L",Fk="R",Tk="C",Ak="table",Ek="embed",Rk="img",Ok="gif",Bk="video";function Mk(r){return{e:Ok,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function Uk(r,e){let t={},i=[];return Object.assign(t,Es(t,i),Rs(t,i),Os(t,i),Us(t,i),Ls(t,i),Ds(t,i)),e(t),{e:Pk,c:i,...r.author&&{a:r.author}}}function Lk(r,e){let t={},i=[];return Object.assign(t,vm(t,i)),e(t),{e:Ck,c:i,...r.language&&{l:r.language}}}function Dk(r){return{e:pk,t:r.permalink}}function Nk(r,e){let t={},i=[];return Object.assign(t,vm(t,i),Ms(t,i)),e(t),{e:kk,l:r.level,c:i}}function _k(r){return{e:Ek,u:r.sourceUrl,c:r.contentUrl,x:r.width,y:r.height}}function Hk(){return{e:Sk}}function qk(r){return{e:Rk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function jk(){return{e:ck}}function Wk(r){return{e:mk,t:r.text,u:r.url,...r.formatting&&{f:r.formatting},...r.tooltip&&{a:r.tooltip}}}function Gk(r,e){let t={},i=[];return Object.assign(t,oS(t,i)),e(t),{e:Ik,o:r.ordered,c:i}}function Vk(r){let e={},t=[];return Object.assign(e,Es(e,t),Rs(e,t),Os(e,t),Hd(e,t),Us(e,t),Ls(e,t),Ds(e,t)),r(e),{e:wk,c:t}}function zk(r){let e={},t=[];return Object.assign(e,qd(e,t),Ms(e,t),fm(e,t),ym(e,t),Bs(e,t)),r(e),{e:bk,c:t}}function Jk(r){return{e:gk,t:r.permalink}}function $k(r){return{e:uk,t:r}}function Kk(r){let e={},t=[];return Object.assign(e,qd(e,t),Ms(e,t),fm(e,t)),r(e),{e:yk,c:t}}function Xk(r){return{e:hk,t:r.subredditName,l:r.showPrefix}}function Zk(r){let e={},t=[],i=[];return Object.assign(e,aS(e,t,i)),r(e),{e:Ak,h:t,c:i}}function Qk(r){let[e,t]=sS();return r(e),{c:t}}function Yk(r,e){let[t,i]=sS();e(t);let n;switch(r.columnAlignment){case"left":n=xk;break;case"right":n=Fk;break;case"center":n=Tk;break}return{...n&&{a:n},...i&&{c:i}}}function eS(r){let e={},t=[];return Object.assign(e,dS(e,t)),r(e),t}function tS(r){return{e:lk,t:r.text,...r.formatting&&{f:r.formatting}}}function rS(r){return{e:fk,t:r.username,l:r.showPrefix}}function iS(r){return{e:vk,t:r.username,l:r.showPrefix}}function nS(r){return{e:Bk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur},...r.thumbnail&&{p:r.thumbnail},...r.convertToGif&&{gifify:r.convertToGif}}}function sS(){let r={},e=[];return Object.assign(r,qd(r,e),Ms(r,e),ym(r,e),Bs(r,e)),[r,e]}function Es(r,e){return{blockQuote(t,i){return e.push(Uk(t,i)),r}}}function Rs(r,e){return{codeBlock(t,i){return e.push(Lk(t,i)),r}}}function lS(r,e){return{embed(t){return e.push(_k(t)),r}}}function Os(r,e){return{heading(t,i){return e.push(Nk(t,i)),r}}}function Hd(r,e){return{horizontalRule(){return e.push(Hk()),r}}}function Bs(r,e){return{image(t){return e.push(qk(t)),r},animatedImage(t){return e.push(Mk(t)),r}}}function fm(r,e){return{linebreak(){return e.push(jk()),r}}}function Ms(r,e){return{link(t){return e.push(Wk(t)),r},commentLink(t){return e.push(Dk(t)),r},postLink(t){return e.push(Jk(t)),r},subredditLink(t){return e.push(Xk(t)),r},userLink(t){return e.push(rS(t)),r},userMention(t){return e.push(iS(t)),r}}}function Us(r,e){return{list(t,i){return e.push(Gk(t,i)),r}}}function oS(r,e){return{item(t){return e.push(Vk(t)),r}}}function Ls(r,e){return{paragraph(t){return e.push(zk(t)),r}}}function vm(r,e){return{rawText(t){return e.push($k(t)),r}}}function ym(r,e){return{spoiler(t){return e.push(Kk(t)),r}}}function aS(r,e,t){return{headerCell(i,n){return e.push(Yk(i,n)),r},row(i){return t.push(eS(i)),r}}}function Ds(r,e){return{table(t){return e.push(Zk(t)),r}}}function dS(r,e){return{cell(t){return e.push(Qk(t)),r}}}function qd(r,e){return{text(t){return e.push(tS(t)),r}}}function uS(r,e){return{video(t){return e.push(nS(t)),r}}}var IR=function(r,e,t,i,n){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?n.call(r,t):n?n.value=t:e.set(r,t),t},xR=function(r,e,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(r):i?i.value:e.get(r)},jd,Or=class{constructor(){jd.set(this,void 0);let e=[];Object.assign(this,Ls(this,e),Os(this,e),Hd(this,e),Es(this,e),Rs(this,e),lS(this,e),Us(this,e),Ds(this,e),Bs(this,e),uS(this,e)),IR(this,jd,{document:e},"f")}build(){return JSON.stringify(xR(this,jd,"f"))}paragraph(e){return this}heading(e,t){return this}horizontalRule(){return this}blockQuote(e,t){return this}codeBlock(e,t){return this}embed(e){return this}list(e,t){return this}table(e){return this}image(e){return this}animatedImage(e){return this}video(e){return this}};jd=new WeakMap;function ji(r){let e;return r instanceof Or?e=r.build():typeof r=="object"?e=JSON.stringify(r):e=r,e}var cS=100,mS=1/0,Br,Mr,Vt,Wi,Gi,Wd,V=class{constructor(e){l(this,Gi);l(this,Br);l(this,Mr);l(this,Vt);l(this,Wi,!1);this.pageSize=cS;this.limit=mS;this.children=[];Y(this),this._fetch=e.fetch,this.pageSize=e.pageSize??cS,this.limit=e.limit??mS,d(this,Mr,e.after),d(this,Br,e.before),d(this,Vt,e.more),e.children&&(this.children=e.children)}get hasMore(){return!s(this,Wi)||!!(s(this,Mr)||s(this,Br)||s(this,Vt))}async*[Symbol.asyncIterator](){let e=0;for(;;){if(e===this.children.length)if(this.hasMore){if((await S(this,Gi,Wd).call(this)).length===0)break}else break;if(yield this.children[e],e++,e===this.limit)break}}setMore(e){d(this,Vt,e)}preventInitialFetch(){d(this,Wi,!0)}async all(){for(;this.hasMore&&this.children.length<this.limit;)await S(this,Gi,Wd).call(this);return this.children.slice(0,this.limit)}async get(e){let t=e<=this.limit?e:this.limit;for(;this.hasMore&&this.children.length<t;)await S(this,Gi,Wd).call(this);return this.children.slice(0,t)}};Br=new WeakMap,Mr=new WeakMap,Vt=new WeakMap,Wi=new WeakMap,Gi=new WeakSet,Wd=async function(){if(!this.hasMore)throw new Error("This listing does not have any more items to load.");let{children:e,before:t,after:i,more:n}=await this._fetch({before:s(this,Br),after:s(this,Mr),limit:this.pageSize,more:s(this,Vt)});return this.children.push(...e),d(this,Br,t),d(this,Mr,i),d(this,Vt,n),d(this,Wi,!0),e};var Ns,bm,Me=class{constructor(){}static get(e,t){let i=u.redditAPIPlugins.ModNote;return new V({hasMore:!0,before:e.before,limit:e.limit,pageSize:e.limit,fetch:async n=>{let o=await i.GetNotes({subreddit:e.subreddit,user:e.user,filter:e.filter,before:n.before,limit:n.limit},t);return{children:o.modNotes?.map(a=>S(this,Ns,bm).call(this,a))||[],before:o.hasNextPage?o.endCursor:void 0,hasMore:o.hasNextPage}}})}static async delete(e,t){let i=u.redditAPIPlugins.ModNote,{deleted:n}=await i.DeleteNotes(e,t);return!!n}static async add(e,t){let n=await u.redditAPIPlugins.ModNote.PostNotes(e,t);if(!n?.created)throw new Error("Failed to create mod note");return S(this,Ns,bm).call(this,n.created)}static async addRemovalNote(e,t){await u.redditAPIPlugins.ModNote.PostRemovalNote(e,t)}};Ns=new WeakSet,bm=function(e){return v(e.id,"Mod note ID is null or undefined"),v(e.createdAt,"Mod note createdAt is null or undefined"),v(e.type,"Mod note type is null or undefined"),v(e.subreddit,"Mod note subreddit is null or undefined"),v(e.subredditId,"Mod note subredditId is null or undefined"),v(e.operator,"Mod note operator is null or undefined"),v(e.operatorId,"Mod note operatorId is null or undefined"),v(e.user,"Mod note user is null or undefined"),v(e.userId,"Mod note userId is null or undefined"),v(e.userNoteData,"Mod note userNote is null or undefined"),v(e.modActionData,"Mod note modAction is null or undefined"),{id:e.id,user:{id:oe(e.userId??""),name:e.user},subreddit:{id:ie(e.subredditId??""),name:e.subreddit},operator:{id:oe(e.operatorId??""),name:e.operator},createdAt:new Date(e.createdAt*1e3),userNote:{note:e.userNoteData?.note,redditId:e.userNoteData?.redditId?Re(e.userNoteData?.redditId):void 0,label:e.userNoteData?.label},type:e.type}},l(Me,Ns);var re=class{static queryWithQueryString(e,t){return u.redditAPIPlugins.GraphQL.Query({query:e},t)}static query(e,t,i,n){return u.redditAPIPlugins.GraphQL.PersistedQuery({operationName:e,id:t,variables:i},n)}};var pS=["all","wiki","posts","access","mail","config","flair","channels","chat_config","chat_operator","community_chat"];function FR(r,e){return e.map(t=>(r.includes(t)?"+":"-")+t).join(",")}function km(r){return FR(r,pS)}function gS(r){return r.filter(e=>pS.includes(e))}var TR=(t=>(t.User="USER_FLAIR",t.Post="LINK_FLAIR",t))(TR||{}),Lr,Vi,zi,Ji,$i,Ki,Xi,Zi,Qi,Yi,en,Gd,Ke=class Ke{constructor(e,t,i){l(this,Lr);l(this,Vi);l(this,zi);l(this,Ji);l(this,$i);l(this,Ki);l(this,Xi);l(this,Zi);l(this,Qi);l(this,Yi);Y(this),v(e.id),v(e.text),d(this,Lr,e.id),d(this,Vi,t),d(this,zi,e.text),d(this,Ji,AR(e.textColor)),d(this,$i,ER(e.backgroundColor)),d(this,Ki,RR(e.allowableContent)),d(this,Xi,e.modOnly),d(this,Zi,e.maxEmojis),d(this,Qi,e.textEditable),d(this,Yi,i)}get id(){return s(this,Lr)}get text(){return s(this,zi)}get textColor(){return s(this,Ji)}get backgroundColor(){return s(this,$i)}get allowableContent(){return s(this,Ki)}get modOnly(){return s(this,Xi)}get maxEmojis(){return s(this,Zi)}get allowUserEdits(){return s(this,Qi)}async delete(){return Ke.deleteFlairTemplate(s(this,Lr),s(this,Vi),s(this,Yi))}async edit(e){return Ke.editFlairTemplate({id:s(this,Lr),subredditName:s(this,Vi),text:e.text??s(this,zi),allowableContent:e.allowableContent??s(this,Ki),backgroundColor:e.backgroundColor??s(this,$i),maxEmojis:e.maxEmojis??s(this,Zi),modOnly:e.modOnly??s(this,Xi),textColor:e.textColor??s(this,Ji),allowUserEdits:e.allowUserEdits??s(this,Qi)},s(this,Yi))}static async createPostFlairTemplate(e,t){var i;return S(i=Ke,en,Gd).call(i,{...e,flairType:"LINK_FLAIR"},t)}static async createUserFlairTemplate(e,t){var i;return S(i=Ke,en,Gd).call(i,{...e,flairType:"USER_FLAIR"},t)}static async editFlairTemplate(e,t){var i;return S(i=Ke,en,Gd).call(i,e,t)}static async getPostFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.LinkFlair({subreddit:e},t)).flair?.map(o=>new Ke(o,e,t))||[]}static async getUserFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.UserFlair({subreddit:e},t)).flair?.map(o=>new Ke(o,e,t))||[]}static async deleteFlairTemplate(e,t,i){await u.redditAPIPlugins.Flair.DeleteFlairTemplate({subreddit:e,flairTemplateId:t},i)}};Lr=new WeakMap,Vi=new WeakMap,zi=new WeakMap,Ji=new WeakMap,$i=new WeakMap,Ki=new WeakMap,Xi=new WeakMap,Zi=new WeakMap,Qi=new WeakMap,Yi=new WeakMap,en=new WeakSet,Gd=async function(e,t){let{subredditName:i,allowableContent:n="all",backgroundColor:o="transparent",flairType:a="",maxEmojis:c=10,modOnly:p=!1,text:g,textColor:f="dark",allowUserEdits:m=!1,id:y=""}=e;if(p&&m)throw new Error("Cannot have a mod only flair that is editable by users");let P=await u.redditAPIPlugins.Flair.FlairTemplate({subreddit:i,allowableContent:n,backgroundColor:o,flairType:a,maxEmojis:c,modOnly:p,text:g,textColor:f,textEditable:m,flairTemplateId:y,cssClass:"",overrideCss:!1},t);return new Ke(P,i,t)},l(Ke,en);var ue=Ke;function _s(r){return{flairCssClass:r.flairCssClass,user:r.user,flairText:r.flairText}}var zt,Sm,Pm,Ur=class Ur{static async getUserFlairBySubreddit(e,t){return u.redditAPIPlugins.Flair.FlairList(e,t)}static setUserFlair(e,t){var i;return S(i=Ur,zt,Sm).call(i,e,t)}static setPostFlair(e,t){var i;return S(i=Ur,zt,Sm).call(i,{...e,postId:ve(e.postId)},t)}static async removePostFlair(e,t,i){var n;return S(n=Ur,zt,Pm).call(n,e,t,void 0,i)}static async removeUserFlair(e,t,i){var n;return S(n=Ur,zt,Pm).call(n,e,void 0,t,i)}};zt=new WeakSet,Sm=async function(e,t){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e.subredditName,flairTemplateId:e.flairTemplateId??"",text:e.text??"",name:e.username,link:e.postId,backgroundColor:e.backgroundColor??"",textColor:e.textColor??"dark",cssClass:e.cssClass??"",returnRtjson:"none"},t)},Pm=async function(e,t,i,n){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e,name:i??"",link:t??"",flairTemplateId:"",backgroundColor:"",text:"",textColor:"",cssClass:"",returnRtjson:"none"},n)},l(Ur,zt);var Ue=Ur;function AR(r){if(v(r,"Flair text color is required"),r==="light"||r==="dark")return r;throw new Error(`Invalid flair text color: ${r}`)}function ER(r){if(!r||r.length===0||r==="transparent")return"transparent";if(/^#([A-Fa-f0-9]{6})$/.test(r))return r;throw new Error(`Invalid flair background color: ${r}`)}function RR(r){if(r==="all"||r==="text"||r==="emoji")return r;throw new Error(`Invalid allowable content: ${r}`)}import"@devvit/protos";import{Block as yS,UIResponse as HR}from"@devvit/protos";var Im=Ln(vS(),1);var wm=r=>"text"in r?r.text:_R(r.richtext),_R=r=>r instanceof Or?r.build():typeof r=="object"?JSON.stringify(r):r;var qR={NONE:0,BLOCKS:1,UNRECOGNIZED:-1},tn,qs,rn,js,nn,Ws,Gs,Vs,Nr,zs,Js,$s,Ks,Xs,Zs,Jt,Qs,Ys,_r,sn,$t,on,an,dn,Kt,Xt,Zt,ln,Qt,Yt,er,bt,eo,to,un,cn,D,_=class _{constructor(e,t){l(this,tn);l(this,qs);l(this,rn);l(this,js);l(this,nn);l(this,Ws);l(this,Gs);l(this,Vs);l(this,Nr);l(this,zs);l(this,Js);l(this,$s);l(this,Ks);l(this,Xs);l(this,Zs);l(this,Jt);l(this,Qs);l(this,Ys);l(this,_r);l(this,sn);l(this,$t);l(this,on);l(this,an);l(this,dn);l(this,Kt);l(this,Xt);l(this,Zt);l(this,ln);l(this,Qt);l(this,Yt);l(this,er);l(this,bt);l(this,eo);l(this,to);l(this,un);l(this,cn);l(this,D);Y(this),v(e.id,"Post is missing id"),v(e.title,"Post is missing title"),v(e.createdUtc,"Post is missing created date"),v(e.author,"Post is missing author name"),v(e.subreddit,"Post is missing subreddit name"),v(e.subredditId,"Post is missing subreddit id"),v(e.url,"Post is missing url"),v(e.permalink,"Post is missing permalink"),d(this,tn,ve(`t3_${e.id}`)),d(this,rn,e.author),d(this,qs,e.authorFullname?oe(e.authorFullname):void 0),d(this,nn,ie(e.subredditId)),d(this,Ws,e.subreddit),d(this,$s,e.score??0),d(this,Ks,e.numComments??0),d(this,Xs,e.numReports??0);let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,js,i),d(this,Vs,e.title),d(this,Nr,e.selftext),d(this,zs,e.selftextHtml),d(this,Js,e.url),d(this,Gs,e.permalink),e.thumbnail&&e.thumbnail!=="self"&&e.thumbnail!=="nsfw"&&e.thumbnailHeight!=null&&e.thumbnailWidth!=null&&d(this,Zs,{url:e.thumbnail,height:e.thumbnailHeight,width:e.thumbnailWidth}),d(this,Jt,e.approved??!1),d(this,Qs,e.approvedAtUtc??0),d(this,Ys,e.bannedAtUtc??0),d(this,$t,e.removed??!1),d(this,on,e.removedBy),d(this,an,e.removedByCategory),d(this,_r,e.spam??!1),d(this,sn,e.stickied??!1),d(this,dn,e.archived??!1),d(this,Kt,e.edited??!1),d(this,Xt,e.locked??!1),d(this,Zt,e.over18??!1),d(this,ln,e.quarantine??!1),d(this,Qt,e.spoiler),d(this,Yt,e.hidden??!1),d(this,er,e.ignoreReports??!1),d(this,bt,e.distinguished),d(this,to,e.secureMedia),d(this,un,(e.modReports??[]).map(([n])=>n)),d(this,cn,(e.userReports??[]).map(([n])=>n)),d(this,D,t),(e.linkFlairBackgroundColor||e.linkFlairCssClass||e.linkFlairText||e.linkFlairType||e.linkFlairTemplateId||e.linkFlairRichtext||e.linkFlairTextColor)&&d(this,eo,{backgroundColor:e.linkFlairBackgroundColor,cssClass:e.linkFlairCssClass,text:e.linkFlairText,type:e.linkFlairType,templateId:e.linkFlairTemplateId,richtext:(e.linkFlairRichtext??[]).map(({e:n,t:o,a,u:c})=>({elementType:n,text:o,emojiRef:a,url:c})),textColor:e.linkFlairTextColor})}get id(){return s(this,tn)}get authorId(){return s(this,qs)}get authorName(){return s(this,rn)}get subredditId(){return s(this,nn)}get subredditName(){return s(this,Ws)}get permalink(){return s(this,Gs)}get title(){return s(this,Vs)}get body(){return s(this,Nr)}get bodyHtml(){return s(this,zs)}get url(){return s(this,Js)}get thumbnail(){return s(this,Zs)}get createdAt(){return s(this,js)}get score(){return s(this,$s)}get numberOfComments(){return s(this,Ks)}get numberOfReports(){return s(this,Xs)}get approved(){return s(this,Jt)}get approvedAtUtc(){return s(this,Qs)}get bannedAtUtc(){return s(this,Ys)}get spam(){return s(this,_r)}get stickied(){return s(this,sn)}get removed(){return s(this,$t)}get removedBy(){return s(this,on)}get removedByCategory(){return s(this,an)}get archived(){return s(this,dn)}get edited(){return s(this,Kt)}get locked(){return s(this,Xt)}get nsfw(){return s(this,Zt)}get quarantined(){return s(this,ln)}get spoiler(){return s(this,Qt)}get hidden(){return s(this,Yt)}get ignoringReports(){return s(this,er)}get distinguishedBy(){return s(this,bt)}get comments(){return te.getComments({postId:this.id},s(this,D))}get flair(){return s(this,eo)}get secureMedia(){return s(this,to)}get userReportReasons(){return s(this,cn)}get modReportReasons(){return s(this,un)}toJSON(){return{id:this.id,authorId:this.authorId,authorName:this.authorName,subredditId:this.subredditId,subredditName:this.subredditName,permalink:this.permalink,title:this.title,body:this.body,bodyHtml:this.bodyHtml,url:this.url,thumbnail:this.thumbnail,score:this.score,numberOfComments:this.numberOfComments,numberOfReports:this.numberOfReports,createdAt:this.createdAt,approved:this.approved,spam:this.spam,stickied:this.stickied,removed:this.removed,removedBy:s(this,on),removedByCategory:s(this,an),archived:this.archived,edited:this.edited,locked:this.locked,nsfw:this.nsfw,quarantined:this.quarantined,spoiler:this.spoiler,hidden:this.hidden,ignoringReports:this.ignoringReports,distinguishedBy:this.distinguishedBy,flair:this.flair,secureMedia:this.secureMedia,modReportReasons:s(this,un),userReportReasons:s(this,cn)}}isApproved(){return s(this,Jt)}isSpam(){return s(this,_r)}isStickied(){return s(this,sn)}isRemoved(){return s(this,$t)}isArchived(){return s(this,dn)}isEdited(){return s(this,Kt)}isLocked(){return s(this,Xt)}isNsfw(){return s(this,Zt)}isQuarantined(){return s(this,ln)}isSpoiler(){return s(this,Qt)}isHidden(){return s(this,Yt)}isIgnoringReports(){return s(this,er)}isDistinguishedBy(){return s(this,bt)}async edit(e){let t=await _.edit({id:this.id,...e},s(this,D));d(this,Nr,t.body),d(this,Kt,t.edited)}async setSuggestedCommentSort(e){await _.setSuggestedCommentSort({id:this.id,subredditId:s(this,nn),suggestedSort:e},s(this,D))}async setCustomPostPreview(e){await _.setCustomPostPreview({id:this.id,ui:e},s(this,D))}async setTextFallback(e){let t=await _.setTextFallback(e,this.id,s(this,D));d(this,Nr,t.body),d(this,Kt,t.edited)}async addComment(e){return te.submit({id:this.id,...e},s(this,D))}async delete(){return _.delete(this.id,s(this,D))}async approve(){await _.approve(this.id,s(this,D)),d(this,Jt,!0),d(this,$t,!1)}async remove(e=!1){await _.remove(this.id,e,s(this,D)),d(this,$t,!0),d(this,_r,e),d(this,Jt,!1)}async lock(){await _.lock(this.id,s(this,D)),d(this,Xt,!0)}async unlock(){await _.unlock(this.id,s(this,D)),d(this,Xt,!1)}async hide(){await _.hide(this.id,s(this,D)),d(this,Yt,!0)}async unhide(){await _.unhide(this.id,s(this,D)),d(this,Yt,!1)}async markAsNsfw(){await _.markAsNsfw(this.id,s(this,D)),d(this,Zt,!0)}async unmarkAsNsfw(){await _.unmarkAsNsfw(this.id,s(this,D)),d(this,Zt,!1)}async markAsSpoiler(){await _.markAsSpoiler(this.id,s(this,D)),d(this,Qt,!0)}async unmarkAsSpoiler(){await _.unmarkAsSpoiler(this.id,s(this,D)),d(this,Qt,!1)}async sticky(e){await _.sticky(this.id,e,s(this,D))}async unsticky(){await _.unsticky(this.id,s(this,D))}async distinguish(){let{distinguishedBy:e}=await _.distinguish(this.id,!1,s(this,D));d(this,bt,e)}async distinguishAsAdmin(){let{distinguishedBy:e}=await _.distinguish(this.id,!0,s(this,D));d(this,bt,e)}async undistinguish(){let{distinguishedBy:e}=await _.undistinguish(this.id,s(this,D));d(this,bt,e)}async ignoreReports(){await _.ignoreReports(this.id,s(this,D)),d(this,er,!0)}async unignoreReports(){await _.unignoreReports(this.id,s(this,D)),d(this,er,!1)}async getAuthor(){return w.getByUsername(s(this,rn),s(this,D))}async crosspost(e){return _.crosspost({...e,postId:this.id},s(this,D))}addRemovalNote(e){return Me.addRemovalNote({itemIds:[s(this,tn)],...e},s(this,D))}async getEnrichedThumbnail(){return jR({id:this.id},s(this,D))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=pr(e)?e:`t3_${e}`,o=await i.Info({subreddits:[],thingIds:[n]},t);if(!o.data?.children?.length)throw new Error("could not find post");let a=o.data.children[0];if(!a?.data)throw new Error("could not find post");return new _(a.data,t)}static async submit(e,t){let i=u.redditAPIPlugins.LinksAndComments,n;if("preview"in e){v(t,"Missing metadata in `SubmitPostOptions`");let c=await new pt(()=>e.preview,void 0,{},t,void 0).buildBlocksUI(),p=yS.encode(c).finish(),{textFallback:g,...f}=e,m=g?wm(g):"",y={kind:"custom",sr:e.subredditName,richtextJson:(0,Im.fromByteArray)(p),richtextFallback:m,...f};n=await i.SubmitCustomPost(y,t)}else n=await i.Submit({kind:"kind"in e?e.kind:"url"in e?"link":"self",sr:e.subredditName,richtextJson:"richtext"in e?ji(e.richtext):void 0,...e},t);if("kind"in e&&["image","video","videogif"].includes(e.kind)&&!n.json?.data?.id&&"url"in e)throw new Error(`Post of ${e.kind} type with ${e.url} is being created asynchronously and should be updated in the subreddit soon.`);if(!n.json?.data?.id||n.json?.errors?.length)throw new Error(`failed to submit post - either post ID is empty or request failed with errors: ${n.json?.errors}`);return _.getById(`t3_${n.json.data.id}`,t)}static async crosspost(e,t){let i=u.redditAPIPlugins.LinksAndComments,{postId:n,subredditName:o,...a}=e,c=await i.Submit({kind:"crosspost",sr:o,crosspostFullname:ve(n),...a},t);if(!c.json?.data?.id||c.json?.errors?.length)throw new Error("failed to crosspost post");return _.getById(`t3_${c.json.data.id}`,t)}static async edit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;if("richtext"in e&&(o=ji(e.richtext)),(await i.EditUserText({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t)).json?.errors?.length)throw new Error("Failed to edit post");return _.getById(n,t)}static async setSuggestedCommentSort(e,t){if(!(await re.query("SetSuggestedSort","cf6052acc7fefaa65b710625b81dba8041f258313aafe9730e2a3dc855e5d10d",{input:{subredditId:e.subredditId,postId:e.id,sort:e.suggestedSort}},t)).data?.setSuggestedSort?.ok)throw new Error("Failed to set suggested sort")}static async setCustomPostPreview(e,t){if(!t)throw new Error("Failed to set custom post preview. Metadata not found");let i=u.redditAPIPlugins.LinksAndComments,n=new Fr(e.ui),a=HR.fromJSON(await n.handle({events:[]},t)).blocks,c=(0,Im.fromByteArray)(yS.encode(a).finish());await i.SetCustomPostPreview({thingId:e.id,bodyType:qR.BLOCKS,blocksRenderContent:c},t)}static async setTextFallback(e,t,i){if(!("text"in e)&&!("richtext"in e))throw new Error(`No text fallback provided for post ${t}.`);let n=u.redditAPIPlugins.LinksAndComments,o=wm(e);if((await n.EditCustomPost({thingId:t,richtextFallback:o},i)).json?.errors?.length)throw new Error("Failed to set post text fallback");return _.getById(t,i)}static async delete(e,t){await u.redditAPIPlugins.LinksAndComments.Del({id:e},t)}static async approve(e,t){await u.redditAPIPlugins.Moderation.Approve({id:e},t)}static async remove(e,t=!1,i){await u.redditAPIPlugins.Moderation.Remove({id:e,spam:t},i)}static async hide(e,t){await u.redditAPIPlugins.LinksAndComments.Hide({id:e},t)}static async unhide(e,t){await u.redditAPIPlugins.LinksAndComments.Unhide({id:e},t)}static async markAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.MarkNSFW({id:e},t)}static async unmarkAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.UnmarkNSFW({id:e},t)}static async markAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Spoiler({id:e},t)}static async unmarkAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Unspoiler({id:e},t)}static async sticky(e,t,i){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!0,num:t},i)}static async unsticky(e,t){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!1},t)}static async lock(e,t){await u.redditAPIPlugins.LinksAndComments.Lock({id:e},t)}static async unlock(e,t){await u.redditAPIPlugins.LinksAndComments.Unlock({id:e},t)}static async distinguish(e,t,i){let a=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:t?"admin":"yes",sticky:!1},i)).json?.data?.things?.[0]?.data;return v(a),{distinguishedBy:a.distinguished}}static async undistinguish(e,t){let o=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:"no",sticky:!1},t)).json?.data?.things?.[0]?.data;return v(o),{distinguishedBy:o.distinguished}}static async ignoreReports(e,t){await u.redditAPIPlugins.Moderation.IgnoreReports({id:e},t)}static async unignoreReports(e,t){await u.redditAPIPlugins.Moderation.UnignoreReports({id:e},t)}static getControversialPosts(e={},t){return this.getSortedPosts({...e,sort:"controversial"},t)}static getTopPosts(e={},t){return this.getSortedPosts({...e,sort:"top"},t)}static getSortedPosts(e,t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Sort({show:"all",sort:e.sort,t:e.timeframe,subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getHotPosts(e={location:"GLOBAL"},t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Hot({g:e.location,show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getNewPosts(e,t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.New({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getRisingPosts(e,t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Rising({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getPostsByUser(e,t){let i=u.redditAPIPlugins.Users;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"submitted",...n},t);return Hs(o,t)}})}};tn=new WeakMap,qs=new WeakMap,rn=new WeakMap,js=new WeakMap,nn=new WeakMap,Ws=new WeakMap,Gs=new WeakMap,Vs=new WeakMap,Nr=new WeakMap,zs=new WeakMap,Js=new WeakMap,$s=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Jt=new WeakMap,Qs=new WeakMap,Ys=new WeakMap,_r=new WeakMap,sn=new WeakMap,$t=new WeakMap,on=new WeakMap,an=new WeakMap,dn=new WeakMap,Kt=new WeakMap,Xt=new WeakMap,Zt=new WeakMap,ln=new WeakMap,Qt=new WeakMap,Yt=new WeakMap,er=new WeakMap,bt=new WeakMap,eo=new WeakMap,to=new WeakMap,un=new WeakMap,cn=new WeakMap,D=new WeakMap;var z=_;function Hs(r,e){if(!r.data?.children)throw new Error("Listing response is missing children");return{children:r.data.children.map(i=>new z(i.data,e)),before:r.data.before,after:r.data.after}}async function jR(r,e){let o=(await re.query("GetThumbnailV2","81580ce4e23d748c5a59a1618489b559bf4518b6a73af41f345d8d074c8b2ce9",{id:r.id},e)).data?.postInfoById?.thumbnailV2;if(o){if(!o.image)return}else throw new Error("Failed to get thumbnail");return{attribution:o.attribution,image:{url:o.image.url,width:o.image.dimensions.width,height:o.image.dimensions.height},isObfuscatedDefault:o.isObfuscatedDefault,...o.obfuscatedImage&&{obfuscatedImage:{url:o.obfuscatedImage.url,width:o.obfuscatedImage.dimensions.width,height:o.obfuscatedImage.dimensions.height}}}}var WR=(q=>(q.Custom="CUSTOM",q.Reddit="REDDIT",q.Instagram="INSTAGRAM",q.Twitter="TWITTER",q.Tiktok="TIKTOK",q.Twitch="TWITCH",q.Facebook="FACEBOOK",q.Youtube="YOUTUBE",q.Tumblr="TUMBLR",q.Spotify="SPOTIFY",q.Soundcloud="SOUNDCLOUD",q.Beacons="BEACONS",q.Linktree="LINKTREE",q.Discord="DISCORD",q.Venmo="VENMO",q.CashApp="CASH_APP",q.Patreon="PATREON",q.Kofi="KOFI",q.Paypal="PAYPAL",q.Cameo="CAMEO",q.Onlyfans="ONLYFANS",q.Substack="SUBSTACK",q.Kickstarter="KICKSTARTER",q.Indiegogo="INDIEGOGO",q.BuyMeACoffee="BUY_ME_A_COFFEE",q.Shopify="SHOPIFY",q))(WR||{}),ro,mn,io,no,so,oo,ao,tr,lo,uo,ot,Hr=class Hr{constructor(e,t){l(this,ro);l(this,mn);l(this,io);l(this,no);l(this,so);l(this,oo);l(this,ao);l(this,tr,new Map);l(this,lo);l(this,uo);l(this,ot);Y(this),v(e.id,"User ID is missing or undefined"),v(e.name,"Username is missing or undefined"),v(e.createdUtc,"User is missing created date"),d(this,ro,oe(Qa(e.id)?e.id:`t2_${e.id}`)),d(this,mn,e.name),d(this,oo,e.over18??!1),d(this,ao,e.isEmployee??!1);let i=new Date(0);if(i.setUTCSeconds(e.createdUtc),d(this,io,i),d(this,no,e.linkKarma??0),d(this,so,e.commentKarma??0),e.modPermissions)for(let[n,o]of Object.entries(e.modPermissions))s(this,tr).set(n,gS(o));d(this,lo,new URL(e.subreddit?.url??"","https://www.reddit.com").toString()),d(this,uo,e.subreddit?.url??""),d(this,ot,t)}get id(){return s(this,ro)}get username(){return s(this,mn)}get createdAt(){return s(this,io)}get linkKarma(){return s(this,no)}get commentKarma(){return s(this,so)}get nsfw(){return s(this,oo)}get isAdmin(){return s(this,ao)}get modPermissions(){return s(this,tr)}get url(){return s(this,lo)}get permalink(){return s(this,uo)}toJSON(){return{id:this.id,username:this.username,createdAt:this.createdAt,linkKarma:this.linkKarma,commentKarma:this.commentKarma,nsfw:this.nsfw,modPermissionsBySubreddit:Object.fromEntries(this.modPermissions)}}async getModPermissionsForSubreddit(e){if(s(this,tr).has(e))return s(this,tr).get(e);let t=await Hr.getSubredditUsersByType({subredditName:e,type:"moderators",username:this.username},s(this,ot)).all();if(t.length===0)return[];let i=t[0].modPermissions.get(e)??[];return i.length>0&&s(this,tr).set(e,i),i}getComments(e){return te.getCommentsByUser({username:this.username,...e},s(this,ot))}getPosts(e){return z.getPostsByUser({username:this.username,...e},s(this,ot))}async getUserFlairBySubreddit(e){let t=await Ue.getUserFlairBySubreddit({subreddit:e,name:s(this,mn)},s(this,ot));return t.users[0]?_s(t.users[0]):void 0}getSnoovatarUrl(){return Hr.getSnoovatarUrl(this.username,s(this,ot))}async getSocialLinks(){let i=await re.query("GetUserSocialLinks","2aca18ef5f4fc75fb91cdaace3e9aeeae2cb3843b5c26ad511e6f01b8521593a",{name:this.username},s(this,ot));return i.data?.user?.profile?.socialLinks?i.data.user.profile.socialLinks.map(n=>({...n,handle:n.handle??void 0})):[]}static async getById(e,t){let o=(await u.redditAPIPlugins.Users.UserDataByAccountIds({ids:e},t))?.users?.[e]?.name;return o==null?void 0:Hr.getByUsername(o,t)}static async getByUsername(e,t){let n=await u.redditAPIPlugins.Users.UserAbout({username:e},t);if(n.data?.id)return new Hr(n.data,t)}static async getFromMetadata(e,t){v(t);let i=t?.[e]?.values[0];return i?Hr.getById(oe(i),t):Promise.resolve(void 0)}static getSubredditUsersByType(e,t){let i=u.redditAPIPlugins.Subreddits;return new V({hasMore:!0,pageSize:e.pageSize,limit:e.limit,after:e.after,before:e.before,fetch:async n=>{let o=await i.AboutWhere({where:e.type,user:e.username,subreddit:e.subredditName,show:"all",...n},t);return VR(o,e.subredditName,t)}})}static async createRelationship(e,t){let i=u.redditAPIPlugins.Users,{type:n,subredditName:o,username:a,permissions:c,...p}=e,g=await i.Friend({type:n,subreddit:o,name:a,permissions:c?km(c):void 0,...p},t);if(g.json?.errors?.length)throw new Error(g.json.errors.join(`
|
|
1
|
+
var TS=Object.create;var Rm=Object.defineProperty;var AS=Object.getOwnPropertyDescriptor;var ES=Object.getOwnPropertyNames;var RS=Object.getPrototypeOf,OS=Object.prototype.hasOwnProperty;var Om=r=>{throw TypeError(r)};var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var BS=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ES(e))!OS.call(r,n)&&n!==t&&Rm(r,n,{get:()=>e[n],enumerable:!(i=AS(e,n))||i.enumerable});return r};var Ln=(r,e,t)=>(t=r!=null?TS(RS(r)):{},BS(e||!r||!r.__esModule?Rm(t,"default",{value:r,enumerable:!0}):t,r));var ll=(r,e,t)=>e.has(r)||Om("Cannot "+t);var s=(r,e,t)=>(ll(r,e,"read from private field"),t?t.call(r):e.get(r)),l=(r,e,t)=>e.has(r)?Om("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),d=(r,e,t,i)=>(ll(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),S=(r,e,t)=>(ll(r,e,"access private method"),t);var Bm=(r,e,t,i)=>({set _(n){d(r,e,n,t)},get _(){return s(r,e,i)}});var le=h((dO,Mm)=>{Mm.exports=function(r){try{return!!r()}catch{return!0}}});var la=h((lO,Um)=>{var MS=le();Um.exports=!MS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Z=h((uO,Nm)=>{var Lm=la(),Dm=Function.prototype,ul=Dm.call,US=Lm&&Dm.bind.bind(ul,ul);Nm.exports=Lm?US:function(r){return function(){return ul.apply(r,arguments)}}});var Hm=h((cO,_m)=>{var LS=Math.ceil,DS=Math.floor;_m.exports=Math.trunc||function(e){var t=+e;return(t>0?DS:LS)(t)}});var ua=h((mO,qm)=>{var NS=Hm();qm.exports=function(r){var e=+r;return e!==e||e===0?0:NS(e)}});var ge=h((pO,jm)=>{var ca=function(r){return r&&r.Math==Math&&r};jm.exports=ca(typeof globalThis=="object"&&globalThis)||ca(typeof window=="object"&&window)||ca(typeof self=="object"&&self)||ca(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Gr=h((gO,Wm)=>{Wm.exports=!1});var ma=h((hO,Vm)=>{var Gm=ge(),_S=Object.defineProperty;Vm.exports=function(r,e){try{_S(Gm,r,{value:e,configurable:!0,writable:!0})}catch{Gm[r]=e}return e}});var pa=h((fO,Jm)=>{var HS=ge(),qS=ma(),zm="__core-js_shared__",jS=HS[zm]||qS(zm,{});Jm.exports=jS});var cl=h((vO,Km)=>{var WS=Gr(),$m=pa();(Km.exports=function(r,e){return $m[r]||($m[r]=e!==void 0?e:{})})("versions",[]).push({version:"3.27.2",mode:WS?"pure":"global",copyright:"\xA9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.27.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var ga=h((yO,Xm)=>{Xm.exports=function(r){return r==null}});var ha=h((bO,Zm)=>{var GS=ga(),VS=TypeError;Zm.exports=function(r){if(GS(r))throw VS("Can't call method on "+r);return r}});var Dn=h((kO,Qm)=>{var zS=ha(),JS=Object;Qm.exports=function(r){return JS(zS(r))}});var we=h((SO,Ym)=>{var $S=Z(),KS=Dn(),XS=$S({}.hasOwnProperty);Ym.exports=Object.hasOwn||function(e,t){return XS(KS(e),t)}});var ml=h((PO,ep)=>{var ZS=Z(),QS=0,YS=Math.random(),eP=ZS(1 .toString);ep.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+eP(++QS+YS,36)}});var rp=h((CO,tp)=>{tp.exports=typeof navigator<"u"&&String(navigator.userAgent)||""});var lp=h((wO,dp)=>{var ap=ge(),pl=rp(),ip=ap.process,np=ap.Deno,sp=ip&&ip.versions||np&&np.version,op=sp&&sp.v8,qe,fa;op&&(qe=op.split("."),fa=qe[0]>0&&qe[0]<4?1:+(qe[0]+qe[1]));!fa&&pl&&(qe=pl.match(/Edge\/(\d+)/),(!qe||qe[1]>=74)&&(qe=pl.match(/Chrome\/(\d+)/),qe&&(fa=+qe[1])));dp.exports=fa});var gl=h((IO,cp)=>{var up=lp(),tP=le();cp.exports=!!Object.getOwnPropertySymbols&&!tP(function(){var r=Symbol();return!String(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&up&&up<41})});var hl=h((xO,mp)=>{var rP=gl();mp.exports=rP&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Ie=h((FO,gp)=>{var iP=ge(),nP=cl(),pp=we(),sP=ml(),oP=gl(),aP=hl(),Vr=iP.Symbol,fl=nP("wks"),dP=aP?Vr.for||Vr:Vr&&Vr.withoutSetter||sP;gp.exports=function(r){return pp(fl,r)||(fl[r]=oP&&pp(Vr,r)?Vr[r]:dP("Symbol."+r)),fl[r]}});var vp=h((TO,fp)=>{var lP=Ie(),uP=lP("toStringTag"),hp={};hp[uP]="z";fp.exports=String(hp)==="[object z]"});var yl=h((AO,yp)=>{var vl=typeof document=="object"&&document.all,cP=typeof vl>"u"&&vl!==void 0;yp.exports={all:vl,IS_HTMLDDA:cP}});var Q=h((EO,kp)=>{var bp=yl(),mP=bp.all;kp.exports=bp.IS_HTMLDDA?function(r){return typeof r=="function"||r===mP}:function(r){return typeof r=="function"}});var va=h((RO,Pp)=>{var Sp=Z(),pP=Sp({}.toString),gP=Sp("".slice);Pp.exports=function(r){return gP(pP(r),8,-1)}});var Nn=h((OO,Cp)=>{var hP=vp(),fP=Q(),ya=va(),vP=Ie(),yP=vP("toStringTag"),bP=Object,kP=ya(function(){return arguments}())=="Arguments",SP=function(r,e){try{return r[e]}catch{}};Cp.exports=hP?ya:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=SP(e=bP(r),yP))=="string"?t:kP?ya(e):(i=ya(e))=="Object"&&fP(e.callee)?"Arguments":i}});var _n=h((BO,wp)=>{var PP=Nn(),CP=String;wp.exports=function(r){if(PP(r)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return CP(r)}});var kl=h((MO,Fp)=>{var bl=Z(),wP=ua(),IP=_n(),xP=ha(),FP=bl("".charAt),Ip=bl("".charCodeAt),TP=bl("".slice),xp=function(r){return function(e,t){var i=IP(xP(e)),n=wP(t),o=i.length,a,c;return n<0||n>=o?r?"":void 0:(a=Ip(i,n),a<55296||a>56319||n+1===o||(c=Ip(i,n+1))<56320||c>57343?r?FP(i,n):a:r?TP(i,n,n+2):(a-55296<<10)+(c-56320)+65536)}};Fp.exports={codeAt:xp(!1),charAt:xp(!0)}});var Ep=h((UO,Ap)=>{var AP=ge(),EP=Q(),Tp=AP.WeakMap;Ap.exports=EP(Tp)&&/native code/.test(String(Tp))});var Ct=h((LO,Bp)=>{var Rp=Q(),Op=yl(),RP=Op.all;Bp.exports=Op.IS_HTMLDDA?function(r){return typeof r=="object"?r!==null:Rp(r)||r===RP}:function(r){return typeof r=="object"?r!==null:Rp(r)}});var he=h((DO,Mp)=>{var OP=le();Mp.exports=!OP(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Pl=h((NO,Lp)=>{var BP=ge(),Up=Ct(),Sl=BP.document,MP=Up(Sl)&&Up(Sl.createElement);Lp.exports=function(r){return MP?Sl.createElement(r):{}}});var Cl=h((_O,Dp)=>{var UP=he(),LP=le(),DP=Pl();Dp.exports=!UP&&!LP(function(){return Object.defineProperty(DP("div"),"a",{get:function(){return 7}}).a!=7})});var wl=h((HO,Np)=>{var NP=he(),_P=le();Np.exports=NP&&_P(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Ze=h((qO,_p)=>{var HP=Ct(),qP=String,jP=TypeError;_p.exports=function(r){if(HP(r))return r;throw jP(qP(r)+" is not an object")}});var je=h((jO,Hp)=>{var WP=la(),ba=Function.prototype.call;Hp.exports=WP?ba.bind(ba):function(){return ba.apply(ba,arguments)}});var Hn=h((WO,qp)=>{var Il=ge(),GP=Q(),VP=function(r){return GP(r)?r:void 0};qp.exports=function(r,e){return arguments.length<2?VP(Il[r]):Il[r]&&Il[r][e]}});var xl=h((GO,jp)=>{var zP=Z();jp.exports=zP({}.isPrototypeOf)});var Fl=h((VO,Wp)=>{var JP=Hn(),$P=Q(),KP=xl(),XP=hl(),ZP=Object;Wp.exports=XP?function(r){return typeof r=="symbol"}:function(r){var e=JP("Symbol");return $P(e)&&KP(e.prototype,ZP(r))}});var Tl=h((zO,Gp)=>{var QP=String;Gp.exports=function(r){try{return QP(r)}catch{return"Object"}}});var ka=h((JO,Vp)=>{var YP=Q(),eC=Tl(),tC=TypeError;Vp.exports=function(r){if(YP(r))return r;throw tC(eC(r)+" is not a function")}});var Sa=h(($O,zp)=>{var rC=ka(),iC=ga();zp.exports=function(r,e){var t=r[e];return iC(t)?void 0:rC(t)}});var $p=h((KO,Jp)=>{var Al=je(),El=Q(),Rl=Ct(),nC=TypeError;Jp.exports=function(r,e){var t,i;if(e==="string"&&El(t=r.toString)&&!Rl(i=Al(t,r))||El(t=r.valueOf)&&!Rl(i=Al(t,r))||e!=="string"&&El(t=r.toString)&&!Rl(i=Al(t,r)))return i;throw nC("Can't convert object to primitive value")}});var Qp=h((XO,Zp)=>{var sC=je(),Kp=Ct(),Xp=Fl(),oC=Sa(),aC=$p(),dC=Ie(),lC=TypeError,uC=dC("toPrimitive");Zp.exports=function(r,e){if(!Kp(r)||Xp(r))return r;var t=oC(r,uC),i;if(t){if(e===void 0&&(e="default"),i=sC(t,r,e),!Kp(i)||Xp(i))return i;throw lC("Can't convert object to primitive value")}return e===void 0&&(e="number"),aC(r,e)}});var Pa=h((ZO,Yp)=>{var cC=Qp(),mC=Fl();Yp.exports=function(r){var e=cC(r,"string");return mC(e)?e:e+""}});var Qe=h(tg=>{var pC=he(),gC=Cl(),hC=wl(),Ca=Ze(),eg=Pa(),fC=TypeError,Ol=Object.defineProperty,vC=Object.getOwnPropertyDescriptor,Bl="enumerable",Ml="configurable",Ul="writable";tg.f=pC?hC?function(e,t,i){if(Ca(e),t=eg(t),Ca(i),typeof e=="function"&&t==="prototype"&&"value"in i&&Ul in i&&!i[Ul]){var n=vC(e,t);n&&n[Ul]&&(e[t]=i.value,i={configurable:Ml in i?i[Ml]:n[Ml],enumerable:Bl in i?i[Bl]:n[Bl],writable:!1})}return Ol(e,t,i)}:Ol:function(e,t,i){if(Ca(e),t=eg(t),Ca(i),gC)try{return Ol(e,t,i)}catch{}if("get"in i||"set"in i)throw fC("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var zr=h((YO,rg)=>{rg.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var wa=h((eB,ig)=>{var yC=he(),bC=Qe(),kC=zr();ig.exports=yC?function(r,e,t){return bC.f(r,e,kC(1,t))}:function(r,e,t){return r[e]=t,r}});var Ia=h((tB,sg)=>{var SC=cl(),PC=ml(),ng=SC("keys");sg.exports=function(r){return ng[r]||(ng[r]=PC(r))}});var xa=h((rB,og)=>{og.exports={}});var Jr=h((iB,lg)=>{var CC=Ep(),dg=ge(),wC=Ct(),IC=wa(),Ll=we(),Dl=pa(),xC=Ia(),FC=xa(),ag="Object already initialized",Nl=dg.TypeError,TC=dg.WeakMap,Fa,qn,Ta,AC=function(r){return Ta(r)?qn(r):Fa(r,{})},EC=function(r){return function(e){var t;if(!wC(e)||(t=qn(e)).type!==r)throw Nl("Incompatible receiver, "+r+" required");return t}};CC||Dl.state?(We=Dl.state||(Dl.state=new TC),We.get=We.get,We.has=We.has,We.set=We.set,Fa=function(r,e){if(We.has(r))throw Nl(ag);return e.facade=r,We.set(r,e),e},qn=function(r){return We.get(r)||{}},Ta=function(r){return We.has(r)}):(or=xC("state"),FC[or]=!0,Fa=function(r,e){if(Ll(r,or))throw Nl(ag);return e.facade=r,IC(r,or,e),e},qn=function(r){return Ll(r,or)?r[or]:{}},Ta=function(r){return Ll(r,or)});var We,or;lg.exports={set:Fa,get:qn,has:Ta,enforce:AC,getterFor:EC}});var _l=h(mg=>{"use strict";var ug={}.propertyIsEnumerable,cg=Object.getOwnPropertyDescriptor,RC=cg&&!ug.call({1:2},1);mg.f=RC?function(e){var t=cg(this,e);return!!t&&t.enumerable}:ug});var ql=h((sB,pg)=>{var OC=Z(),BC=le(),MC=va(),Hl=Object,UC=OC("".split);pg.exports=BC(function(){return!Hl("z").propertyIsEnumerable(0)})?function(r){return MC(r)=="String"?UC(r,""):Hl(r)}:Hl});var $r=h((oB,gg)=>{var LC=ql(),DC=ha();gg.exports=function(r){return LC(DC(r))}});var jl=h(fg=>{var NC=he(),_C=je(),HC=_l(),qC=zr(),jC=$r(),WC=Pa(),GC=we(),VC=Cl(),hg=Object.getOwnPropertyDescriptor;fg.f=NC?hg:function(e,t){if(e=jC(e),t=WC(t),VC)try{return hg(e,t)}catch{}if(GC(e,t))return qC(!_C(HC.f,e,t),e[t])}});var Vl=h((dB,yg)=>{var Wl=he(),zC=we(),vg=Function.prototype,JC=Wl&&Object.getOwnPropertyDescriptor,Gl=zC(vg,"name"),$C=Gl&&function(){}.name==="something",KC=Gl&&(!Wl||Wl&&JC(vg,"name").configurable);yg.exports={EXISTS:Gl,PROPER:$C,CONFIGURABLE:KC}});var Jl=h((lB,bg)=>{var XC=Z(),ZC=Q(),zl=pa(),QC=XC(Function.toString);ZC(zl.inspectSource)||(zl.inspectSource=function(r){return QC(r)});bg.exports=zl.inspectSource});var Xl=h((uB,Pg)=>{var Kl=Z(),YC=le(),e0=Q(),Aa=we(),$l=he(),t0=Vl().CONFIGURABLE,r0=Jl(),Sg=Jr(),i0=Sg.enforce,n0=Sg.get,kg=String,Ea=Object.defineProperty,s0=Kl("".slice),o0=Kl("".replace),a0=Kl([].join),d0=$l&&!YC(function(){return Ea(function(){},"length",{value:8}).length!==8}),l0=String(String).split("String"),u0=Pg.exports=function(r,e,t){s0(kg(e),0,7)==="Symbol("&&(e="["+o0(kg(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),t&&t.getter&&(e="get "+e),t&&t.setter&&(e="set "+e),(!Aa(r,"name")||t0&&r.name!==e)&&($l?Ea(r,"name",{value:e,configurable:!0}):r.name=e),d0&&t&&Aa(t,"arity")&&r.length!==t.arity&&Ea(r,"length",{value:t.arity});try{t&&Aa(t,"constructor")&&t.constructor?$l&&Ea(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch{}var i=i0(r);return Aa(i,"source")||(i.source=a0(l0,typeof e=="string"?e:"")),r};Function.prototype.toString=u0(function(){return e0(this)&&n0(this).source||r0(this)},"toString")});var ar=h((cB,Cg)=>{var c0=Q(),m0=Qe(),p0=Xl(),g0=ma();Cg.exports=function(r,e,t,i){i||(i={});var n=i.enumerable,o=i.name!==void 0?i.name:e;if(c0(t)&&p0(t,o,i),i.global)n?r[e]=t:g0(e,t);else{try{i.unsafe?r[e]&&(n=!0):delete r[e]}catch{}n?r[e]=t:m0.f(r,e,{value:t,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return r}});var Zl=h((mB,wg)=>{var h0=ua(),f0=Math.max,v0=Math.min;wg.exports=function(r,e){var t=h0(r);return t<0?f0(t+e,0):v0(t,e)}});var xg=h((pB,Ig)=>{var y0=ua(),b0=Math.min;Ig.exports=function(r){return r>0?b0(y0(r),9007199254740991):0}});var Ra=h((gB,Fg)=>{var k0=xg();Fg.exports=function(r){return k0(r.length)}});var Eg=h((hB,Ag)=>{var S0=$r(),P0=Zl(),C0=Ra(),Tg=function(r){return function(e,t,i){var n=S0(e),o=C0(n),a=P0(i,o),c;if(r&&t!=t){for(;o>a;)if(c=n[a++],c!=c)return!0}else for(;o>a;a++)if((r||a in n)&&n[a]===t)return r||a||0;return!r&&-1}};Ag.exports={includes:Tg(!0),indexOf:Tg(!1)}});var Yl=h((fB,Og)=>{var w0=Z(),Ql=we(),I0=$r(),x0=Eg().indexOf,F0=xa(),Rg=w0([].push);Og.exports=function(r,e){var t=I0(r),i=0,n=[],o;for(o in t)!Ql(F0,o)&&Ql(t,o)&&Rg(n,o);for(;e.length>i;)Ql(t,o=e[i++])&&(~x0(n,o)||Rg(n,o));return n}});var Oa=h((vB,Bg)=>{Bg.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Ug=h(Mg=>{var T0=Yl(),A0=Oa(),E0=A0.concat("length","prototype");Mg.f=Object.getOwnPropertyNames||function(e){return T0(e,E0)}});var eu=h(Lg=>{Lg.f=Object.getOwnPropertySymbols});var Ng=h((kB,Dg)=>{var R0=Hn(),O0=Z(),B0=Ug(),M0=eu(),U0=Ze(),L0=O0([].concat);Dg.exports=R0("Reflect","ownKeys")||function(e){var t=B0.f(U0(e)),i=M0.f;return i?L0(t,i(e)):t}});var qg=h((SB,Hg)=>{var _g=we(),D0=Ng(),N0=jl(),_0=Qe();Hg.exports=function(r,e,t){for(var i=D0(e),n=_0.f,o=N0.f,a=0;a<i.length;a++){var c=i[a];!_g(r,c)&&!(t&&_g(t,c))&&n(r,c,o(e,c))}}});var Wg=h((PB,jg)=>{var H0=le(),q0=Q(),j0=/#|\.prototype\./,jn=function(r,e){var t=G0[W0(r)];return t==z0?!0:t==V0?!1:q0(e)?H0(e):!!e},W0=jn.normalize=function(r){return String(r).replace(j0,".").toLowerCase()},G0=jn.data={},V0=jn.NATIVE="N",z0=jn.POLYFILL="P";jg.exports=jn});var Wn=h((CB,Gg)=>{var tu=ge(),J0=jl().f,$0=wa(),K0=ar(),X0=ma(),Z0=qg(),Q0=Wg();Gg.exports=function(r,e){var t=r.target,i=r.global,n=r.stat,o,a,c,p,g,f;if(i?a=tu:n?a=tu[t]||X0(t,{}):a=(tu[t]||{}).prototype,a)for(c in e){if(g=e[c],r.dontCallGetSet?(f=J0(a,c),p=f&&f.value):p=a[c],o=Q0(i?c:t+(n?".":"#")+c,r.forced),!o&&p!==void 0){if(typeof g==typeof p)continue;Z0(g,p)}(r.sham||p&&p.sham)&&$0(g,"sham",!0),K0(a,c,g,r)}}});var ru=h((wB,Vg)=>{var Y0=Yl(),ew=Oa();Vg.exports=Object.keys||function(e){return Y0(e,ew)}});var Jg=h(zg=>{var tw=he(),rw=wl(),iw=Qe(),nw=Ze(),sw=$r(),ow=ru();zg.f=tw&&!rw?Object.defineProperties:function(e,t){nw(e);for(var i=sw(t),n=ow(t),o=n.length,a=0,c;o>a;)iw.f(e,c=n[a++],i[c]);return e}});var Kg=h((xB,$g)=>{var aw=Hn();$g.exports=aw("document","documentElement")});var Gn=h((FB,rh)=>{var dw=Ze(),lw=Jg(),Xg=Oa(),uw=xa(),cw=Kg(),mw=Pl(),pw=Ia(),Zg=">",Qg="<",nu="prototype",su="script",eh=pw("IE_PROTO"),iu=function(){},th=function(r){return Qg+su+Zg+r+Qg+"/"+su+Zg},Yg=function(r){r.write(th("")),r.close();var e=r.parentWindow.Object;return r=null,e},gw=function(){var r=mw("iframe"),e="java"+su+":",t;return r.style.display="none",cw.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(th("document.F=Object")),t.close(),t.F},Ba,Ma=function(){try{Ba=new ActiveXObject("htmlfile")}catch{}Ma=typeof document<"u"?document.domain&&Ba?Yg(Ba):gw():Yg(Ba);for(var r=Xg.length;r--;)delete Ma[nu][Xg[r]];return Ma()};uw[eh]=!0;rh.exports=Object.create||function(e,t){var i;return e!==null?(iu[nu]=dw(e),i=new iu,iu[nu]=null,i[eh]=e):i=Ma(),t===void 0?i:lw.f(i,t)}});var nh=h((TB,ih)=>{var hw=le();ih.exports=!hw(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var au=h((AB,oh)=>{var fw=we(),vw=Q(),yw=Dn(),bw=Ia(),kw=nh(),sh=bw("IE_PROTO"),ou=Object,Sw=ou.prototype;oh.exports=kw?ou.getPrototypeOf:function(r){var e=yw(r);if(fw(e,sh))return e[sh];var t=e.constructor;return vw(t)&&e instanceof t?t.prototype:e instanceof ou?Sw:null}});var cu=h((EB,lh)=>{"use strict";var Pw=le(),Cw=Q(),ww=Ct(),Iw=Gn(),ah=au(),xw=ar(),Fw=Ie(),Tw=Gr(),uu=Fw("iterator"),dh=!1,lt,du,lu;[].keys&&(lu=[].keys(),"next"in lu?(du=ah(ah(lu)),du!==Object.prototype&&(lt=du)):dh=!0);var Aw=!ww(lt)||Pw(function(){var r={};return lt[uu].call(r)!==r});Aw?lt={}:Tw&&(lt=Iw(lt));Cw(lt[uu])||xw(lt,uu,function(){return this});lh.exports={IteratorPrototype:lt,BUGGY_SAFARI_ITERATORS:dh}});var Vn=h((RB,ch)=>{var Ew=Qe().f,Rw=we(),Ow=Ie(),uh=Ow("toStringTag");ch.exports=function(r,e,t){r&&!t&&(r=r.prototype),r&&!Rw(r,uh)&&Ew(r,uh,{configurable:!0,value:e})}});var Kr=h((OB,mh)=>{mh.exports={}});var mu=h((BB,ph)=>{"use strict";var Bw=cu().IteratorPrototype,Mw=Gn(),Uw=zr(),Lw=Vn(),Dw=Kr(),Nw=function(){return this};ph.exports=function(r,e,t,i){var n=e+" Iterator";return r.prototype=Mw(Bw,{next:Uw(+!i,t)}),Lw(r,n,!1,!0),Dw[n]=Nw,r}});var hh=h((MB,gh)=>{var _w=Q(),Hw=String,qw=TypeError;gh.exports=function(r){if(typeof r=="object"||_w(r))return r;throw qw("Can't set "+Hw(r)+" as a prototype")}});var vh=h((UB,fh)=>{var jw=Z(),Ww=Ze(),Gw=hh();fh.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=jw(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),t(e,[]),r=e instanceof Array}catch{}return function(n,o){return Ww(n),Gw(o),r?t(n,o):n.__proto__=o,n}}():void 0)});var gu=h((LB,Fh)=>{"use strict";var Vw=Wn(),zw=je(),Ua=Gr(),Ih=Vl(),Jw=Q(),$w=mu(),yh=au(),bh=vh(),Kw=Vn(),Xw=wa(),pu=ar(),Zw=Ie(),kh=Kr(),xh=cu(),Qw=Ih.PROPER,Yw=Ih.CONFIGURABLE,Sh=xh.IteratorPrototype,La=xh.BUGGY_SAFARI_ITERATORS,zn=Zw("iterator"),Ph="keys",Jn="values",Ch="entries",wh=function(){return this};Fh.exports=function(r,e,t,i,n,o,a){$w(t,e,i);var c=function(M){if(M===n&&y)return y;if(!La&&M in f)return f[M];switch(M){case Ph:return function(){return new t(this,M)};case Jn:return function(){return new t(this,M)};case Ch:return function(){return new t(this,M)}}return function(){return new t(this)}},p=e+" Iterator",g=!1,f=r.prototype,m=f[zn]||f["@@iterator"]||n&&f[n],y=!La&&m||c(n),b=e=="Array"&&f.entries||m,P,x,I;if(b&&(P=yh(b.call(new r)),P!==Object.prototype&&P.next&&(!Ua&&yh(P)!==Sh&&(bh?bh(P,Sh):Jw(P[zn])||pu(P,zn,wh)),Kw(P,p,!0,!0),Ua&&(kh[p]=wh))),Qw&&n==Jn&&m&&m.name!==Jn&&(!Ua&&Yw?Xw(f,"name",Jn):(g=!0,y=function(){return zw(m,this)})),n)if(x={values:c(Jn),keys:o?y:c(Ph),entries:c(Ch)},a)for(I in x)(La||g||!(I in f))&&pu(f,I,x[I]);else Vw({target:e,proto:!0,forced:La||g},x);return(!Ua||a)&&f[zn]!==y&&pu(f,zn,y,{name:n}),kh[e]=y,x}});var hu=h((DB,Th)=>{Th.exports=function(r,e){return{value:r,done:e}}});var Oh=h(()=>{"use strict";var eI=kl().charAt,tI=_n(),Eh=Jr(),rI=gu(),Ah=hu(),Rh="String Iterator",iI=Eh.set,nI=Eh.getterFor(Rh);rI(String,"String",function(r){iI(this,{type:Rh,string:tI(r),index:0})},function(){var e=nI(this),t=e.string,i=e.index,n;return i>=t.length?Ah(void 0,!0):(n=eI(t,i),e.index+=n.length,Ah(n,!1))})});var fu=h((HB,Bh)=>{var sI=le(),oI=Ie(),aI=Gr(),dI=oI("iterator");Bh.exports=!sI(function(){var r=new URL("b?a=1&b=2&c=3","http://a"),e=r.searchParams,t="";return r.pathname="c%20d",e.forEach(function(i,n){e.delete("b"),t+=n+i}),aI&&!r.toJSON||!e.sort||r.href!=="http://a/c%20d?a=1&c=3"||e.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!e[dI]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||t!=="a1c3"||new URL("http://x",void 0).host!=="x"})});var Uh=h((qB,Mh)=>{var lI=va(),uI=Z();Mh.exports=function(r){if(lI(r)==="Function")return uI(r)}});var Da=h((jB,Dh)=>{var Lh=Uh(),cI=ka(),mI=la(),pI=Lh(Lh.bind);Dh.exports=function(r,e){return cI(r),e===void 0?r:mI?pI(r,e):function(){return r.apply(e,arguments)}}});var Hh=h((WB,_h)=>{var Nh=Xl(),gI=Qe();_h.exports=function(r,e,t){return t.get&&Nh(t.get,e,{getter:!0}),t.set&&Nh(t.set,e,{setter:!0}),gI.f(r,e,t)}});var vu=h((GB,qh)=>{var hI=xl(),fI=TypeError;qh.exports=function(r,e){if(hI(e,r))return r;throw fI("Incorrect invocation")}});var Vh=h((VB,Gh)=>{"use strict";var jh=he(),vI=Z(),yI=je(),bI=le(),yu=ru(),kI=eu(),SI=_l(),PI=Dn(),CI=ql(),Xr=Object.assign,Wh=Object.defineProperty,wI=vI([].concat);Gh.exports=!Xr||bI(function(){if(jh&&Xr({b:1},Xr(Wh({},"a",{enumerable:!0,get:function(){Wh(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var r={},e={},t=Symbol(),i="abcdefghijklmnopqrst";return r[t]=7,i.split("").forEach(function(n){e[n]=n}),Xr({},r)[t]!=7||yu(Xr({},e)).join("")!=i})?function(e,t){for(var i=PI(e),n=arguments.length,o=1,a=kI.f,c=SI.f;n>o;)for(var p=CI(arguments[o++]),g=a?wI(yu(p),a(p)):yu(p),f=g.length,m=0,y;f>m;)y=g[m++],(!jh||yI(c,p,y))&&(i[y]=p[y]);return i}:Xr});var $h=h((zB,Jh)=>{var II=je(),zh=Ze(),xI=Sa();Jh.exports=function(r,e,t){var i,n;zh(r);try{if(i=xI(r,"return"),!i){if(e==="throw")throw t;return t}i=II(i,r)}catch(o){n=!0,i=o}if(e==="throw")throw t;if(n)throw i;return zh(i),t}});var Xh=h((JB,Kh)=>{var FI=Ze(),TI=$h();Kh.exports=function(r,e,t,i){try{return i?e(FI(t)[0],t[1]):e(t)}catch(n){TI(r,"throw",n)}}});var Qh=h(($B,Zh)=>{var AI=Ie(),EI=Kr(),RI=AI("iterator"),OI=Array.prototype;Zh.exports=function(r){return r!==void 0&&(EI.Array===r||OI[RI]===r)}});var sf=h((KB,nf)=>{var BI=Z(),MI=le(),Yh=Q(),UI=Nn(),LI=Hn(),DI=Jl(),ef=function(){},NI=[],tf=LI("Reflect","construct"),bu=/^\s*(?:class|function)\b/,_I=BI(bu.exec),HI=!bu.exec(ef),$n=function(e){if(!Yh(e))return!1;try{return tf(ef,NI,e),!0}catch{return!1}},rf=function(e){if(!Yh(e))return!1;switch(UI(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return HI||!!_I(bu,DI(e))}catch{return!0}};rf.sham=!0;nf.exports=!tf||MI(function(){var r;return $n($n.call)||!$n(Object)||!$n(function(){r=!0})||r})?rf:$n});var ku=h((XB,of)=>{"use strict";var qI=Pa(),jI=Qe(),WI=zr();of.exports=function(r,e,t){var i=qI(e);i in r?jI.f(r,i,WI(0,t)):r[i]=t}});var Na=h((ZB,df)=>{var GI=Nn(),af=Sa(),VI=ga(),zI=Kr(),JI=Ie(),$I=JI("iterator");df.exports=function(r){if(!VI(r))return af(r,$I)||af(r,"@@iterator")||zI[GI(r)]}});var Su=h((QB,lf)=>{var KI=je(),XI=ka(),ZI=Ze(),QI=Tl(),YI=Na(),ex=TypeError;lf.exports=function(r,e){var t=arguments.length<2?YI(r):e;if(XI(t))return ZI(KI(t,r));throw ex(QI(r)+" is not iterable")}});var pf=h((YB,mf)=>{"use strict";var tx=Da(),rx=je(),ix=Dn(),nx=Xh(),sx=Qh(),ox=sf(),ax=Ra(),uf=ku(),dx=Su(),lx=Na(),cf=Array;mf.exports=function(e){var t=ix(e),i=ox(this),n=arguments.length,o=n>1?arguments[1]:void 0,a=o!==void 0;a&&(o=tx(o,n>2?arguments[2]:void 0));var c=lx(t),p=0,g,f,m,y,b,P;if(c&&!(this===cf&&sx(c)))for(y=dx(t,c),b=y.next,f=i?new this:[];!(m=rx(b,y)).done;p++)P=a?nx(y,o,[m.value,p],!0):m.value,uf(f,p,P);else for(g=ax(t),f=i?new this(g):cf(g);g>p;p++)P=a?o(t[p],p):t[p],uf(f,p,P);return f.length=p,f}});var Pu=h((eM,hf)=>{var gf=Zl(),ux=Ra(),cx=ku(),mx=Array,px=Math.max;hf.exports=function(r,e,t){for(var i=ux(r),n=gf(e,i),o=gf(t===void 0?i:t,i),a=mx(px(o-n,0)),c=0;n<o;n++,c++)cx(a,c,r[n]);return a.length=c,a}});var wf=h((tM,Cf)=>{var dr=Z(),Cu=2147483647,Kn=36,kf=1,xu=26,gx=38,hx=700,fx=72,vx=128,yx="-",bx=/[^\0-\u007E]/,Sf=/[.\u3002\uFF0E\uFF61]/g,ff="Overflow: input needs wider integers to process",wu=Kn-kf,vf=RangeError,kx=dr(Sf.exec),Zr=Math.floor,Iu=String.fromCharCode,yf=dr("".charCodeAt),Pf=dr([].join),wt=dr([].push),Sx=dr("".replace),Px=dr("".split),Cx=dr("".toLowerCase),wx=function(r){for(var e=[],t=0,i=r.length;t<i;){var n=yf(r,t++);if(n>=55296&&n<=56319&&t<i){var o=yf(r,t++);(o&64512)==56320?wt(e,((n&1023)<<10)+(o&1023)+65536):(wt(e,n),t--)}else wt(e,n)}return e},bf=function(r){return r+22+75*(r<26)},Ix=function(r,e,t){var i=0;for(r=t?Zr(r/hx):r>>1,r+=Zr(r/e);r>wu*xu>>1;)r=Zr(r/wu),i+=Kn;return Zr(i+(wu+1)*r/(r+gx))},xx=function(r){var e=[];r=wx(r);var t=r.length,i=vx,n=0,o=fx,a,c;for(a=0;a<r.length;a++)c=r[a],c<128&&wt(e,Iu(c));var p=e.length,g=p;for(p&&wt(e,yx);g<t;){var f=Cu;for(a=0;a<r.length;a++)c=r[a],c>=i&&c<f&&(f=c);var m=g+1;if(f-i>Zr((Cu-n)/m))throw vf(ff);for(n+=(f-i)*m,i=f,a=0;a<r.length;a++){if(c=r[a],c<i&&++n>Cu)throw vf(ff);if(c==i){for(var y=n,b=Kn;;){var P=b<=o?kf:b>=o+xu?xu:b-o;if(y<P)break;var x=y-P,I=Kn-P;wt(e,Iu(bf(P+x%I))),y=Zr(x/I),b+=Kn}wt(e,Iu(bf(y))),o=Ix(n,m,g==p),n=0,g++}}n++,i++}return Pf(e,"")};Cf.exports=function(r){var e=[],t=Px(Sx(Cx(r),Sf,"."),"."),i,n;for(i=0;i<t.length;i++)n=t[i],wt(e,kx(bx,n)?"xn--"+xx(n):n);return Pf(e,".")}});var Fu=h((rM,If)=>{var Fx=TypeError;If.exports=function(r,e){if(r<e)throw Fx("Not enough arguments");return r}});var Ff=h((iM,xf)=>{var Tx=Ie(),Ax=Gn(),Ex=Qe().f,Tu=Tx("unscopables"),Au=Array.prototype;Au[Tu]==null&&Ex(Au,Tu,{configurable:!0,value:Ax(null)});xf.exports=function(r){Au[Tu][r]=!0}});var Bf=h((nM,Of)=>{"use strict";var Rx=$r(),Eu=Ff(),Tf=Kr(),Ef=Jr(),Ox=Qe().f,Bx=gu(),_a=hu(),Mx=Gr(),Ux=he(),Rf="Array Iterator",Lx=Ef.set,Dx=Ef.getterFor(Rf);Of.exports=Bx(Array,"Array",function(r,e){Lx(this,{type:Rf,target:Rx(r),index:0,kind:e})},function(){var r=Dx(this),e=r.target,t=r.kind,i=r.index++;return!e||i>=e.length?(r.target=void 0,_a(void 0,!0)):t=="keys"?_a(i,!1):t=="values"?_a(e[i],!1):_a([i,e[i]],!1)},"values");var Af=Tf.Arguments=Tf.Array;Eu("keys");Eu("values");Eu("entries");if(!Mx&&Ux&&Af.name!=="values")try{Ox(Af,"name",{value:"values"})}catch{}});var Uf=h((sM,Mf)=>{var Nx=ar();Mf.exports=function(r,e,t){for(var i in e)Nx(r,i,e[i],t);return r}});var Nf=h((oM,Df)=>{var Lf=Pu(),_x=Math.floor,Ru=function(r,e){var t=r.length,i=_x(t/2);return t<8?Hx(r,e):qx(r,Ru(Lf(r,0,i),e),Ru(Lf(r,i),e),e)},Hx=function(r,e){for(var t=r.length,i=1,n,o;i<t;){for(o=i,n=r[i];o&&e(r[o-1],n)>0;)r[o]=r[--o];o!==i++&&(r[o]=n)}return r},qx=function(r,e,t,i){for(var n=e.length,o=t.length,a=0,c=0;a<n||c<o;)r[a+c]=a<n&&c<o?i(e[a],t[c])<=0?e[a++]:t[c++]:a<n?e[a++]:t[c++];return r};Df.exports=Ru});var qu=h((aM,nv)=>{"use strict";Bf();var Lu=Wn(),Yr=ge(),Ha=je(),Ye=Z(),jx=he(),Xf=fu(),Zf=ar(),Wx=Uf(),Gx=Vn(),Vx=mu(),_u=Jr(),Qf=vu(),Ou=Q(),zx=we(),Jx=Da(),$x=Nn(),Kx=Ze(),Yf=Ct(),fe=_n(),Xx=Gn(),_f=zr(),Du=Su(),Zx=Na(),Qr=Fu(),Qx=Ie(),Yx=Nf(),eF=Qx("iterator"),Qn="URLSearchParams",ev=Qn+"Iterator",tv=_u.set,Ge=_u.getterFor(Qn),tF=_u.getterFor(ev),rF=Object.getOwnPropertyDescriptor,Hu=function(r){if(!jx)return Yr[r];var e=rF(Yr,r);return e&&e.value},Hf=Hu("fetch"),ja=Hu("Request"),Xn=Hu("Headers"),Bu=ja&&ja.prototype,qf=Xn&&Xn.prototype,iF=Yr.RegExp,nF=Yr.TypeError,rv=Yr.decodeURIComponent,sF=Yr.encodeURIComponent,oF=Ye("".charAt),jf=Ye([].join),lr=Ye([].push),Nu=Ye("".replace),aF=Ye([].shift),Wf=Ye([].splice),Gf=Ye("".split),dF=Ye("".slice),lF=/\+/g,Vf=Array(4),uF=function(r){return Vf[r-1]||(Vf[r-1]=iF("((?:%[\\da-f]{2}){"+r+"})","gi"))},cF=function(r){try{return rv(r)}catch{return r}},zf=function(r){var e=Nu(r,lF," "),t=4;try{return rv(e)}catch{for(;t;)e=Nu(e,uF(t--),cF);return e}},mF=/[!'()~]|%20/g,pF={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},gF=function(r){return pF[r]},Jf=function(r){return Nu(sF(r),mF,gF)},Mu=Vx(function(e,t){tv(this,{type:ev,iterator:Du(Ge(e).entries),kind:t})},"Iterator",function(){var e=tF(this),t=e.kind,i=e.iterator.next(),n=i.value;return i.done||(i.value=t==="keys"?n.key:t==="values"?n.value:[n.key,n.value]),i},!0),iv=function(r){this.entries=[],this.url=null,r!==void 0&&(Yf(r)?this.parseObject(r):this.parseQuery(typeof r=="string"?oF(r,0)==="?"?dF(r,1):r:fe(r)))};iv.prototype={type:Qn,bindURL:function(r){this.url=r,this.update()},parseObject:function(r){var e=Zx(r),t,i,n,o,a,c,p;if(e)for(t=Du(r,e),i=t.next;!(n=Ha(i,t)).done;){if(o=Du(Kx(n.value)),a=o.next,(c=Ha(a,o)).done||(p=Ha(a,o)).done||!Ha(a,o).done)throw nF("Expected sequence with length 2");lr(this.entries,{key:fe(c.value),value:fe(p.value)})}else for(var g in r)zx(r,g)&&lr(this.entries,{key:g,value:fe(r[g])})},parseQuery:function(r){if(r)for(var e=Gf(r,"&"),t=0,i,n;t<e.length;)i=e[t++],i.length&&(n=Gf(i,"="),lr(this.entries,{key:zf(aF(n)),value:zf(jf(n,"="))}))},serialize:function(){for(var r=this.entries,e=[],t=0,i;t<r.length;)i=r[t++],lr(e,Jf(i.key)+"="+Jf(i.value));return jf(e,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Wa=function(){Qf(this,Zn);var e=arguments.length>0?arguments[0]:void 0;tv(this,new iv(e))},Zn=Wa.prototype;Wx(Zn,{append:function(e,t){Qr(arguments.length,2);var i=Ge(this);lr(i.entries,{key:fe(e),value:fe(t)}),i.updateURL()},delete:function(r){Qr(arguments.length,1);for(var e=Ge(this),t=e.entries,i=fe(r),n=0;n<t.length;)t[n].key===i?Wf(t,n,1):n++;e.updateURL()},get:function(e){Qr(arguments.length,1);for(var t=Ge(this).entries,i=fe(e),n=0;n<t.length;n++)if(t[n].key===i)return t[n].value;return null},getAll:function(e){Qr(arguments.length,1);for(var t=Ge(this).entries,i=fe(e),n=[],o=0;o<t.length;o++)t[o].key===i&&lr(n,t[o].value);return n},has:function(e){Qr(arguments.length,1);for(var t=Ge(this).entries,i=fe(e),n=0;n<t.length;)if(t[n++].key===i)return!0;return!1},set:function(e,t){Qr(arguments.length,1);for(var i=Ge(this),n=i.entries,o=!1,a=fe(e),c=fe(t),p=0,g;p<n.length;p++)g=n[p],g.key===a&&(o?Wf(n,p--,1):(o=!0,g.value=c));o||lr(n,{key:a,value:c}),i.updateURL()},sort:function(){var e=Ge(this);Yx(e.entries,function(t,i){return t.key>i.key?1:-1}),e.updateURL()},forEach:function(e){for(var t=Ge(this).entries,i=Jx(e,arguments.length>1?arguments[1]:void 0),n=0,o;n<t.length;)o=t[n++],i(o.value,o.key,this)},keys:function(){return new Mu(this,"keys")},values:function(){return new Mu(this,"values")},entries:function(){return new Mu(this,"entries")}},{enumerable:!0});Zf(Zn,eF,Zn.entries,{name:"entries"});Zf(Zn,"toString",function(){return Ge(this).serialize()},{enumerable:!0});Gx(Wa,Qn);Lu({global:!0,constructor:!0,forced:!Xf},{URLSearchParams:Wa});!Xf&&Ou(Xn)&&($f=Ye(qf.has),Kf=Ye(qf.set),Uu=function(r){if(Yf(r)){var e=r.body,t;if($x(e)===Qn)return t=r.headers?new Xn(r.headers):new Xn,$f(t,"content-type")||Kf(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),Xx(r,{body:_f(0,fe(e)),headers:_f(0,t)})}return r},Ou(Hf)&&Lu({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return Hf(e,arguments.length>1?Uu(arguments[1]):{})}}),Ou(ja)&&(qa=function(e){return Qf(this,Bu),new ja(e,arguments.length>1?Uu(arguments[1]):{})},Bu.constructor=qa,qa.prototype=Bu,Lu({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:qa})));var $f,Kf,Uu,qa;nv.exports={URLSearchParams:Wa,getState:Ge}});var Cv=h(()=>{"use strict";Oh();var hF=Wn(),ic=he(),fF=fu(),nc=ge(),sv=Da(),Ee=Z(),$a=ar(),xe=Hh(),vF=vu(),ec=we(),sc=Vh(),ei=pf(),Ve=Pu(),yF=kl().codeAt,bF=wf(),ct=_n(),kF=Vn(),SF=Fu(),vv=qu(),yv=Jr(),PF=yv.set,Ka=yv.getterFor("URL"),CF=vv.URLSearchParams,wF=vv.getState,Yn=nc.URL,tc=nc.TypeError,Xa=nc.parseInt,IF=Math.floor,ov=Math.pow,Ae=Ee("".charAt),ze=Ee(/./.exec),ts=Ee([].join),xF=Ee(1 .toString),FF=Ee([].pop),ri=Ee([].push),av=Ee("".replace),TF=Ee([].shift),AF=Ee("".split),is=Ee("".slice),Za=Ee("".toLowerCase),EF=Ee([].unshift),RF="Invalid authority",ju="Invalid scheme",ur="Invalid host",dv="Invalid port",bv=/[a-z]/i,OF=/[\d+-.a-z]/i,rc=/\d/,BF=/^0x/i,MF=/^[0-7]+$/,UF=/^\d+$/,kv=/^[\da-f]+$/i,LF=/[\0\t\n\r #%/:<>?@[\\\]^|]/,DF=/[\0\t\n\r #/:<>?@[\\\]^|]/,NF=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,_F=/[\t\n\r]/g,Fe,HF=function(r){var e=AF(r,"."),t,i,n,o,a,c,p;if(e.length&&e[e.length-1]==""&&e.length--,t=e.length,t>4)return r;for(i=[],n=0;n<t;n++){if(o=e[n],o=="")return r;if(a=10,o.length>1&&Ae(o,0)=="0"&&(a=ze(BF,o)?16:8,o=is(o,a==8?1:2)),o==="")c=0;else{if(!ze(a==10?UF:a==8?MF:kv,o))return r;c=Xa(o,a)}ri(i,c)}for(n=0;n<t;n++)if(c=i[n],n==t-1){if(c>=ov(256,5-t))return null}else if(c>255)return null;for(p=FF(i),n=0;n<i.length;n++)p+=i[n]*ov(256,3-n);return p},qF=function(r){var e=[0,0,0,0,0,0,0,0],t=0,i=null,n=0,o,a,c,p,g,f,m,y=function(){return Ae(r,n)};if(y()==":"){if(Ae(r,1)!=":")return;n+=2,t++,i=t}for(;y();){if(t==8)return;if(y()==":"){if(i!==null)return;n++,t++,i=t;continue}for(o=a=0;a<4&&ze(kv,y());)o=o*16+Xa(y(),16),n++,a++;if(y()=="."){if(a==0||(n-=a,t>6))return;for(c=0;y();){if(p=null,c>0)if(y()=="."&&c<4)n++;else return;if(!ze(rc,y()))return;for(;ze(rc,y());){if(g=Xa(y(),10),p===null)p=g;else{if(p==0)return;p=p*10+g}if(p>255)return;n++}e[t]=e[t]*256+p,c++,(c==2||c==4)&&t++}if(c!=4)return;break}else if(y()==":"){if(n++,!y())return}else if(y())return;e[t++]=o}if(i!==null)for(f=t-i,t=7;t!=0&&f>0;)m=e[t],e[t--]=e[i+f-1],e[i+--f]=m;else if(t!=8)return;return e},jF=function(r){for(var e=null,t=1,i=null,n=0,o=0;o<8;o++)r[o]!==0?(n>t&&(e=i,t=n),i=null,n=0):(i===null&&(i=o),++n);return n>t&&(e=i,t=n),e},es=function(r){var e,t,i,n;if(typeof r=="number"){for(e=[],t=0;t<4;t++)EF(e,r%256),r=IF(r/256);return ts(e,".")}else if(typeof r=="object"){for(e="",i=jF(r),t=0;t<8;t++)n&&r[t]===0||(n&&(n=!1),i===t?(e+=t?":":"::",n=!0):(e+=xF(r[t],16),t<7&&(e+=":")));return"["+e+"]"}return r},Ja={},Sv=sc({},Ja,{" ":1,'"':1,"<":1,">":1,"`":1}),Pv=sc({},Sv,{"#":1,"?":1,"{":1,"}":1}),Wu=sc({},Pv,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),It=function(r,e){var t=yF(r,0);return t>32&&t<127&&!ec(e,r)?r:encodeURIComponent(r)},Ga={ftp:21,file:null,http:80,https:443,ws:80,wss:443},rs=function(r,e){var t;return r.length==2&&ze(bv,Ae(r,0))&&((t=Ae(r,1))==":"||!e&&t=="|")},lv=function(r){var e;return r.length>1&&rs(is(r,0,2))&&(r.length==2||(e=Ae(r,2))==="/"||e==="\\"||e==="?"||e==="#")},WF=function(r){return r==="."||Za(r)==="%2e"},GF=function(r){return r=Za(r),r===".."||r==="%2e."||r===".%2e"||r==="%2e%2e"},Gu={},uv={},Vu={},cv={},mv={},zu={},pv={},gv={},Va={},za={},Ju={},$u={},Ku={},Xu={},hv={},Zu={},ti={},et={},fv={},cr={},ut={},oc=function(r,e,t){var i=ct(r),n,o,a;if(e){if(o=this.parse(i),o)throw tc(o);this.searchParams=null}else{if(t!==void 0&&(n=new oc(t,!0)),o=this.parse(i,null,n),o)throw tc(o);a=wF(new CF),a.bindURL(this),this.searchParams=a}};oc.prototype={type:"URL",parse:function(r,e,t){var i=this,n=e||Gu,o=0,a="",c=!1,p=!1,g=!1,f,m,y,b;for(r=ct(r),e||(i.scheme="",i.username="",i.password="",i.host=null,i.port=null,i.path=[],i.query=null,i.fragment=null,i.cannotBeABaseURL=!1,r=av(r,NF,"")),r=av(r,_F,""),f=ei(r);o<=f.length;){switch(m=f[o],n){case Gu:if(m&&ze(bv,m))a+=Za(m),n=uv;else{if(e)return ju;n=Vu;continue}break;case uv:if(m&&(ze(OF,m)||m=="+"||m=="-"||m=="."))a+=Za(m);else if(m==":"){if(e&&(i.isSpecial()!=ec(Ga,a)||a=="file"&&(i.includesCredentials()||i.port!==null)||i.scheme=="file"&&!i.host))return;if(i.scheme=a,e){i.isSpecial()&&Ga[i.scheme]==i.port&&(i.port=null);return}a="",i.scheme=="file"?n=Xu:i.isSpecial()&&t&&t.scheme==i.scheme?n=cv:i.isSpecial()?n=gv:f[o+1]=="/"?(n=mv,o++):(i.cannotBeABaseURL=!0,ri(i.path,""),n=fv)}else{if(e)return ju;a="",n=Vu,o=0;continue}break;case Vu:if(!t||t.cannotBeABaseURL&&m!="#")return ju;if(t.cannotBeABaseURL&&m=="#"){i.scheme=t.scheme,i.path=Ve(t.path),i.query=t.query,i.fragment="",i.cannotBeABaseURL=!0,n=ut;break}n=t.scheme=="file"?Xu:zu;continue;case cv:if(m=="/"&&f[o+1]=="/")n=Va,o++;else{n=zu;continue}break;case mv:if(m=="/"){n=za;break}else{n=et;continue}case zu:if(i.scheme=t.scheme,m==Fe)i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.query=t.query;else if(m=="/"||m=="\\"&&i.isSpecial())n=pv;else if(m=="?")i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.query="",n=cr;else if(m=="#")i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.query=t.query,i.fragment="",n=ut;else{i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Ve(t.path),i.path.length--,n=et;continue}break;case pv:if(i.isSpecial()&&(m=="/"||m=="\\"))n=Va;else if(m=="/")n=za;else{i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,n=et;continue}break;case gv:if(n=Va,m!="/"||Ae(a,o+1)!="/")continue;o++;break;case Va:if(m!="/"&&m!="\\"){n=za;continue}break;case za:if(m=="@"){c&&(a="%40"+a),c=!0,y=ei(a);for(var P=0;P<y.length;P++){var x=y[P];if(x==":"&&!g){g=!0;continue}var I=It(x,Wu);g?i.password+=I:i.username+=I}a=""}else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(c&&a=="")return RF;o-=ei(a).length+1,a="",n=Ju}else a+=m;break;case Ju:case $u:if(e&&i.scheme=="file"){n=Zu;continue}else if(m==":"&&!p){if(a=="")return ur;if(b=i.parseHost(a),b)return b;if(a="",n=Ku,e==$u)return}else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(i.isSpecial()&&a=="")return ur;if(e&&a==""&&(i.includesCredentials()||i.port!==null))return;if(b=i.parseHost(a),b)return b;if(a="",n=ti,e)return;continue}else m=="["?p=!0:m=="]"&&(p=!1),a+=m;break;case Ku:if(ze(rc,m))a+=m;else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()||e){if(a!=""){var M=Xa(a,10);if(M>65535)return dv;i.port=i.isSpecial()&&M===Ga[i.scheme]?null:M,a=""}if(e)return;n=ti;continue}else return dv;break;case Xu:if(i.scheme="file",m=="/"||m=="\\")n=hv;else if(t&&t.scheme=="file")if(m==Fe)i.host=t.host,i.path=Ve(t.path),i.query=t.query;else if(m=="?")i.host=t.host,i.path=Ve(t.path),i.query="",n=cr;else if(m=="#")i.host=t.host,i.path=Ve(t.path),i.query=t.query,i.fragment="",n=ut;else{lv(ts(Ve(f,o),""))||(i.host=t.host,i.path=Ve(t.path),i.shortenPath()),n=et;continue}else{n=et;continue}break;case hv:if(m=="/"||m=="\\"){n=Zu;break}t&&t.scheme=="file"&&!lv(ts(Ve(f,o),""))&&(rs(t.path[0],!0)?ri(i.path,t.path[0]):i.host=t.host),n=et;continue;case Zu:if(m==Fe||m=="/"||m=="\\"||m=="?"||m=="#"){if(!e&&rs(a))n=et;else if(a==""){if(i.host="",e)return;n=ti}else{if(b=i.parseHost(a),b)return b;if(i.host=="localhost"&&(i.host=""),e)return;a="",n=ti}continue}else a+=m;break;case ti:if(i.isSpecial()){if(n=et,m!="/"&&m!="\\")continue}else if(!e&&m=="?")i.query="",n=cr;else if(!e&&m=="#")i.fragment="",n=ut;else if(m!=Fe&&(n=et,m!="/"))continue;break;case et:if(m==Fe||m=="/"||m=="\\"&&i.isSpecial()||!e&&(m=="?"||m=="#")){if(GF(a)?(i.shortenPath(),m!="/"&&!(m=="\\"&&i.isSpecial())&&ri(i.path,"")):WF(a)?m!="/"&&!(m=="\\"&&i.isSpecial())&&ri(i.path,""):(i.scheme=="file"&&!i.path.length&&rs(a)&&(i.host&&(i.host=""),a=Ae(a,0)+":"),ri(i.path,a)),a="",i.scheme=="file"&&(m==Fe||m=="?"||m=="#"))for(;i.path.length>1&&i.path[0]==="";)TF(i.path);m=="?"?(i.query="",n=cr):m=="#"&&(i.fragment="",n=ut)}else a+=It(m,Pv);break;case fv:m=="?"?(i.query="",n=cr):m=="#"?(i.fragment="",n=ut):m!=Fe&&(i.path[0]+=It(m,Ja));break;case cr:!e&&m=="#"?(i.fragment="",n=ut):m!=Fe&&(m=="'"&&i.isSpecial()?i.query+="%27":m=="#"?i.query+="%23":i.query+=It(m,Ja));break;case ut:m!=Fe&&(i.fragment+=It(m,Sv));break}o++}},parseHost:function(r){var e,t,i;if(Ae(r,0)=="["){if(Ae(r,r.length-1)!="]"||(e=qF(is(r,1,-1)),!e))return ur;this.host=e}else if(this.isSpecial()){if(r=bF(r),ze(LF,r)||(e=HF(r),e===null))return ur;this.host=e}else{if(ze(DF,r))return ur;for(e="",t=ei(r),i=0;i<t.length;i++)e+=It(t[i],Ja);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme=="file"},includesCredentials:function(){return this.username!=""||this.password!=""},isSpecial:function(){return ec(Ga,this.scheme)},shortenPath:function(){var r=this.path,e=r.length;e&&(this.scheme!="file"||e!=1||!rs(r[0],!0))&&r.length--},serialize:function(){var r=this,e=r.scheme,t=r.username,i=r.password,n=r.host,o=r.port,a=r.path,c=r.query,p=r.fragment,g=e+":";return n!==null?(g+="//",r.includesCredentials()&&(g+=t+(i?":"+i:"")+"@"),g+=es(n),o!==null&&(g+=":"+o)):e=="file"&&(g+="//"),g+=r.cannotBeABaseURL?a[0]:a.length?"/"+ts(a,"/"):"",c!==null&&(g+="?"+c),p!==null&&(g+="#"+p),g},setHref:function(r){var e=this.parse(r);if(e)throw tc(e);this.searchParams.update()},getOrigin:function(){var r=this.scheme,e=this.port;if(r=="blob")try{return new ii(r.path[0]).origin}catch{return"null"}return r=="file"||!this.isSpecial()?"null":r+"://"+es(this.host)+(e!==null?":"+e:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(r){this.parse(ct(r)+":",Gu)},getUsername:function(){return this.username},setUsername:function(r){var e=ei(ct(r));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var t=0;t<e.length;t++)this.username+=It(e[t],Wu)}},getPassword:function(){return this.password},setPassword:function(r){var e=ei(ct(r));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var t=0;t<e.length;t++)this.password+=It(e[t],Wu)}},getHost:function(){var r=this.host,e=this.port;return r===null?"":e===null?es(r):es(r)+":"+e},setHost:function(r){this.cannotBeABaseURL||this.parse(r,Ju)},getHostname:function(){var r=this.host;return r===null?"":es(r)},setHostname:function(r){this.cannotBeABaseURL||this.parse(r,$u)},getPort:function(){var r=this.port;return r===null?"":ct(r)},setPort:function(r){this.cannotHaveUsernamePasswordPort()||(r=ct(r),r==""?this.port=null:this.parse(r,Ku))},getPathname:function(){var r=this.path;return this.cannotBeABaseURL?r[0]:r.length?"/"+ts(r,"/"):""},setPathname:function(r){this.cannotBeABaseURL||(this.path=[],this.parse(r,ti))},getSearch:function(){var r=this.query;return r?"?"+r:""},setSearch:function(r){r=ct(r),r==""?this.query=null:(Ae(r,0)=="?"&&(r=is(r,1)),this.query="",this.parse(r,cr)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var r=this.fragment;return r?"#"+r:""},setHash:function(r){if(r=ct(r),r==""){this.fragment=null;return}Ae(r,0)=="#"&&(r=is(r,1)),this.fragment="",this.parse(r,ut)},update:function(){this.query=this.searchParams.serialize()||null}};var ii=function(e){var t=vF(this,ne),i=SF(arguments.length,1)>1?arguments[1]:void 0,n=PF(t,new oc(e,!1,i));ic||(t.href=n.serialize(),t.origin=n.getOrigin(),t.protocol=n.getProtocol(),t.username=n.getUsername(),t.password=n.getPassword(),t.host=n.getHost(),t.hostname=n.getHostname(),t.port=n.getPort(),t.pathname=n.getPathname(),t.search=n.getSearch(),t.searchParams=n.getSearchParams(),t.hash=n.getHash())},ne=ii.prototype,Te=function(r,e){return{get:function(){return Ka(this)[r]()},set:e&&function(t){return Ka(this)[e](t)},configurable:!0,enumerable:!0}};ic&&(xe(ne,"href",Te("serialize","setHref")),xe(ne,"origin",Te("getOrigin")),xe(ne,"protocol",Te("getProtocol","setProtocol")),xe(ne,"username",Te("getUsername","setUsername")),xe(ne,"password",Te("getPassword","setPassword")),xe(ne,"host",Te("getHost","setHost")),xe(ne,"hostname",Te("getHostname","setHostname")),xe(ne,"port",Te("getPort","setPort")),xe(ne,"pathname",Te("getPathname","setPathname")),xe(ne,"search",Te("getSearch","setSearch")),xe(ne,"searchParams",Te("getSearchParams")),xe(ne,"hash",Te("getHash","setHash")));$a(ne,"toJSON",function(){return Ka(this).serialize()},{enumerable:!0});$a(ne,"toString",function(){return Ka(this).serialize()},{enumerable:!0});Yn&&(Qu=Yn.createObjectURL,Yu=Yn.revokeObjectURL,Qu&&$a(ii,"createObjectURL",sv(Qu,Yn)),Yu&&$a(ii,"revokeObjectURL",sv(Yu,Yn)));var Qu,Yu;kF(ii,"URL");hF({global:!0,constructor:!0,forced:!fF,sham:!ic},{URL:ii})});var wv=h(()=>{Cv()});var Iv=h(()=>{"use strict";var VF=Wn(),zF=je();VF({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return zF(URL.prototype.toString,this)}})});var xv=h(()=>{qu()});var Tv=h((fM,Fv)=>{var JF=ge();Fv.exports=JF});var Ev=h((vM,Av)=>{wv();Iv();xv();var $F=Tv();Av.exports=$F.URL});var Bc=h((GD,_y)=>{var dA=Object.prototype.toString;_y.exports=function(e){if(e===void 0)return"undefined";if(e===null)return"null";var t=typeof e;if(t==="boolean")return"boolean";if(t==="string")return"string";if(t==="number")return"number";if(t==="symbol")return"symbol";if(t==="function")return pA(e)?"generatorfunction":"function";if(lA(e))return"array";if(fA(e))return"buffer";if(hA(e))return"arguments";if(cA(e))return"date";if(uA(e))return"error";if(mA(e))return"regexp";switch(Ny(e)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(gA(e))return"generator";switch(t=dA.call(e),t){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return t.slice(8,-1).toLowerCase().replace(/\s/g,"")};function Ny(r){return typeof r.constructor=="function"?r.constructor.name:null}function lA(r){return Array.isArray?Array.isArray(r):r instanceof Array}function uA(r){return r instanceof Error||typeof r.message=="string"&&r.constructor&&typeof r.constructor.stackTraceLimit=="number"}function cA(r){return r instanceof Date?!0:typeof r.toDateString=="function"&&typeof r.getDate=="function"&&typeof r.setDate=="function"}function mA(r){return r instanceof RegExp?!0:typeof r.flags=="string"&&typeof r.ignoreCase=="boolean"&&typeof r.multiline=="boolean"&&typeof r.global=="boolean"}function pA(r,e){return Ny(r)==="GeneratorFunction"}function gA(r){return typeof r.throw=="function"&&typeof r.return=="function"&&typeof r.next=="function"}function hA(r){try{if(typeof r.length=="number"&&typeof r.callee=="function")return!0}catch(e){if(e.message.indexOf("callee")!==-1)return!0}return!1}function fA(r){return r.constructor&&typeof r.constructor.isBuffer=="function"?r.constructor.isBuffer(r):!1}});var jy=h((VD,qy)=>{"use strict";var Hy=Symbol.prototype.valueOf,vA=Bc();function yA(r,e){switch(vA(r)){case"array":return r.slice();case"object":return Object.assign({},r);case"date":return new r.constructor(Number(r));case"map":return new Map(r);case"set":return new Set(r);case"buffer":return PA(r);case"symbol":return CA(r);case"arraybuffer":return kA(r);case"float32array":case"float64array":case"int16array":case"int32array":case"int8array":case"uint16array":case"uint32array":case"uint8clampedarray":case"uint8array":return SA(r);case"regexp":return bA(r);case"error":return Object.create(r);default:return r}}function bA(r){let e=r.flags!==void 0?r.flags:/\w+$/.exec(r)||void 0,t=new r.constructor(r.source,e);return t.lastIndex=r.lastIndex,t}function kA(r){let e=new r.constructor(r.byteLength);return new Uint8Array(e).set(new Uint8Array(r)),e}function SA(r,e){return new r.constructor(r.buffer,r.byteOffset,r.length)}function PA(r){let e=r.length,t=Buffer.allocUnsafe?Buffer.allocUnsafe(e):Buffer.from(e);return r.copy(t),t}function CA(r){return Hy?Object(Hy.call(r)):{}}qy.exports=yA});var Gy=h((zD,Wy)=>{"use strict";Wy.exports=function(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}});var Jy=h((JD,zy)=>{"use strict";var wA=Gy();function Vy(r){return wA(r)===!0&&Object.prototype.toString.call(r)==="[object Object]"}zy.exports=function(e){var t,i;return!(Vy(e)===!1||(t=e.constructor,typeof t!="function")||(i=t.prototype,Vy(i)===!1)||i.hasOwnProperty("isPrototypeOf")===!1)}});var Ky=h(($D,$y)=>{"use strict";var IA=jy(),xA=Bc(),FA=Jy();function Mc(r,e){switch(xA(r)){case"object":return TA(r,e);case"array":return AA(r,e);default:return IA(r)}}function TA(r,e){if(typeof e=="function")return e(r);if(e||FA(r)){let t=new r.constructor;for(let i in r)t[i]=Mc(r[i],e);return t}return r}function AA(r,e){let t=new r.constructor(r.length);for(let i=0;i<r.length;i++)t[i]=Mc(r[i],e);return t}$y.exports=Mc});var zc=h((vs,Fi)=>{var EA=200,Vc="__lodash_hash_undefined__",Cd=1,ab=2,db=9007199254740991,fd="[object Arguments]",Nc="[object Array]",RA="[object AsyncFunction]",lb="[object Boolean]",ub="[object Date]",cb="[object Error]",mb="[object Function]",OA="[object GeneratorFunction]",vd="[object Map]",pb="[object Number]",BA="[object Null]",xi="[object Object]",Xy="[object Promise]",MA="[object Proxy]",gb="[object RegExp]",yd="[object Set]",hb="[object String]",UA="[object Symbol]",LA="[object Undefined]",_c="[object WeakMap]",fb="[object ArrayBuffer]",bd="[object DataView]",DA="[object Float32Array]",NA="[object Float64Array]",_A="[object Int8Array]",HA="[object Int16Array]",qA="[object Int32Array]",jA="[object Uint8Array]",WA="[object Uint8ClampedArray]",GA="[object Uint16Array]",VA="[object Uint32Array]",zA=/[\\^$.*+?()[\]{}|]/g,JA=/^\[object .+?Constructor\]$/,$A=/^(?:0|[1-9]\d*)$/,W={};W[DA]=W[NA]=W[_A]=W[HA]=W[qA]=W[jA]=W[WA]=W[GA]=W[VA]=!0;W[fd]=W[Nc]=W[fb]=W[lb]=W[bd]=W[ub]=W[cb]=W[mb]=W[vd]=W[pb]=W[xi]=W[gb]=W[yd]=W[hb]=W[_c]=!1;var vb=typeof global=="object"&&global&&global.Object===Object&&global,KA=typeof self=="object"&&self&&self.Object===Object&&self,ht=vb||KA||Function("return this")(),yb=typeof vs=="object"&&vs&&!vs.nodeType&&vs,Zy=yb&&typeof Fi=="object"&&Fi&&!Fi.nodeType&&Fi,bb=Zy&&Zy.exports===yb,Uc=bb&&vb.process,Qy=function(){try{return Uc&&Uc.binding&&Uc.binding("util")}catch{}}(),Yy=Qy&&Qy.isTypedArray;function XA(r,e){for(var t=-1,i=r==null?0:r.length,n=0,o=[];++t<i;){var a=r[t];e(a,t,r)&&(o[n++]=a)}return o}function ZA(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}function QA(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}function YA(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}function eE(r){return function(e){return r(e)}}function tE(r,e){return r.has(e)}function rE(r,e){return r?.[e]}function iE(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}function nE(r,e){return function(t){return r(e(t))}}function sE(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}var oE=Array.prototype,aE=Function.prototype,wd=Object.prototype,Lc=ht["__core-js_shared__"],kb=aE.toString,rt=wd.hasOwnProperty,eb=function(){var r=/[^.]+$/.exec(Lc&&Lc.keys&&Lc.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),Sb=wd.toString,dE=RegExp("^"+kb.call(rt).replace(zA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),tb=bb?ht.Buffer:void 0,kd=ht.Symbol,rb=ht.Uint8Array,Pb=wd.propertyIsEnumerable,lE=oE.splice,yr=kd?kd.toStringTag:void 0,ib=Object.getOwnPropertySymbols,uE=tb?tb.isBuffer:void 0,cE=nE(Object.keys,Object),Hc=Ti(ht,"DataView"),ys=Ti(ht,"Map"),qc=Ti(ht,"Promise"),jc=Ti(ht,"Set"),Wc=Ti(ht,"WeakMap"),bs=Ti(Object,"create"),mE=Sr(Hc),pE=Sr(ys),gE=Sr(qc),hE=Sr(jc),fE=Sr(Wc),nb=kd?kd.prototype:void 0,Dc=nb?nb.valueOf:void 0;function br(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function vE(){this.__data__=bs?bs(null):{},this.size=0}function yE(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}function bE(r){var e=this.__data__;if(bs){var t=e[r];return t===Vc?void 0:t}return rt.call(e,r)?e[r]:void 0}function kE(r){var e=this.__data__;return bs?e[r]!==void 0:rt.call(e,r)}function SE(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=bs&&e===void 0?Vc:e,this}br.prototype.clear=vE;br.prototype.delete=yE;br.prototype.get=bE;br.prototype.has=kE;br.prototype.set=SE;function ft(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function PE(){this.__data__=[],this.size=0}function CE(r){var e=this.__data__,t=Id(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():lE.call(e,t,1),--this.size,!0}function wE(r){var e=this.__data__,t=Id(e,r);return t<0?void 0:e[t][1]}function IE(r){return Id(this.__data__,r)>-1}function xE(r,e){var t=this.__data__,i=Id(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}ft.prototype.clear=PE;ft.prototype.delete=CE;ft.prototype.get=wE;ft.prototype.has=IE;ft.prototype.set=xE;function kr(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function FE(){this.size=0,this.__data__={hash:new br,map:new(ys||ft),string:new br}}function TE(r){var e=xd(this,r).delete(r);return this.size-=e?1:0,e}function AE(r){return xd(this,r).get(r)}function EE(r){return xd(this,r).has(r)}function RE(r,e){var t=xd(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}kr.prototype.clear=FE;kr.prototype.delete=TE;kr.prototype.get=AE;kr.prototype.has=EE;kr.prototype.set=RE;function Sd(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new kr;++e<t;)this.add(r[e])}function OE(r){return this.__data__.set(r,Vc),this}function BE(r){return this.__data__.has(r)}Sd.prototype.add=Sd.prototype.push=OE;Sd.prototype.has=BE;function Lt(r){var e=this.__data__=new ft(r);this.size=e.size}function ME(){this.__data__=new ft,this.size=0}function UE(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}function LE(r){return this.__data__.get(r)}function DE(r){return this.__data__.has(r)}function NE(r,e){var t=this.__data__;if(t instanceof ft){var i=t.__data__;if(!ys||i.length<EA-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new kr(i)}return t.set(r,e),this.size=t.size,this}Lt.prototype.clear=ME;Lt.prototype.delete=UE;Lt.prototype.get=LE;Lt.prototype.has=DE;Lt.prototype.set=NE;function _E(r,e){var t=Pd(r),i=!t&&eR(r),n=!t&&!i&&Gc(r),o=!t&&!i&&!n&&Ab(r),a=t||i||n||o,c=a?YA(r.length,String):[],p=c.length;for(var g in r)(e||rt.call(r,g))&&!(a&&(g=="length"||n&&(g=="offset"||g=="parent")||o&&(g=="buffer"||g=="byteLength"||g=="byteOffset")||KE(g,p)))&&c.push(g);return c}function Id(r,e){for(var t=r.length;t--;)if(Ib(r[t][0],e))return t;return-1}function HE(r,e,t){var i=e(r);return Pd(r)?i:ZA(i,t(r))}function Ss(r){return r==null?r===void 0?LA:BA:yr&&yr in Object(r)?JE(r):YE(r)}function sb(r){return ks(r)&&Ss(r)==fd}function Cb(r,e,t,i,n){return r===e?!0:r==null||e==null||!ks(r)&&!ks(e)?r!==r&&e!==e:qE(r,e,t,i,Cb,n)}function qE(r,e,t,i,n,o){var a=Pd(r),c=Pd(e),p=a?Nc:Ut(r),g=c?Nc:Ut(e);p=p==fd?xi:p,g=g==fd?xi:g;var f=p==xi,m=g==xi,y=p==g;if(y&&Gc(r)){if(!Gc(e))return!1;a=!0,f=!1}if(y&&!f)return o||(o=new Lt),a||Ab(r)?wb(r,e,t,i,n,o):VE(r,e,p,t,i,n,o);if(!(t&Cd)){var b=f&&rt.call(r,"__wrapped__"),P=m&&rt.call(e,"__wrapped__");if(b||P){var x=b?r.value():r,I=P?e.value():e;return o||(o=new Lt),n(x,I,t,i,o)}}return y?(o||(o=new Lt),zE(r,e,t,i,n,o)):!1}function jE(r){if(!Tb(r)||ZE(r))return!1;var e=xb(r)?dE:JA;return e.test(Sr(r))}function WE(r){return ks(r)&&Fb(r.length)&&!!W[Ss(r)]}function GE(r){if(!QE(r))return cE(r);var e=[];for(var t in Object(r))rt.call(r,t)&&t!="constructor"&&e.push(t);return e}function wb(r,e,t,i,n,o){var a=t&Cd,c=r.length,p=e.length;if(c!=p&&!(a&&p>c))return!1;var g=o.get(r);if(g&&o.get(e))return g==e;var f=-1,m=!0,y=t&ab?new Sd:void 0;for(o.set(r,e),o.set(e,r);++f<c;){var b=r[f],P=e[f];if(i)var x=a?i(P,b,f,e,r,o):i(b,P,f,r,e,o);if(x!==void 0){if(x)continue;m=!1;break}if(y){if(!QA(e,function(I,M){if(!tE(y,M)&&(b===I||n(b,I,t,i,o)))return y.push(M)})){m=!1;break}}else if(!(b===P||n(b,P,t,i,o))){m=!1;break}}return o.delete(r),o.delete(e),m}function VE(r,e,t,i,n,o,a){switch(t){case bd:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case fb:return!(r.byteLength!=e.byteLength||!o(new rb(r),new rb(e)));case lb:case ub:case pb:return Ib(+r,+e);case cb:return r.name==e.name&&r.message==e.message;case gb:case hb:return r==e+"";case vd:var c=iE;case yd:var p=i&Cd;if(c||(c=sE),r.size!=e.size&&!p)return!1;var g=a.get(r);if(g)return g==e;i|=ab,a.set(r,e);var f=wb(c(r),c(e),i,n,o,a);return a.delete(r),f;case UA:if(Dc)return Dc.call(r)==Dc.call(e)}return!1}function zE(r,e,t,i,n,o){var a=t&Cd,c=ob(r),p=c.length,g=ob(e),f=g.length;if(p!=f&&!a)return!1;for(var m=p;m--;){var y=c[m];if(!(a?y in e:rt.call(e,y)))return!1}var b=o.get(r);if(b&&o.get(e))return b==e;var P=!0;o.set(r,e),o.set(e,r);for(var x=a;++m<p;){y=c[m];var I=r[y],M=e[y];if(i)var Ce=a?i(M,I,y,e,r,o):i(I,M,y,r,e,o);if(!(Ce===void 0?I===M||n(I,M,t,i,o):Ce)){P=!1;break}x||(x=y=="constructor")}if(P&&!x){var Pt=r.constructor,da=e.constructor;Pt!=da&&"constructor"in r&&"constructor"in e&&!(typeof Pt=="function"&&Pt instanceof Pt&&typeof da=="function"&&da instanceof da)&&(P=!1)}return o.delete(r),o.delete(e),P}function ob(r){return HE(r,iR,$E)}function xd(r,e){var t=r.__data__;return XE(e)?t[typeof e=="string"?"string":"hash"]:t.map}function Ti(r,e){var t=rE(r,e);return jE(t)?t:void 0}function JE(r){var e=rt.call(r,yr),t=r[yr];try{r[yr]=void 0;var i=!0}catch{}var n=Sb.call(r);return i&&(e?r[yr]=t:delete r[yr]),n}var $E=ib?function(r){return r==null?[]:(r=Object(r),XA(ib(r),function(e){return Pb.call(r,e)}))}:nR,Ut=Ss;(Hc&&Ut(new Hc(new ArrayBuffer(1)))!=bd||ys&&Ut(new ys)!=vd||qc&&Ut(qc.resolve())!=Xy||jc&&Ut(new jc)!=yd||Wc&&Ut(new Wc)!=_c)&&(Ut=function(r){var e=Ss(r),t=e==xi?r.constructor:void 0,i=t?Sr(t):"";if(i)switch(i){case mE:return bd;case pE:return vd;case gE:return Xy;case hE:return yd;case fE:return _c}return e});function KE(r,e){return e=e??db,!!e&&(typeof r=="number"||$A.test(r))&&r>-1&&r%1==0&&r<e}function XE(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}function ZE(r){return!!eb&&eb in r}function QE(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||wd;return r===t}function YE(r){return Sb.call(r)}function Sr(r){if(r!=null){try{return kb.call(r)}catch{}try{return r+""}catch{}}return""}function Ib(r,e){return r===e||r!==r&&e!==e}var eR=sb(function(){return arguments}())?sb:function(r){return ks(r)&&rt.call(r,"callee")&&!Pb.call(r,"callee")},Pd=Array.isArray;function tR(r){return r!=null&&Fb(r.length)&&!xb(r)}var Gc=uE||sR;function rR(r,e){return Cb(r,e)}function xb(r){if(!Tb(r))return!1;var e=Ss(r);return e==mb||e==OA||e==RA||e==MA}function Fb(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=db}function Tb(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}function ks(r){return r!=null&&typeof r=="object"}var Ab=Yy?eE(Yy):WE;function iR(r){return tR(r)?_E(r):GE(r)}function nR(){return[]}function sR(){return!1}Fi.exports=rR});var vS=h(Vd=>{"use strict";Vd.byteLength=BR;Vd.toByteArray=UR;Vd.fromByteArray=NR;var st=[],_e=[],OR=typeof Uint8Array<"u"?Uint8Array:Array,Cm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Dr=0,hS=Cm.length;Dr<hS;++Dr)st[Dr]=Cm[Dr],_e[Cm.charCodeAt(Dr)]=Dr;var Dr,hS;_e[45]=62;_e[95]=63;function fS(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var i=t===e?0:4-t%4;return[t,i]}function BR(r){var e=fS(r),t=e[0],i=e[1];return(t+i)*3/4-i}function MR(r,e,t){return(e+t)*3/4-t}function UR(r){var e,t=fS(r),i=t[0],n=t[1],o=new OR(MR(r,i,n)),a=0,c=n>0?i-4:i,p;for(p=0;p<c;p+=4)e=_e[r.charCodeAt(p)]<<18|_e[r.charCodeAt(p+1)]<<12|_e[r.charCodeAt(p+2)]<<6|_e[r.charCodeAt(p+3)],o[a++]=e>>16&255,o[a++]=e>>8&255,o[a++]=e&255;return n===2&&(e=_e[r.charCodeAt(p)]<<2|_e[r.charCodeAt(p+1)]>>4,o[a++]=e&255),n===1&&(e=_e[r.charCodeAt(p)]<<10|_e[r.charCodeAt(p+1)]<<4|_e[r.charCodeAt(p+2)]>>2,o[a++]=e>>8&255,o[a++]=e&255),o}function LR(r){return st[r>>18&63]+st[r>>12&63]+st[r>>6&63]+st[r&63]}function DR(r,e,t){for(var i,n=[],o=e;o<t;o+=3)i=(r[o]<<16&16711680)+(r[o+1]<<8&65280)+(r[o+2]&255),n.push(LR(i));return n.join("")}function NR(r){for(var e,t=r.length,i=t%3,n=[],o=16383,a=0,c=t-i;a<c;a+=o)n.push(DR(r,a,a+o>c?c:a+o));return i===1?(e=r[t-1],n.push(st[e>>2]+st[e<<4&63]+"==")):i===2&&(e=(r[t-2]<<8)+r[t-1],n.push(st[e>>10]+st[e>>4&63]+st[e<<2&63]+"=")),n.join("")}});var Sq=Ln(Ev(),1);function v(r,e){if(r==null)throw Error(e??"Expected nonnullish value.")}function mr(r,e){if(!r)throw Error(e)}var se;(function(r){r.COMMENT="t1_",r.ACCOUNT="t2_",r.LINK="t3_",r.MESSAGE="t4_",r.SUBREDDIT="t5_",r.AWARD="t6_"})(se||(se={}));function xt(r){return r.startsWith(se.COMMENT)}function Qa(r){return r.startsWith(se.ACCOUNT)}function pr(r){return r.startsWith(se.LINK)}function Rv(r){return r.startsWith(se.MESSAGE)}function Ov(r){return r.startsWith(se.SUBREDDIT)}function Bv(r){return r.startsWith(se.AWARD)}function KF(r){mr(xt(r),`Expected comment id to start with ${se.COMMENT}, got ${r}}`)}function XF(r){mr(Qa(r),`Expected account id to start with ${se.ACCOUNT}, got ${r}}`)}function ZF(r){mr(pr(r),`Expected link id to start with ${se.LINK}, got ${r}}`)}function QF(r){mr(Rv(r),`Expected message id to start with ${se.MESSAGE}, got ${r}}`)}function YF(r){mr(Ov(r),`Expected subreddit id to start with ${se.SUBREDDIT}, got ${r}}`)}function eT(r){mr(Bv(r),`Expected award id to start with ${se.AWARD}, got ${r}}`)}function ni(r){return KF(r),r}function oe(r){return XF(r),r}function ve(r){return ZF(r),r}function tT(r){return QF(r),r}function ie(r){return YF(r),r}function rT(r){return eT(r),r}function Re(r){if(xt(r))return ni(r);if(Qa(r))return oe(r);if(pr(r))return ve(r);if(Rv(r))return tT(r);if(Ov(r))return ie(r);if(Bv(r))return rT(r);throw new Error(`Expected thing id to start with ${Object.values(se).join(", ")} got ${r}}`)}function ac(r){return xt(r)}import*as C from"@devvit/protos";var Ya=class{constructor(e){}};var dc=(t=>(t.Installation="installation",t.App="app",t))(dc||{});function gr(r,e=new Set){for(let t of r){if(t.type==="group"){gr(t.fields,e);continue}let i=t.name;if(e.has(i))throw new Error(`Duplicate field name: ${i}`);e.add(i)}iT(r)}function iT(r){for(let e of r)if(e.type==="string"&&e.isSecret&&e.scope!=="app")throw`Invalid setting: only app settings can be secrets. Add "scope: SettingScope.App" to field "${e.name}"`}var Ft=Object.freeze({INTERVAL:0,FORM:1,STATE:2,CHANNEL:3});var FM=["3rd-party","activity","add-emoji","add","add-media","add-to-feed","admin","ads","ai","align-center","align-left","align-right","all","ama","appearance","approve","archived","aspect-ratio","aspect-rectangle","attach","audience","audio","author","automod","avatar-style","award","back","backup","ban","best","block","blockchain","bold","boost","bot","bounce","brand-awareness","browse","browser","cake","calendar","camera","campaign","caret-down","caret-left","caret-right","caret-up","chat","chat-group","chat-new","chat-private","checkbox-dismiss","checkbox","checkmark","chrome","clear","client-list","close","closed-captioning","code-block","code-inline","coins-color-old","coins","collapse-left","collapse-right","collectible-expressions","collection","comment","comments","communities","community","confidence","contest","controversial","conversion","copy-clipboard","crop","crosspost","crowd-control","custom-feed","customize","dashboard","day","delete-column","delete","delete-row","devvit","discover","dismiss-all","distinguish","down-arrow","down","download","downvote","downvotes","drag","drugs","duplicate","edit","effect","embed","emoji","end-live-chat","error","expand-left","expand-right","external","feed-video","filter","format","forward","funnel","gif-post","gold","hashtag","heart","help","hide","history","home","hot","ignore-reports","image-post","inbox","info","insert-column-left","insert-column-right","insert-row-above","insert-row-below","internet","invite","italic","join","joined","jump-down","jump-up","karma","keyboard","kick","language","leave","left","link","link-post","list-bulleted","list-numbered","live-chat","live","load","location","lock","logout","loop","macro","mark-read","marketplace","mask","media-gallery","meme","menu","message","mic","mic-mute","mod","mod-mail","mod-mode","mod-mute","mod-overflow","mod-queue","mod-unmute","music","mute","new","night","no-internet","notification","notification-frequent","notification-off","nsfw","nsfw-language","nsfw-violence","official","original","overflow-caret","overflow-horizontal","overflow-vertical","pause","payment","peace","pending-posts","phone","pin","play","poll-post","popular","posts","powerup","predictions","premium","privacy","profile","qa","qr-code","quarantined","quote","r-slash","radar","radio-button","raise-hand","random","ratings-everyone","ratings-mature","ratings-nsfw","ratings-violence","recovery-phrase","refresh","removal-reasons","remove","reply","report","reverse","rich-text","right","rising","rotate","rotate-image","rpan","rules","safari","save","save-view","saved","saved-response","search","self","send","settings","severity","share","share-new","show","side-menu","skipback10","skipforward10","sort-az","sort","sort-price","sort-za","spam","spoiler","sponsored","spreadsheet","star","statistics","status-live","sticker","strikethrough","subtract","superscript","swap-camera","swipe-back","swipe-down","swipe","swipe-up","table","tag","tap","text","text-post","text-size","toggle","tools","top","topic-activism","topic-addictionsupport","topic-advice","topic-animals","topic-anime","topic-art","topic-beauty","topic-business","topic-careers","topic-cars","topic-celebrity","topic-craftsdiy","topic-crypto","topic-culture","topic-diy","topic-entertainment","topic-ethics","topic-family","topic-fashion","topic","topic-fitness","topic-food","topic-funny","topic-gender","topic-health","topic-help","topic-history","topic-hobbies","topic-homegarden","topic-internet","topic-law","topic-learning","topic-lifestyle","topic-marketplace","topic-mature","topic-mensfashion","topic-menshealth","topic-meta","topic-military","topic-movies","topic-music","topic-news","topic-other","topic-outdoors","topic-pets","topic-photography","topic-places","topic-podcasts","topic-politics","topic-programming","topic-reading","topic-religion","topic-science","topic-sexorientation","topic-sports","topic-style","topic-tabletop","topic-technology","topic-television","topic-traumasupport","topic-travel","topic-videogaming","topic-womensfashion","topic-womenshealth","translate","translation-off","trim","u-slash","unban","undo","unheart","unlock","unmod","unpin","unstar","unverified","up-arrow","up","upload","upvote","upvotes","user","user-note","users","vault","verified","video-camera","video-feed","video-post","video-thread","video-transcription","view-card","view-classic","view-compact","view-grid","view-sort","views","volume","wallet","warning","webhook","whale","wiki-ban","wiki","wiki-unban","world","coins-color","powerup-color","powerup-fill-color","share-android","share-ios","video-live-1","video-live-fill-1","video-live","volume-mute","binoculars","caret-updown","planet","telescope"];import{AppSettingsDefinition as yT,GetFieldsResponse as bT}from"@devvit/protos";import{FormFieldType as Oe}from"@devvit/protos";function mt(r){return r.map(e=>{switch(e.type){case"string":return nT(e);case"image":return sT(e);case"paragraph":return oT(e);case"number":return aT(e);case"select":return dT(e);case"boolean":return lT(e);case"group":return uT(e);default:throw new Error("Unknown field type.")}})}function nT(r){return{defaultValue:{fieldType:Oe.STRING,stringValue:r.defaultValue},disabled:r.disabled,fieldConfig:{stringConfig:{placeholder:r.placeholder}},fieldId:r.name,fieldType:Oe.STRING,helpText:r.helpText,label:r.label,required:r.required,isSecret:r.isSecret}}function sT(r){return{disabled:r.disabled,fieldId:r.name,fieldType:Oe.IMAGE,helpText:r.helpText,label:r.label,required:r.required}}function oT(r){return{defaultValue:{fieldType:Oe.PARAGRAPH,stringValue:r.defaultValue},disabled:r.disabled,fieldConfig:{paragraphConfig:{lineHeight:r.lineHeight,placeholder:r.placeholder}},fieldId:r.name,fieldType:Oe.PARAGRAPH,helpText:r.helpText,label:r.label,required:r.required}}function aT(r){return{defaultValue:{fieldType:Oe.NUMBER,numberValue:r.defaultValue},disabled:r.disabled,fieldConfig:{numberConfig:{}},fieldId:r.name,fieldType:Oe.NUMBER,helpText:r.helpText,label:r.label,required:r.required}}function dT(r){return{defaultValue:{fieldType:Oe.SELECTION,selectionValue:{values:r.defaultValue??[]}},disabled:r.disabled,fieldConfig:{selectionConfig:{choices:r.options,multiSelect:r.multiSelect}},fieldId:r.name,fieldType:Oe.SELECTION,helpText:r.helpText,label:r.label,required:r.required}}function lT(r){return{defaultValue:{fieldType:Oe.BOOLEAN,boolValue:r.defaultValue},disabled:r.disabled,fieldId:r.name,fieldType:Oe.BOOLEAN,helpText:r.helpText,label:r.label}}function uT(r){return{fieldId:"",fieldType:Oe.GROUP,fieldConfig:{groupConfig:{fields:mt(r.fields)}},label:r.label,helpText:r.helpText}}function U(r,e){u.prototype[r]=e}import{ValidateFormResponse as vT}from"@devvit/protos";import{RealtimeSubscriptionStatus as Uv}from"@devvit/protos";var L=Object.freeze({Actor:"devvit-actor",App:"devvit-app",AppUser:"devvit-app-user",AppViewerAuthToken:"devvit-app-viewer-authorization",Caller:"devvit-caller",CallerPortID:"devvit-caller-port-id",Canary:"devvit-canary",Debug:"devvit-debug",GQLHost:"devvit-gql-host",Installation:"devvit-installation",ModPermissions:"devvit-mod-permissions",Post:"devvit-post",PostAuthor:"devvit-post-author",R2Auth:"devvit-sec-authorization",R2Host:"devvit-r2-host",RemoteHostname:"devvit-remote-hostname",SettingsUri:"devvit-sec-settings-uri",StreamID:"devvit-stream-id",Subreddit:"devvit-subreddit",SubredditName:"devvit-subreddit-name",TraceID:"devvit-trace-id",User:"devvit-user",UserAgent:"devvit-user-agent",Version:"devvit-version",Language:"devvit-accept-language",Timezone:"devvit-accept-timezone",AppDependencies:"devvit-app-dependencies"}),Mv;(function(r){r.Blocks="blocks",r.EmitSnapshots="emitSnapshots",r.EmitState="emitState",r.Realtime="realtime",r.Runtime="runtime",r.Surface="surface",r.UseAsync="useAsync",r.Payments="payments",r.Bootstrap="bootstrap",r.WebView="webView"})(Mv||(Mv={}));function Lv(r){function e(t){let n=r.currentHookIndex,o=r.getCurrentComponentState(),a=r.getPreviousComponentState(),c=r.metadata[L.App]?.values[0];v(c,"useChannel - app is missing from Context");let p=r.metadata[L.Installation]?.values[0];v(p,"useChannel - installation is missing from Context");async function g(I){let M=o[n].channel;if(o[n].active)if(o[n].connected)await r.realtime.send(M,I);else throw Error(`Failed to send to channel '${M}'; it is active but not yet connected`);else throw Error(`Cannot send a message over inactive channel: ${M}`)}function f(){if(!o[n].active){let I=o[n].channel;o[n].active=!0,r.addRealtimeChannel(I)}}function m(){if(o[n].active){let I=o[n].channel;o[n].active=!1,r.removeRealtimeChannel(I)}}function y(I){return async()=>{let M;switch(I.status){case Uv.REALTIME_SUBSCRIBED:o[n].connected=!0,M=t.onSubscribed?.();break;case Uv.REALTIME_UNSUBSCRIBED:o[n].connected=!1,M=t.onUnsubscribed?.();break;default:M=t.onMessage(I.event?.data?.msg);break}await M}}let b={channel:`${c}:${p}:${t.name}`,active:!1,connected:!1,preventCallback:!1,type:Ft.CHANNEL};n in o?b=o[n]:n in a&&(b=a[n]);let P=r.realtimeEvent;r.isInitialRender?b.active=!1:P&&b.active&&P.event.channel===b.channel&&(b.preventCallback||r.runHook(y(P)),r.rerenderIn(0)),o[n]=b,r.currentHookIndex++;let x=0;return b.active&&b.connected?x=2:b.active&&!b.connected?x=1:!b.active&&b.connected?x=3:!b.active&&!b.connected&&(x=4),{subscribe:f,unsubscribe:m,send:g,status:x}}return e}import{FormFieldType as si}from"@devvit/protos";function lc(r){switch(r.fieldType){case si.STRING:return r.stringValue;case si.IMAGE:return r.stringValue;case si.PARAGRAPH:return r.stringValue;case si.NUMBER:return r.numberValue;case si.BOOLEAN:return r.boolValue;case si.SELECTION:return r.selectionValue?.values??[];default:return}}function Tt(r){return Object.keys(r).reduce((e,t)=>{let i=lc(r[t]);return i!==void 0&&(e[t]=i),e},{})}function Dv(r){function e(t,i){let n=r.currentHookIndex,o=r.getCurrentComponentKey(),a=r.getCurrentComponentState(),c=r.getPreviousComponentState(),p=`form.hook.${o}.${n}`,g={formKey:p,preventSubmit:!1,type:Ft.FORM};n in a?g=a[n]:n in c&&(g=c[n]),a[n]=g,r.forms.set(p,t);let f=r.formSubmittedEvent;return f&&!g.preventSubmit&&f.formId===p&&r.runHook(async()=>{let m=i(Tt(f.results));m&&m instanceof Promise&&await m,r.rerenderIn(0)}),a[n].preventSubmit=!1,r.currentHookIndex++,p}return e}function Nv(r){function e(t,i){let n=r.currentHookIndex,o=r.getCurrentComponentState(),a=r.getPreviousComponentState(),c=100,p=Math.max(c,i),g={lastRun:void 0,running:!1,preventCallback:!1,type:Ft.INTERVAL};n in o?g=o[n]:n in a&&(g=a[n]);function f(){i<c&&console.error(`useInterval delay must be at least ${c}ms. Your interval of ${i}ms was automatically extended.`);for(let[y,b]of Object.entries(o))if(y!==n.toString()&&b?.type===Ft.INTERVAL&&b?.running)throw new Error("Only one useInterval hook may be running at a time");o[n]={running:!0,lastRun:o[n]?.lastRun??Date.now(),preventCallback:!1,type:Ft.INTERVAL},r.rerenderIn(p)}function m(){o[n].running=!1,o[n].lastRun=void 0,o[n].preventCallback=!1}return r.isEffectRender&&g.running&&(g.preventCallback||(g.lastRun===void 0||g.lastRun+p<Date.now())&&r.runHook(async()=>{let y=t();y&&y instanceof Promise&&await y,g.lastRun=Date.now()}),r.rerenderIn(p)),g.preventCallback=!1,o[n]=g,r.currentHookIndex++,{start:f,stop:m}}return e}function _v(r){function e(t){let i=r.currentHookIndex,n=r.getCurrentComponentState(),o=r.getPreviousComponentState();if(i in n)return r.currentHookIndex++,[n[i],a];if(r.isInitialRender||!(i in o)){let c=t instanceof Function?t():t;if(c instanceof Promise)throw(async()=>{n[i]=await c,r.currentHookIndex=0})();n[i]=c}else n[i]=o[i];function a(c){if(r.isRendering)throw new Error("Cannot call setState while rendering.");n[i]=c instanceof Function?c(n[i]):c}return r.currentHookIndex++,[n[i],a]}return e}var pc={now(){return new Date}};function Hv(r){return`__autocache__${r}`}function qv(r){return`__lock__${r}`}var mT=300,pT=1e3,ed=5e3,uc=3,jv=.1,Wv=1e3,gT=3e4;function Gv(r){if(r.error)throw new Error(r.error);return r.value}var At,Et,Be,oi,$,Vv,zv,Jv,cc,$v,Kv,mc,Xv,td=class{constructor(e,t,i=pc){l(this,$);l(this,At);l(this,Et,{});l(this,Be);l(this,oi);d(this,At,e),d(this,oi,t),d(this,Be,i)}async cache(e,t){d(this,Et,s(this,oi).__cache=s(this,oi).__cache??{}),S(this,$,Xv).call(this,t);let i=S(this,$,Vv).call(this,t.key);if(i!==void 0)return i;let n=await S(this,$,mc).call(this,t.key),o=await S(this,$,zv).call(this,t,n,e);return Gv(o)}};At=new WeakMap,Et=new WeakMap,Be=new WeakMap,oi=new WeakMap,$=new WeakSet,Vv=function(e){let t=s(this,Et)[e];if(t){let i=s(this,Be).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<uc&&Math.random()<jv&&t.errorTime+Wv<i;if(t?.expires&&t.expires<i&&t.checkedAt+Wv<i||n){delete s(this,Et)[e];return}else return Gv(t)}},zv=async function(e,t,i){let n=t?.expires,o=n?S(this,$,Kv).call(this,n):1;return!t||t?.error&&t.errorCount<uc&&jv>Math.random()||o>Math.random()?S(this,$,Jv).call(this,e,t,i):t},Jv=async function(e,t,i){let n=qv(e.key),o=s(this,Be).now().getTime(),a=new Date(o+e.ttl/2);if(await s(this,At).set(n,"1",{expiration:a,nx:!0}))return S(this,$,$v).call(this,e.key,t,i,e.ttl);if(t)return t;{let p=s(this,Be).now();return S(this,$,cc).call(this,p,e.key,e.ttl)}},cc=async function(e,t,i){let n=Math.min(i,pT),o=await S(this,$,mc).call(this,t);if(o)return o;if(s(this,Be).now().getTime()-e.getTime()>=n)throw new Error(`Cache request timed out trying to get data at key: ${t}`);return await new Promise(a=>setTimeout(a,mT)),S(this,$,cc).call(this,e,t,i)},$v=async function(e,t,i,n){let o=s(this,Be).now().getTime()+n;t=t??{value:null,expires:o,errorCount:0,error:null,errorTime:null,checkedAt:0};try{t.value=await i(),t.error=null,t.errorCount=0,t.errorTime=null}catch(a){t.value=null,t.error=a.message??"Unknown error",t.errorTime=s(this,Be).now().getTime(),t.errorCount++}return s(this,Et)[e]=t,await s(this,At).set(Hv(e),JSON.stringify(t),{expiration:new Date(o+gT)}),t.error&&t.errorCount<uc&&await s(this,At).del(qv(e)),t},Kv=function(e){let t=s(this,Be).now().getTime(),i=e-t;return i<0?1:i<1e3?.1:i<2e3?.01:i<3e3?.001:0},mc=async function(e){let t=await s(this,At).get(Hv(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Be).now().getTime(),s(this,Et)[e]=i,i}},Xv=function(e){e.ttl<ed&&(console.warn(`Cache TTL cannot be less than ${ed} milliseconds! Updating ttl value of ${e.ttl} to ${ed}.`),e.ttl=ed)};function Zv(r,e,t=pc){let i=new td(r,e,t);return i.cache.bind(i)}function Qv(r){new URL(r.slice(0,r.indexOf(",")))}var ai,di,ui,Yv,ey,li=class{constructor(){l(this,ui);l(this,ai,{});l(this,di,{});d(this,ai,u.assets),d(this,di,u.webViewAssets)}getURL(e,t){return typeof e=="string"?S(this,ui,Yv).call(this,e,t??{webView:!1}):S(this,ui,ey).call(this,e,t??{webView:!1})}};ai=new WeakMap,di=new WeakMap,ui=new WeakSet,Yv=function(e,t){let i=t.webView?s(this,di)[e]:s(this,ai)[e];if(i)return i;try{return Qv(e),encodeURI(e)}catch{return""}},ey=function(e,t){let i={},n=[],o=t.webView?s(this,di):s(this,ai);if(o)for(let a of e)if(o[a])i[a]=o[a];else try{Qv(a),i[a]=encodeURI(a)}catch{n.push(a)}else n=e;if(n.length>0)throw new Error(`The following assets were missing from the assets list: ${n.join(", ")}`);return i};var Rt,ci=class{constructor(e){l(this,Rt);d(this,Rt,e)}async get(e){let{messages:t}=await u.kvStorePlugin.Get({keys:[e]},s(this,Rt));try{if(t[e])return JSON.parse(t[e])}catch{return}}async put(e,t){let i={};i[e]=JSON.stringify(t),await u.kvStorePlugin.Put({messages:i},s(this,Rt))}async delete(e){await u.kvStorePlugin.Del({keys:[e]},s(this,Rt))}async list(){let{keys:e}=await u.kvStorePlugin.List({filter:"*"},s(this,Rt));return e}};Rt=new WeakMap;var ns,mi=class{constructor(e){l(this,ns);d(this,ns,e)}async upload(e){let t=await u.mediaPlugin.Upload(e,s(this,ns));if(!t.mediaId)throw new Error("unable to get mediaId via uploads");return Promise.resolve({mediaId:t.mediaId,mediaUrl:t.mediaUrl})}};ns=new WeakMap;var ss,pi=class{constructor(e){l(this,ss);d(this,ss,e)}async add(e){await u.modLogPlugin.Add(e,s(this,ss))}};ss=new WeakMap;var os,gi=class{constructor(e){l(this,os);d(this,os,e)}async send(e,t){await u.realtimePlugin.Send({channel:e,data:{msg:t}},s(this,os))}};os=new WeakMap;var k,as,ds,hi=class{constructor(e){l(this,k);l(this,as);l(this,ds);d(this,k,e),d(this,as,new id(e))}get modMail(){return s(this,as)}getSubredditById(e){return ye.getById(Re(e),s(this,k))}getSubredditInfoById(e){return ry(e,s(this,k))}getSubredditByName(e){return ye.getByName(e,s(this,k))}getSubredditInfoByName(e){return iy(e,s(this,k))}addSubredditRemovalReason(e,t){return ye.addRemovalReason(e,t.title,t.message,s(this,k))}getSubredditRemovalReasons(e){return ye.getRemovalReasons(e,s(this,k))}getCurrentSubreddit(){return ye.getFromMetadata(s(this,k))}getPostById(e){return z.getById(Re(e),s(this,k))}submitPost(e){return z.submit(e,s(this,k))}crosspost(e){return z.crosspost(e,s(this,k))}getUserById(e){return w.getById(Re(e),s(this,k))}getUserByUsername(e){return w.getByUsername(e,s(this,k))}async getCurrentUser(){return s(this,ds)??d(this,ds,w.getFromMetadata(L.User,s(this,k))),s(this,ds)}getAppUser(){return w.getFromMetadata(L.AppUser,s(this,k))}getSnoovatarUrl(e){return w.getSnoovatarUrl(e,s(this,k))}getCommentById(e){return te.getById(Re(e),s(this,k))}getComments(e){return te.getComments(e,s(this,k))}getCommentsByUser(e){return te.getCommentsByUser(e,s(this,k))}submitComment(e){return te.submit({...e,id:Re(e.id)},s(this,k))}getControversialPosts(e){return z.getControversialPosts(e,s(this,k))}getTopPosts(e){return z.getTopPosts(e,s(this,k))}getHotPosts(e){return z.getHotPosts(e,s(this,k))}getNewPosts(e){return z.getNewPosts(e,s(this,k))}getRisingPosts(e){return z.getRisingPosts(e,s(this,k))}getPostsByUser(e){return z.getPostsByUser(e,s(this,k))}getCommentsAndPostsByUser(e){return w.getOverview(e,s(this,k))}getModerationLog(e){return rd(e,s(this,k))}getApprovedUsers(e){return w.getSubredditUsersByType({type:"contributors",...e},s(this,k))}approveUser(e,t){return w.createRelationship({username:e,subredditName:t,type:"contributor"},s(this,k))}removeUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"contributor"},s(this,k))}getWikiContributors(e){return w.getSubredditUsersByType({type:"wikicontributors",...e},s(this,k))}addWikiContributor(e,t){return w.createRelationship({username:e,subredditName:t,type:"wikicontributor"},s(this,k))}removeWikiContributor(e,t){return w.removeRelationship({username:e,subredditName:t,type:"wikicontributor"},s(this,k))}getBannedUsers(e){return w.getSubredditUsersByType({type:"banned",...e},s(this,k))}banUser(e){return w.createRelationship({username:e.username,subredditName:e.subredditName,type:"banned",banReason:e.reason,banMessage:e.message,note:e.note,duration:e.duration,banContext:e.context},s(this,k))}unbanUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"banned"},s(this,k))}getBannedWikiContributors(e){return w.getSubredditUsersByType({type:"wikibanned",...e},s(this,k))}banWikiContributor(e){return w.createRelationship({...e,type:"wikibanned"},s(this,k))}unbanWikiContributor(e,t){return w.removeRelationship({username:e,subredditName:t,type:"wikibanned"},s(this,k))}getModerators(e){return w.getSubredditUsersByType({type:"moderators",...e},s(this,k))}inviteModerator(e){return w.createRelationship({type:"moderator_invite",subredditName:e.subredditName,username:e.username,permissions:e.permissions??[]},s(this,k))}revokeModeratorInvite(e,t){return w.removeRelationship({username:e,subredditName:t,type:"moderator_invite"},s(this,k))}removeModerator(e,t){return w.removeRelationship({type:"moderator",subredditName:t,username:e},s(this,k))}setModeratorPermissions(e,t,i){return w.setModeratorPermissions(e,t,i,s(this,k))}getMutedUsers(e){return w.getSubredditUsersByType({type:"muted",...e},s(this,k))}muteUser(e){return w.createRelationship({...e,type:"muted"},s(this,k))}unmuteUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"muted"},s(this,k))}getModNotes(e){return Me.get(e,s(this,k))}deleteModNote(e){return Me.delete(e,s(this,k))}addModNote(e){let t={...e,redditId:e.redditId?Re(e.redditId):void 0};return Me.add(t,s(this,k))}addRemovalNote(e){return Me.addRemovalNote(e,s(this,k))}async sendPrivateMessage(e){return hr.send(e,s(this,k))}async sendPrivateMessageAsSubreddit(e){return hr.sendAsSubreddit(e,s(this,k))}async approve(e){if(xt(e))return te.approve(e,s(this,k));if(pr(e))return z.approve(e,s(this,k));throw new Error("id must start with either t1_ or t3_")}async remove(e,t){if(xt(e))return te.remove(e,t,s(this,k));if(pr(e))return z.remove(e,t,s(this,k));throw new Error("id must start with either t1_ or t3_")}async getPostFlairTemplates(e){return ue.getPostFlairTemplates(e,s(this,k))}async getUserFlairTemplates(e){return ue.getUserFlairTemplates(e,s(this,k))}async createPostFlairTemplate(e){return ue.createPostFlairTemplate(e,s(this,k))}async createUserFlairTemplate(e){return ue.createUserFlairTemplate(e,s(this,k))}async editFlairTemplate(e){return ue.editFlairTemplate(e,s(this,k))}async deleteFlairTemplate(e,t){return ue.deleteFlairTemplate(e,t,s(this,k))}async setUserFlair(e){return Ue.setUserFlair(e,s(this,k))}async removeUserFlair(e,t){return Ue.removeUserFlair(e,t,s(this,k))}async setPostFlair(e){return Ue.setPostFlair(e,s(this,k))}async removePostFlair(e,t){return Ue.removePostFlair(e,ve(t),s(this,k))}async getWidgets(e){return ae.getWidgets(e,s(this,k))}async deleteWidget(e,t){return ae.delete(e,t,s(this,k))}async addWidget(e){return ae.add(e,s(this,k))}async reorderWidgets(e,t){return ae.reorder(e,t,s(this,k))}async getWikiPage(e,t){return be.getPage(e,t,s(this,k))}async getWikiPages(e){return be.getPages(e,s(this,k))}async createWikiPage(e){return be.createPage(e,s(this,k))}async updateWikiPage(e){return be.updatePage(e,s(this,k))}getWikiPageRevisions(e){return be.getPageRevisions(e,s(this,k))}async revertWikiPage(e,t,i){return be.revertPage(e,t,i,s(this,k))}async getWikiPageSettings(e,t){return be.getPageSettings(e,t,s(this,k))}async updateWikiPageSettings(e){return be.updatePageSettings(e,s(this,k))}async addEditorToWikiPage(e,t,i){return be.addEditor(e,t,i,s(this,k))}async removeEditorFromWikiPage(e,t,i){return be.removeEditor(e,t,i,s(this,k))}getMessages(e){return hr.getMessages(e,s(this,k))}markAllMessagesAsRead(){return hr.markAllAsRead(s(this,k))}report(e,t){return u.redditAPIPlugins.LinksAndComments.Report({reason:t.reason,thingId:e.id,srName:e.subredditName,usernames:e.authorName},s(this,k))}getModQueue(e){return ye.aboutLocation({...e,location:"modqueue"},s(this,k))}getReports(e){return ye.aboutLocation({...e,location:"reports"},s(this,k))}getSpam(e){return ye.aboutLocation({...e,location:"spam"},s(this,k))}getUnmoderated(e){return ye.aboutLocation({...e,location:"unmoderated"},s(this,k))}getEdited(e){return ye.aboutLocation({...e,location:"edited"},s(this,k))}getVaultByAddress(e){return oy(e,s(this,k))}getVaultByUserId(e){return ay(Re(e),s(this,k))}getSubredditLeaderboard(e){return ny(e,s(this,k))}getSubredditStyles(e){return sy(e,s(this,k))}async subscribeToCurrentSubreddit(){let e=await this.getCurrentSubreddit();await u.redditAPIPlugins.Subreddits.Subscribe({action:"sub",actionSource:"",srName:e.name,sr:"",skipInitialDefaults:!0},s(this,k))}async unsubscribeFromCurrentSubreddit(){let e=await this.getCurrentSubreddit();await u.redditAPIPlugins.Subreddits.Subscribe({action:"unsub",actionSource:"",srName:e.name,sr:"",skipInitialDefaults:!1},s(this,k))}};k=new WeakMap,as=new WeakMap,ds=new WeakMap;import{RedisKeyScope as gc}from"@devvit/protos";function nd(r){return r&&typeof r=="object"&&"message"in r&&r.message!==void 0&&typeof r.message=="string"?r.message.includes("redis: nil"):!1}var A,E,R,hc=class{constructor(e,t,i){l(this,A);l(this,E);l(this,R);d(this,A,e),d(this,E,t),d(this,R,i)}async get(e){return await s(this,A).Get({key:e,transactionId:s(this,E)},s(this,R)),this}async multi(){await s(this,A).Multi(s(this,E),s(this,R))}async set(e,t,i){let n;return i?.expiration&&(n=Math.floor((i.expiration.getTime()-Date.now())/1e3),n<1&&(n=1)),await s(this,A).Set({key:e,value:t,nx:i?.nx===!0,xx:i?.xx===!0,expiration:n||0,transactionId:s(this,E)},s(this,R)),this}async del(...e){return await s(this,A).Del({keys:e,transactionId:s(this,E)},s(this,R)),this}async type(e){return await s(this,A).Type({key:e,transactionId:s(this,E)},s(this,R)),this}async exec(){let e=await s(this,A).Exec(s(this,E),s(this,R)),t=[];for(let i of e.response)i.members?t.push(i.members):i.nil!==void 0?t.push(null):i.num!==void 0?t.push(i.num):i.values!==void 0?t.push(i.values.values):i.str!==void 0?t.push(i.str):i.dbl!==void 0&&t.push(i.dbl);return t}async discard(){await s(this,A).Discard(s(this,E),s(this,R))}async watch(...e){return await s(this,A).Watch({keys:e,transactionId:s(this,E)},s(this,R)),this}async unwatch(){return await s(this,A).Unwatch(s(this,E),s(this,R)),this}async getRange(e,t,i){return await s(this,A).GetRange({key:e,start:t,end:i,transactionId:s(this,E)},s(this,R)),this}async setRange(e,t,i){return await s(this,A).SetRange({key:e,offset:t,value:i,transactionId:s(this,E)},s(this,R)),this}async strlen(e){return this.strLen(e)}async strLen(e){return await s(this,A).Strlen({key:e,transactionId:s(this,E)},s(this,R)),this}async mget(e){return this.mGet(e)}async mGet(e){return await s(this,A).MGet({keys:e,transactionId:s(this,E)},s(this,R)),this}async mset(e){return this.mSet(e)}async mSet(e){let t=Object.entries(e).map(([i,n])=>({key:i,value:n}));return await s(this,A).MSet({kv:t,transactionId:s(this,E)},s(this,R)),this}async incrBy(e,t){return await s(this,A).IncrBy({key:e,value:t,transactionId:s(this,E)},s(this,R)),this}async expire(e,t){return await s(this,A).Expire({key:e,seconds:t,transactionId:s(this,E)},s(this,R)),this}async expireTime(e){return await s(this,A).ExpireTime({key:e,transactionId:s(this,E)},s(this,R)),this}async zAdd(e,...t){return await s(this,A).ZAdd({key:e,members:t,transactionId:s(this,E)},s(this,R)),this}async zScore(e,t){return await s(this,A).ZScore({key:{key:e,transactionId:s(this,E)},member:t},s(this,R)),this}async zRank(e,t){return await s(this,A).ZRank({key:{key:e,transactionId:s(this,E)},member:t},s(this,R)),this}async zIncrBy(e,t,i){return await s(this,A).ZIncrBy({key:e,member:t,value:i,transactionId:s(this,E)},s(this,R)),this}async zScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,transactionId:s(this,E)};return await s(this,A).ZScan(o,s(this,R)),this}async zCard(e){return await s(this,A).ZCard({key:e,transactionId:s(this,E)},s(this,R)),this}async zRange(e,t,i,n){let o={rev:!1,byLex:!1,byScore:!1,offset:0,count:1e3};return n?.reverse&&(o.rev=n.reverse),n?.by==="lex"?o.byLex=!0:n?.by==="score"&&(o.byScore=!0),await s(this,A).ZRange({key:{key:e,transactionId:s(this,E)},start:t+"",stop:i+"",...o},s(this,R)),this}async zRem(e,t){return await s(this,A).ZRem({key:{key:e,transactionId:s(this,E)},members:t},s(this,R)),this}async zRemRangeByLex(e,t,i){return await s(this,A).ZRemRangeByLex({key:{key:e,transactionId:s(this,E)},min:t,max:i},s(this,R)),this}async zRemRangeByRank(e,t,i){return await s(this,A).ZRemRangeByRank({key:{key:e,transactionId:s(this,E)},start:t,stop:i},s(this,R)),this}async zRemRangeByScore(e,t,i){return await s(this,A).ZRemRangeByScore({key:{key:e,transactionId:s(this,E)},min:t,max:i},s(this,R)),this}async hgetall(e){return this.hGetAll(e)}async hGetAll(e){return await s(this,A).HGetAll({key:e,transactionId:s(this,E)},s(this,R)),this}async hget(e,t){return this.hGet(e,t)}async hGet(e,t){return await s(this,A).HGet({key:e,field:t,transactionId:s(this,E)},s(this,R)),this}async hMGet(e,t){return await s(this,A).HMGet({key:e,fields:t,transactionId:s(this,E)},s(this,R)),this}async hset(e,t){return this.hSet(e,t)}async hSet(e,t){let i=Object.entries(t).map(([n,o])=>({field:n,value:o}));return await s(this,A).HSet({key:e,fv:i,transactionId:s(this,E)},s(this,R)),this}async hincrby(e,t,i){return this.hIncrBy(e,t,i)}async hIncrBy(e,t,i){return await s(this,A).HIncrBy({key:e,field:t,value:i,transactionId:s(this,E)},s(this,R)),this}async hdel(e,t){return this.hDel(e,t)}async hDel(e,t){return await s(this,A).HDel({key:e,fields:t,transactionId:s(this,E)},s(this,R)),this}async hscan(e,t,i,n){return this.hScan(e,t,i,n)}async hScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,transactionId:s(this,E)};return await s(this,A).HScan(o,s(this,R)),this}async hkeys(e){return this.hKeys(e)}async hKeys(e){return await s(this,A).HKeys({key:e,transactionId:s(this,E)},s(this,R)),this}async hlen(e){return this.hLen(e)}async hLen(e){return await s(this,A).HLen({key:e,transactionId:s(this,E)},s(this,R)),this}};A=new WeakMap,E=new WeakMap,R=new WeakMap;var B,fi,fc=class fc{constructor(e,t=void 0,i=gc.INSTALLATION){l(this,B);l(this,fi);d(this,B,e),d(this,fi,t),this.scope=i,this.global=i===gc.INSTALLATION?new fc(s(this,B),s(this,fi),gc.GLOBAL):this}get storage(){return s(this,fi)||u.redisPlugin}async watch(...e){let t=await this.storage.Watch({keys:e},s(this,B));return new hc(this.storage,t,s(this,B))}async get(e){try{let t=await this.storage.Get({key:e,scope:this.scope},{...s(this,B),"throw-redis-nil":{values:["true"]}});return t!==null?t.value??void 0:t}catch(t){if(nd(t))return;throw t}}async set(e,t,i){let n;return i?.expiration&&(n=Math.floor((i.expiration.getTime()-Date.now())/1e3),n<1&&(n=1)),(await this.storage.Set({key:e,value:t,nx:i?.nx===!0&&!i.xx,xx:i?.xx===!0&&!i.nx,expiration:n||0,scope:this.scope},s(this,B))).value}async del(...e){await this.storage.Del({keys:e,scope:this.scope},s(this,B))}async incrBy(e,t){return(await this.storage.IncrBy({key:e,value:t,scope:this.scope},s(this,B))).value}async getRange(e,t,i){let n=await this.storage.GetRange({key:e,start:t,end:i,scope:this.scope},s(this,B));return n!==null?n.value:n}async setRange(e,t,i){return(await this.storage.SetRange({key:e,offset:t,value:i,scope:this.scope},s(this,B))).value}async strlen(e){return this.strLen(e)}async strLen(e){return(await this.storage.Strlen({key:e,scope:this.scope},s(this,B))).value}async expire(e,t){await this.storage.Expire({key:e,seconds:t,scope:this.scope},s(this,B))}async expireTime(e){return(await this.storage.ExpireTime({key:e,scope:this.scope},s(this,B))).value}async zAdd(e,...t){return(await this.storage.ZAdd({key:e,members:t,scope:this.scope},s(this,B))).value}async zRange(e,t,i,n){let o={rev:!1,byLex:!1,byScore:!1,offset:0,count:1e3};return n?.reverse&&(o.rev=n.reverse),n?.by==="lex"?o.byLex=!0:n?.by==="score"?o.byScore=!0:(o.offset=0,o.count=0),(await this.storage.ZRange({key:{key:e},start:t+"",stop:i+"",...o,scope:this.scope},s(this,B))).members}async zRem(e,t){return(await this.storage.ZRem({key:{key:e},members:t,scope:this.scope},s(this,B))).value}async zRemRangeByLex(e,t,i){return(await this.storage.ZRemRangeByLex({key:{key:e},min:t,max:i,scope:this.scope},s(this,B))).value}async zRemRangeByRank(e,t,i){return(await this.storage.ZRemRangeByRank({key:{key:e},start:t,stop:i,scope:this.scope},s(this,B))).value}async zRemRangeByScore(e,t,i){return(await this.storage.ZRemRangeByScore({key:{key:e},min:t,max:i,scope:this.scope},s(this,B))).value}async zScore(e,t){try{let i=await this.storage.ZScore({key:{key:e},member:t,scope:this.scope},{...s(this,B),"throw-redis-nil":{values:["true"]}});return i!==null?i.value:i}catch(i){if(nd(i))return;throw i}}async zRank(e,t){try{let i=await this.storage.ZRank({key:{key:e},member:t,scope:this.scope},{...s(this,B),"throw-redis-nil":{values:["true"]}});return i!==null?i.value:i}catch(i){if(nd(i))return;throw i}}async zIncrBy(e,t,i){let n=await this.storage.ZIncrBy({key:e,member:t,value:i,scope:this.scope},s(this,B));return n!==null?n.value:n}async mget(e){return this.mGet(e)}async mGet(e){let t=await this.storage.MGet({keys:e,scope:this.scope},s(this,B));return t!==null?t.values.map(i=>i||null):t}async mset(e){return this.mSet(e)}async mSet(e){let t=Object.entries(e).map(([i,n])=>({key:i,value:n}));await this.storage.MSet({kv:t,scope:this.scope},s(this,B))}async zCard(e){let t=await this.storage.ZCard({key:e,scope:this.scope},s(this,B));return t!==null?t.value:t}async zScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,scope:this.scope};return await this.storage.ZScan(o,s(this,B))}async type(e){let t=await this.storage.Type({key:e,scope:this.scope},s(this,B));return t!==null?t.value:t}async hget(e,t){return this.hGet(e,t)}async hGet(e,t){try{let i=await this.storage.HGet({key:e,field:t,scope:this.scope},{...s(this,B),"throw-redis-nil":{values:["true"]}});return i!==null?i.value??void 0:i}catch(i){if(nd(i))return;throw i}}async hMGet(e,t){let i=await this.storage.HMGet({key:e,fields:t,scope:this.scope},s(this,B));return i!==null?i.values.map(n=>n||null):i}async hset(e,t){return this.hSet(e,t)}async hSet(e,t){let i=Object.entries(t).map(([o,a])=>({field:o,value:a}));return(await this.storage.HSet({key:e,fv:i,scope:this.scope},s(this,B))).value}async hgetall(e){return this.hGetAll(e)}async hGetAll(e){let t=await this.storage.HGetAll({key:e,scope:this.scope},s(this,B));return t!==null?t.fieldValues:t}async hdel(e,t){return this.hDel(e,t)}async hDel(e,t){return(await this.storage.HDel({key:e,fields:t,scope:this.scope},s(this,B))).value}async hscan(e,t,i,n){return this.hScan(e,t,i,n)}async hScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,scope:this.scope};return await this.storage.HScan(o,s(this,B))}async hkeys(e){return this.hKeys(e)}async hKeys(e){let t=await this.storage.HKeys({key:e,scope:this.scope},s(this,B));return t!==null?t.keys:t}async hincrby(e,t,i){return this.hIncrBy(e,t,i)}async hIncrBy(e,t,i){return(await this.storage.HIncrBy({key:e,field:t,value:i,scope:this.scope},s(this,B))).value}async hlen(e){return this.hLen(e)}async hLen(e){return(await this.storage.HLen({key:e,scope:this.scope})).value}};B=new WeakMap,fi=new WeakMap;var vi=fc;var fr,yi=class{constructor(e){l(this,fr);d(this,fr,e)}async runJob(e){return(await u.schedulerPlugin.Schedule({action:{type:e.name,data:e.data},cron:"cron"in e?e.cron:void 0,when:"runAt"in e?e.runAt:void 0},s(this,fr))).id}async cancelJob(e){await u.schedulerPlugin.Cancel({id:e},s(this,fr))}async listJobs(){return(await u.schedulerPlugin.List({after:new Date(0),before:new Date(Date.now()+31536e7)},s(this,fr))).actions.map(t=>(v(t.request?.action,"Scheduled job is malformed"),"when"in t.request&&t.request.when!=null?{id:t.id,name:t.request.action.type,runAt:t.request.when,data:t.request.action.data}:{id:t.id,name:t.request.action.type,cron:t.request.cron??"",data:t.request.action}))}};fr=new WeakMap;var ls,bi=class{constructor(e){l(this,ls);d(this,ls,e)}async get(e){return(await this.getAll())[e]}async getAll(){let t=await u.settingsPlugin.GetSettings({},s(this,ls));if(!t.installationSettings)throw new Error("Could not get installation settings");if(!t.appSettings)throw new Error("Could not get app settings");return{...dy(t.installationSettings.settings,u.installationSettings),...dy(t.appSettings.settings,u.appSettings)}}};ls=new WeakMap;function dy(r,e){let t=Object.keys(r).reduce((i,n)=>(i[n]=lc(r[n]),i),{});return e&&ly(t,e),t}function ly(r,e){for(let t of e)t.type==="group"?ly(r,t.fields):!(t.name in r)&&"defaultValue"in t&&(r[t.name]=t.defaultValue)}import{EffectType as sd,ToastAppearance as uy}from"@devvit/protos";var Ot,ki,us,ad,od=class{constructor(e){l(this,Ot,[]);l(this,ki);l(this,us);l(this,ad,(e,t)=>{let i=t!==void 0?e:"",n=t!==void 0?t:e;s(this,Ot).push({type:sd.EFFECT_WEB_VIEW,webView:{postMessage:{webViewId:i,app:{message:n}}}})});d(this,ki,e),d(this,us,{postMessage:s(this,ad)})}get webView(){return s(this,us)}showForm(e,t){let i=u.formDefinitions.get(e);if(!i&&s(this,ki)){let a=s(this,ki).forms.get(e);a&&(i={form:a,onSubmit:()=>{}})}if(!i)throw new Error("Form does not exist. Make sure you have added it using Devvit.createForm at the root of your app.");let n=i.form instanceof Function?i.form(t??{}):i.form,o={fields:[],id:e,title:n.title,acceptLabel:n.acceptLabel,cancelLabel:n.cancelLabel,shortDescription:n.description};gr(n.fields),o.fields=mt(n.fields),s(this,Ot).push({type:sd.EFFECT_SHOW_FORM,showForm:{form:o}})}showToast(e){let t;e instanceof Object?t={text:e.text,appearance:e.appearance==="success"?uy.SUCCESS:uy.NEUTRAL}:t={text:e},s(this,Ot).push({type:sd.EFFECT_SHOW_TOAST,showToast:{toast:t}})}navigateTo(e){let t;typeof e=="string"?t=new URL(e).toString():t=new URL(e.permalink,"https://www.reddit.com").toString(),s(this,Ot).push({type:sd.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}get __effects(){return s(this,Ot)}};Ot=new WeakMap,ki=new WeakMap,us=new WeakMap,ad=new WeakMap;function Le({metadata:r,ui:e,hooks:t,reconciler:i}){let n=new pi(r),o=new ci(r),a=new vi(r),c=Zv(a,i?i.state:{}),p=new hi(r),g=new yi(r),f=new bi(r),m=e?new od(i):void 0,y=new mi(r),b=new li,P=new gi(r),x=t&&i?_v(i):void 0,I=t&&i?Nv(i):void 0,M=t&&i?Dv(i):void 0,Ce=t&&i?Lv(i):void 0;return{modLog:n,kvStore:o,redis:a,reddit:p,scheduler:g,settings:f,media:y,assets:b,realtime:P,get useForm(){return M??(()=>{throw new Error("useForm() is unavailable")})},get cache(){return c??(()=>{throw new Error("cache() is unavailable")})},get useState(){return x??(()=>{throw new Error("useState() is unavailable")})},get useInterval(){return I??(()=>{throw new Error("useInterval() is unavailable")})},get useChannel(){return Ce??(()=>{throw new Error("useChannel() is unavailable")})},get ui(){if(!m)throw new Error("ui client is not available");return m}}}var cy={name:"@devvit/public-api",version:"0.11.5-dev",license:"BSD-3-Clause",repository:{type:"git",url:"https://developers.reddit.com/"},type:"module",exports:{".":"./dist/index.js","./package.json":"./package.json","./*":"./dist/*"},main:"./dist/index.js",files:["dist/**"],scripts:{build:"yarn build:icon-types && yarn build:semantic-colors && tsc && cp -af devvit.tsconfig.json dist/ && yarn build:types && yarn build:min && yarn build:unmin","build:icon-types":"make-icons src/types/icons.ts","build:min":"esbuild --bundle --sourcemap=linked --target=es2020 --format=esm --metafile=dist/meta.min.json --outfile=dist/public-api.min.js --external:@devvit/protos --minify src/index.ts","build:semantic-colors":"node scripts/make-semantic-colors.js","build:types":"api-extractor run && sed -ne '/declare global {/,$ p' src/devvit/Devvit.ts >> dist/public-api.d.ts","build:unmin":"esbuild --bundle --sourcemap=inline --target=es2020 --format=iife --metafile=dist/meta.json --outfile=dist/public-api.iife.js --global-name=devvitPublicAPI src/index.ts",clean:"rm -rf .turbo api-extractor coverage dist src/devvit/internals/semanticColors.ts src/types/icons.ts || :",clobber:"yarn clean && rm -rf node_modules",dev:"tsc -w","dev:build":"chokidar ./src --command 'yarn build' --ignore './src/types/icons.ts' --ignore './src/devvit/internals/semanticColors.ts'",lint:"redlint .","lint:fix":"yarn lint --fix",prepublishOnly:"publish-package-json",test:"yarn test:unit && yarn test:types && yarn test:size","test:size":"filesize","test:types":"tsc --noEmit","test:unit":"vitest run","test:unit-with-coverage":"vitest run --coverage"},types:"./dist/index.d.ts",dependencies:{"@devvit/protos":"0.11.5-dev","@devvit/shared-types":"0.11.5-dev","base64-js":"1.5.1","clone-deep":"4.0.1","core-js":"3.27.2","lodash.isequal":"4.5.0"},devDependencies:{"@ampproject/filesize":"4.3.0","@devvit/repo-tools":"0.11.5-dev","@devvit/tsconfig":"0.11.5-dev","@microsoft/api-extractor":"7.41.0","@reddit/faceplate-ui":"18.0.1","@types/clone-deep":"4.0.1","@types/core-js":"2.5.6","@types/lodash.isequal":"4.5.6","@vitest/coverage-c8":"0.32.0","chokidar-cli":"3.0.0",esbuild:"0.23.0",eslint:"9.11.1",typescript:"5.3.2",vitest:"1.6.0"},publishConfig:{directory:"dist"},filesize:{"dist/public-api.min.js":{gzip:"80 KB",none:"260 KB"}},source:"./src/index.ts"};function ce(r,e,t){let i=r[L.Subreddit]?.values[0];v(i,"subreddit is missing from Context");let n=r[L.SubredditName]?.values[0],o=r[L.AppUser]?.values[0],a=r[L.App]?.values[0],c=r[L.Version]?.values[0],p=r[L.User]?.values[0],g=fT(r);return{get appAccountId(){return v(o,"appAccountId is missing from Context"),o},subredditId:i,subredditName:n,userId:p,postId:e,commentId:t,appName:a,appVersion:c,debug:g,toJSON(){return{appAccountId:o,appName:a,appVersion:c,subredditId:i,subredditName:n,userId:p,postId:e,commentId:t,debug:g}}}}function fT(r){let e={blocks:void 0,emitSnapshots:void 0,emitState:void 0,realtime:void 0,runtime:void 0,surface:void 0,useAsync:void 0,payments:void 0,bootstrap:void 0,webView:void 0},t={};for(let n in e)t[n.toLowerCase()]=n;let i={};for(let n of(r[L.Debug]?.values??[]).join().split(",")){let[o,a]=n.split("=");o&&(o=o.trim(),a=a?.trim(),o.toLowerCase()in t&&(o=t[o.toLowerCase()]),i[o]??(i[o]=a||"true"))}return r[L.Debug]&&console.info(`[api] @devvit/public-api v${cy.version} ${Object.entries(i).map(([n,o])=>`${n}=${o}`).join(" ")}`),{...i,metadata:r}}function my(r){return r.flatMap(e=>e.type==="group"?my(e.fields):e)}async function dd(r,e,t){if(!e)throw new Error("Settings were not defined.");let i={success:!0,errors:{}},n=Tt(r.fieldValues),o=my(e);return await Promise.all(o.map(async a=>{let c=a.name;if(c&&a.onValidate){let p=n[c],g=a.onValidate,f=Object.assign(Le({metadata:t}),ce(t)),m=await g({value:p,isEditing:r.editing},f);m&&(i.success=!1,i.errors[c]=m)}})),vT.fromJSON(i)}async function kT(){if(!u.appSettings)throw new Error("App settings were not defined.");return bT.fromJSON({fields:{fields:mt(u.appSettings)}})}async function ST(r,e){return dd(r,u.appSettings,e)}function py(r){r.provides(yT),U("GetAppSettingsFields",kT),U("ValidateAppForm",ST)}import{CustomPostDefinition as TT,RenderPostResponse as AT}from"@devvit/protos";import{BlockRenderEventType as Ec,EffectType as Ty}from"@devvit/protos";function Si(r){return r.__effects}function gy(){let r=new Set;return e=>{let t=e,i=1;for(;r.has(t);)t=`${e}.${i++}`;return r.add(t),t}}import{BlockActionType as Ac,BlockAvatarBackground as wy,BlockAvatarFacing as Iy,BlockAvatarSize as Bt,BlockBorderWidth as md,BlockButtonAppearance as Mt,BlockButtonSize as Sc,BlockGap as pd,BlockHorizontalAlignment as Pc,BlockIconSize as gd,BlockImageResizeMode as cs,BlockPadding as ms,BlockRadius as ps,BlockSpacerShape as Cc,BlockSpacerSize as hd,BlockStackDirection as wc,BlockTextOutline as Ic,BlockTextOverflow as xc,BlockTextSize as Ci,BlockTextStyle as Fc,BlockTextWeight as xy,BlockType as tt,BlockVerticalAlignment as Tc}from"@devvit/protos";var vc={"alienblue-100":"#DCE2FB","alienblue-200":"#B8C5FC","alienblue-25":"#F7F8FD","alienblue-300":"#90A9FD","alienblue-400":"#648EFC","alienblue-50":"#EEF0FB","alienblue-500":"#1870F4","alienblue-600":"#115BCA","alienblue-700":"#0A449B","alienblue-75":"#E6E9FB","alienblue-800":"#0A2F6C","alienblue-900":"#0A1A3F","alienblue-950":"#07102B","berrypurple-100":"#F3DAFB","berrypurple-200":"#EAB3FD","berrypurple-25":"#FBF6FD","berrypurple-300":"#DE8BFF","berrypurple-400":"#CF5FFF","berrypurple-50":"#F8EDFC","berrypurple-500":"#BC0EFF","berrypurple-600":"#9B00D4","berrypurple-700":"#7600A3","berrypurple-75":"#F6E4FB","berrypurple-800":"#520472","berrypurple-900":"#300643","berrypurple-950":"#20042A",black:"#000000","black-opacity-0":"#00000000","black-opacity-10":"#00000019","black-opacity-15":"#00000026","black-opacity-20":"#00000033","black-opacity-25":"#0000003F","black-opacity-33":"#00000054","black-opacity-5":"#0000000C","black-opacity-50":"#0000007F","black-opacity-60":"#00000099","black-opacity-67":"#000000AA","black-opacity-80":"#000000CC","black-opacity-90":"#000000E5","brown-100":"#F1DFCF","brown-200":"#E9BE95","brown-25":"#FBF7F4","brown-300":"#DC9D5D","brown-400":"#BA854E","brown-50":"#F7EFE9","brown-500":"#9A6D3F","brown-600":"#7B5631","brown-700":"#5D4023","brown-75":"#F4E7DC","brown-800":"#3F2C19","brown-900":"#221A11","brown-950":"#15100A","coolgray-100":"#DBE4E9","coolgray-150":"#C9D7DE","coolgray-200":"#B7CAD4","coolgray-25":"#F6F8F9","coolgray-250":"#A4BDCA","coolgray-300":"#97AFBC","coolgray-350":"#8BA2AD","coolgray-400":"#7F949F","coolgray-450":"#748791","coolgray-50":"#EEF1F3","coolgray-500":"#667780","coolgray-525":"#576F76","coolgray-550":"#5C6C74","coolgray-600":"#536168","coolgray-650":"#48545B","coolgray-700":"#3D494E","coolgray-75":"#E5EBEE","coolgray-750":"#333D42","coolgray-800":"#2A3236","coolgray-850":"#21272A","coolgray-900":"#181C1F","coolgray-950":"#0E1113","global-black":{light:"#000000",dark:"#000000"},"global-brand-orangered":{light:"#FF4500",dark:"#FF4500"},"global-white":{light:"#FFFFFF",dark:"#FFFFFF"},"kiwigreen-100":"#A8F5A0","kiwigreen-200":"#58E15B","kiwigreen-25":"#EBFDE7","kiwigreen-300":"#00C61C","kiwigreen-400":"#01A816","kiwigreen-50":"#DDF8D7","kiwigreen-500":"#008A10","kiwigreen-600":"#016E0B","kiwigreen-700":"#005306","kiwigreen-75":"#CAF5C2","kiwigreen-800":"#033902","kiwigreen-900":"#0D2005","kiwigreen-950":"#081404","lightblue-100":"#CAE7FB","lightblue-200":"#87D0FD","lightblue-25":"#F3F9FD","lightblue-300":"#02B9FB","lightblue-400":"#029DD5","lightblue-50":"#E6F3FC","lightblue-500":"#007FAE","lightblue-600":"#01668D","lightblue-700":"#014D6B","lightblue-75":"#D9EDFB","lightblue-800":"#03354B","lightblue-900":"#051E2B","lightblue-950":"#04131A","lime-100":"#B7F28E","lime-200":"#90DA58","lime-25":"#EEFDDC","lime-300":"#6DBF01","lime-400":"#5BA200","lime-50":"#E0F8C8","lime-500":"#4A8500","lime-600":"#3A6A00","lime-700":"#2A5000","lime-75":"#CEF5AD","lime-800":"#1E3702","lime-900":"#151E05","lime-950":"#0D1304","mintgreen-100":"#9BF5D9","mintgreen-200":"#00E2B7","mintgreen-25":"#E7FDF5","mintgreen-300":"#00C29D","mintgreen-400":"#01A484","mintgreen-50":"#D7F8EC","mintgreen-500":"#01876D","mintgreen-600":"#006C56","mintgreen-700":"#015140","mintgreen-75":"#C0F5E3","mintgreen-800":"#00382B","mintgreen-900":"#032019","mintgreen-950":"#03140F","orangered-100":"#FCDBCF","orangered-200":"#FDB498","orangered-25":"#FDF6F4","orangered-300":"#FF895D","orangered-400":"#FF4500","orangered-50":"#FCEEE8","orangered-500":"#D93900","orangered-600":"#AE2C00","orangered-700":"#842100","orangered-75":"#FBE5DC","orangered-800":"#591B02","orangered-900":"#2F1405","orangered-950":"#1C0D04","periwinkle-100":"#E6DFFB","periwinkle-200":"#CDBEFD","periwinkle-25":"#F9F7FD","periwinkle-300":"#B29FFF","periwinkle-400":"#9580FF","periwinkle-50":"#F2EFFC","periwinkle-500":"#6A5CFF","periwinkle-600":"#523DFF","periwinkle-700":"#4001EA","periwinkle-75":"#ECE7FB","periwinkle-800":"#250AA6","periwinkle-900":"#160E5B","periwinkle-950":"#0C083F","poopbrown-100":"#FEEEDD","poopbrown-200":"#F6DDC3","poopbrown-300":"#EECCAA","poopbrown-400":"#CAA075","poopbrown-50":"#FEF7EE","poopbrown-500":"#9A6D3F","poopbrown-600":"#6E4924","poopbrown-700":"#54371A","poopbrown-800":"#3B2510","poopbrown-900":"#29190A","poopbrown-950":"#110B04","puregray-100":"#F2F2F2","puregray-150":"#EBEBEB","puregray-200":"#E4E4E4","puregray-250":"#DDDDDD","puregray-300":"#D6D6D6","puregray-350":"#C3C3C3","puregray-400":"#ACACAC","puregray-450":"#919191","puregray-50":"#F8F8F8","puregray-500":"#767676","puregray-550":"#5C5C5C","puregray-600":"#434343","puregray-650":"#393939","puregray-700":"#303030","puregray-750":"#272727","puregray-800":"#1E1E1E","puregray-850":"#181818","puregray-900":"#131313","puregray-950":"#080808","red-100":"#FBDBD4","red-200":"#FDB3A4","red-25":"#FDF6F5","red-300":"#FF8773","red-400":"#FF4F40","red-50":"#FCEEEA","red-500":"#EB001F","red-600":"#BC0117","red-700":"#90000F","red-75":"#FBE4DF","red-800":"#650405","red-900":"#340F05","red-950":"#1F0B04","sakurapink-100":"#FBD9EB","sakurapink-200":"#FDAEDA","sakurapink-25":"#FDF6F9","sakurapink-300":"#FF7ECA","sakurapink-400":"#FF38BB","sakurapink-50":"#FCEDF4","sakurapink-500":"#DE019F","sakurapink-600":"#B2007F","sakurapink-700":"#880060","sakurapink-75":"#FBE3EF","sakurapink-800":"#5F0443","sakurapink-900":"#380626","sakurapink-950":"#250419",transparent:"transparent",white:"#ffffff","white-opacity-0":"#FFFFFF00","white-opacity-10":"#FFFFFF19","white-opacity-15":"#FFFFFF26","white-opacity-20":"#FFFFFF33","white-opacity-25":"#FFFFFF3F","white-opacity-5":"#FFFFFF0C","white-opacity-50":"#FFFFFF7F","yellow-100":"#FFE284","yellow-200":"#FFBF0B","yellow-25":"#FFF9E0","yellow-300":"#D8A100","yellow-400":"#B78800","yellow-50":"#FFF3C0","yellow-500":"#977000","yellow-600":"#785800","yellow-700":"#5B4200","yellow-75":"#FFEAA2","yellow-800":"#3F2D00","yellow-900":"#231A03","yellow-950":"#161003","yelloworange-100":"#FCDCC8","yelloworange-200":"#FDB586","yelloworange-25":"#FDF7F3","yelloworange-300":"#FF8A35","yelloworange-400":"#E46C00","yelloworange-50":"#FCEEE6","yelloworange-500":"#BD5800","yelloworange-600":"#974500","yelloworange-700":"#733300","yelloworange-75":"#FBE5D7","yelloworange-800":"#4E2402","yelloworange-900":"#2A1705","yelloworange-950":"#1A0E04","action-downvote":{light:"#6A5CFF",dark:"#6A5CFF"},"action-upvote":{light:"#D93900",dark:"#D93900"},"ai-background-weaker":{light:"#E7FDF5",dark:"#00382B"},"ai-plain":{light:"#006C56",dark:"#01A484"},"ai-plain-hover":{light:"#015140",dark:"#00C29D"},"alert-caution":{light:"#977000",dark:"#977000"},"avatar-gradient":{light:"",dark:""},"brand-background":{light:"#D93900",dark:"#D93900"},"brand-background-hover":{light:"#AE2C00",dark:"#AE2C00"},"brand-gradient-active":{light:"",dark:""},"brand-gradient-active-highlight":{light:"",dark:""},"brand-gradient-default":{light:"",dark:""},"brand-gradient-default-highlight":{light:"",dark:""},"brand-gradient-hover":{light:"",dark:""},"brand-gradient-hover-highlight":{light:"",dark:""},"brand-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"category-live":{light:"#D93900",dark:"#D93900"},"category-nsfw":{light:"#DE019F",dark:"#DE019F"},"category-spoiler":{light:"#131313",dark:"#F2F2F2"},"caution-background":{light:"#FFBF0B",dark:"#D8A100"},"caution-background-hover":{light:"#D8A100",dark:"#FFBF0B"},"caution-onBackground":{light:"#000000",dark:"#000000"},"caution-plain":{light:"#785800",dark:"#FFBF0B"},"caution-plain-hover":{light:"#5B4200",dark:"#FFE284"},"danger-background":{light:"#EB001F",dark:"#BC0117"},"danger-background-disabled":{light:"#FDB3A4",dark:"#340F05"},"danger-background-hover":{light:"#BC0117",dark:"#EB001F"},"danger-background-weaker":{light:"#FBDBD4",dark:"#650405"},"danger-content":{light:"#BC0117",dark:"#FF4F40"},"danger-content-default":{light:"#ffffff",dark:"#ffffff"},"danger-content-hover":{light:"#90000F",dark:"#FF8773"},"danger-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"danger-plain":{light:"#BC0117",dark:"#FF8773"},"danger-plain-hover":{light:"#90000F",dark:"#FDB3A4"},"downvote-background":{light:"#6A5CFF",dark:"#6A5CFF"},"downvote-background-disabled":{light:"#6a5cff4d",dark:"#6a5cff4d"},"downvote-background-hover":{light:"#523DFF",dark:"#523DFF"},"downvote-content":{light:"#523DFF",dark:"#9580FF"},"downvote-content-weak":{light:"#6A5CFF",dark:"#6A5CFF"},"downvote-disabled":{light:"#523DFF4c",dark:"#9580FF4c"},"downvote-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"downvote-onStrongScrim":{light:"#B29FFF",dark:"#B29FFF"},"downvote-onStrongScrim-disabled":{light:"#b29fff4d",dark:"#b29fff4d"},"downvote-onStrongScrim-weaker":{light:"#9580FF",dark:"#9580FF"},"downvote-plain":{light:"#523DFF",dark:"#9580FF"},"downvote-plain-disabled":{light:"#523dff4d",dark:"#9580ff4d"},"downvote-plain-weaker":{light:"#6A5CFF",dark:"#6A5CFF"},"elevation-large1":{light:"#0000003F",dark:"#0000007F"},"elevation-large2":{light:"#00000026",dark:"#00000033"},"elevation-medium1":{light:"#0000003F",dark:"#0000007F"},"elevation-medium2":{light:"#00000019",dark:"#00000033"},"elevation-small":{light:"#00000026",dark:"#00000054"},"elevation-xsmall":{light:"#0000003F",dark:"#000000AA"},favorite:{light:"#977000",dark:"#B78800"},"global-admin":{light:"#D93900",dark:"#D93900"},"global-alienblue":{light:"#1870F4",dark:"#1870F4"},"global-darkblue":{light:"#2A3236",dark:"#2A3236"},"global-focus":{light:"#029DD5",dark:"#007FAE"},"global-gold":{light:"#B78800",dark:"#D8A100"},"global-moderator":{light:"#008A10",dark:"#008A10"},"global-nsfw":{light:"#DE019F",dark:"#DE019F"},"global-offline":{light:"#667780",dark:"#667780"},"global-online":{light:"#00C61C",dark:"#00C61C"},"global-orangered":{light:"#FF4500",dark:"#FF4500"},"global-stars":{light:"#977000",dark:"#D8A100"},"gradient-media":{light:"",dark:""},"gradient-media-strong":{light:"",dark:""},"identity-admin":{light:"#D93900",dark:"#D93900"},"identity-coins":{light:"#B78800",dark:"#B78800"},"identity-moderator":{light:"#008A10",dark:"#008A10"},"identity-self":{light:"#01876D",dark:"#01876D"},"interactive-background-disabled":{light:"#0000000C",dark:"#FFFFFF0C"},"interactive-content-disabled":{light:"#0000003F",dark:"#FFFFFF3F"},"interactive-focused":{light:"#007FAE",dark:"#007FAE"},"interactive-pressed":{light:"#00000026",dark:"#FFFFFF26"},"inverted-interactive-background-disabled":{light:"#FFFFFF0C",dark:"#0000000C"},"inverted-interactive-content-disabled":{light:"#FFFFFF3F",dark:"#0000003F"},"inverted-interactive-pressed":{light:"#FFFFFF26",dark:"#00000026"},"inverted-neutral-background":{light:"#0E1113",dark:"#FFFFFF"},"inverted-neutral-background-hover":{light:"#181C1F",dark:"#F6F8F9"},"inverted-neutral-border":{light:"#FFFFFF33",dark:"#00000033"},"inverted-neutral-content":{light:"#B7CAD4",dark:"#333D42"},"inverted-neutral-content-strong":{light:"#EEF1F3",dark:"#181C1F"},"inverted-secondary-background":{light:"#2A3236",dark:"#E5EBEE"},"inverted-secondary-background-hover":{light:"#333D42",dark:"#DBE4E9"},"inverted-secondary-background-selected":{light:"#3D494E",dark:"#C9D7DE"},"inverted-secondary-onBackground":{light:"#FFFFFF",dark:"#000000"},"inverted-secondary-plain":{light:"#DBE4E9",dark:"#181C1F"},"inverted-secondary-plain-hover":{light:"#FFFFFF",dark:"#000000"},"media-background":{light:"#00000099",dark:"#00000099"},"media-background-hover":{light:"#000000cc",dark:"#000000cc"},"media-background-selected":{light:"#000000cc",dark:"#000000cc"},"media-border-selected":{light:"#FFFFFF",dark:"#FFFFFF"},"media-border-weak":{light:"#FFFFFF19",dark:"#FFFFFF19"},"media-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"media-onBackground-disabled":{light:"#FFFFFF3F",dark:"#FFFFFF3F"},"media-onBackground-weak":{light:"#E5EBEE",dark:"#E5EBEE"},"media-onbackground":{light:"#ffffff",dark:"#ffffff"},"media-onbackground-disabled":{light:"#ffffff3f",dark:"#ffffff3f"},"media-onbackground-weak":{light:"#B7CAD4",dark:"#B7CAD4"},"neutral-background":{light:"#FFFFFF",dark:"#0E1113"},"neutral-background-container":{light:"#F6F8F9",dark:"#181C1F"},"neutral-background-container-hover":{light:"#EEF1F3",dark:"#21272A"},"neutral-background-container-strong":{light:"#EEF1F3",dark:"#21272A"},"neutral-background-container-strong-hover":{light:"#E5EBEE",dark:"#2A3236"},"neutral-background-gilded":{light:"#FFF9E0",dark:"#181C1F"},"neutral-background-gilded-hover":{light:"#FFF3C0",dark:"#21272A"},"neutral-background-hover":{light:"#F6F8F9",dark:"#181C1F"},"neutral-background-medium":{light:"#F8F8F8",dark:"#131313"},"neutral-background-pinned":{light:"#FFFFFF",dark:"#0E1113"},"neutral-background-selected":{light:"#E5EBEE",dark:"#2A3236"},"neutral-background-strong":{light:"#FFFFFF",dark:"#181C1F"},"neutral-background-strong-hover":{light:"#F6F8F9",dark:"#21272A"},"neutral-background-weak":{light:"#F6F8F9",dark:"#000000"},"neutral-background-weak-hover":{light:"#EEF1F3",dark:"#0E1113"},"neutral-border":{light:"#00000033",dark:"#FFFFFF33"},"neutral-border-medium":{light:"#0000007F",dark:"#FFFFFF7F"},"neutral-border-strong":{light:"#181C1F",dark:"#F6F8F9"},"neutral-border-weak":{light:"#00000019",dark:"#FFFFFF19"},"neutral-content":{light:"#333D42",dark:"#B7CAD4"},"neutral-content-disabled":{light:"#D6D6D6",dark:"#303030"},"neutral-content-strong":{light:"#181C1F",dark:"#EEF1F3"},"neutral-content-weak":{light:"#5C6C74",dark:"#8BA2AD"},offline:{light:"#767676",dark:"#767676"},online:{light:"#01A816",dark:"#01A816"},"opacity-08":{light:"#13131314",dark:"#13131314"},"opacity-50":{light:"#0000007f",dark:"#F2F2F27f"},"opacity-highlight":{light:"",dark:""},pizzaRed:{light:"#ef5350",dark:"#c62828"},primary:{light:"#115BCA",dark:"#648EFC"},"primary-background":{light:"#0A449B",dark:"#115BCA"},"primary-background-hover":{light:"#0A2F6C",dark:"#1870F4"},"primary-background-selected":{light:"#0A1A3F",dark:"#648EFC"},"primary-border":{light:"#0A449B",dark:"#648EFC"},"primary-border-hover":{light:"#0A2F6C",dark:"#90A9FD"},"primary-hover":{light:"#0A449B",dark:"#90A9FD"},"primary-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"primary-onBackground-selected":{light:"#FFFFFF",dark:"#000000"},"primary-plain":{light:"#0A449B",dark:"#648EFC"},"primary-plain-hover":{light:"#0A2F6C",dark:"#90A9FD"},"primary-plain-visited":{light:"#7600A3",dark:"#CF5FFF"},"primary-visited":{light:"#9B00D4",dark:"#CF5FFF"},scrim:{light:"#00000099",dark:"#00000099"},"scrim-background":{light:"#00000099",dark:"#00000099"},"scrim-background-strong":{light:"#000000CC",dark:"#000000CC"},"scrim-gradient":{light:"",dark:""},"scrim-strong":{light:"#000000cc",dark:"#000000cc"},secondary:{light:"#21272A",dark:"#DBE4E9"},"secondary-background":{light:"#E5EBEE",dark:"#2A3236"},"secondary-background-hover":{light:"#DBE4E9",dark:"#333D42"},"secondary-background-selected":{light:"#C9D7DE",dark:"#3D494E"},"secondary-hover":{light:"#000000",dark:"#ffffff"},"secondary-onBackground":{light:"#000000",dark:"#FFFFFF"},"secondary-plain":{light:"#181C1F",dark:"#DBE4E9"},"secondary-plain-hover":{light:"#000000",dark:"#FFFFFF"},"secondary-plain-weak":{light:"#5C6C74",dark:"#8BA2AD"},"secondary-weak":{light:"#576F76",dark:"#748791"},"success-background":{light:"#008A10",dark:"#016E0B"},"success-background-hover":{light:"#016E0B",dark:"#008A10"},"success-content":{light:"#016E0B",dark:"#01A816"},"success-hover":{light:"#005306",dark:"#00C61C"},"success-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"success-plain":{light:"#016E0B",dark:"#00C61C"},"success-plain-hover":{light:"#005306",dark:"#58E15B"},"tone-1":{light:"#131313",dark:"#F2F2F2"},"tone-2":{light:"#434343",dark:"#ACACAC"},"tone-3":{light:"#ACACAC",dark:"#434343"},"tone-4":{light:"#E4E4E4",dark:"#303030"},"tone-5":{light:"#F2F2F2",dark:"#1E1E1E"},"tone-6":{light:"#F8F8F8",dark:"#131313"},"tone-7":{light:"#ffffff",dark:"#080808"},"transparent-background-hover":{light:"#74879119",dark:"#66778019"},"ui-canvas":{light:"#F2F2F2",dark:"#080808"},"ui-modalbackground":{light:"#FFFFFF",dark:"#181C1F"},"upvote-background":{light:"#D93900",dark:"#D93900"},"upvote-background-disabled":{light:"#d939004d",dark:"#d939004d"},"upvote-background-hover":{light:"#AE2C00",dark:"#AE2C00"},"upvote-content":{light:"#AE2C00",dark:"#FF4500"},"upvote-content-weak":{light:"#FF4500",dark:"#FF4500"},"upvote-disabled":{light:"#AE2C004c",dark:"#FF45004c"},"upvote-onBackground":{light:"#FFFFFF",dark:"#FFFFFF"},"upvote-onStrongScrim":{light:"#FF895D",dark:"#FF895D"},"upvote-onStrongScrim-disabled":{light:"#ff895d4d",dark:"#ff895d4d"},"upvote-onStrongScrim-weaker":{light:"#FF4500",dark:"#FF4500"},"upvote-plain":{light:"#AE2C00",dark:"#FF895D"},"upvote-plain-disabled":{light:"#ae2c004d",dark:"#ff895d4d"},"upvote-plain-weaker":{light:"#FF4500",dark:"#FF4500"},"warning-background":{light:"#B78800",dark:"#B78800"},"warning-background-hover":{light:"#977000",dark:"#D8A100"},"warning-content":{light:"#785800",dark:"#B78800"},"warning-content-hover":{light:"#5B4200",dark:"#D8A100"},"warning-onBackground":{light:"#000000",dark:"#000000"}};var hy={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",transparent:"#FFFFFF00",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},fy=r=>!!r.match(/^(#[0-9a-fA-F]{3,8}).*/),vy=r=>r in vc,yc=r=>r in hy,yy=r=>!!r.match(/^rgba?\(.*/),by=r=>!!r.match(/^hsla?\(.*/),ky=(r,e="light")=>{if(yc(r))return ld(r);let i=vc[r];return typeof i=="string"?i:i[e]},ld=r=>hy[r]??r,Sy=r=>{let[e,t,i,n]=r.replace(/^rgba?\(|\s+|\)$/g,"").split(",");if(!e||!t||!i)return r;let a=[...[e,t,i].map(p=>parseFloat(p))];if(n){let p=parseFloat(n),g=Math.round(p*255);a.push(g)}return`#${a.map(p=>p.toString(16).padStart(2,"0")).join("")}`};import{BlockStackDirection as ud}from"@devvit/protos";var bc={stackParentLayout:{hasHeight:!0,hasWidth:!0,direction:ud.UNRECOGNIZED,alignment:void 0}};function Cy(r,e,t){if(!e)return{hasHeight:!1,hasWidth:!1};let{growDirection:i,stretchDirection:n}=PT(r?.grow,e.direction,e.alignment),o=t?.height?.value?.value||t?.height?.min?.value||Py(2,i,n,e.hasHeight),a=t?.width?.value?.value||t?.width?.min?.value||Py(1,i,n,e.hasWidth);return{hasHeight:!!o,hasWidth:!!a}}function Py(r,e,t,i){return e===r&&i||t===r&&i}function PT(r,e,t){let i=e===ud.STACK_VERTICAL||e===ud.UNRECOGNIZED,n=e===ud.STACK_HORIZONTAL,o=0;n&&r?o=1:i&&r&&(o=2);let a=t===void 0||t.horizontal===void 0,c=t===void 0||t.vertical===void 0,p=n?!!c:i?!!a:!1,g=0;return n&&p?g=2:i&&p&&(g=1),{growDirection:o,stretchDirection:g}}import{BlockSizeUnit as vr,BlockStackDirection as cd}from"@devvit/protos";function Pi(r){if(r==null)return;if(typeof r=="number")return{value:r,unit:vr.SIZE_UNIT_PERCENT};let e=r.match(/^(\d+(?:\.\d+)?)(px|%)?$/);if(e==null)return;let t=vr.SIZE_UNIT_PERCENT;return e.at(2)==="px"&&(t=vr.SIZE_UNIT_PIXELS),{value:Number.parseFloat(e[1]),unit:t}}function CT(r,e){return(r.width?.value?.unit===vr.SIZE_UNIT_PERCENT||r.width?.min?.unit===vr.SIZE_UNIT_PERCENT)&&(e.direction===cd.STACK_HORIZONTAL||e.direction===cd.STACK_DEPTH)&&(e.hasWidth||(r.width=void 0)),(r.height?.value?.unit===vr.SIZE_UNIT_PERCENT||r.height?.min?.unit===vr.SIZE_UNIT_PERCENT)&&(e.direction===cd.STACK_VERTICAL||e.direction===cd.STACK_DEPTH)&&(e.hasHeight||(r.height=void 0)),r}function kc(r,e){if(r){let t=r.width!=null||r.minWidth!=null||r.maxWidth!=null,i=r.height!=null||r.minHeight!=null||r.maxHeight!=null;if(t||i||r.grow!=null){let n={width:t?{value:Pi(r.width),min:Pi(r.minWidth),max:Pi(r.maxWidth)}:void 0,height:i?{value:Pi(r.height),min:Pi(r.minHeight),max:Pi(r.maxHeight)}:void 0,grow:r.grow};return e.stackParentLayout&&(n=CT(n,e.stackParentLayout)),n}}}var Fy="data-",wT=new Set(["onPress","onMessage"]),IT=new Map([["onPress",Ac.ACTION_CLICK],["onMessage",Ac.ACTION_WEBVIEW]]),gs,wi=class{constructor(e=()=>{}){l(this,gs);d(this,gs,e)}createBlocksElementOrThrow({type:e,props:t,children:i}){let n=this.createBlocksElement({type:e,props:t,children:i},bc);if(!n)throw new Error(`Could not create block of type ${e}`);return n}createBlocksElement({type:e,props:t,children:i},n){switch(e){case"blocks":return this.makeRoot(t,...i);case"hstack":return this.makeHStack(t,n,...i);case"vstack":return this.makeVStack(t,n,...i);case"zstack":return this.makeZStack(t,n,...i);case"text":return this.makeText(t,n,...i);case"button":return this.makeButton(t,n,...i);case"image":return this.makeImage(t,n);case"spacer":return this.makeSpacer(t,n);case"icon":return this.makeIcon(t,n);case"avatar":return this.makeAvatar(t,n);case"webview":return this.makeWebView(t,n);case"__fragment":throw new Error("root fragment is not supported - use 'blocks' instead")}}makeRootHeight(e){switch(e){case"regular":return 320;case"tall":return 512}}makeBlockPadding(e){switch(e){case"none":return ms.PADDING_NONE;case"xsmall":return ms.PADDING_XSMALL;case"small":return ms.PADDING_SMALL;case"medium":return ms.PADDING_MEDIUM;case"large":return ms.PADDING_LARGE}}makeBlockRadius(e){switch(e){case"none":return ps.RADIUS_NONE;case"small":return ps.RADIUS_SMALL;case"medium":return ps.RADIUS_MEDIUM;case"large":return ps.RADIUS_LARGE;case"full":return ps.RADIUS_FULL}}makeBlockGap(e){switch(e){case"none":return pd.GAP_NONE;case"small":return pd.GAP_SMALL;case"medium":return pd.GAP_MEDIUM;case"large":return pd.GAP_LARGE}}makeBlockAlignment(e){if(e===void 0)return;let t,i;if(e.includes("top")?t=Tc.ALIGN_TOP:e.includes("middle")?t=Tc.ALIGN_MIDDLE:e.includes("bottom")&&(t=Tc.ALIGN_BOTTOM),e.includes("start")?i=Pc.ALIGN_START:e.includes("center")?i=Pc.ALIGN_CENTER:e.includes("end")&&(i=Pc.ALIGN_END),t!==void 0||i!==void 0)return{vertical:t,horizontal:i}}makeBlockBorder(e,t,i,n){if(!e&&!t)return;let o;switch(e){case"none":o=md.BORDER_WIDTH_NONE;break;case"thin":o=md.BORDER_WIDTH_THIN;break;case"thick":o=md.BORDER_WIDTH_THICK;break;default:o=md.BORDER_WIDTH_THIN;break}let a=t??"neutral-border-weak",c=this.getThemedColors(a,i,n);return{width:o,color:c?.light,colors:c}}makeBlockTextSize(e){switch(e){case"xsmall":return Ci.TEXT_SIZE_XSMALL;case"small":return Ci.TEXT_SIZE_SMALL;case"medium":return Ci.TEXT_SIZE_MEDIUM;case"large":return Ci.TEXT_SIZE_LARGE;case"xlarge":return Ci.TEXT_SIZE_XLARGE;case"xxlarge":return Ci.TEXT_SIZE_XXLARGE}}makeBlockTextStyle(e){switch(e){case"body":return Fc.TEXT_STYLE_BODY;case"metadata":return Fc.TEXT_STYLE_METADATA;case"heading":return Fc.TEXT_STYLE_HEADING}}makeBlockTextOutline(e){switch(e){case"none":return Ic.TEXT_OUTLINE_NONE;case"thin":return Ic.TEXT_OUTLINE_THIN;case"thick":return Ic.TEXT_OUTLINE_THICK}}makeBlockTextWeight(e){switch(e){case"regular":return xy.TEXT_WEIGHT_REGULAR;case"bold":return xy.TEXT_WEIGHT_BOLD}}makeBlockTextOverflow(e){switch(e){case"clip":return xc.TEXT_OVERFLOW_CLIP;case"ellipsis":return xc.TEXT_OVERFLOW_ELLIPSE}return xc.TEXT_OVERFLOW_ELLIPSE}makeBlockButtonAppearance(e){switch(e){case"secondary":return Mt.BUTTON_APPEARANCE_SECONDARY;case"primary":return Mt.BUTTON_APPEARANCE_PRIMARY;case"plain":return Mt.BUTTON_APPEARANCE_PLAIN;case"bordered":return Mt.BUTTON_APPEARANCE_BORDERED;case"media":return Mt.BUTTON_APPEARANCE_MEDIA;case"destructive":return Mt.BUTTON_APPEARANCE_DESTRUCTIVE;case"caution":return Mt.BUTTON_APPEARANCE_CAUTION;case"success":return Mt.BUTTON_APPEARANCE_SUCCESS}}makeBlockButtonSize(e){switch(e){case"small":return Sc.BUTTON_SIZE_SMALL;case"medium":return Sc.BUTTON_SIZE_MEDIUM;case"large":return Sc.BUTTON_SIZE_LARGE}}makeBlockImageResizeMode(e){switch(e){case"none":return cs.IMAGE_RESIZE_NONE;case"fit":return cs.IMAGE_RESIZE_FIT;case"fill":return cs.IMAGE_RESIZE_FILL;case"cover":return cs.IMAGE_RESIZE_COVER;case"scale-down":return cs.IMAGE_RESIZE_SCALE_DOWN}}makeBlockSpacerSize(e){switch(e){case"xsmall":return hd.SPACER_XSMALL;case"small":return hd.SPACER_SMALL;case"medium":return hd.SPACER_MEDIUM;case"large":return hd.SPACER_LARGE}}makeBlockSpacerShape(e){switch(e){case"invisible":return Cc.SPACER_INVISIBLE;case"thin":return Cc.SPACER_THIN;case"square":return Cc.SPACER_SQUARE}}makeBlockIconSize(e){switch(e){case"xsmall":return gd.ICON_SIZE_XSMALL;case"small":return gd.ICON_SIZE_SMALL;case"medium":return gd.ICON_SIZE_MEDIUM;case"large":return gd.ICON_SIZE_LARGE}}makeBlockAvatarSize(e){switch(e){case"xxsmall":return Bt.AVATAR_SIZE_XXSMALL;case"xsmall":return Bt.AVATAR_SIZE_XSMALL;case"small":return Bt.AVATAR_SIZE_SMALL;case"medium":return Bt.AVATAR_SIZE_MEDIUM;case"large":return Bt.AVATAR_SIZE_LARGE;case"xlarge":return Bt.AVATAR_SIZE_XXLARGE;case"xxlarge":return Bt.AVATAR_SIZE_XXLARGE;case"xxxlarge":return Bt.AVATAR_SIZE_XXXLARGE}}makeBlockAvatarFacing(e){switch(e){case"left":return Iy.AVATAR_FACING_LEFT;case"right":return Iy.AVATAR_FACING_RIGHT}}makeBlockAvatarBackground(e){switch(e){case"dark":return wy.AVATAR_BG_DARK;case"light":return wy.AVATAR_BG_LIGHT}}getDataSet(e){return Object.keys(e).filter(t=>t.startsWith(Fy)).reduce((t,i)=>(t[i.substring(Fy.length)]=e[i],t),{})}makeActions(e,t){let i=[],n=this.getDataSet(t);return wT.forEach(o=>{if(o in t){let a=t[o];i.push({type:IT.get(o)??Ac.UNRECOGNIZED,id:a.toString(),data:n})}}),i}blockColorToHex(e,t="light"){if(e)return e=e.toLowerCase(),fy(e)?e:vy(e)?ky(e,t):yc(e)?ld(e):yy(e)?Sy(e):by(e)?e:(console.warn(`Could not parse color: ${e}.`),ld("red"))}childrenToBlocks(e,t){return e.flatMap(i=>(typeof i!="string"?this.createBlocksElement(i,t):void 0)??[])}getThemedColors(e,t,i){let n=this.blockColorToHex(t,"light"),o=this.blockColorToHex(i,"dark"),a=[];if(e&&(!n||!o)){let c=Array.from(e?.matchAll(/[\w#-]+(?:\([\w\t ,.#-]+\))?/g)??[]);a.push(...c.map(p=>p[0]))}return n||(n=this.blockColorToHex(a?.at(0),"light")),o||(o=this.blockColorToHex(a?.at(1)??a?.at(0),"dark")),n||o?{light:n,dark:o}:void 0}parsePixels(e){return typeof e=="string"?Number(e.slice(0,-2)):e}resolveAssetUrl(e,t){return s(this,gs).call(this)?.getURL(e,t)??e}childrenToString(e){return e.map(t=>t.toString()).join("")}makeRoot(e,...t){return this.wrapRoot(e,this.childrenToBlocks(t,bc))}wrapRoot(e,t){return this.makeBlock(tt.BLOCK_ROOT,{},{},{rootConfig:{children:t,height:this.makeRootHeight(u.customPostType?.height??e?.height??"regular")}})}makeStackBlock(e,t,i,n){let o=this.getThemedColors(t?.backgroundColor,t?.lightBackgroundColor,t?.darkBackgroundColor),a=this.makeBlockAlignment(t?.alignment),c=kc(t,i),p=Cy(t,i.stackParentLayout,c);return this.makeBlock(tt.BLOCK_STACK,t,i,{stackConfig:{alignment:a,backgroundColor:o?.light,backgroundColors:o,border:this.makeBlockBorder(t?.border,t?.borderColor,t?.lightBorderColor,t?.darkBorderColor),children:this.childrenToBlocks(n,{stackParentLayout:{...p,direction:e,alignment:a}}),cornerRadius:this.makeBlockRadius(t?.cornerRadius),direction:e,gap:this.makeBlockGap(t?.gap),padding:this.makeBlockPadding(t?.padding),reverse:t?.reverse}})}makeHStack(e,t,...i){return this.makeStackBlock(wc.STACK_HORIZONTAL,e,t,i)}makeVStack(e,t,...i){return this.makeStackBlock(wc.STACK_VERTICAL,e,t,i)}makeZStack(e,t,...i){return this.makeStackBlock(wc.STACK_DEPTH,e,t,i)}makeText(e,t,...i){let n=this.getThemedColors(e?.color,e?.lightColor,e?.darkColor);return this.makeBlock(tt.BLOCK_TEXT,e,t,{textConfig:{alignment:this.makeBlockAlignment(e?.alignment),color:n?.light,colors:n,outline:this.makeBlockTextOutline(e?.outline),size:this.makeBlockTextSize(e?.size),style:this.makeBlockTextStyle(e?.style),text:this.childrenToString(i),weight:this.makeBlockTextWeight(e?.weight),selectable:e?.selectable,wrap:e?.wrap,overflow:this.makeBlockTextOverflow(e?.overflow)}})}makeButton(e,t,...i){let n=this.getThemedColors(e?.textColor,e?.lightTextColor,e?.darkTextColor);return this.makeBlock(tt.BLOCK_BUTTON,e,t,{buttonConfig:{buttonAppearance:this.makeBlockButtonAppearance(e?.appearance),icon:e?.icon,buttonSize:this.makeBlockButtonSize(e?.size),text:this.childrenToString(i),textColor:n?.light,textColors:n,disabled:e?.disabled}})}makeImage(e,t){return e&&this.makeBlock(tt.BLOCK_IMAGE,e,t,{imageConfig:{description:e?.description,resizeMode:this.makeBlockImageResizeMode(e.resizeMode),url:this.resolveAssetUrl(e.url),width:this.parsePixels(e.imageWidth),height:this.parsePixels(e.imageHeight)}})}makeSpacer(e,t){return this.makeBlock(tt.BLOCK_SPACER,e,t,{spacerConfig:{size:this.makeBlockSpacerSize(e?.size),shape:this.makeBlockSpacerShape(e?.shape)}})}makeIcon(e,t){let i=this.getThemedColors(e?.color,e?.lightColor,e?.darkColor);return e&&this.makeBlock(tt.BLOCK_ICON,e,t,{iconConfig:{icon:e.name,color:i?.light,colors:i,size:this.makeBlockIconSize(e.size)}})}makeAvatar(e,t){return e&&this.makeBlock(tt.BLOCK_AVATAR,e,t,{avatarConfig:{thingId:e.thingId,size:this.makeBlockAvatarSize(e.size),facing:this.makeBlockAvatarFacing(e.facing),background:this.makeBlockAvatarBackground(e.background)}})}makeWebView(e,t){return e&&this.makeBlock(tt.BLOCK_WEBVIEW,e,t,{webviewConfig:{url:this.resolveAssetUrl(e.url,{webView:!0}),state:e.state}})}makeBlock(e,t,i,n){return{type:e,sizes:kc(t,i),config:n,actions:(t&&this.makeActions(e,t))??[],id:t?.id,key:t?.key}}ensureRootBlock(e){let t;if(e.type===tt.BLOCK_ROOT?(e.config?.rootConfig&&u.customPostType?.height&&(e.config.rootConfig.height=this.makeRootHeight(u.customPostType?.height)),t=e):t=this.wrapRoot(void 0,[e]),!t)throw new Error("Could not create root block");return t}};gs=new WeakMap;function Ay(r){if(typeof r=="string")throw new Error("Root element cannot be a string")}var Ey=r=>{let e="",t=r.props?Object.keys(r.props).map(i=>i==="onPress"?"":`${i}="${r.props[i]}"`).join(" "):"";e+=`<${r.type}${t?" "+t:""}>`;for(let i of r.children)typeof i=="string"?e+=i:e+=Ey(i);return e+=`</${r.type}>`,e};function xT(r){return" ".repeat(r)}function FT(r){let e="",t=0,i=r.split(/>\s*</);for(let n=0;n<i.length;n++){let o=i[n];n===0&&(o=o.trim()),n===i.length-1&&(o=o.trim());let a=o.charAt(0)==="/";a&&t--,e+=xT(t),n!==0&&(e+="<"),e+=o,n!==i.length-1&&(e+=`>
|
|
2
|
+
`),!a&&o.indexOf("</")===-1&&o.charAt(o.length-1)!=="/"&&t++}return e}var De,Ry,hs,Rc,fs,pt=class{constructor(e,t,i,n,o){l(this,De);this.renderState={};this.currentComponentKey=[];this.currentHookIndex=0;this.actions=new Map;this.forms=new Map;this.realtimeChannels=[];this.realtimeUpdated=!1;this.pendingHooks=[];this.isRendering=!1;this.transformer=new wi(()=>this.assets);this.effects=[];l(this,fs,!1);this.component=e,this.event=t,this.state={__renderState:{},...i},this.metadata=n,this.state.__realtimeChannels&&(this.realtimeChannels=this.state.__realtimeChannels);let a=Le({reconciler:this,hooks:!0,ui:!0,metadata:n});this.cache=a.cache,this.modLog=a.modLog,this.reddit=a.reddit,this.kvStore=a.kvStore,this.redis=a.redis,this.settings=a.settings,this.scheduler=a.scheduler,this.media=a.media,this.assets=a.assets,this.realtime=a.realtime,this.dimensions=o,this.ui=a.ui,this.hooks={useState:a.useState,useInterval:a.useInterval,useForm:a.useForm,useChannel:a.useChannel}}emitEffect(e,t){this.effects.push(t)}async render(){await this.reconcile(),this.isRendering=!0;let e=await this.buildBlocksUI();return this.isRendering=!1,e}makeUniqueActionID(e){let t=e,i=1;for(;this.actions.has(t);)t=`${e}.${i++}`;return t}async reconcile(){let e=S(this,De,hs).call(this),t={type:this.component,props:e,children:[]},i=await this.processBlock(t);if(Ay(i),this.transformer.createBlocksElementOrThrow(i),this.isUserActionRender&&this.blockRenderEventId){let n=this.actions.get(this.blockRenderEventId);n&&await n(this.event.data)}for(let n of this.pendingHooks)await n();this.buildNextState(),S(this,De,Ry).call(this)}async buildBlocksUI(){let e=S(this,De,hs).call(this),t={type:this.component,props:e,children:[]},i=await this.renderElement(e,t);return this.transformer.ensureRootBlock(i)}async renderElement(e,t){let i=await this.processBlock(t);return Ay(i),(u.debug.emitSnapshots||e.debug.emitSnapshots)&&console.debug(FT(Ey(i))),(u.debug.emitState||e.debug.emitState)&&console.debug(JSON.stringify(this.state,void 0,2)),this.transformer.createBlocksElementOrThrow(i)}async processProps(e){let t=e.props??{},i=["onPress","onMessage"];for(let n of i)if(n in t){let o=t[n],a=o?.name,c=this.makeUniqueActionID(`${e.type}.${a??n}`);this.actions.set(c,o),t[n]=c}}async processBlock(e,t=gy(),i=[]){let n=e;if(typeof n.type=="string"){let c=[];for(let m=0;m<n.children.length;m++){let y=n.children[m];y!=null&&c.push(await this.processBlock(y,t,[...i,`${n.type}.${m}`]))}let p=c.flat(),g=S(this,De,Rc).call(this,p);return await this.processProps(n),{type:n.type,props:n.props,children:g}}if(typeof n.type=="function"){let c=t(`${i.length?i.join("."):"root"}.${n.type.name.length?n.type.name:"anonymous"}`);this.currentComponentKey.push(c),this.renderState[c]||(this.renderState[c]={});let p=n.children.flatMap(m=>m),g={...S(this,De,hs).call(this),...n.props,children:p},f;for(;f===void 0;)try{f=await n.type(g,S(this,De,hs).call(this))}catch(m){if(m instanceof Promise)f=await m;else throw m}if(!this.isInitialRender){let m=this.getPreviousComponentState();if(Object.keys(m).length!==this.currentHookIndex)throw new Error("Invalid hook call. Hooks can only be called at the top-level of a function component. Make sure that you are not calling hooks inside loops, conditions, or nested functions.")}if(this.currentComponentKey.pop(),this.currentHookIndex=0,typeof f=="object")return this.processBlock(f,t,[...i,n.type.name])}if(typeof n=="string")return n;if(typeof n=="number")return`${n}`;let o=[],a="";return Array.isArray(n)?o=n:typeof n.type>"u"&&n.children&&(o=n.children,a="fragmentChild."),{type:"__fragment",props:void 0,children:await Promise.all(o.flatMap(async(c,p)=>await this.processBlock(c,t,[...i,`${a}${p}`])))}}getCurrentComponentKey(){if(!this.currentComponentKey.at(-1))throw new Error("Current component key is missing");return this.currentComponentKey}getCurrentComponentState(){let e=this.currentComponentKey.at(-1);if(!e)throw new Error("Current component key is missing");return this.renderState[e]}getPreviousComponentState(){let e=this.currentComponentKey.at(-1);if(!e)throw new Error("Current component key is missing");return this.state.__renderState[e]||(this.state.__renderState[e]={}),this.state.__renderState[e]}get isInitialRender(){return this.event?this.event.type===Ec.RENDER_INITIAL:!1}get isUserActionRender(){return this.event?this.event.type===Ec.RENDER_USER_ACTION:!1}get isEffectRender(){return this.event?this.event.type===Ec.RENDER_EFFECT_EVENT:!1}get formSubmittedEvent(){return this.event?this.event.formSubmitted:!1}get blockRenderEventId(){return this.event?this.event.id:!1}get realtimeEvent(){if(!this.event)return!1;let e=this.event.realtimeEvent;return e?.event?.channel?e:!1}runHook(e){this.pendingHooks.push(e)}rerenderIn(e){s(this,fs)||(d(this,fs,!0),this.effects.push({type:Ty.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:e/1e3}}))}addRealtimeChannel(e){this.realtimeChannels.push(e),this.realtimeUpdated=!0}removeRealtimeChannel(e){this.realtimeChannels=this.realtimeChannels.filter(t=>t!==e),this.realtimeUpdated=!0}get realtimeEffect(){return this.realtimeUpdated&&this.realtimeChannels.length>0?[{type:Ty.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:this.realtimeChannels}}]:[]}getEffects(){return[...Si(this.ui),...this.effects,...this.realtimeEffect]}buildNextState(){for(let e of Object.keys(this.renderState))this.renderState[e]=Object.values(this.renderState[e]);this.state={__postData:this.state.__postData,__renderState:this.renderState,__cache:this.state.__cache,...this.realtimeChannels.length>0?{__realtimeChannels:this.realtimeChannels}:{}}}};De=new WeakSet,Ry=function(){this.actions.clear(),this.currentComponentKey=[],this.currentHookIndex=0,this.pendingHooks=[],this.realtimeChannels=[],this.realtimeUpdated=!1},hs=function(){let e={...ce(this.metadata,this.state.__postData?.thingId),modLog:this.modLog,reddit:this.reddit,cache:this.cache,kvStore:this.kvStore,redis:this.redis,settings:this.settings,scheduler:this.scheduler,media:this.media,assets:this.assets,realtime:this.realtime,ui:this.ui,dimensions:this.dimensions,uiEnvironment:{timezone:this.metadata[L.Timezone]?.values[0],locale:this.metadata[L.Language]?.values[0],dimensions:this.dimensions},...this.hooks};return e.debug.effects=this,e},Rc=function(e){let t=[];for(let i of e)typeof i=="string"?t.push(i):i.type==="__fragment"?t.push(...S(this,De,Rc).call(this,i.children)):t.push(i);return t},fs=new WeakMap;async function ET(r,e){let t=u.customPostType;if(!t)throw new Error("Custom post type not registered");let i=new pt((o,a)=>t.render(a),r.blocks,r.state,e,r.dimensions),n=await i.render();return AT.fromJSON({state:i.state,blocks:{ui:n},effects:i.getEffects()})}function Oy(r){r.provides(TT),U("RenderPost",ET)}import{GetFieldsResponse as RT,InstallationSettingsDefinition as OT}from"@devvit/protos";async function BT(){if(!u.installationSettings)throw new Error("Installation settings were not defined.");return RT.fromJSON({fields:{fields:mt(u.installationSettings)}})}async function MT(r,e){return dd(r,u.installationSettings,e)}function By(r){r.provides(OT),U("GetSettingsFields",BT),U("ValidateForm",MT)}import{ContextActionDefinition as UT,ContextActionList as LT,ContextActionResponse as DT}from"@devvit/protos";var My=r=>`menuItem.${r}`;function Oc(r){return u.menuItems.find((e,t)=>My(t)===r)}async function NT(r,e){let t=u.menuItems;if(!t.length)throw new Error("No menu items registered.");let i=t.map((n,o)=>({actionId:My(o),name:n.label,description:n.description,contexts:{subreddit:n.location.includes("subreddit"),post:n.location.includes("post"),comment:n.location.includes("comment")},users:{loggedOut:n.forUserType?.includes("loggedOut"),moderator:n.forUserType?.includes("moderator")},postFilters:n.postFilter==="currentApp"?{currentApp:!0}:void 0}));return LT.fromJSON({actions:i})}async function _T(r,e){let t=Oc(r.actionId);if(!t)throw new Error(`MenuItem ${r.actionId} not found`);let i=r.comment?.id&&`t1_${r.comment.id}`,n=r.post?.id&&`t3_${r.post.id}`,o=r.subreddit?.id&&`t5_${r.subreddit.id}`,a=i||n||o;v(a,"targetId is missing from ContextActionRequest");let c={targetId:a,location:r.comment?"comment":r.post?"post":"subreddit"},p=Object.assign(Le({ui:!0,metadata:e}),ce(e,n,i),{uiEnvironment:{timezone:e[L.Timezone]?.values[0],locale:e[L.Language]?.values[0]}});return await t.onPress(c,p),DT.fromJSON({effects:Si(p.ui)})}function Uy(r){r.provides(UT),U("GetActions",NT),U("OnAction",_T)}function gt(r){return r?r===!0?!0:r.enabled:!1}import{SchedulerHandlerDefinition as HT}from"@devvit/protos";async function qT(r,e){let t=r.type,i=u.scheduledJobHandlers.get(t);if(!i)throw new Error(`Job ${t} not found`);let n={name:t,data:r.data},o=Object.assign(Le({metadata:e}),ce(e));await i(n,o)}function Ly(r){r.provides(HT),U("HandleScheduledAction",qT)}import{OnAppInstallDefinition as jT,OnAppUpgradeDefinition as WT,OnAutomoderatorFilterCommentDefinition as GT,OnAutomoderatorFilterPostDefinition as VT,OnCommentCreateDefinition as zT,OnCommentDeleteDefinition as JT,OnCommentReportDefinition as $T,OnCommentSubmitDefinition as KT,OnCommentUpdateDefinition as XT,OnModActionDefinition as ZT,OnModMailDefinition as QT,OnPostCreateDefinition as YT,OnPostDeleteDefinition as eA,OnPostFlairUpdateDefinition as tA,OnPostNsfwUpdateDefinition as rA,OnPostReportDefinition as iA,OnPostSpoilerUpdateDefinition as nA,OnPostSubmitDefinition as sA,OnPostUpdateDefinition as oA}from"@devvit/protos";var Ii;(function(r){function e(a,c){return a.length<=c?a:`${a.slice(0,c-1)}\u2026`}r.ellipsize=e;function t(a){return a[0]==null?a:`${a[0].toLocaleUpperCase()}${a.slice(1)}`}r.capitalize=t;function i(a){return a==null||/^\s*$/.test(a)}r.isBlank=i;function n(a,c="stack"){return a instanceof Error?`${a[c]||a.stack||a.message||a.name}`:String(a)}r.caughtToString=n;function o(a,c="stack"){return a instanceof Error?`${a[c]||a.stack||a.message||a.name}`:String(a)}r.caughtToStringUntyped=o})(Ii||(Ii={}));function X(r,e){return v(e),async(t,i)=>{let n={...t,type:r},o=Object.assign(Le({metadata:i}),ce(i)),a=await Promise.allSettled(e.map(p=>p(n,o))),c=aA(a);if(c)throw c.err;return{}}}function Dy(r){for(let e of u.triggerOnEventHandlers.keys())switch(e){case"PostSubmit":r.provides(sA),U("OnPostSubmit",X("PostSubmit",u.triggerOnEventHandlers.get(e)));break;case"PostCreate":r.provides(YT),U("OnPostCreate",X("PostCreate",u.triggerOnEventHandlers.get(e)));break;case"PostUpdate":r.provides(oA),U("OnPostUpdate",X("PostUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostReport":r.provides(iA),U("OnPostReport",X("PostReport",u.triggerOnEventHandlers.get(e)));break;case"PostDelete":r.provides(eA),U("OnPostDelete",X("PostDelete",u.triggerOnEventHandlers.get(e)));break;case"PostFlairUpdate":r.provides(tA),U("OnPostFlairUpdate",X("PostFlairUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentSubmit":r.provides(KT),U("OnCommentSubmit",X("CommentSubmit",u.triggerOnEventHandlers.get(e)));break;case"CommentCreate":r.provides(zT),U("OnCommentCreate",X("CommentCreate",u.triggerOnEventHandlers.get(e)));break;case"CommentUpdate":r.provides(XT),U("OnCommentUpdate",X("CommentUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentReport":r.provides($T),U("OnCommentReport",X("CommentReport",u.triggerOnEventHandlers.get(e)));break;case"CommentDelete":r.provides(JT),U("OnCommentDelete",X("CommentDelete",u.triggerOnEventHandlers.get(e)));break;case"AppInstall":r.provides(jT),U("OnAppInstall",X("AppInstall",u.triggerOnEventHandlers.get(e)));break;case"AppUpgrade":r.provides(WT),U("OnAppUpgrade",X("AppUpgrade",u.triggerOnEventHandlers.get(e)));break;case"ModAction":r.provides(ZT),U("OnModAction",X("ModAction",u.triggerOnEventHandlers.get(e)));break;case"ModMail":r.provides(QT),U("OnModMail",X("ModMail",u.triggerOnEventHandlers.get(e)));break;case"PostNsfwUpdate":r.provides(rA),U("OnPostNsfwUpdate",X("PostNsfwUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostSpoilerUpdate":r.provides(nA),U("OnPostSpoilerUpdate",X("PostSpoilerUpdate",u.triggerOnEventHandlers.get(e)));break;case"AutomoderatorFilterPost":r.provides(VT),U("OnAutomoderatorFilterPost",X("AutomoderatorFilterPost",u.triggerOnEventHandlers.get(e)));break;case"AutomoderatorFilterComment":r.provides(GT),U("OnAutomoderatorFilterComment",X("AutomoderatorFilterComment",u.triggerOnEventHandlers.get(e)));break;default:throw new Error(`Unknown trigger event: ${e}`)}}function aA(r){let e=r.reduce((t,i)=>i.status==="rejected"?[...t,i.reason]:t,[]);if(e.length!==0)return e.length===1?{err:e[0]}:{err:new Error(e.map(t=>Ii.caughtToString(t)).join(`
|
|
3
|
+
`))}}import{EffectType as oR,HandleUIEventResponse as Jc,UIEventHandlerDefinition as aR}from"@devvit/protos";var Eb=Ln(Ky(),1),Rb=Ln(zc(),1);async function dR(r,e){let t=r.state??{},i=(0,Eb.default)(t),n=Le({ui:!0,metadata:e});if(r.event?.formSubmitted&&r.event.formSubmitted.formId){let p=r.event.formSubmitted.formId;if(p.includes("form.hook.")&&u.customPostType){let b=new pt((P,x)=>u.customPostType?.render(x)??null,r.event,r.state,e,void 0);return await b.reconcile(),Jc.fromJSON({state:b.state,effects:b.getEffects()})}let g=u.formDefinitions.get(p);if(!g)throw new Error(`Form with key ${p} not found`);let f,m;if(i.__contextAction){let{actionId:b,thingId:P}=i.__contextAction,x=Oc(b);x?.location==="post"?f=P:x?.location==="comment"&&(m=P)}let y=Object.assign(n,ce(e,f,m),{uiEnvironment:{timezone:e[L.Timezone]?.values[0],locale:e[L.Language]?.values[0]}});await g.onSubmit({values:Tt(r.event.formSubmitted.results)},y)}else if(r.event?.realtimeEvent){if(u.customPostType){let p=new pt((g,f)=>u.customPostType?.render(f)??null,r.event,r.state,e,void 0);return await p.reconcile(),Jc.fromJSON({state:p.state,effects:p.getEffects()})}}else if(r.event?.toastAction)throw new Error("Toast actions not yet implemented");let o=!(0,Rb.default)(t,i),a=Si(n.ui),c=o?[...a,{type:oR.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:0}}]:a;return Jc.fromJSON({state:i,effects:c})}function Ob(r){r.provides(aR),U("HandleUIEvent",dR)}import{CustomPostDefinition as _d,UIResponse as ak}from"@devvit/protos";import{UIEventScope as fR}from"@devvit/protos";var $c="ServerCallRequired";function Fd(r){return r?.message===$c}var Qc={now(){return new Date}};function Bb(r){return`__autocache__${r}`}function Mb(r){return`__lock__${r}`}var lR=300,uR=1e3,Td=5e3,Kc=3,Ub=.1,Lb=1e3,cR=3e4;function Db(r){if(r.error)throw new Error(r.error);return r.value}var Dt,Nt,Ne,Ai,K,Nb,_b,Hb,Xc,qb,jb,Zc,Wb,Ad=class{constructor(e,t,i=Qc){l(this,K);l(this,Dt);l(this,Nt,{});l(this,Ne);l(this,Ai);d(this,Dt,e),d(this,Ai,t),d(this,Ne,i)}async cache(e,t){var a;(a=s(this,Ai)).__cache??(a.__cache={}),d(this,Nt,s(this,Ai).__cache),S(this,K,Wb).call(this,t);let i=S(this,K,Nb).call(this,t.key);if(i!==void 0)return i;let n=await S(this,K,Zc).call(this,t.key),o=await S(this,K,_b).call(this,t,n,e);return Db(o)}};Dt=new WeakMap,Nt=new WeakMap,Ne=new WeakMap,Ai=new WeakMap,K=new WeakSet,Nb=function(e){let t=s(this,Nt)[e];if(t){let i=s(this,Ne).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<Kc&&Math.random()<Ub&&t.errorTime+Lb<i;if(t?.expires&&t.expires<i&&t.checkedAt+Lb<i||n){delete s(this,Nt)[e];return}else return Db(t)}},_b=async function(e,t,i){let n=t?.expires,o=n?S(this,K,jb).call(this,n):1;return!t||t?.error&&t.errorCount<Kc&&Ub>Math.random()||o>Math.random()?S(this,K,Hb).call(this,e,t,i):t},Hb=async function(e,t,i){let n=Mb(e.key),o=s(this,Ne).now().getTime(),a=new Date(o+e.ttl/2);if(await s(this,Dt).set(n,"1",{expiration:a,nx:!0}))return S(this,K,qb).call(this,e.key,t,i,e.ttl);if(t)return t;{let p=s(this,Ne).now();return S(this,K,Xc).call(this,p,e.key,e.ttl)}},Xc=async function(e,t,i){let n=Math.min(i,uR),o=await S(this,K,Zc).call(this,t);if(o)return o;if(s(this,Ne).now().getTime()-e.getTime()>=n)throw new Error(`Cache request timed out trying to get data at key: ${t}`);return await new Promise(a=>setTimeout(a,lR)),S(this,K,Xc).call(this,e,t,i)},qb=async function(e,t,i,n){let o=s(this,Ne).now().getTime()+n;t=t??{value:null,expires:o,errorCount:0,error:null,errorTime:null,checkedAt:0};try{t.value=await i(),t.error=null,t.errorCount=0,t.errorTime=null}catch(a){t.value=null,t.error=a.message??"Unknown error",t.errorTime=s(this,Ne).now().getTime(),t.errorCount++}return s(this,Nt)[e]=t,await s(this,Dt).set(Bb(e),JSON.stringify(t),{expiration:new Date(o+cR)}),t.error&&t.errorCount<Kc&&await s(this,Dt).del(Mb(e)),t},jb=function(e){let t=s(this,Ne).now().getTime(),i=e-t;return i<0?1:i<1e3?.1:i<2e3?.01:i<3e3?.001:0},Zc=async function(e){let t=await s(this,Dt).get(Bb(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Ne).now().getTime(),s(this,Nt)[e]=i,i}},Wb=function(e){e.ttl<Td&&(console.warn(`Cache TTL cannot be less than ${Td} milliseconds! Updating ttl value of ${e.ttl} to ${Td}.`),e.ttl=Td)};function Gb(r,e,t=Qc){let i=new Ad(r,e,t);return i.cache.bind(i)}import{EffectType as Ed,ToastAppearance as Jb}from"@devvit/protos";function Vb(r){let e=r.match(/form\.hook\.(.+)\.0/);if(e?.[1])return e[1]}var Yc=class{constructor(e,t,i){this.state=null;this.hookId=e.hookId,this.form=t,this.onSubmit=i,this.onUIEvent=async n=>{n.formSubmitted&&await i(Tt(n.formSubmitted.results))}}};function em(r,e){let t=Je({namespace:"useForm",initializer:i=>new Yc(i,r,e)});return mR({id:t.hookId})}function mR(r){return`form.hook.${r.id}.0`}function zb(r,e){let t=Vb(e);return r.getHook({id:t})}var vt,Od,Ps,Bd,Rd=class{constructor(e){l(this,vt);l(this,Od,0);l(this,Ps);l(this,Bd,(e,t)=>{let i=t!==void 0?e:"",n=t!==void 0?t:e;s(this,vt).emitEffect(`postMessage${Bm(this,Od)._++}`,{type:Ed.EFFECT_WEB_VIEW,webView:{postMessage:{webViewId:i,app:{message:n}}}})});d(this,vt,e),d(this,Ps,{postMessage:s(this,Bd)})}get webView(){return s(this,Ps)}showForm(e,t){let i=zb(s(this,vt),e);if(!i)throw new Error("Form does not exist. Make sure you have added it using useForm.");let n=i.form instanceof Function?i.form(t??{}):i.form,o={fields:[],id:e,title:n.title,acceptLabel:n.acceptLabel,cancelLabel:n.cancelLabel,shortDescription:n.description};gr(n.fields),o.fields=mt(n.fields),s(this,vt).emitEffect(e,{type:Ed.EFFECT_SHOW_FORM,showForm:{form:o}})}showToast(e){let t;e instanceof Object?t={text:e.text,appearance:e.appearance==="success"?Jb.SUCCESS:Jb.NEUTRAL}:t={text:e},s(this,vt).emitEffect(e.toString(),{type:Ed.EFFECT_SHOW_TOAST,showToast:{toast:t}})}navigateTo(e){let t;typeof e=="string"?t=new URL(e).toString():t=new URL(e.permalink,"https://www.reddit.com").toString(),s(this,vt).emitEffect(t,{type:Ed.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}};vt=new WeakMap,Od=new WeakMap,Ps=new WeakMap,Bd=new WeakMap;import{EffectType as pR,RealtimeSubscriptionStatus as $b}from"@devvit/protos";var _t,it,Ht,Pr,Cs,rm,Md=class Md{constructor(e,t){l(this,Cs);l(this,_t);l(this,it);l(this,Ht);l(this,Pr);d(this,_t,t.context),d(this,it,!!t.context._devvitContext?.debug.realtime),d(this,Pr,e),d(this,Ht,t.invalidate);let i=t.context.meta[L.App]?.values[0];if(!i)throw Error("useChannel missing app ID metadata");let n=t.context.meta[L.Installation]?.values[0];if(!n)throw Error("useChannel missing install ID from metadata");let o=`${i}:${n}:${e.name}`;if(Object.values(s(this,_t)._hooks).filter(c=>c instanceof Md).some(c=>c.state.channel===o))throw Error(`useChannel channel names must be unique; "${o}" duplicated`);this.state={channel:o,connected:!1,subscribed:!1}}async onUIEvent(e){let t=e.realtimeEvent;if(!(!t||!this.state.subscribed))switch(t.status){case $b.REALTIME_SUBSCRIBED:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" connected`),this.state.connected=!0,s(this,Ht).call(this),await s(this,Pr).onSubscribed?.();break;case $b.REALTIME_UNSUBSCRIBED:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" disconnected`),this.state.connected=!1,s(this,Ht).call(this),await s(this,Pr).onUnsubscribed?.();break;default:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" received message: ${JSON.stringify(e,void 0,2)}`),s(this,Pr).onMessage(t.event?.data?.msg);break}}async send(e){if(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" send message: ${JSON.stringify(e,void 0,2)}`),!this.state.subscribed||!this.state.connected)throw console.debug(`[realtime] "${this.state.channel}" send failed; channel not connected`),Error(`useChannel send failed; "${this.state.channel}" channel not connected`);await s(this,_t).devvitContext.realtime.send(this.state.channel,e)}get status(){return this.state.subscribed&&this.state.connected?2:this.state.subscribed&&!this.state.connected?1:!this.state.subscribed&&this.state.connected?3:4}subscribe(){this.state.subscribed||(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" subscribed`),this.state.subscribed=!0,s(this,Ht).call(this),S(this,Cs,rm).call(this))}unsubscribe(){this.state.subscribed&&(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" unsubscribed`),this.state.subscribed=!1,s(this,Ht).call(this),S(this,Cs,rm).call(this))}};_t=new WeakMap,it=new WeakMap,Ht=new WeakMap,Pr=new WeakMap,Cs=new WeakSet,rm=function(){let e=Object.values(s(this,_t)._hooks).filter(t=>t instanceof Md&&t.state.subscribed).map(t=>t.state.channel);s(this,_t).emitEffect(this.state.channel,{type:pR.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:e}})};var tm=Md;function im(r){if(!r.name||/[^a-zA-Z0-9_]/.test(r.name))throw Error(`useChannel error: The name "${r.name}" you provided for the hook is invalid. Valid names can only contain letters, numbers, and underscores (_).`);let e=`useChannel:${r.name}`;return Je({id:e,namespace:e,initializer:t=>new tm(r,t)})}import{EffectType as nm}from"@devvit/protos";function Kb(r){return typeof r=="object"&&r!==null&&"__deleted"in r}var Cr,qt,Ei=class Ei{constructor(e,t){l(this,Cr);this._segments=[];l(this,qt,{});this._prevHooks={};this._prevHookId="";this._effects={};this._changed={};this._touched={};this._requeueEvents=[];this._rootProps={};this._generated={};this._undeliveredHandlers={};this.request=e,this.meta=t,d(this,Cr,e.state??{__cache:{}}),this._rootProps=e.props??{}}get devvitContext(){if(!this._devvitContext)throw new Error("Devvit context not available");return this._devvitContext}set devvitContext(e){this._devvitContext=e}get _changedState(){let e={__cache:s(this,Cr).__cache??{}};for(let i in this._changed)e[i]=this._state[i];let t=new Set(Object.keys(this._state));return Object.keys(s(this,qt)).forEach(i=>{i!=="__cache"&&t.delete(i)}),t.forEach(i=>{if(i==="__cache")return;let n={__deleted:!0};this._state[i]=e[i]=n}),e}get _hooks(){return s(this,qt)}set _hooks(e){this._prevHooks=s(this,qt),d(this,qt,e)}get _state(){return s(this,Cr)}set _state(e){d(this,Cr,e)}push(e){this._segments.push({...e,next:0})}pop(){this._segments.pop()}addUndeliveredEventHandler(e,t){this._undeliveredHandlers[e]=t}addGlobalUndeliveredEventHandler(e,t){Ei.addGlobalUndeliveredEventHandler(e,t)}getHook(e){return s(this,qt)[e.id]}static addGlobalUndeliveredEventHandler(e,t){Ei._staticUndeliveredHandlers[e]=t}async handleUndeliveredEvent(e){let t={...Ei._staticUndeliveredHandlers,...this._undeliveredHandlers};for(let[i,n]of Object.entries(t))await n(e,this)}emitEffect(e,t){this._effects[e]=t}addToRequeueEvents(...e){this._devvitContext?.debug.blocks&&console.debug("[blocks] requeueing events",e);let t=e.reduce((i,n)=>(n.retry?i.retry.push(n):i.normal.push(n),i),{retry:[],normal:[]});this._requeueEvents=[...t.retry,...this._requeueEvents,...t.normal]}get effects(){return Object.values(this._effects)}nextHookId(e){e.key===void 0&&(e.key=this._segments[this._segments.length-1].next+++""),this.push(e);try{let t=[];for(let n=this._segments.length-1;n>=0;n--){let o=this._segments[n];if(o.id){t.unshift(o.id);break}let a=[];o.namespace&&a.push(o.namespace),o.key!==void 0&&o.key!==!1&&a.push(o.key),t.unshift(a.join("-"))}let i=t.join(".");if(this._generated[i]&&!e.shared)throw new Error(`Hook id ${i} already used, cannot register another hook with the same id`);return this._generated[i]=!0,this._prevHookId=i,i}finally{this.pop()}}};Cr=new WeakMap,qt=new WeakMap,Ei._staticUndeliveredHandlers={};var Ri=Ei;var jt={};Ri.addGlobalUndeliveredEventHandler("intervals",async(r,e)=>{r.timer&&r.hook&&(delete jt[r.hook],e.emitEffect("timers",{type:nm.EFFECT_SET_INTERVALS,interval:{intervals:jt}}))});var Wt,Oi,ws,Bi,sm=class{constructor(e,t,i){l(this,Wt);l(this,Oi);l(this,ws);l(this,Bi);this.state={duration:{seconds:0,nanos:0},running:!1};d(this,Oi,i.invalidate),d(this,Wt,i.hookId),d(this,ws,e),d(this,Bi,i.context);let n=Math.floor(t/1e3),o=t%1e3*1e6;this.state.duration={seconds:n,nanos:o}}onStateLoaded(){this.state.running?jt[s(this,Wt)]={duration:this.state.duration}:delete jt[s(this,Wt)]}async onUIEvent(e){await s(this,ws).call(this)}start(){jt[s(this,Wt)]={duration:this.state.duration},this.state.running=!0,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:nm.EFFECT_SET_INTERVALS,interval:{intervals:jt}})}stop(){delete jt[s(this,Wt)],this.state.running=!1,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:nm.EFFECT_SET_INTERVALS,interval:{intervals:jt}})}};Wt=new WeakMap,Oi=new WeakMap,ws=new WeakMap,Bi=new WeakMap;function om(r,e){let t=Je({namespace:"useInterval",initializer:i=>new sm(r,e,i)});return{start:()=>t.start(),stop:()=>t.stop()}}import{UIEventScope as hR}from"@devvit/protos";var wr=class extends Error{};import{UIEventScope as Xb}from"@devvit/protos";var Zb=Ln(zc(),1);function dm(r){if(r instanceof Error){if(r.message===$c)throw r;return console.error(r),{message:r.message,details:r.stack??""}}else return console.error(r),{message:"Unknown error",details:Ii.caughtToString(r)}}var $e,nt,Mi,Is,Ui,am=class{constructor(e,t,i){l(this,$e);l(this,nt);l(this,Mi);l(this,Is);l(this,Ui);d(this,$e,!!i.context.devvitContext.debug.useAsync),s(this,$e)&&console.debug("[useAsync] v1",t),this.state={data:null,load_state:"initial",error:null,depends:null},d(this,nt,i.hookId),this.initializer=e,d(this,Mi,i.invalidate),d(this,Is,i.context),this.localDepends=t.depends??null,d(this,Ui,t)}onStateLoaded(){if(s(this,$e)&&console.debug("[useAsync] async onLoad ",s(this,nt),this.state),s(this,$e)&&console.debug("[useAsync] async onLoad have ",this.localDepends,"and",this.state.depends),!(0,Zb.default)(this.localDepends,this.state.depends)||this.state.load_state==="initial"){s(this,$e)&&console.debug("[useAsync] attempting to resolve for hookId",s(this,nt)),this.state.load_state="loading",this.state.depends=this.localDepends,s(this,Mi).call(this);let e={scope:Xb.ALL,hook:s(this,nt),async:!0,asyncRequest:{requestId:s(this,nt)+"-"+JSON.stringify(this.state.depends)}};s(this,$e)&&console.debug("[useAsync] onLoad requeue"),s(this,Is).addToRequeueEvents(e)}}async onUIEvent(e,t){if(e.asyncRequest){let i={requestId:e.asyncRequest.requestId};try{i.data={value:await this.initializer()}}catch(o){i.error=dm(o)}let n={scope:Xb.ALL,asyncResponse:i,hook:s(this,nt)};s(this,$e)&&console.debug("[useAsync] onReq requeue"),t.addToRequeueEvents(n)}else if(e.asyncResponse){let i=s(this,nt)+"-"+JSON.stringify(this.state.depends);e.asyncResponse.requestId===i?(this.state={...this.state,data:e.asyncResponse.data?.value??null,error:e.asyncResponse.error??null,load_state:e.asyncResponse.error?"error":"loaded"},s(this,Ui).finally&&await s(this,Ui).finally(this.state.data,this.state.error?new Error(this.state.error?.message??"Unknown error"):null),s(this,Mi).call(this)):s(this,$e)&&console.debug("[useAsync] onResp skip, stale event",e.asyncResponse.requestId," !== ",i)}else throw new Error("Unknown event type")}};$e=new WeakMap,nt=new WeakMap,Mi=new WeakMap,Is=new WeakMap,Ui=new WeakMap;function gR(r,e={}){let t=Je({namespace:"useAsync",initializer:i=>new am(r,e,i)});return{data:t.state.data,error:t.state.error,loading:t.state.load_state==="loading"}}var yt,Li,Ir,xr,lm=class{constructor(e,t){this.state={value:null,load_state:"initial",error:null};l(this,yt);l(this,Li);l(this,Ir);l(this,xr);d(this,Ir,e),d(this,xr,t.hookId),d(this,yt,t.invalidate),d(this,Li,t.context)}async onUIEvent(){if(this.state.load_state==="loading"&&this._promise){try{this.state.value=await this._promise,this.state.load_state="loaded"}catch(e){this.state.load_state="error",this.state.error=dm(e)}s(this,yt).call(this)}else console.warn("Invalid state: ",this.state.load_state,this._promise)}setter(e){this.state.value=e instanceof Function?e(this.state.value):e,this.state.load_state="loaded",s(this,yt).call(this)}onStateLoaded(){if(this._promise=s(this,Li)._prevHooks[s(this,xr)]?._promise,this.state.load_state==="loading")throw new wr;if(this.state.load_state==="error")throw new Error(this.state.error?.message??"Unknown error");if(this.state.load_state==="initial"){let e;try{e=s(this,Ir)instanceof Function?s(this,Ir).call(this):s(this,Ir)}catch(t){console.log("error in loading async",t),this.state.load_state="error",s(this,yt).call(this);return}if(e instanceof Promise){this._promise=e,this.state.load_state="loading";let t={scope:hR.ALL,asyncRequest:{requestId:s(this,xr)},hook:s(this,xr)};throw s(this,Li).addToRequeueEvents(t),s(this,yt).call(this),new wr}else this.state.value=e,this.state.load_state="loaded";s(this,yt).call(this)}}};yt=new WeakMap,Li=new WeakMap,Ir=new WeakMap,xr=new WeakMap;function um(r){let e=Je({namespace:"useState",initializer:t=>new lm(r,t)});return[e.state.value,e.setter.bind(e)]}var Ud=class{buildContext(e,t,i){let n=new pi(i),o=new ci(i),a=new vi(i),c=new hi(i),p=new yi(i),g=new bi(i),f=new Rd(e),m=new mi(i),y=new li,b=new gi(i),P=Gb(a,e._state),x={modLog:n,kvStore:o,redis:a,reddit:c,scheduler:p,settings:g,media:m,assets:y,realtime:b,ui:f,useState:um,useChannel:im,useInterval:om,useForm:em,cache:P,dimensions:t.env?.dimensions,uiEnvironment:{timezone:i[L.Timezone]?.values[0],locale:i[L.Language]?.values[0],dimensions:t.env?.dimensions}},I=ce(i,t.props?.postId);return I.debug.effects=e,{...I,...x}}};var ke=null;function Qb(r){return JSON.parse(JSON.stringify(r))}function vR(r){if(!(r!==""&&!/[-.]/.test(r)))throw new Error(`Hook with namespace '${r}' is invalid. Hook namespaces cannot be empty string or contain dashes/dots because they are used as delimiters internally. Please update the hook namespace and try again.`)}function Je({initializer:r,...e}){if(!ke)throw new Error("Hooks can only be declared at the top of a component. You cannot declare hooks outside of components or inside of event handlers. It's almost always a mistake to declare hooks inside of loops or conditionals.");vR(e.namespace);let t=ke.nextHookId(e),i=ke,n={hookId:t,invalidate:()=>{i._changed[t]=!0,i._state[t]=i?._hooks[t]?.state},context:ke},o=ke._state[t]===void 0||Kb(ke._state[t]);ke._hooks[t]=ke._hooks[t]??r(n);let a=ke._hooks[t];return o||(a.state=ke._state[t]),a.onStateLoaded?.(),o&&a.state!==void 0&&a.state!==null&&n.invalidate(),a}var yR=null,Yb=64,Di,Nd,xs,F,me,Ld,ek,cm,tk,mm,pm,Dd,gm,rk,Fr=class{constructor(e){l(this,F);l(this,Di);l(this,Nd,new Ud);l(this,xs,new wi(()=>this._latestRenderContext?.devvitContext?.assets));this._latestRenderContext=null;s(this,F,me)&&console.debug("[blocks] BlocksHandler v1"),d(this,Di,e),yR=this}async handle(e,t){let i=new Ri(e,t),n=s(this,Nd).buildContext(i,e,t);i.devvitContext=n;let o,a=e.events,p=!e.events?.length||a.some(P=>!P.async),g=a.some(P=>P.blocking),f,m,y=[...a];a.length===0&&a.push({scope:fR.ALL}),s(this,F,me)&&console.debug("[blocks] starting processing events");let b=0;for(;a.length>0;){if(b++>Yb)throw new Error(`Exceeded maximum iterations of ${Yb}`);s(this,F,me)&&console.debug("[blocks] processing events loop iteration",a.length);let P=[];if(!a[0].async)P.push(a.shift());else for(;a[0]?.async;)P.push(a.shift());if(!P.length)throw Error("batch must have at least one event");try{if(P[0].async){let I=Qb(i._state);await S(this,F,ek).call(this,i,...P),i._state=I}else await S(this,F,tk).call(this,i,...P)}catch(I){if(!Fd(I))throw I;if(s(this,F,me)&&console.debug("[blocks] caught in handler",I),i._latestRenderContent=void 0,m){i._state=m._state,i._changed=f,i._effects=m._effects;let M=y.map(Ce=>{let Pt={...Ce};return Pt.retry=!0,Pt});i.addToRequeueEvents(...M);break}else throw Fd(I)||console.error("[blocks] unhandled error in handler",I),I}s(this,F,me)&&console.debug("[blocks] remaining events",i._requeueEvents);let x=[];for(let I of i._requeueEvents){if(!p&&!I.async){s(this,F,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch A",I),x.push(I);continue}if(p&&I.async&&!g){s(this,F,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch B",I),x.push(I);continue}s(this,F,me)&&console.debug("[blocks] reprocessing event in BlocksHandler",I),a.push(I)}i._requeueEvents=x,a.length>0&&(f={...i._changed},m={_state:Qb(i._state),_effects:{...i._effects}},y=[...a])}if(p){i._latestRenderContent||(i._latestRenderContent=S(this,F,mm).call(this,s(this,Di),i.request.props??{},i));let P=i._latestRenderContent;P&&(o=s(this,xs).createBlocksElementOrThrow(P),o=s(this,xs).ensureRootBlock(o))}return{state:i._changedState,effects:i.effects,blocks:o,events:i._requeueEvents}}};Di=new WeakMap,Nd=new WeakMap,xs=new WeakMap,F=new WeakSet,me=function(){return!!this._latestRenderContext?.devvitContext.debug.blocks},Ld=function(e,...t){e._hooks={},S(this,F,mm).call(this,s(this,Di),e.request.props??{},e)},ek=async function(e,...t){S(this,F,Ld).call(this,e,...t),await Promise.all(t.map(async i=>{if(!i.async)throw new Error("You can't mix main and other queues in one batch. This is likely a platform bug. Please file an issue in the Discord for someone to help! https://discord.com/channels/1050224141732687912/1115441897079574620");await S(this,F,cm).call(this,e,i)}))},cm=async function(e,t){let i=e._hooks[t.hook];if(i?.onUIEvent)try{await i.onUIEvent(t,e)}catch(n){throw Fd(n)?s(this,F,me)&&console.error("Server call required",n):console.error("Error in event handler",n),n}else await e.handleUndeliveredEvent(t)},tk=async function(e,...t){for(let i of t)s(this,F,me)&&console.log("[blocks] handling main queue event",i),s(this,F,me)&&console.log("[blocks] before",e._state),S(this,F,Ld).call(this,e,i),await S(this,F,cm).call(this,e,i),s(this,F,me)&&console.log("[blocks] after",e._state);S(this,F,Ld).call(this,e)},mm=function(e,t,i){s(this,F,me)&&console.debug("[blocks] renderRoot"),i._generated={},ke=i,this._latestRenderContext=i;try{let n=S(this,F,pm).call(this,e,t,i);if(n.length!==1)throw new Error(`There can only be one root element, received: ${n.length}. Please wrap these elements in a <vstack></vstack> or <hstack></hstack> to continue. Fragments cannot be used as a root element.`);let o=n[0];if(o==="[object Promise]")throw new Error('Root elements cannot be async. To use data from an async endpoint, please use "const [data] = useState(async () => {/** your async code */})".');if(typeof o=="string")throw new Error("The root element must return a valid block, not a string. Try wrapping the element in a <text>your content</text> tag to continue.");return i._latestRenderContent=o,o}catch(n){if(n instanceof wr)return;throw n}finally{ke=null}},pm=function(e,t,i){i.push({namespace:e.name||"anonymous",...t});try{let n=e(t,i.devvitContext);if(n instanceof Promise)throw new Error(`Components (found: ${e.name??"unknown component"}) cannot be async. To use data from an async endpoint, please use "const [data] = useState(async () => {/** your async code */})".`);return S(this,F,gm).call(this,n,i)}finally{i.pop()}},Dd=function(e,t){return e=e.flat(1/0),e.flatMap((i,n)=>(i&&typeof i=="object"&&"props"in i&&(i.props?.key||(i.props=i.props??{},i.props.key=`${n}`)),S(this,F,gm).call(this,i,t)))},gm=function(e,t){if(Array.isArray(e))return S(this,F,Dd).call(this,e,t);if(bR(e))if(e.type===void 0)try{return t.push({namespace:"fragment",...e.props}),S(this,F,Dd).call(this,e.children,t)}finally{t.pop()}else if(typeof e.type=="function"){let i={...e.props,children:e.children.flat(1/0)};return S(this,F,pm).call(this,e.type,i,t)}else try{t.push({namespace:e.type,...e.props});let i=S(this,F,Dd).call(this,e.children,t),n=S(this,F,rk).call(this,e.props??{});return[{type:e.type,children:i,props:n}]}finally{t.pop()}else return[(e??"").toString()]},rk=function(e){let t={};for(let i in e)if(!(typeof e[i]>"u"))if(typeof e[i]=="function"){let n=Je({namespace:i,key:!1,initializer:({hookId:o})=>({hookId:o,state:null,onUIEvent:a=>{if(a.userAction)return e[i](a.userAction.data);if(a.webView?.postMessage)return e[i](a.webView.postMessage.message)}})});t[i]=n.hookId,"captureHookRef"in e[i]&&e[i].captureHookRef()}else{let n=JSON.parse(JSON.stringify(e[i]));n!=null&&(t[i]=n)}return t};function bR(r){return typeof r=="object"&&r!=null&&"type"in r}var ik=r=>{let e=Number(r.trim().split(".").pop());return isNaN(e)?void 0:e},nk=r=>{let[e,t,i]=r.trim().split(";");if(!e||!t||!i){console.warn(`Received a malformed devvit-user-agent! Received: '${r}'`);return}if(e!=="Reddit"){console.warn(`Received unknown company name in user agent! Received: '${r}'`);return}if(t==="iOS"){let n=ik(i);if(n===void 0){console.warn(`Could not parse version number from user agent! Received: '${r}'`);return}return{company:"Reddit",platform:"iOS",rawVersion:i,versionNumber:n}}if(t==="Android"){let n=ik(i);if(n===void 0){console.warn(`Could not parse version number from user agent! Received: '${r}'`);return}return{company:"Reddit",platform:"Android",rawVersion:i,versionNumber:n}}if(t==="Shreddit")return{company:"Reddit",platform:"Shreddit",rawVersion:i};if(t==="Play")return{company:"Reddit",platform:"Play",rawVersion:i};console.warn("Received unknown platform:",t)},sk=r=>r?r.platform==="Android"?r.versionNumber<1875012:r.platform==="iOS"?r.versionNumber<614973:!1:(console.warn(`Could not parse devvit-user-agent! Received: '${JSON.stringify(r)}'`),!1),kR=r=>{switch(r){case"Android":return"https://play.google.com/store/apps/details?id=com.reddit.frontpage";case"iOS":return"https://apps.apple.com/us/app/reddit/id1064216828";case"Play":case"Shreddit":break;default:console.error(`No upgrade link for platform: ${r}`)}},SR=({platform:r},e)=>u.createElement("blocks",null,u.createElement("vstack",{alignment:"middle center",height:100,width:100},u.createElement("vstack",{maxWidth:"300px",gap:"large",alignment:"middle center"},u.createElement("vstack",{gap:"medium",alignment:"middle center"},u.createElement("image",{imageHeight:100,imageWidth:100,url:"https://i.redd.it/p1vmc5ulmpib1.png"}),u.createElement("text",{size:"large",weight:"bold",wrap:!0,alignment:"center"},"Uh oh, the app you're trying to use requires the latest version of Reddit. Please upgrade your app to continue.")),u.createElement("hstack",{alignment:"middle center"},u.createElement("button",{onPress:()=>{let t=kR(r);t?e.ui.navigateTo(t):console.warn("No upgrade link found for platform:",r)}},"Upgrade"))))),ok=r=>()=>u.createElement(SR,{platform:r});var PR=()=>u.createElement("vstack",{alignment:"center middle",width:"100%",height:"100%"},u.createElement("text",null,"This feature is not available yet")),CR=[[_d,_d.methods.renderPostContent,(r,e)=>u.customPostType?.render(e)??null],[_d,_d.methods.renderPostComposer,(r,e)=>u.createElement(PR,null)]];function wR(r){return async(e,t)=>{let i=nk(t["devvit-user-agent"]?.values?.[0]??"");if(i&&sk(i)){let o=new Fr(ok(i.platform));return ak.fromJSON(await o.handle(e,t))}let n=new Fr(r);return ak.fromJSON(await n.handle(e,t))}}function dk(r){for(let[e,t,i]of CR)r.provides(e),U(t.name,wR(i))}var Ni,Fs,_i,Tr,Ar,Hi,qi,Er,Gt,Ts,As,Rr,G,N=class N extends Ya{static configure(e){d(this,_i,{...s(this,_i),...e}),gt(e.http)&&this.use(C.HTTPDefinition),(gt(e.kvStore)||gt(e.redis))&&(this.use(C.KVStoreDefinition),this.use(C.RedisAPIDefinition)),gt(e.media)&&this.use(C.MediaServiceDefinition),gt(e.modLog)&&this.use(C.ModlogDefinition),gt(e.redditAPI)&&(this.use(C.FlairDefinition),this.use(C.GraphQLDefinition),this.use(C.LinksAndCommentsDefinition),this.use(C.ListingsDefinition),this.use(C.ModerationDefinition),this.use(C.ModNoteDefinition),this.use(C.NewModmailDefinition),this.use(C.PrivateMessagesDefinition),this.use(C.SubredditsDefinition),this.use(C.UsersDefinition),this.use(C.WidgetsDefinition),this.use(C.WikiDefinition)),gt(e.realtime)&&this.use(C.RealtimeDefinition)}static addMenuItem(e){s(this,qi).push(e)}static addCustomPostType(e){d(this,Tr,e)}static createForm(e,t){let i=`form.${s(this,Ar).size}`;return s(this,Ar).set(i,{form:e,onSubmit:t}),i}static addSchedulerJob(e){if(s(this,G)[C.SchedulerDefinition.fullName]||this.use(C.SchedulerDefinition),s(this,Er).has(e.name))throw new Error(`Job ${e.name} is already defined`);s(this,Er).set(e.name,e.onRun)}static addSettings(e){gr(e);let t=e.filter(n=>n.type==="group"||!n.scope||n.scope==="installation"),i=e.filter(n=>n.type!=="group"&&n.scope==="app");t.length>0&&d(this,Hi,t),i.length>0&&d(this,Ni,i),s(this,G)[C.SettingsDefinition.fullName]||this.use(C.SettingsDefinition)}static addTrigger(e){if("events"in e){for(let t of e.events)this.addTrigger({event:t,onEvent:(i,n)=>e.onEvent(i,n)});return this}return s(this,Gt).has(e.event)?s(this,Gt).get(e.event)?.push(e.onEvent):s(this,Gt).set(e.event,[e.onEvent]),N}static provide(e){s(this,As).push(e)}static use(e,t){s(this,Rr)[e.fullName]={def:e,options:t??{},handler:void 0};let i={};for(let n of Object.values(e.methods))i[n.name]=(o,a)=>s(this,Rr)[e.fullName].handler?.[n.name]?.(n.requestType?.fromPartial(o??{}),a);return s(this,G)[e.fullName]=i,i}static get redditAPIPlugins(){if(!gt(s(this,_i).redditAPI))throw new Error("Reddit API is not enabled. You can enable it by passing `redditAPI: true` to `Devvit.configure`.");return{Flair:s(this,G)[C.FlairDefinition.fullName],GraphQL:s(this,G)[C.GraphQLDefinition.fullName],LinksAndComments:s(this,G)[C.LinksAndCommentsDefinition.fullName],Listings:s(this,G)[C.ListingsDefinition.fullName],Moderation:s(this,G)[C.ModerationDefinition.fullName],ModNote:s(this,G)[C.ModNoteDefinition.fullName],NewModmail:s(this,G)[C.NewModmailDefinition.fullName],PrivateMessages:s(this,G)[C.PrivateMessagesDefinition.fullName],Subreddits:s(this,G)[C.SubredditsDefinition.fullName],Users:s(this,G)[C.UsersDefinition.fullName],Widgets:s(this,G)[C.WidgetsDefinition.fullName],Wiki:s(this,G)[C.WikiDefinition.fullName]}}static get modLogPlugin(){let e=s(this,G)[C.ModlogDefinition.fullName];if(!e)throw new Error("ModLog is not enabled. You can enable it by passing `modLog: true` to `Devvit.configure`");return e}static get schedulerPlugin(){let e=s(this,G)[C.SchedulerDefinition.fullName];if(!e)throw new Error("Scheduler is not enabled. You can enable it by calling `Devvit.addSchedulerJob` at the top level of your app.");return e}static get kvStorePlugin(){let e=s(this,G)[C.KVStoreDefinition.fullName];if(!e)throw new Error("Key Value Store is not enabled. You can enable it by passing `kvStore: true` to `Devvit.configure`");return e}static get redisPlugin(){let e=s(this,G)[C.RedisAPIDefinition.fullName];if(!e)throw new Error("Redis is not enabled. You can enable it by passing `redis: true` to `Devvit.configure`");return e}static get mediaPlugin(){let e=s(this,G)[C.MediaServiceDefinition.fullName];if(!e)throw new Error("MediaService is not enabled. You can enable it by passing `media: true` to `Devvit.configure`");return e}static get settingsPlugin(){let e=s(this,G)[C.SettingsDefinition.fullName];if(!e)throw new Error("Settings must first be configured with `Devvit.addSettings()` before they can be accessed");return e}static get realtimePlugin(){let e=s(this,G)[C.RealtimeDefinition.fullName];if(!e)throw new Error("Realtime is not enabled. You can enable it by passing `realtime: true` to `Devvit.configure`");return e}static get menuItems(){return s(this,qi)}static get customPostType(){return s(this,Tr)}static get formDefinitions(){return s(this,Ar)}static get scheduledJobHandlers(){return s(this,Er)}static get installationSettings(){return s(this,Hi)}static get appSettings(){return s(this,Ni)}static get triggerOnEventHandlers(){return s(this,Gt)}static get assets(){return s(this,Fs)}static get webViewAssets(){return s(this,Ts)}constructor(e){super(e),d(N,Fs,e.assets??{}),d(N,Ts,e.webviewAssets??{});for(let t in s(N,Rr)){let i=s(N,Rr)[t];i.handler=e.use(i.def,i.options)}s(N,qi).length>0&&Uy(e),s(N,Er).size>0&&Ly(e),s(N,Tr)&&(Oy(e),dk(e)),(s(N,Tr)||s(N,Ar).size>0)&&Ob(e),s(N,Hi)&&By(e),s(N,Ni)&&py(e),s(N,Gt).size>0&&Dy(e);for(let t of s(N,As))e.provides(t)}};Ni=new WeakMap,Fs=new WeakMap,_i=new WeakMap,Tr=new WeakMap,Ar=new WeakMap,Hi=new WeakMap,qi=new WeakMap,Er=new WeakMap,Gt=new WeakMap,Ts=new WeakMap,As=new WeakMap,Rr=new WeakMap,G=new WeakMap,N.debug={},l(N,Ni),l(N,Fs,{}),l(N,_i,{}),l(N,Tr),l(N,Ar,new Map),l(N,Hi),l(N,qi,[]),l(N,Er,new Map),l(N,Gt,new Map),l(N,Ts,{}),l(N,As,[]),l(N,Rr,{}),l(N,G,{});var u=N;(e=>{function r(t,i,...n){return{type:t,props:i,children:n}}e.createElement=r})(u||(u={}));function Y(r){let e=Object.getOwnPropertyDescriptors(r.constructor.prototype);for(let[t,i]of Object.entries(e))i.get&&Object.defineProperty(r,t,{...i,enumerable:!0})}var hm;(function(r){r[r.bold=1]="bold",r[r.italic=2]="italic",r[r.underline=4]="underline",r[r.strikethrough=8]="strikethrough",r[r.subscript=16]="subscript",r[r.superscript=32]="superscript",r[r.monospace=64]="monospace"})(hm||(hm={}));var lk="text",uk="raw",ck="br",mk="link",pk="c/",gk="p/",hk="r/",fk="u/",vk="@",yk="spoilertext",bk="par",kk="h",Sk="hr",Pk="blockquote",Ck="code",wk="li",Ik="list",xk="L",Fk="R",Tk="C",Ak="table",Ek="embed",Rk="img",Ok="gif",Bk="video";function Mk(r){return{e:Ok,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function Uk(r,e){let t={},i=[];return Object.assign(t,Es(t,i),Rs(t,i),Os(t,i),Us(t,i),Ls(t,i),Ds(t,i)),e(t),{e:Pk,c:i,...r.author&&{a:r.author}}}function Lk(r,e){let t={},i=[];return Object.assign(t,vm(t,i)),e(t),{e:Ck,c:i,...r.language&&{l:r.language}}}function Dk(r){return{e:pk,t:r.permalink}}function Nk(r,e){let t={},i=[];return Object.assign(t,vm(t,i),Ms(t,i)),e(t),{e:kk,l:r.level,c:i}}function _k(r){return{e:Ek,u:r.sourceUrl,c:r.contentUrl,x:r.width,y:r.height}}function Hk(){return{e:Sk}}function qk(r){return{e:Rk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function jk(){return{e:ck}}function Wk(r){return{e:mk,t:r.text,u:r.url,...r.formatting&&{f:r.formatting},...r.tooltip&&{a:r.tooltip}}}function Gk(r,e){let t={},i=[];return Object.assign(t,oS(t,i)),e(t),{e:Ik,o:r.ordered,c:i}}function Vk(r){let e={},t=[];return Object.assign(e,Es(e,t),Rs(e,t),Os(e,t),Hd(e,t),Us(e,t),Ls(e,t),Ds(e,t)),r(e),{e:wk,c:t}}function zk(r){let e={},t=[];return Object.assign(e,qd(e,t),Ms(e,t),fm(e,t),ym(e,t),Bs(e,t)),r(e),{e:bk,c:t}}function Jk(r){return{e:gk,t:r.permalink}}function $k(r){return{e:uk,t:r}}function Kk(r){let e={},t=[];return Object.assign(e,qd(e,t),Ms(e,t),fm(e,t)),r(e),{e:yk,c:t}}function Xk(r){return{e:hk,t:r.subredditName,l:r.showPrefix}}function Zk(r){let e={},t=[],i=[];return Object.assign(e,aS(e,t,i)),r(e),{e:Ak,h:t,c:i}}function Qk(r){let[e,t]=sS();return r(e),{c:t}}function Yk(r,e){let[t,i]=sS();e(t);let n;switch(r.columnAlignment){case"left":n=xk;break;case"right":n=Fk;break;case"center":n=Tk;break}return{...n&&{a:n},...i&&{c:i}}}function eS(r){let e={},t=[];return Object.assign(e,dS(e,t)),r(e),t}function tS(r){return{e:lk,t:r.text,...r.formatting&&{f:r.formatting}}}function rS(r){return{e:fk,t:r.username,l:r.showPrefix}}function iS(r){return{e:vk,t:r.username,l:r.showPrefix}}function nS(r){return{e:Bk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur},...r.thumbnail&&{p:r.thumbnail},...r.convertToGif&&{gifify:r.convertToGif}}}function sS(){let r={},e=[];return Object.assign(r,qd(r,e),Ms(r,e),ym(r,e),Bs(r,e)),[r,e]}function Es(r,e){return{blockQuote(t,i){return e.push(Uk(t,i)),r}}}function Rs(r,e){return{codeBlock(t,i){return e.push(Lk(t,i)),r}}}function lS(r,e){return{embed(t){return e.push(_k(t)),r}}}function Os(r,e){return{heading(t,i){return e.push(Nk(t,i)),r}}}function Hd(r,e){return{horizontalRule(){return e.push(Hk()),r}}}function Bs(r,e){return{image(t){return e.push(qk(t)),r},animatedImage(t){return e.push(Mk(t)),r}}}function fm(r,e){return{linebreak(){return e.push(jk()),r}}}function Ms(r,e){return{link(t){return e.push(Wk(t)),r},commentLink(t){return e.push(Dk(t)),r},postLink(t){return e.push(Jk(t)),r},subredditLink(t){return e.push(Xk(t)),r},userLink(t){return e.push(rS(t)),r},userMention(t){return e.push(iS(t)),r}}}function Us(r,e){return{list(t,i){return e.push(Gk(t,i)),r}}}function oS(r,e){return{item(t){return e.push(Vk(t)),r}}}function Ls(r,e){return{paragraph(t){return e.push(zk(t)),r}}}function vm(r,e){return{rawText(t){return e.push($k(t)),r}}}function ym(r,e){return{spoiler(t){return e.push(Kk(t)),r}}}function aS(r,e,t){return{headerCell(i,n){return e.push(Yk(i,n)),r},row(i){return t.push(eS(i)),r}}}function Ds(r,e){return{table(t){return e.push(Zk(t)),r}}}function dS(r,e){return{cell(t){return e.push(Qk(t)),r}}}function qd(r,e){return{text(t){return e.push(tS(t)),r}}}function uS(r,e){return{video(t){return e.push(nS(t)),r}}}var IR=function(r,e,t,i,n){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?n.call(r,t):n?n.value=t:e.set(r,t),t},xR=function(r,e,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(r):i?i.value:e.get(r)},jd,Or=class{constructor(){jd.set(this,void 0);let e=[];Object.assign(this,Ls(this,e),Os(this,e),Hd(this,e),Es(this,e),Rs(this,e),lS(this,e),Us(this,e),Ds(this,e),Bs(this,e),uS(this,e)),IR(this,jd,{document:e},"f")}build(){return JSON.stringify(xR(this,jd,"f"))}paragraph(e){return this}heading(e,t){return this}horizontalRule(){return this}blockQuote(e,t){return this}codeBlock(e,t){return this}embed(e){return this}list(e,t){return this}table(e){return this}image(e){return this}animatedImage(e){return this}video(e){return this}};jd=new WeakMap;function ji(r){let e;return r instanceof Or?e=r.build():typeof r=="object"?e=JSON.stringify(r):e=r,e}var cS=100,mS=1/0,Br,Mr,Vt,Wi,Gi,Wd,V=class{constructor(e){l(this,Gi);l(this,Br);l(this,Mr);l(this,Vt);l(this,Wi,!1);this.pageSize=cS;this.limit=mS;this.children=[];Y(this),this._fetch=e.fetch,this.pageSize=e.pageSize??cS,this.limit=e.limit??mS,d(this,Mr,e.after),d(this,Br,e.before),d(this,Vt,e.more),e.children&&(this.children=e.children)}get hasMore(){return!s(this,Wi)||!!(s(this,Mr)||s(this,Br)||s(this,Vt))}async*[Symbol.asyncIterator](){let e=0;for(;;){if(e===this.children.length)if(this.hasMore){if((await S(this,Gi,Wd).call(this)).length===0)break}else break;if(yield this.children[e],e++,e===this.limit)break}}setMore(e){d(this,Vt,e)}preventInitialFetch(){d(this,Wi,!0)}async all(){for(;this.hasMore&&this.children.length<this.limit;)await S(this,Gi,Wd).call(this);return this.children.slice(0,this.limit)}async get(e){let t=e<=this.limit?e:this.limit;for(;this.hasMore&&this.children.length<t;)await S(this,Gi,Wd).call(this);return this.children.slice(0,t)}};Br=new WeakMap,Mr=new WeakMap,Vt=new WeakMap,Wi=new WeakMap,Gi=new WeakSet,Wd=async function(){if(!this.hasMore)throw new Error("This listing does not have any more items to load.");let{children:e,before:t,after:i,more:n}=await this._fetch({before:s(this,Br),after:s(this,Mr),limit:this.pageSize,more:s(this,Vt)});return this.children.push(...e),d(this,Br,t),d(this,Mr,i),d(this,Vt,n),d(this,Wi,!0),e};var Ns,bm,Me=class{constructor(){}static get(e,t){let i=u.redditAPIPlugins.ModNote;return new V({hasMore:!0,before:e.before,limit:e.limit,pageSize:e.limit,fetch:async n=>{let o=await i.GetNotes({subreddit:e.subreddit,user:e.user,filter:e.filter,before:n.before,limit:n.limit},t);return{children:o.modNotes?.map(a=>S(this,Ns,bm).call(this,a))||[],before:o.hasNextPage?o.endCursor:void 0,hasMore:o.hasNextPage}}})}static async delete(e,t){let i=u.redditAPIPlugins.ModNote,{deleted:n}=await i.DeleteNotes(e,t);return!!n}static async add(e,t){let n=await u.redditAPIPlugins.ModNote.PostNotes(e,t);if(!n?.created)throw new Error("Failed to create mod note");return S(this,Ns,bm).call(this,n.created)}static async addRemovalNote(e,t){await u.redditAPIPlugins.ModNote.PostRemovalNote(e,t)}};Ns=new WeakSet,bm=function(e){return v(e.id,"Mod note ID is null or undefined"),v(e.createdAt,"Mod note createdAt is null or undefined"),v(e.type,"Mod note type is null or undefined"),v(e.subreddit,"Mod note subreddit is null or undefined"),v(e.subredditId,"Mod note subredditId is null or undefined"),v(e.operator,"Mod note operator is null or undefined"),v(e.operatorId,"Mod note operatorId is null or undefined"),v(e.user,"Mod note user is null or undefined"),v(e.userId,"Mod note userId is null or undefined"),v(e.userNoteData,"Mod note userNote is null or undefined"),v(e.modActionData,"Mod note modAction is null or undefined"),{id:e.id,user:{id:oe(e.userId??""),name:e.user},subreddit:{id:ie(e.subredditId??""),name:e.subreddit},operator:{id:oe(e.operatorId??""),name:e.operator},createdAt:new Date(e.createdAt*1e3),userNote:{note:e.userNoteData?.note,redditId:e.userNoteData?.redditId?Re(e.userNoteData?.redditId):void 0,label:e.userNoteData?.label},type:e.type}},l(Me,Ns);var re=class{static queryWithQueryString(e,t){return u.redditAPIPlugins.GraphQL.Query({query:e},t)}static query(e,t,i,n){return u.redditAPIPlugins.GraphQL.PersistedQuery({operationName:e,id:t,variables:i},n)}};var pS=["all","wiki","posts","access","mail","config","flair","channels","chat_config","chat_operator","community_chat"];function FR(r,e){return e.map(t=>(r.includes(t)?"+":"-")+t).join(",")}function km(r){return FR(r,pS)}function gS(r){return r.filter(e=>pS.includes(e))}var TR=(t=>(t.User="USER_FLAIR",t.Post="LINK_FLAIR",t))(TR||{}),Lr,Vi,zi,Ji,$i,Ki,Xi,Zi,Qi,Yi,en,Gd,Ke=class Ke{constructor(e,t,i){l(this,Lr);l(this,Vi);l(this,zi);l(this,Ji);l(this,$i);l(this,Ki);l(this,Xi);l(this,Zi);l(this,Qi);l(this,Yi);Y(this),v(e.id),v(e.text),d(this,Lr,e.id),d(this,Vi,t),d(this,zi,e.text),d(this,Ji,AR(e.textColor)),d(this,$i,ER(e.backgroundColor)),d(this,Ki,RR(e.allowableContent)),d(this,Xi,e.modOnly),d(this,Zi,e.maxEmojis),d(this,Qi,e.textEditable),d(this,Yi,i)}get id(){return s(this,Lr)}get text(){return s(this,zi)}get textColor(){return s(this,Ji)}get backgroundColor(){return s(this,$i)}get allowableContent(){return s(this,Ki)}get modOnly(){return s(this,Xi)}get maxEmojis(){return s(this,Zi)}get allowUserEdits(){return s(this,Qi)}async delete(){return Ke.deleteFlairTemplate(s(this,Lr),s(this,Vi),s(this,Yi))}async edit(e){return Ke.editFlairTemplate({id:s(this,Lr),subredditName:s(this,Vi),text:e.text??s(this,zi),allowableContent:e.allowableContent??s(this,Ki),backgroundColor:e.backgroundColor??s(this,$i),maxEmojis:e.maxEmojis??s(this,Zi),modOnly:e.modOnly??s(this,Xi),textColor:e.textColor??s(this,Ji),allowUserEdits:e.allowUserEdits??s(this,Qi)},s(this,Yi))}static async createPostFlairTemplate(e,t){var i;return S(i=Ke,en,Gd).call(i,{...e,flairType:"LINK_FLAIR"},t)}static async createUserFlairTemplate(e,t){var i;return S(i=Ke,en,Gd).call(i,{...e,flairType:"USER_FLAIR"},t)}static async editFlairTemplate(e,t){var i;return S(i=Ke,en,Gd).call(i,e,t)}static async getPostFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.LinkFlair({subreddit:e},t)).flair?.map(o=>new Ke(o,e,t))||[]}static async getUserFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.UserFlair({subreddit:e},t)).flair?.map(o=>new Ke(o,e,t))||[]}static async deleteFlairTemplate(e,t,i){await u.redditAPIPlugins.Flair.DeleteFlairTemplate({subreddit:e,flairTemplateId:t},i)}};Lr=new WeakMap,Vi=new WeakMap,zi=new WeakMap,Ji=new WeakMap,$i=new WeakMap,Ki=new WeakMap,Xi=new WeakMap,Zi=new WeakMap,Qi=new WeakMap,Yi=new WeakMap,en=new WeakSet,Gd=async function(e,t){let{subredditName:i,allowableContent:n="all",backgroundColor:o="transparent",flairType:a="",maxEmojis:c=10,modOnly:p=!1,text:g,textColor:f="dark",allowUserEdits:m=!1,id:y=""}=e;if(p&&m)throw new Error("Cannot have a mod only flair that is editable by users");let P=await u.redditAPIPlugins.Flair.FlairTemplate({subreddit:i,allowableContent:n,backgroundColor:o,flairType:a,maxEmojis:c,modOnly:p,text:g,textColor:f,textEditable:m,flairTemplateId:y,cssClass:"",overrideCss:!1},t);return new Ke(P,i,t)},l(Ke,en);var ue=Ke;function _s(r){return{flairCssClass:r.flairCssClass,user:r.user,flairText:r.flairText}}var zt,Sm,Pm,Ur=class Ur{static async getUserFlairBySubreddit(e,t){return u.redditAPIPlugins.Flair.FlairList(e,t)}static setUserFlair(e,t){var i;return S(i=Ur,zt,Sm).call(i,e,t)}static setPostFlair(e,t){var i;return S(i=Ur,zt,Sm).call(i,{...e,postId:ve(e.postId)},t)}static async removePostFlair(e,t,i){var n;return S(n=Ur,zt,Pm).call(n,e,t,void 0,i)}static async removeUserFlair(e,t,i){var n;return S(n=Ur,zt,Pm).call(n,e,void 0,t,i)}};zt=new WeakSet,Sm=async function(e,t){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e.subredditName,flairTemplateId:e.flairTemplateId??"",text:e.text??"",name:e.username,link:e.postId,backgroundColor:e.backgroundColor??"",textColor:e.textColor??"dark",cssClass:e.cssClass??"",returnRtjson:"none"},t)},Pm=async function(e,t,i,n){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e,name:i??"",link:t??"",flairTemplateId:"",backgroundColor:"",text:"",textColor:"",cssClass:"",returnRtjson:"none"},n)},l(Ur,zt);var Ue=Ur;function AR(r){if(v(r,"Flair text color is required"),r==="light"||r==="dark")return r;throw new Error(`Invalid flair text color: ${r}`)}function ER(r){if(!r||r.length===0||r==="transparent")return"transparent";if(/^#([A-Fa-f0-9]{6})$/.test(r))return r;throw new Error(`Invalid flair background color: ${r}`)}function RR(r){if(r==="all"||r==="text"||r==="emoji")return r;throw new Error(`Invalid allowable content: ${r}`)}import"@devvit/protos";import{Block as yS,UIResponse as HR}from"@devvit/protos";var Im=Ln(vS(),1);var wm=r=>"text"in r?r.text:_R(r.richtext),_R=r=>r instanceof Or?r.build():typeof r=="object"?JSON.stringify(r):r;var qR={NONE:0,BLOCKS:1,UNRECOGNIZED:-1},tn,qs,rn,js,nn,Ws,Gs,Vs,Nr,zs,Js,$s,Ks,Xs,Zs,Jt,Qs,Ys,_r,sn,$t,on,an,dn,Kt,Xt,Zt,ln,Qt,Yt,er,bt,eo,to,un,cn,D,_=class _{constructor(e,t){l(this,tn);l(this,qs);l(this,rn);l(this,js);l(this,nn);l(this,Ws);l(this,Gs);l(this,Vs);l(this,Nr);l(this,zs);l(this,Js);l(this,$s);l(this,Ks);l(this,Xs);l(this,Zs);l(this,Jt);l(this,Qs);l(this,Ys);l(this,_r);l(this,sn);l(this,$t);l(this,on);l(this,an);l(this,dn);l(this,Kt);l(this,Xt);l(this,Zt);l(this,ln);l(this,Qt);l(this,Yt);l(this,er);l(this,bt);l(this,eo);l(this,to);l(this,un);l(this,cn);l(this,D);Y(this),v(e.id,"Post is missing id"),v(e.title,"Post is missing title"),v(e.createdUtc,"Post is missing created date"),v(e.author,"Post is missing author name"),v(e.subreddit,"Post is missing subreddit name"),v(e.subredditId,"Post is missing subreddit id"),v(e.url,"Post is missing url"),v(e.permalink,"Post is missing permalink"),d(this,tn,ve(`t3_${e.id}`)),d(this,rn,e.author),d(this,qs,e.authorFullname?oe(e.authorFullname):void 0),d(this,nn,ie(e.subredditId)),d(this,Ws,e.subreddit),d(this,$s,e.score??0),d(this,Ks,e.numComments??0),d(this,Xs,e.numReports??0);let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,js,i),d(this,Vs,e.title),d(this,Nr,e.selftext),d(this,zs,e.selftextHtml),d(this,Js,e.url),d(this,Gs,e.permalink),e.thumbnail&&e.thumbnail!=="self"&&e.thumbnail!=="nsfw"&&e.thumbnailHeight!=null&&e.thumbnailWidth!=null&&d(this,Zs,{url:e.thumbnail,height:e.thumbnailHeight,width:e.thumbnailWidth}),d(this,Jt,e.approved??!1),d(this,Qs,e.approvedAtUtc??0),d(this,Ys,e.bannedAtUtc??0),d(this,$t,e.removed??!1),d(this,on,e.removedBy),d(this,an,e.removedByCategory),d(this,_r,e.spam??!1),d(this,sn,e.stickied??!1),d(this,dn,e.archived??!1),d(this,Kt,e.edited??!1),d(this,Xt,e.locked??!1),d(this,Zt,e.over18??!1),d(this,ln,e.quarantine??!1),d(this,Qt,e.spoiler),d(this,Yt,e.hidden??!1),d(this,er,e.ignoreReports??!1),d(this,bt,e.distinguished),d(this,to,e.secureMedia),d(this,un,(e.modReports??[]).map(([n])=>n)),d(this,cn,(e.userReports??[]).map(([n])=>n)),d(this,D,t),(e.linkFlairBackgroundColor||e.linkFlairCssClass||e.linkFlairText||e.linkFlairType||e.linkFlairTemplateId||e.linkFlairRichtext||e.linkFlairTextColor)&&d(this,eo,{backgroundColor:e.linkFlairBackgroundColor,cssClass:e.linkFlairCssClass,text:e.linkFlairText,type:e.linkFlairType,templateId:e.linkFlairTemplateId,richtext:(e.linkFlairRichtext??[]).map(({e:n,t:o,a,u:c})=>({elementType:n,text:o,emojiRef:a,url:c})),textColor:e.linkFlairTextColor})}get id(){return s(this,tn)}get authorId(){return s(this,qs)}get authorName(){return s(this,rn)}get subredditId(){return s(this,nn)}get subredditName(){return s(this,Ws)}get permalink(){return s(this,Gs)}get title(){return s(this,Vs)}get body(){return s(this,Nr)}get bodyHtml(){return s(this,zs)}get url(){return s(this,Js)}get thumbnail(){return s(this,Zs)}get createdAt(){return s(this,js)}get score(){return s(this,$s)}get numberOfComments(){return s(this,Ks)}get numberOfReports(){return s(this,Xs)}get approved(){return s(this,Jt)}get approvedAtUtc(){return s(this,Qs)}get bannedAtUtc(){return s(this,Ys)}get spam(){return s(this,_r)}get stickied(){return s(this,sn)}get removed(){return s(this,$t)}get removedBy(){return s(this,on)}get removedByCategory(){return s(this,an)}get archived(){return s(this,dn)}get edited(){return s(this,Kt)}get locked(){return s(this,Xt)}get nsfw(){return s(this,Zt)}get quarantined(){return s(this,ln)}get spoiler(){return s(this,Qt)}get hidden(){return s(this,Yt)}get ignoringReports(){return s(this,er)}get distinguishedBy(){return s(this,bt)}get comments(){return te.getComments({postId:this.id},s(this,D))}get flair(){return s(this,eo)}get secureMedia(){return s(this,to)}get userReportReasons(){return s(this,cn)}get modReportReasons(){return s(this,un)}toJSON(){return{id:this.id,authorId:this.authorId,authorName:this.authorName,subredditId:this.subredditId,subredditName:this.subredditName,permalink:this.permalink,title:this.title,body:this.body,bodyHtml:this.bodyHtml,url:this.url,thumbnail:this.thumbnail,score:this.score,numberOfComments:this.numberOfComments,numberOfReports:this.numberOfReports,createdAt:this.createdAt,approved:this.approved,spam:this.spam,stickied:this.stickied,removed:this.removed,removedBy:s(this,on),removedByCategory:s(this,an),archived:this.archived,edited:this.edited,locked:this.locked,nsfw:this.nsfw,quarantined:this.quarantined,spoiler:this.spoiler,hidden:this.hidden,ignoringReports:this.ignoringReports,distinguishedBy:this.distinguishedBy,flair:this.flair,secureMedia:this.secureMedia,modReportReasons:s(this,un),userReportReasons:s(this,cn)}}isApproved(){return s(this,Jt)}isSpam(){return s(this,_r)}isStickied(){return s(this,sn)}isRemoved(){return s(this,$t)}isArchived(){return s(this,dn)}isEdited(){return s(this,Kt)}isLocked(){return s(this,Xt)}isNsfw(){return s(this,Zt)}isQuarantined(){return s(this,ln)}isSpoiler(){return s(this,Qt)}isHidden(){return s(this,Yt)}isIgnoringReports(){return s(this,er)}isDistinguishedBy(){return s(this,bt)}async edit(e){let t=await _.edit({id:this.id,...e},s(this,D));d(this,Nr,t.body),d(this,Kt,t.edited)}async setSuggestedCommentSort(e){await _.setSuggestedCommentSort({id:this.id,subredditId:s(this,nn),suggestedSort:e},s(this,D))}async setCustomPostPreview(e){await _.setCustomPostPreview({id:this.id,ui:e},s(this,D))}async setTextFallback(e){let t=await _.setTextFallback(e,this.id,s(this,D));d(this,Nr,t.body),d(this,Kt,t.edited)}async addComment(e){return te.submit({id:this.id,...e},s(this,D))}async delete(){return _.delete(this.id,s(this,D))}async approve(){await _.approve(this.id,s(this,D)),d(this,Jt,!0),d(this,$t,!1)}async remove(e=!1){await _.remove(this.id,e,s(this,D)),d(this,$t,!0),d(this,_r,e),d(this,Jt,!1)}async lock(){await _.lock(this.id,s(this,D)),d(this,Xt,!0)}async unlock(){await _.unlock(this.id,s(this,D)),d(this,Xt,!1)}async hide(){await _.hide(this.id,s(this,D)),d(this,Yt,!0)}async unhide(){await _.unhide(this.id,s(this,D)),d(this,Yt,!1)}async markAsNsfw(){await _.markAsNsfw(this.id,s(this,D)),d(this,Zt,!0)}async unmarkAsNsfw(){await _.unmarkAsNsfw(this.id,s(this,D)),d(this,Zt,!1)}async markAsSpoiler(){await _.markAsSpoiler(this.id,s(this,D)),d(this,Qt,!0)}async unmarkAsSpoiler(){await _.unmarkAsSpoiler(this.id,s(this,D)),d(this,Qt,!1)}async sticky(e){await _.sticky(this.id,e,s(this,D))}async unsticky(){await _.unsticky(this.id,s(this,D))}async distinguish(){let{distinguishedBy:e}=await _.distinguish(this.id,!1,s(this,D));d(this,bt,e)}async distinguishAsAdmin(){let{distinguishedBy:e}=await _.distinguish(this.id,!0,s(this,D));d(this,bt,e)}async undistinguish(){let{distinguishedBy:e}=await _.undistinguish(this.id,s(this,D));d(this,bt,e)}async ignoreReports(){await _.ignoreReports(this.id,s(this,D)),d(this,er,!0)}async unignoreReports(){await _.unignoreReports(this.id,s(this,D)),d(this,er,!1)}async getAuthor(){return w.getByUsername(s(this,rn),s(this,D))}async crosspost(e){return _.crosspost({...e,postId:this.id},s(this,D))}addRemovalNote(e){return Me.addRemovalNote({itemIds:[s(this,tn)],...e},s(this,D))}async getEnrichedThumbnail(){return jR({id:this.id},s(this,D))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=pr(e)?e:`t3_${e}`,o=await i.Info({subreddits:[],thingIds:[n]},t);if(!o.data?.children?.length)throw new Error("could not find post");let a=o.data.children[0];if(!a?.data)throw new Error("could not find post");return new _(a.data,t)}static async submit(e,t){let i=u.redditAPIPlugins.LinksAndComments,n;if("preview"in e){v(t,"Missing metadata in `SubmitPostOptions`");let c=await new pt(()=>e.preview,void 0,{},t,void 0).buildBlocksUI(),p=yS.encode(c).finish(),{textFallback:g,...f}=e,m=g?wm(g):"",y={kind:"custom",sr:e.subredditName,richtextJson:(0,Im.fromByteArray)(p),richtextFallback:m,...f};n=await i.SubmitCustomPost(y,t)}else n=await i.Submit({kind:"kind"in e?e.kind:"url"in e?"link":"self",sr:e.subredditName,richtextJson:"richtext"in e?ji(e.richtext):void 0,...e},t);if("kind"in e&&["image","video","videogif"].includes(e.kind)&&!n.json?.data?.id&&"url"in e)throw new Error(`Post of ${e.kind} type with ${e.url} is being created asynchronously and should be updated in the subreddit soon.`);if(!n.json?.data?.id||n.json?.errors?.length)throw new Error(`failed to submit post - either post ID is empty or request failed with errors: ${n.json?.errors}`);return _.getById(`t3_${n.json.data.id}`,t)}static async crosspost(e,t){let i=u.redditAPIPlugins.LinksAndComments,{postId:n,subredditName:o,...a}=e,c=await i.Submit({kind:"crosspost",sr:o,crosspostFullname:ve(n),...a},t);if(!c.json?.data?.id||c.json?.errors?.length)throw new Error("failed to crosspost post");return _.getById(`t3_${c.json.data.id}`,t)}static async edit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;if("richtext"in e&&(o=ji(e.richtext)),(await i.EditUserText({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t)).json?.errors?.length)throw new Error("Failed to edit post");return _.getById(n,t)}static async setSuggestedCommentSort(e,t){if(!(await re.query("SetSuggestedSort","cf6052acc7fefaa65b710625b81dba8041f258313aafe9730e2a3dc855e5d10d",{input:{subredditId:e.subredditId,postId:e.id,sort:e.suggestedSort}},t)).data?.setSuggestedSort?.ok)throw new Error("Failed to set suggested sort")}static async setCustomPostPreview(e,t){if(!t)throw new Error("Failed to set custom post preview. Metadata not found");let i=u.redditAPIPlugins.LinksAndComments,n=new Fr(e.ui),a=HR.fromJSON(await n.handle({events:[]},t)).blocks,c=(0,Im.fromByteArray)(yS.encode(a).finish());await i.SetCustomPostPreview({thingId:e.id,bodyType:qR.BLOCKS,blocksRenderContent:c},t)}static async setTextFallback(e,t,i){if(!("text"in e)&&!("richtext"in e))throw new Error(`No text fallback provided for post ${t}.`);let n=u.redditAPIPlugins.LinksAndComments,o=wm(e);if((await n.EditCustomPost({thingId:t,richtextFallback:o},i)).json?.errors?.length)throw new Error("Failed to set post text fallback");return _.getById(t,i)}static async delete(e,t){await u.redditAPIPlugins.LinksAndComments.Del({id:e},t)}static async approve(e,t){await u.redditAPIPlugins.Moderation.Approve({id:e},t)}static async remove(e,t=!1,i){await u.redditAPIPlugins.Moderation.Remove({id:e,spam:t},i)}static async hide(e,t){await u.redditAPIPlugins.LinksAndComments.Hide({id:e},t)}static async unhide(e,t){await u.redditAPIPlugins.LinksAndComments.Unhide({id:e},t)}static async markAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.MarkNSFW({id:e},t)}static async unmarkAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.UnmarkNSFW({id:e},t)}static async markAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Spoiler({id:e},t)}static async unmarkAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Unspoiler({id:e},t)}static async sticky(e,t,i){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!0,num:t},i)}static async unsticky(e,t){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!1},t)}static async lock(e,t){await u.redditAPIPlugins.LinksAndComments.Lock({id:e},t)}static async unlock(e,t){await u.redditAPIPlugins.LinksAndComments.Unlock({id:e},t)}static async distinguish(e,t,i){let a=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:t?"admin":"yes",sticky:!1},i)).json?.data?.things?.[0]?.data;return v(a),{distinguishedBy:a.distinguished}}static async undistinguish(e,t){let o=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:"no",sticky:!1},t)).json?.data?.things?.[0]?.data;return v(o),{distinguishedBy:o.distinguished}}static async ignoreReports(e,t){await u.redditAPIPlugins.Moderation.IgnoreReports({id:e},t)}static async unignoreReports(e,t){await u.redditAPIPlugins.Moderation.UnignoreReports({id:e},t)}static getControversialPosts(e={},t){return this.getSortedPosts({...e,sort:"controversial"},t)}static getTopPosts(e={},t){return this.getSortedPosts({...e,sort:"top"},t)}static getSortedPosts(e,t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Sort({show:"all",sort:e.sort,t:e.timeframe,subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getHotPosts(e={location:"GLOBAL"},t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Hot({g:e.location,show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getNewPosts(e,t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.New({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getRisingPosts(e,t){let i=u.redditAPIPlugins.Listings;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Rising({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getPostsByUser(e,t){let i=u.redditAPIPlugins.Users;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"submitted",...n},t);return Hs(o,t)}})}};tn=new WeakMap,qs=new WeakMap,rn=new WeakMap,js=new WeakMap,nn=new WeakMap,Ws=new WeakMap,Gs=new WeakMap,Vs=new WeakMap,Nr=new WeakMap,zs=new WeakMap,Js=new WeakMap,$s=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Jt=new WeakMap,Qs=new WeakMap,Ys=new WeakMap,_r=new WeakMap,sn=new WeakMap,$t=new WeakMap,on=new WeakMap,an=new WeakMap,dn=new WeakMap,Kt=new WeakMap,Xt=new WeakMap,Zt=new WeakMap,ln=new WeakMap,Qt=new WeakMap,Yt=new WeakMap,er=new WeakMap,bt=new WeakMap,eo=new WeakMap,to=new WeakMap,un=new WeakMap,cn=new WeakMap,D=new WeakMap;var z=_;function Hs(r,e){if(!r.data?.children)throw new Error("Listing response is missing children");return{children:r.data.children.map(i=>new z(i.data,e)),before:r.data.before,after:r.data.after}}async function jR(r,e){let o=(await re.query("GetThumbnailV2","81580ce4e23d748c5a59a1618489b559bf4518b6a73af41f345d8d074c8b2ce9",{id:r.id},e)).data?.postInfoById?.thumbnailV2;if(o){if(!o.image)return}else throw new Error("Failed to get thumbnail");return{attribution:o.attribution,image:{url:o.image.url,width:o.image.dimensions.width,height:o.image.dimensions.height},isObfuscatedDefault:o.isObfuscatedDefault,...o.obfuscatedImage&&{obfuscatedImage:{url:o.obfuscatedImage.url,width:o.obfuscatedImage.dimensions.width,height:o.obfuscatedImage.dimensions.height}}}}var WR=(q=>(q.Custom="CUSTOM",q.Reddit="REDDIT",q.Instagram="INSTAGRAM",q.Twitter="TWITTER",q.Tiktok="TIKTOK",q.Twitch="TWITCH",q.Facebook="FACEBOOK",q.Youtube="YOUTUBE",q.Tumblr="TUMBLR",q.Spotify="SPOTIFY",q.Soundcloud="SOUNDCLOUD",q.Beacons="BEACONS",q.Linktree="LINKTREE",q.Discord="DISCORD",q.Venmo="VENMO",q.CashApp="CASH_APP",q.Patreon="PATREON",q.Kofi="KOFI",q.Paypal="PAYPAL",q.Cameo="CAMEO",q.Onlyfans="ONLYFANS",q.Substack="SUBSTACK",q.Kickstarter="KICKSTARTER",q.Indiegogo="INDIEGOGO",q.BuyMeACoffee="BUY_ME_A_COFFEE",q.Shopify="SHOPIFY",q))(WR||{}),ro,mn,io,no,so,oo,ao,tr,lo,uo,ot,Hr=class Hr{constructor(e,t){l(this,ro);l(this,mn);l(this,io);l(this,no);l(this,so);l(this,oo);l(this,ao);l(this,tr,new Map);l(this,lo);l(this,uo);l(this,ot);Y(this),v(e.id,"User ID is missing or undefined"),v(e.name,"Username is missing or undefined"),v(e.createdUtc,"User is missing created date"),d(this,ro,oe(Qa(e.id)?e.id:`t2_${e.id}`)),d(this,mn,e.name),d(this,oo,e.over18??!1),d(this,ao,e.isEmployee??!1);let i=new Date(0);if(i.setUTCSeconds(e.createdUtc),d(this,io,i),d(this,no,e.linkKarma??0),d(this,so,e.commentKarma??0),e.modPermissions)for(let[n,o]of Object.entries(e.modPermissions))s(this,tr).set(n,gS(o));d(this,lo,new URL(e.subreddit?.url??"","https://www.reddit.com").toString()),d(this,uo,e.subreddit?.url??""),d(this,ot,t)}get id(){return s(this,ro)}get username(){return s(this,mn)}get createdAt(){return s(this,io)}get linkKarma(){return s(this,no)}get commentKarma(){return s(this,so)}get nsfw(){return s(this,oo)}get isAdmin(){return s(this,ao)}get modPermissions(){return s(this,tr)}get url(){return s(this,lo)}get permalink(){return s(this,uo)}toJSON(){return{id:this.id,username:this.username,createdAt:this.createdAt,linkKarma:this.linkKarma,commentKarma:this.commentKarma,nsfw:this.nsfw,modPermissionsBySubreddit:Object.fromEntries(this.modPermissions)}}async getModPermissionsForSubreddit(e){if(s(this,tr).has(e))return s(this,tr).get(e);let t=await Hr.getSubredditUsersByType({subredditName:e,type:"moderators",username:this.username},s(this,ot)).all();if(t.length===0)return[];let i=t[0].modPermissions.get(e)??[];return i.length>0&&s(this,tr).set(e,i),i}getComments(e){return te.getCommentsByUser({username:this.username,...e},s(this,ot))}getPosts(e){return z.getPostsByUser({username:this.username,...e},s(this,ot))}async getUserFlairBySubreddit(e){let t=await Ue.getUserFlairBySubreddit({subreddit:e,name:s(this,mn)},s(this,ot));return t.users[0]?_s(t.users[0]):void 0}getSnoovatarUrl(){return Hr.getSnoovatarUrl(this.username,s(this,ot))}async getSocialLinks(){let i=await re.query("GetUserSocialLinks","2aca18ef5f4fc75fb91cdaace3e9aeeae2cb3843b5c26ad511e6f01b8521593a",{name:this.username},s(this,ot));return i.data?.user?.profile?.socialLinks?i.data.user.profile.socialLinks.map(n=>({...n,handle:n.handle??void 0})):[]}static async getById(e,t){let o=(await u.redditAPIPlugins.Users.UserDataByAccountIds({ids:e},t))?.users?.[e]?.name;return o==null?void 0:Hr.getByUsername(o,t)}static async getByUsername(e,t){let n=await u.redditAPIPlugins.Users.UserAbout({username:e},t);if(n.data?.id)return new Hr(n.data,t)}static async getFromMetadata(e,t){v(t);let i=t?.[e]?.values[0];return i?Hr.getById(oe(i),t):Promise.resolve(void 0)}static getSubredditUsersByType(e,t){let i=u.redditAPIPlugins.Subreddits;return new V({hasMore:!0,pageSize:e.pageSize,limit:e.limit,after:e.after,before:e.before,fetch:async n=>{let o=await i.AboutWhere({where:e.type,user:e.username,subreddit:e.subredditName,show:"all",...n},t);return VR(o,e.subredditName,t)}})}static async createRelationship(e,t){let i=u.redditAPIPlugins.Users,{type:n,subredditName:o,username:a,permissions:c,...p}=e,g=await i.Friend({type:n,subreddit:o,name:a,permissions:c?km(c):void 0,...p},t);if(g.json?.errors?.length)throw new Error(g.json.errors.join(`
|
|
4
4
|
`))}static async removeRelationship(e,t){await u.redditAPIPlugins.Users.Unfriend({type:e.type,subreddit:e.subredditName,name:e.username},t)}static async setModeratorPermissions(e,t,i,n){let a=await u.redditAPIPlugins.Users.SetPermissions({subreddit:t,name:e,type:"moderator",permissions:km(i)},n);if(a.json?.errors?.length)throw new Error(a.json.errors.join(`
|
|
5
|
-
`))}static async getSnoovatarUrl(e,t){return(await re.query("GetSnoovatarUrlByName","c47fd42345af268616d2d8904b56856acdc05cf61d3650380f539ad7d596ac0c",{username:e},t)).data?.redditorInfoByName?.snoovatarIcon?.url}static getOverview(e,t){let i=u.redditAPIPlugins.Users;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"overview",...n},t);return GR(o,t)}})}};ro=new WeakMap,mn=new WeakMap,io=new WeakMap,no=new WeakMap,so=new WeakMap,oo=new WeakMap,ao=new WeakMap,tr=new WeakMap,lo=new WeakMap,uo=new WeakMap,ot=new WeakMap;var w=Hr;function GR(r,e){if(!r.data?.children)throw new Error("Listing response is missing children");return{children:r.data.children.map(i=>{if(i.kind==="t3")return new z(i.data,e);if(i.kind==="t1")return new te(i.data,e);throw new Error(`Type ${i.kind} is not supported`)}),before:r.data.before,after:r.data.after}}async function VR(r,e,t){let i=u.redditAPIPlugins.Users;if(!r.data?.children)throw new Error("Listing response is missing children");let n=r.data.children.map(f=>(v(f.data?.id,"User id is still from listing data"),f.data.id)),o=100,a=[];for(let f=0;f<n.length;f+=o)a.push(n.slice(f,f+o));let p=(await Promise.all(a.map(f=>i.UserDataByAccountIds({ids:f.join(",")},t)))).reduce((f,m)=>({...f,...m.users}),{});return{children:r.data.children.map(f=>{let m=f.data?.id;v(m,"User id is missing from listing");let y=p[m];return v(y,"User data is missing from response"),new w({id:m,name:y.name,linkKarma:y.linkKarma,commentKarma:y.commentKarma,createdUtc:y.createdUtc,over18:y.profileOver18,snoovatarSize:[],modPermissions:{[e]:f.data?.modPermissions??[]}},t)}),before:r.data.before,after:r.data.after}}var qr,co,pn,gn,mo,po,hn,go,ho,fn,rr,fo,vo,jr,ir,nr,kt,Wr,St,yo,bo,ko,So,Po,Co,wo,sr,ee,at,zd,Jd,j=class j{constructor(e,t){l(this,qr);l(this,co);l(this,pn);l(this,gn);l(this,mo);l(this,po);l(this,hn);l(this,go);l(this,ho);l(this,fn);l(this,rr);l(this,fo);l(this,vo);l(this,jr);l(this,ir);l(this,nr);l(this,kt);l(this,Wr);l(this,St);l(this,yo);l(this,bo);l(this,ko);l(this,So);l(this,Po);l(this,Co);l(this,wo);l(this,sr);l(this,ee);var n;Y(this),v(e.id,"Comment id is null or undefined"),v(e.body,"Comment body is null or undefined"),v(e.createdUtc,"Comment is missing created date"),v(e.author,"Comment author is null or undefined"),v(e.parentId,"Comment parentId is null or undefined"),v(e.linkId,"Comment linkId is null or undefined"),v(e.permalink,"Comment permalink is null or undefined"),v(e.subreddit,"Comment is missing subreddit name"),v(e.subredditId,"Comment is missing subreddit id"),d(this,qr,ni(`t1_${e.id}`)),d(this,co,e.authorFullname?oe(e.authorFullname):void 0),d(this,pn,e.author),d(this,gn,e.body),d(this,go,ie(e.subredditId)),d(this,ho,e.subreddit),d(this,po,ac(e.parentId)?ni(e.parentId):ve(e.parentId)),d(this,hn,ve(e.linkId)),d(this,jr,e.edited??!1),d(this,ir,e.locked??!1),d(this,nr,e.removed??!1),d(this,kt,e.stickied??!1),d(this,rr,e.approved??!1),d(this,fo,e.approvedAtUtc??0),d(this,vo,e.bannedAtUtc??0),d(this,Wr,e.spam??!1),d(this,St,e.distinguished),d(this,yo,e.numReports??0),d(this,bo,e.collapsedBecauseCrowdControl??!1),d(this,ko,e.score??0),d(this,So,e.permalink),d(this,wo,new URL(e.permalink??"","https://www.reddit.com/").toString()),d(this,sr,e.ignoreReports??!1),d(this,Po,(e.modReports??[]).map(([o])=>o)),d(this,Co,(e.userReports??[]).map(([o])=>o));let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,mo,i),d(this,fn,S(n=j,at,zd).call(n,{postId:s(this,hn),commentId:s(this,qr)},t)),d(this,ee,t)}get id(){return s(this,qr)}get authorId(){return s(this,co)}get authorName(){return s(this,pn)}get subredditId(){return s(this,go)}get subredditName(){return s(this,ho)}get body(){return s(this,gn)}get createdAt(){return s(this,mo)}get parentId(){return s(this,po)}get postId(){return s(this,hn)}get replies(){return s(this,fn)}get distinguishedBy(){return s(this,St)}get locked(){return s(this,ir)}get stickied(){return s(this,kt)}get removed(){return s(this,nr)}get approved(){return s(this,rr)}get approvedAtUtc(){return s(this,fo)}get bannedAtUtc(){return s(this,vo)}get spam(){return s(this,Wr)}get edited(){return s(this,jr)}get numReports(){return s(this,yo)}get collapsedBecauseCrowdControl(){return s(this,bo)}get score(){return s(this,ko)}get permalink(){return s(this,So)}get userReportReasons(){return s(this,Co)}get modReportReasons(){return s(this,Po)}get url(){return s(this,wo)}get ignoringReports(){return s(this,sr)}toJSON(){return{id:this.id,authorName:this.authorName,subredditId:this.subredditId,subredditName:this.subredditName,body:this.body,createdAt:this.createdAt,parentId:this.parentId,postId:this.postId,replies:this.replies,approved:this.approved,locked:this.locked,removed:this.removed,stickied:this.stickied,spam:this.spam,edited:this.edited,distinguishedBy:this.distinguishedBy,numReports:this.numReports,collapsedBecauseCrowdControl:this.collapsedBecauseCrowdControl,score:this.score,permalink:this.permalink,modReportReasons:this.modReportReasons,userReportReasons:this.userReportReasons,url:this.url,ignoringReports:this.ignoringReports}}isLocked(){return s(this,ir)}isApproved(){return s(this,rr)}isRemoved(){return s(this,nr)}isSpam(){return s(this,Wr)}isStickied(){return s(this,kt)}isDistinguished(){return!!s(this,St)}isEdited(){return s(this,jr)}isIgnoringReports(){return s(this,sr)}async delete(){return j.delete(this.id,s(this,ee))}async edit(e){let t=await j.edit({id:this.id,...e},s(this,ee));return d(this,gn,t.body),d(this,jr,t.edited),this}async approve(){await j.approve(this.id,s(this,ee)),d(this,rr,!0),d(this,nr,!1)}async remove(e=!1){await j.remove(this.id,e,s(this,ee)),d(this,nr,!0),d(this,Wr,e),d(this,rr,!1)}async lock(){await j.lock(this.id,s(this,ee)),d(this,ir,!0)}async unlock(){await j.unlock(this.id,s(this,ee)),d(this,ir,!1)}async reply(e){return j.submit({id:this.id,...e},s(this,ee))}async getAuthor(){return w.getByUsername(s(this,pn),s(this,ee))}async distinguish(e=!1){let{distinguishedBy:t,stickied:i}=await j.distinguish(this.id,e,!1,s(this,ee));d(this,St,t),d(this,kt,i)}async distinguishAsAdmin(e=!1){let{distinguishedBy:t,stickied:i}=await j.distinguish(this.id,e,!0,s(this,ee));d(this,St,t),d(this,kt,i)}async undistinguish(){let{distinguishedBy:e,stickied:t}=await j.undistinguish(this.id,s(this,ee));d(this,St,e),d(this,kt,t)}async ignoreReports(){await j.ignoreReports(this.id,s(this,ee)),d(this,sr,!0)}async unignoreReports(){await j.unignoreReports(this.id,s(this,ee)),d(this,sr,!1)}addRemovalNote(e){return Me.addRemovalNote({itemIds:[s(this,qr)],...e},s(this,ee))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=xt(e)?e:`t1_${e}`,o=await i.Info({subreddits:[],thingIds:[n]},t);if(!o.data?.children?.[0]?.data)throw new Error("not found");return new j(o.data.children[0].data,t)}static getComments(e,t){var a;let{postId:i,commentId:n,...o}=e;return S(a=j,at,zd).call(a,{postId:ve(i),commentId:n?ni(n):void 0,...o},t)}static async edit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;"richtext"in e&&(o=ji(e.richtext));let a=await i.EditUserText({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t);if(a.json?.errors?.length)throw new Error("Failed to edit comment");let c=a.json?.data?.things?.[0]?.data;return v(c),new j(c,t)}static async delete(e,t){await u.redditAPIPlugins.LinksAndComments.Del({id:e},t)}static async approve(e,t){await u.redditAPIPlugins.Moderation.Approve({id:e},t)}static async remove(e,t=!1,i){await u.redditAPIPlugins.Moderation.Remove({id:e,spam:t},i)}static async lock(e,t){await u.redditAPIPlugins.LinksAndComments.Lock({id:e},t)}static async unlock(e,t){await u.redditAPIPlugins.LinksAndComments.Unlock({id:e},t)}static async submit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;"richtext"in e&&(o=ji(e.richtext));let a=await i.Comment({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t);if(a.json?.errors?.length)throw new Error("failed to reply to comment");let c=a.json?.data?.things?.[0]?.data;return v(c),new j(c,t)}static async distinguish(e,t,i,n){let c=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:i?"admin":"yes",sticky:t},n)).json?.data?.things?.[0]?.data;return v(c),{distinguishedBy:c.distinguished,stickied:!!c.stickied}}static async undistinguish(e,t){let o=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:"no",sticky:!1},t)).json?.data?.things?.[0]?.data;return v(o),{distinguishedBy:o.distinguished,stickied:!!o.stickied}}static getCommentsByUser(e,t){let i=u.redditAPIPlugins.Users;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"comments",...n},t);return v(o.data,"Failed to get comments for user"),{children:o.data.children?.map(c=>new j(c.data,t))||[],before:o.data.before,after:o.data.after}}})}static async ignoreReports(e,t){await u.redditAPIPlugins.Moderation.IgnoreReports({id:e},t)}static async unignoreReports(e,t){await u.redditAPIPlugins.Moderation.UnignoreReports({id:e},t)}};qr=new WeakMap,co=new WeakMap,pn=new WeakMap,gn=new WeakMap,mo=new WeakMap,po=new WeakMap,hn=new WeakMap,go=new WeakMap,ho=new WeakMap,fn=new WeakMap,rr=new WeakMap,fo=new WeakMap,vo=new WeakMap,jr=new WeakMap,ir=new WeakMap,nr=new WeakMap,kt=new WeakMap,Wr=new WeakMap,St=new WeakMap,yo=new WeakMap,bo=new WeakMap,ko=new WeakMap,So=new WeakMap,Po=new WeakMap,Co=new WeakMap,wo=new WeakMap,sr=new WeakMap,ee=new WeakMap,at=new WeakSet,zd=function(e,t,i=0){return new V({limit:e.limit,pageSize:e.pageSize,fetch:async n=>{var y,b;let o=n.limit,a=u.redditAPIPlugins.Listings,c=u.redditAPIPlugins.LinksAndComments,p=e.commentId;if(n.more)if(n.more.children.length){let P=n.more;(!o||o>100)&&(o=100);let x=P.children.splice(0,o),I=await c.MoreChildren({linkId:e.postId,children:x,sort:e.sort},t);if(!I.json?.data?.things?.length)return{children:[]};let{children:B}=S(y=j,at,Jd).call(y,I.json.data.things,e.postId,e,t);return{children:B,more:P.children.length?P:void 0}}else p=n.more.parentId,i=i+n.more.depth;let f=(await a.Comments({article:e.postId.substring(3),comment:p?.substring(3),limit:o,depth:e.depth,sort:e.sort},t)).listings?.[1]?.data?.children??[],m=f[0];return p&&m?.data?.replyList?.data&&(f=m.data.replyList.data.children),S(b=j,at,Jd).call(b,f,p??e.postId,e,t,i)}})},Jd=function(e,t,i,n,o=0){var g,f;let a=[],c,p={};for(let m of e){if(!m.data||(m.data.depth!=null&&(m.data.depth=m.data.depth+o),m.data.depth!=null&&i.depth!=null&&m.data.depth>=i.depth))continue;let y=m.data.parentId?p[m.data.parentId]:void 0;if(m.kind==="t1"){if(m.data.name===t)continue;let b=new j(m.data,n);if(p[b.id]=b,d(b,fn,S(g=j,at,zd).call(g,{...i,postId:b.postId,commentId:b.id},n,o)),"replyList"in m.data&&m.data.replyList?.data){let{children:P,more:x}=S(f=j,at,Jd).call(f,m.data.replyList.data.children,b.id,i,n,o);P.length&&b.replies.children.push(...P),x&&b.replies.setMore(x)}b.replies.preventInitialFetch(),y?y.replies.children.push(b):a.push(b)}else if(m.kind==="more"&&m.data.parentId&&m.data.depth!=null){let b={parentId:ac(m.data.parentId)?ni(m.data.parentId):ve(m.data.parentId),children:m.data.children??[],depth:m.data.depth};y?y.replies.setMore(b):b.parentId===t&&(c=b)}}return{children:a,more:c}},l(j,at);var te=j;function rd(r,e){let t=u.redditAPIPlugins.Moderation;return new V({hasMore:!0,after:r.after,before:r.before,limit:r.limit,pageSize:r.pageSize,fetch:async i=>{let n=await t.AboutLog({subreddit:r.subredditName,mod:r.moderatorUsernames?r.moderatorUsernames.join(","):void 0,type:r.type,...i},e);return zR(n)}})}function zR(r){if(!r.data?.children)throw new Error("AboutLogResponse is missing children");return{children:r.data.children.map(t=>{if(!t.data)throw new Error("ModAction from AboutLogResponse is missing or invalid");let{id:i,mod:n,modId36:o,createdUtc:a,subreddit:c,subredditNamePrefixed:p,action:g,srId36:f,description:m,details:y,targetAuthor:b,targetBody:P,targetFullname:x,targetPermalink:I,targetTitle:B}=t.data;v(i,"ModAction from AboutLogResponse is missing id"),v(n,"ModAction from AboutLogResponse is missing mod"),v(o,"ModAction from AboutLogResponse is missing modId36"),v(a,"ModAction from AboutLogResponse is missing createdUtc"),v(c,"ModAction from AboutLogResponse is missing subreddit"),v(p,"ModAction from AboutLogResponse is missing subredditNamePrefixed"),v(g,"ModAction from AboutLogResponse is missing action"),v(f,"ModAction from AboutLogResponse is missing srId36");let Ce=new Date(0);return Ce.setUTCSeconds(a),{id:i,type:g,moderatorName:n,moderatorId:`t2_${o}`,createdAt:Ce,subredditName:c,subredditId:`t5_${f}`,description:m,details:y,target:x?{id:x,author:b,body:P,permalink:I,title:B}:void 0}}),after:r.data.after,before:r.data.before}}import"@devvit/protos";var JR=(a=>(a.New="New",a.InProgress="InProgress",a.Archived="Archived",a.Appeals="Appeals",a.JoinRequests="JoinRequests",a.Filtered="Filtered",a))(JR||{}),$R={0:"New",1:"InProgress",2:"Archived",3:"Appeals",4:"JoinRequests",5:"Filtered"},KR=(b=>(b.Highlighted="Highlighted",b.Unhighlighted="Unhighlighted",b.Archived="Archived",b.Unarchived="Unarchived",b.ReportedToAdmins="ReportedToAdmins",b.Muted="Muted",b.Unmuted="Unmuted",b.Banned="Banned",b.Unbanned="Unbanned",b.Approved="Approved",b.Disapproved="Disapproved",b.Filtered="Filtered",b.Unfiltered="Unfiltered",b))(KR||{}),XR={0:"Highlighted",1:"Unhighlighted",2:"Archived",3:"Unarchived",4:"ReportedToAdmins",5:"Muted",6:"Unmuted",7:"Banned",8:"Unbanned",9:"Approved",10:"Disapproved",11:"Filtered",12:"Unfiltered"},H,J,de,bS,kS,id=class{constructor(e){l(this,J);l(this,H);this.notificationSubjectPrefix="[notification]";d(this,H,e)}async bulkReadConversations(e,t){let i=u.redditAPIPlugins.NewModmail,{conversationIds:n}=await i.BulkReadConversations({entity:e.join(","),state:t},s(this,H));return n}async getConversations(e){let i=await u.redditAPIPlugins.NewModmail.GetConversations({after:e.after,entity:e.subreddits?e.subreddits.join(","):void 0,limit:e.limit,sort:e.sort,state:e.state},s(this,H)),n={};for(let o in i.conversations)n[o]=S(this,J,de).call(this,{protoConversation:i.conversations[o],protoMessages:i.messages,protoModActions:{}});return{conversations:n,viewerId:i.viewerId,conversationIds:i.conversationIds}}async getConversation(e){let i=await u.redditAPIPlugins.NewModmail.GetConversation({...e,markRead:!!e.markRead},s(this,H));return{participantSubreddit:i.participantSubreddit,conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async getSubreddits(){let e=u.redditAPIPlugins.NewModmail,{subreddits:t}=await e.Subreddits({},s(this,H));return t}async createConversation(e){let i=await u.redditAPIPlugins.NewModmail.CreateConversation({body:e.body,isAuthorHidden:e.isAuthorHidden??!1,srName:e.subredditName,subject:e.subject,to:e.to?e.to:void 0},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async createModDiscussionConversation(e){return xm({subject:e.subject,bodyMarkdown:e.bodyMarkdown,subredditId:ie(e.subredditId),isInternal:!0,participantType:"MODERATOR",conversationType:"INTERNAL"},s(this,H))}async createModInboxConversation(e){return xm({subject:e.subject,bodyMarkdown:e.bodyMarkdown,subredditId:ie(e.subredditId),isInternal:!1,participantType:"PARTICIPANT_USER",conversationType:"SR_USER"},s(this,H))}async createModNotification(e){let t=e.subject;return e.subject.startsWith(this.notificationSubjectPrefix)||(t=`${this.notificationSubjectPrefix} ${e.subject}`),xm({subject:t,bodyMarkdown:e.bodyMarkdown,subredditId:ie(e.subredditId),isInternal:!1,participantType:"PARTICIPANT_USER",conversationType:"SR_USER"},s(this,H))}async reply(e){let i=await u.redditAPIPlugins.NewModmail.CreateConversationMessage({body:e.body,conversationId:e.conversationId,isAuthorHidden:e.isAuthorHidden??!1,isInternal:e.isInternal??!1},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:{}}),user:i.user}}async highlightConversation(e){let i=await u.redditAPIPlugins.NewModmail.HighlightConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async unhighlightConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnhighlightConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async archiveConversation(e){let i=await u.redditAPIPlugins.NewModmail.ArchiveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async unarchiveConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnarchiveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async muteConversation(e){let i=await u.redditAPIPlugins.NewModmail.MuteConversation({conversationId:e.conversationId,numHours:e.numHours},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async unmuteConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnmuteConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async readConversations(e){await u.redditAPIPlugins.NewModmail.Read({conversationIds:e.join(",")},s(this,H))}async unreadConversations(e){await u.redditAPIPlugins.NewModmail.Unread({conversationIds:e.join(",")},s(this,H))}async approveConversation(e){let i=await u.redditAPIPlugins.NewModmail.ApproveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async disapproveConversation(e){let i=await u.redditAPIPlugins.NewModmail.DisapproveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async tempBanConversation(e){let i=await u.redditAPIPlugins.NewModmail.TempBan({...e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async unbanConversation(e){let i=await u.redditAPIPlugins.NewModmail.Unban({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async getUnreadCount(){return await u.redditAPIPlugins.NewModmail.UnreadCount({},s(this,H))}async getUserConversations(e){return await u.redditAPIPlugins.NewModmail.UserConversations({conversationId:e},s(this,H))}};H=new WeakMap,J=new WeakSet,de=function({protoConversation:e,protoMessages:t,protoModActions:i}){return{...e,state:$R[e.state],messages:S(this,J,bS).call(this,e,t),modActions:S(this,J,kS).call(this,e,i)}},bS=function(e,t){let i={},n=e.objIds.filter(o=>o.key==="messages").map(({id:o})=>o);for(let o of n){let a=t[o];a&&(i[o]=a)}return i},kS=function(e,t){let i={},n=e.objIds.filter(o=>o.key==="modActions").map(({id:o})=>o);for(let o of n){let a=t[o];a&&(i[o]={...a,actionType:XR[a.actionTypeId]})}return i};async function xm(r,e){let t=e[L.AppUser]?.values[0],o=await re.query("CreateModmailConversation","5f9ae20b0c7bdffcafb80241728a72e67cd4239bc09f67284b79d4aa706ee0e5",{subject:r.subject,bodyMarkdown:r.bodyMarkdown,subredditId:r.subredditId,authorId:t,isInternal:r.isInternal,participantType:r.participantType,conversationType:r.conversationType},e);if(o.data?.createModmailConversationV2?.ok)return o.data?.createModmailConversationV2?.conversationId;throw new Error("modmail conversation creation failed; ${response.data?.createModmailConversationV2?.errors[0].message}")}var vn,yn,Io,xo,Fo,To,Fm=class Fm{constructor(e,t){l(this,vn);l(this,yn);l(this,Io);l(this,xo);l(this,Fo);l(this,To);if(Y(this),v(e.id,"PrivateMessage: Invalid data, no id"),v(e.name,"PrivateMessage: Invalid data, no name"),v(e.created,"PrivateMessage: Invalid data, no created date"),d(this,vn,Re(e.name)),e.author!=null)d(this,yn,{type:"user",username:e.author,id:e.authorFullname?oe(e.authorFullname):void 0});else if(e.subreddit!=null)d(this,yn,{type:"subreddit",name:e.subreddit,id:e.subredditId?ie(e.subredditId):void 0});else throw new Error("PrivateMessage: Invalid data, no author or subreddit");d(this,Io,e.body??""),d(this,xo,e.bodyHtml??"");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Fo,i),d(this,To,t)}static async getMessages(e,t){let i=u.redditAPIPlugins.PrivateMessages;return new V({...e,fetch:async n=>{let o=await i.MessageWhere({...n,where:e.type??"inbox"},t);return{after:o.data?.after,before:o.data?.before,children:o.data?.children?.map(a=>new Fm(a.data,t)).filter(Boolean)||[]}}})}static async send({to:e,subject:t,text:i},n){await u.redditAPIPlugins.PrivateMessages.Compose({to:e,subject:t,text:i,fromSr:""},n)}static async sendAsSubreddit({to:e,fromSubredditName:t,subject:i,text:n},o){await u.redditAPIPlugins.PrivateMessages.Compose({to:e,fromSr:t,subject:i,text:n},o)}static async markAllAsRead(e){await u.redditAPIPlugins.PrivateMessages.ReadAllMessages({filterTypes:""},e)}get id(){return s(this,vn)}get from(){return s(this,yn)}get body(){return s(this,Io)}get bodyHtml(){return s(this,xo)}get created(){return s(this,Fo)}async markAsRead(){await u.redditAPIPlugins.PrivateMessages.ReadMessage({id:s(this,vn)},s(this,To))}};vn=new WeakMap,yn=new WeakMap,Io=new WeakMap,xo=new WeakMap,Fo=new WeakMap,To=new WeakMap;var hr=Fm;var ty=(o=>(o.Reports="reports",o.Spam="spam",o.Modqueue="modqueue",o.Unmoderated="unmoderated",o.Edited="edited",o))(ty||{}),SS=class{},PS=class{},CS=class{},wS=class{},bn,T,Ao,Eo,Ro,Oo,Bo,Mo,Uo,Lo,Do,kn,A,dt=class dt{constructor(e,t){l(this,bn);l(this,T);l(this,Ao);l(this,Eo);l(this,Ro);l(this,Oo);l(this,Bo);l(this,Mo);l(this,Uo);l(this,Lo);l(this,Do);l(this,kn);l(this,A);Y(this),v(e.id,"Subreddit id is missing or undefined"),v(e.displayName,"Subreddit name is missing or undefined"),d(this,bn,ie(`t5_${e.id}`)),d(this,T,e.displayName),v(e.createdUtc,"Subreddit is missing created date");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Ao,i),d(this,Eo,ZR(e.subredditType)),d(this,Ro,e.title),d(this,Oo,e.description),v(e.lang,"Subreddit is missing language"),d(this,Bo,e.lang),d(this,Mo,e.subscribers??0),d(this,Uo,e.activeUserCount??0),d(this,Lo,e.over18??!1),d(this,kn,e.url??""),d(this,Do,{acceptFollowers:e.acceptFollowers??!1,allOriginalContent:e.allOriginalContent??!1,allowChatPostCreation:e.allowChatPostCreation??!1,allowDiscovery:e.allowDiscovery??!1,allowGalleries:e.allowGalleries??!1,allowImages:e.allowImages??!1,allowPolls:e.allowPolls??!1,allowPredictionContributors:e.allowPredictionContributors??!1,allowPredictions:e.allowPredictions??!1,allowPredictionsTournament:e.allowPredictionsTournament??!1,allowTalks:e.allowTalks??!1,allowVideoGifs:e.allowVideogifs??!1,allowVideos:e.allowVideos??!1,chatPostEnabled:e.isChatPostFeatureEnabled??!1,collectionsEnabled:e.collectionsEnabled??!1,crosspostable:e.isCrosspostableSubreddit??!1,emojisEnabled:e.emojisEnabled??!1,eventPostsEnabled:e.eventPostsEnabled??!1,linkFlairEnabled:e.linkFlairEnabled??!1,originalContentTagEnabled:e.originalContentTagEnabled??!1,restrictCommenting:e.restrictCommenting??!1,restrictPosting:e.restrictPosting??!1,shouldArchivePosts:e.shouldArchivePosts??!1,spoilersEnabled:e.spoilersEnabled??!1,wikiEnabled:e.wikiEnabled??!1,allowedPostType:QR(e.submissionType),allowedMediaInComments:(e.allowedMediaInComments??[]).map(YR),bannerBackgroundColor:e.bannerBackgroundColor,bannerBackgroundImage:e.bannerBackgroundImage,bannerImage:e.bannerImg,communityIcon:e.communityIcon,headerTitle:e.headerTitle,keyColor:e.keyColor,mobileBannerImage:e.mobileBannerImage,primaryColor:e.primaryColor,userFlairs:{enabled:e.userFlairEnabledInSr??!1,usersCanAssign:e.canAssignUserFlair??!1,userFlairBackgroundColor:e.userFlairBackgroundColor,userFlairTextColor:e.userFlairTextColor},postFlairs:{enabled:e.linkFlairEnabled??!1,usersCanAssign:e.canAssignLinkFlair??!1},url:new URL(s(this,kn),"https://www.reddit.com").toString()}),d(this,A,t)}get id(){return s(this,bn)}get name(){return s(this,T)}get createdAt(){return s(this,Ao)}get type(){return s(this,Eo)}get title(){return s(this,Ro)}get description(){return s(this,Oo)}get language(){return s(this,Bo)}get numberOfSubscribers(){return s(this,Mo)}get numberOfActiveUsers(){return s(this,Uo)}get nsfw(){return s(this,Lo)}get settings(){return s(this,Do)}get userFlairsEnabled(){return this.settings.userFlairs.enabled}get postFlairsEnabled(){return this.settings.postFlairs.enabled}get usersCanAssignUserFlairs(){return this.settings.userFlairs.usersCanAssign}get usersCanAssignPostFlairs(){return this.settings.postFlairs.usersCanAssign}get url(){return this.settings.url}get permalink(){return s(this,kn)}toJSON(){return{id:this.id,name:this.name,createdAt:this.createdAt,type:this.type,title:this.title,description:this.description,language:this.language,nsfw:this.nsfw,numberOfSubscribers:this.numberOfSubscribers,numberOfActiveUsers:this.numberOfActiveUsers,settings:this.settings}}async submitPost(e){let t={...e,subredditName:s(this,T)};return z.submit(t,s(this,A))}getControversialPosts(e={}){if(!s(this,T))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getControversialPosts({...e,subredditName:s(this,T)},s(this,A))}getTopPosts(e={}){if(!s(this,T))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getTopPosts({...e,subredditName:s(this,T)},s(this,A))}getApprovedUsers(e={}){return w.getSubredditUsersByType({type:"contributors",subredditName:s(this,T),...e},s(this,A))}approveUser(e){return w.createRelationship({username:e,subredditName:s(this,T),type:"contributor"},s(this,A))}removeUser(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"contributor"},s(this,A))}getWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikicontributors",subredditName:s(this,T),...e},s(this,A))}addWikiContributor(e){return w.createRelationship({username:e,subredditName:s(this,T),type:"wikicontributor"},s(this,A))}removeWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"wikicontributor"},s(this,A))}getBannedUsers(e={}){return w.getSubredditUsersByType({type:"banned",subredditName:s(this,T),...e},s(this,A))}banUser(e){return w.createRelationship({username:e.username,subredditName:s(this,T),type:"banned",banReason:e.reason,banMessage:e.message,note:e.note,duration:e.duration,banContext:e.context},s(this,A))}unbanUser(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"banned"},s(this,A))}getBannedWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikibanned",subredditName:s(this,T),...e},s(this,A))}banWikiContributor(e){return w.createRelationship({username:e.username,subredditName:s(this,T),type:"wikibanned",banReason:e.reason,note:e.note,duration:e.duration},s(this,A))}unbanWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"wikibanned"},s(this,A))}getModerators(e={}){return w.getSubredditUsersByType({type:"moderators",subredditName:s(this,T),...e},s(this,A))}inviteModerator(e,t){return w.createRelationship({type:"moderator_invite",subredditName:s(this,T),username:e,permissions:t??[]},s(this,A))}revokeModeratorInvite(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"moderator_invite"},s(this,A))}removeModerator(e){return w.removeRelationship({type:"moderator",subredditName:s(this,T),username:e},s(this,A))}setModeratorPermissions(e,t){return w.setModeratorPermissions(e,s(this,T),t,s(this,A))}getMutedUsers(e={}){return w.getSubredditUsersByType({type:"muted",subredditName:s(this,T),...e},s(this,A))}muteUser(e,t){return w.createRelationship({username:e,subredditName:s(this,T),type:"muted",note:t},s(this,A))}unmuteUser(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"muted"},s(this,A))}getModerationLog(e){return rd({subredditName:s(this,T),...e},s(this,A))}getUserFlairTemplates(){return ue.getUserFlairTemplates(s(this,T),s(this,A))}getPostFlairTemplates(){return ue.getPostFlairTemplates(s(this,T),s(this,A))}createPostFlairTemplate(e){return ue.createPostFlairTemplate({subredditName:s(this,T),...e},s(this,A))}createUserFlairTemplate(e){return ue.createUserFlairTemplate({subredditName:s(this,T),...e},s(this,A))}async getUserFlair(e){if(e?.usernames!==void 0)return{users:await Promise.all(e.usernames.map(async i=>{let n=await Ue.getUserFlairBySubreddit({subreddit:s(this,T),name:i},s(this,A));return _s(n.users[0])}))};{let t=await Ue.getUserFlairBySubreddit({...e,subreddit:s(this,T)},s(this,A));return{next:t.next,prev:t.prev,users:t.users.map(i=>_s(i))}}}getModQueue(e={type:"all"}){return dt.aboutLocation({...e,location:"modqueue",subreddit:s(this,T)},s(this,A))}getReports(e={type:"all"}){return dt.aboutLocation({...e,location:"reports",subreddit:s(this,T)},s(this,A))}getSpam(e={type:"all"}){return dt.aboutLocation({...e,location:"spam",subreddit:s(this,T)},s(this,A))}getUnmoderated(e={type:"all"}){return dt.aboutLocation({...e,location:"unmoderated",subreddit:s(this,T)},s(this,A))}getEdited(e={type:"all"}){return dt.aboutLocation({...e,location:"edited",subreddit:s(this,T)},s(this,A))}static aboutLocation(e,t){let i=u.redditAPIPlugins.Moderation,n;switch(e.type){case"post":n="links";break;case"comment":n="comments";break;default:n=void 0}return new V({...e,fetch:async o=>{let a=await i.AboutLocation({...o,...e,only:n},t);return IS(a,t)}})}getCommentsAndPostsByIds(e){let t=u.redditAPIPlugins.LinksAndComments;return new V({fetch:async()=>{let i=await t.Info({thingIds:e,subreddits:[s(this,bn)]},s(this,A));return IS(i,s(this,A))}})}static async addRemovalReason(e,t,i,n){return(await u.redditAPIPlugins.Subreddits.SubredditAddRemovalReason({title:t,message:i,subreddit:e},n)).id}static async getRemovalReasons(e,t){let n=await u.redditAPIPlugins.Subreddits.SubredditGetRemovalReasons({subreddit:e},t);return n.order.map(o=>({...n.data[o]}))}static async getFromMetadata(e){v(e);let t=e?.[L.Subreddit]?.values[0];return v(t),dt.getById(ie(t),e)}static async getById(e,t){let o=(await u.redditAPIPlugins.LinksAndComments.Info({thingIds:[e],subreddits:[]},t)).data?.children[0]?.data?.displayName;return v(o),dt.getByName(o,t)}static async getByName(e,t){let n=await u.redditAPIPlugins.Subreddits.SubredditAbout({subreddit:e},t);if(!n?.data)throw new Error("not found");return new dt(n.data,t)}};bn=new WeakMap,T=new WeakMap,Ao=new WeakMap,Eo=new WeakMap,Ro=new WeakMap,Oo=new WeakMap,Bo=new WeakMap,Mo=new WeakMap,Uo=new WeakMap,Lo=new WeakMap,Do=new WeakMap,kn=new WeakMap,A=new WeakMap;var ye=dt;async function ry(r,e){let o=(await re.query("GetSubredditInfoById","315a9b75c22a017d526afdf2d274616946156451aacfd56dfb91e7ad3f7a2fde",{id:r},e)).data?.subredditInfoById;if(!o)throw new Error("subreddit info not found");return o}async function iy(r,e){let o=(await re.query("GetSubredditInfoByName","4aa69726c7e3f5d33ab2bee22b3d74fce645824fddd5ea3ec6dfe30bdb4295cb",{name:r},e)).data?.subredditInfoByName;if(!o)throw new Error("subreddit info not found");return o}async function ny(r,e){let o=(await re.query("GetSubredditLeaderboard","18ead70c46b6446d45ecd8b679b16d9a929a933d6ef25d8262a459cb18b72848",{id:r},e)).data?.subredditInfoById?.leaderboard;if(!o)throw new Error("subreddit leaderboard not found");if(!o.summary)throw new Error("subreddit leaderboard summary not found");return{id:o.id,summary:o.summary}}async function sy(r,e){let o=(await re.query("GetSubredditStyles","d491d17ea8858f563ea578b26b9595d64adecf4bf34557d567c7e53c470f5f22",{id:r},e)).data?.subredditInfoById?.styles;if(!o)throw new Error("subreddit styles not found");return o}function ZR(r){if(r==="public"||r==="private"||r==="restricted"||r==="employees_only"||r==="gold_only"||r==="gold_restricted"||r==="archived"||r==="user")return r;throw new Error(`invalid subreddit type: ${r}`)}function QR(r){if(r==="any"||r==="link"||r==="self")return r;throw new Error(`invalid allowed post type: ${r}`)}function YR(r){if(r==="animated"||r==="giphy"||r==="static"||r==="expression")return r;throw new Error(`invalid comment media type: ${r}`)}function IS(r,e){let i=(r.data?.children??[]).map(a=>{let c=n(a);if(c!=null)return c;let p=o(a);return p??null}).filter(Boolean);return{after:r.data?.after,before:r.data?.before,children:i};function n(a){try{return new z(a.data,e)}catch{return null}}function o(a){try{return new te(a.data,e)}catch{return null}}}async function oy(r,e){return xS("GetVaultContactByAddress","3e2f7966a5c120e64fd2795d06a46595c52d988185be98d3ed71c3f81ae80d2e",{provider:"ethereum",address:r},e)}async function ay(r,e){return xS("GetVaultContactByUserId","a854ddc19d0e22c4f36ed917fdbd568f299f3571427e393aee5e2972080fffe9",{provider:"ethereum",userId:r},e)}async function xS(r,e,t,i){let o=(await re.query(r,e,t,i))?.data?.vault?.contact;return{provider:o?.provider,userId:oe(o?.userId),address:o?.address,createdAt:o?.createdAt,isActive:o?.isActive}}import{CommunityListWidget_CommunityData as eO,GetWidgetsResponse_WidgetItem as pe}from"@devvit/protos";var No,_o,Ho,qo,Am=class Am{constructor(e,t,i){l(this,No);l(this,_o);l(this,Ho);l(this,qo);Y(this),d(this,No,e.id),d(this,_o,e.shortName),d(this,Ho,t),d(this,qo,i)}get id(){return s(this,No)}get name(){return s(this,_o)}get subredditName(){return s(this,Ho)}toJSON(){return{id:this.id,name:this.name,subredditName:this.subredditName}}delete(){return Am.delete(this.subredditName,this.id,s(this,qo))}static async getWidgets(e,t){let n=await u.redditAPIPlugins.Widgets.GetWidgets({subreddit:e},t);v(n.layout,"Failed to load widgets for subreddit");let o=n.items,a=[];for(let c of n.layout.sidebar?.order??[]){let p=o[c];switch(p?.kind){case"image":a.push(new $d(p,e,t));break;case"calendar":a.push(new Kd(p,e,t));break;case"textarea":a.push(new Xd(p,e,t));break;case"button":a.push(new Zd(p,e,t));break;case"community-list":a.push(new Qd(p,e,t));break;case"post-flair":a.push(new Yd(p,e,t));break;case"custom":a.push(new el(p,e,t));break;case"subreddit-rules":{let g=await u.redditAPIPlugins.Subreddits.SubredditAboutRules({subreddit:e},t);a.push(new Tm(g,p,e,t));break}default:throw new Error(`Unknown widget type: ${p.kind}`)}}return a}static async delete(e,t,i){await u.redditAPIPlugins.Widgets.DeleteWidget({subreddit:e,id:t},i)}static async reorder(e,t,i){await u.redditAPIPlugins.Widgets.OrderWidgets({subreddit:e,order:t},i)}static async add(e,t){switch(e?.type){case"image":return $d.create(e,t);case"calendar":return Kd.create(e,t);case"textarea":return Xd.create(e,t);case"button":return Zd.create(e,t);case"community-list":return Qd.create(e,t);case"post-flair":return Yd.create(e,t);case"custom":return el.create(e,t);default:throw new Error("Unknown widget type")}}};No=new WeakMap,_o=new WeakMap,Ho=new WeakMap,qo=new WeakMap;var ae=Am,jo,tl=class tl extends ae{constructor(t,i,n){super(t,i,n);l(this,jo);d(this,jo,t.data.map(o=>(v(o.url,"Image widget data is missing url"),v(o.height,"Image widget data is missing height"),v(o.width,"Image widget data is missing width"),v(o.linkUrl,"Image widget data is missing linkUrl"),{url:o.url,height:o.height,width:o.width,linkUrl:o.linkUrl})))}get images(){return s(this,jo)}toJSON(){return{...super.toJSON(),images:this.images}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddImageWidget(t,i);return new tl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateImageWidget(t,i);return new tl(pe.fromJSON(o),t.subreddit,i)}};jo=new WeakMap;var $d=tl,Wo,Go,Vo,rl=class rl extends ae{constructor(t,i,n){super(t,i,n);l(this,Wo);l(this,Go);l(this,Vo);v(t.googleCalendarId,"Calendar widget data is missing googleCalendarId"),v(t.configuration,"Calendar widget data is missing configuration"),v(t.styles,"Calendar widget data is missing styles"),d(this,Wo,t.googleCalendarId),d(this,Go,t.configuration),d(this,Vo,t.styles)}get googleCalendarId(){return s(this,Wo)}get configuration(){return s(this,Go)}get styles(){return s(this,Vo)}toJSON(){return{...super.toJSON(),googleCalendarId:this.googleCalendarId,configuration:this.configuration,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCalendarWidget(t,i);return new rl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCalendarWidget(t,i);return new rl(pe.fromJSON(o),t.subreddit,i)}};Wo=new WeakMap,Go=new WeakMap,Vo=new WeakMap;var Kd=rl,zo,Jo,il=class il extends ae{constructor(t,i,n){super(t,i,n);l(this,zo);l(this,Jo);v(t.text,"Textarea widget data is missing text"),v(t.styles,"Textarea widget data is missing styles"),d(this,zo,t.text),d(this,Jo,t.styles)}get text(){return s(this,zo)}get styles(){return s(this,Jo)}toJSON(){return{...super.toJSON(),text:this.text,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddTextAreaWidget(t,i);return new il(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateTextAreaWidget(t,i);return new il(pe.fromJSON(o),t.subreddit,i)}};zo=new WeakMap,Jo=new WeakMap;var Xd=il,$o,Ko,Xo,nl=class nl extends ae{constructor(t,i,n){super(t,i,n);l(this,$o);l(this,Ko);l(this,Xo);v(t.styles,"Button widget data is missing styles"),d(this,$o,t.buttons),d(this,Ko,t.description??""),d(this,Xo,t.styles)}get buttons(){return s(this,$o)}get description(){return s(this,Ko)}get styles(){return s(this,Xo)}toJSON(){return{...super.toJSON(),buttons:this.buttons,description:this.description,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddButtonWidget(t,i);return new nl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateButtonWidget(t,i);return new nl(pe.fromJSON(o),t.subreddit,i)}};$o=new WeakMap,Ko=new WeakMap,Xo=new WeakMap;var Zd=nl,Zo,Qo,sl=class sl extends ae{constructor(t,i,n){super(t,i,n);l(this,Zo);l(this,Qo);d(this,Zo,t.data.map(o=>eO.fromJSON(o))),v(t.styles,"Community list widget data is missing styles"),d(this,Qo,t.styles)}get communities(){return s(this,Zo)}get styles(){return s(this,Qo)}toJSON(){return{...super.toJSON(),communities:this.communities,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCommunityListWidget(t,i);return new sl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCommunityListWidget(t,i);return new sl(pe.fromJSON(o),t.subreddit,i)}};Zo=new WeakMap,Qo=new WeakMap;var Qd=sl,Yo,ea,ta,ol=class ol extends ae{constructor(t,i,n){super(t,i,n);l(this,Yo);l(this,ea);l(this,ta);if(v(t.styles,"Post flair widget data is missing styles"),d(this,Yo,t.styles),d(this,ea,t.order.map(o=>t.templates[o])),!(t.display&&t.display==="list"||t.display==="cloud"))throw new Error("Post flair widget data is missing display type");d(this,ta,t.display)}get styles(){return s(this,Yo)}get templates(){return s(this,ea)}get display(){return s(this,ta)}toJSON(){return{...super.toJSON(),styles:this.styles,templates:this.templates,display:this.display}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddPostFlairWidget(t,i);return new ol(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdatePostFlairWidget(t,i);return new ol(pe.fromJSON(o),t.subreddit,i)}};Yo=new WeakMap,ea=new WeakMap,ta=new WeakMap;var Yd=ol,ra,ia,na,sa,oa,al=class al extends ae{constructor(t,i,n){super(t,i,n);l(this,ra);l(this,ia);l(this,na);l(this,sa);l(this,oa);v(t.stylesheetUrl,"Custom widget data is missing stylesheetUrl"),v(t.height,"Custom widget data is missing height"),v(t.css,"Custom widget data is missing css"),d(this,ra,t.imageData??[]),d(this,ia,t.text??""),d(this,na,t.stylesheetUrl),d(this,sa,t.height),d(this,oa,t.css)}get images(){return s(this,ra)}get text(){return s(this,ia)}get stylesheetUrl(){return s(this,na)}get height(){return s(this,sa)}get css(){return s(this,oa)}toJSON(){return{...super.toJSON(),images:this.images,text:this.text,stylesheetUrl:this.stylesheetUrl,height:this.height,css:this.css}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCustomWidget(t,i);return new al(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCustomWidget(t,i);return new al(pe.fromJSON(o),t.subreddit,i)}};ra=new WeakMap,ia=new WeakMap,na=new WeakMap,sa=new WeakMap,oa=new WeakMap;var el=al,aa,Tm=class extends ae{constructor(t,i,n,o){super(i,n,o);l(this,aa);let a=t.rules.map(({description:c,priority:p,shortName:g,violationReason:f})=>(v(c,"Subreddit rule is missing description"),v(p,"Subreddit rule is missing priority"),v(g,"Subreddit rule is missing shortName"),v(f,"Subreddit rule is missing violationReason"),{description:c,priority:p,shortName:g,violationReason:f}));d(this,aa,a)}get rules(){return s(this,aa)}toJSON(){return{...super.toJSON(),rules:this.rules}}};aa=new WeakMap;var tO=(i=>(i[i.SUBREDDIT_PERMISSIONS=0]="SUBREDDIT_PERMISSIONS",i[i.APPROVED_CONTRIBUTORS_ONLY=1]="APPROVED_CONTRIBUTORS_ONLY",i[i.MODS_ONLY=2]="MODS_ONLY",i))(tO||{}),Se,Pe,Sn,Pn,Cn,wn,In,xn,Xe,He=class He{constructor(e,t,i,n){l(this,Se);l(this,Pe);l(this,Sn);l(this,Pn);l(this,Cn);l(this,wn);l(this,In);l(this,xn);l(this,Xe);Y(this),d(this,Se,e),d(this,Pe,t),d(this,Sn,i.contentMd),d(this,Pn,i.contentHtml),d(this,Cn,i.revisionId),d(this,wn,new Date(i.revisionDate*1e3)),d(this,In,i.reason??""),d(this,xn,i.revisionBy?.data?new w(i.revisionBy.data,n):void 0),d(this,Xe,n)}get name(){return s(this,Se)}get subredditName(){return s(this,Pe)}get content(){return s(this,Sn)}get contentHtml(){return s(this,Pn)}get revisionId(){return s(this,Cn)}get revisionDate(){return s(this,wn)}get revisionReason(){return s(this,In)}get revisionAuthor(){return s(this,xn)}toJSON(){return{name:s(this,Se),subredditName:s(this,Pe),content:s(this,Sn),contentHtml:s(this,Pn),revisionId:s(this,Cn),revisionDate:s(this,wn),revisionReason:s(this,In),revisionAuthor:s(this,xn)?.toJSON()}}async update(e,t){return He.updatePage({subredditName:s(this,Pe),page:s(this,Se),content:e,reason:t},s(this,Xe))}async getRevisions(e){return He.getPageRevisions({subredditName:s(this,Pe),page:s(this,Se),...e},s(this,Xe))}async revertTo(e){return He.revertPage(s(this,Pe),s(this,Se),e,s(this,Xe))}async getSettings(){return He.getPageSettings(s(this,Pe),s(this,Se),s(this,Xe))}async updateSettings(e){return He.updatePageSettings({subredditName:s(this,Pe),page:s(this,Se),listed:e.listed,permLevel:e.permLevel},s(this,Xe))}async addEditor(e){return He.addEditor(s(this,Pe),s(this,Se),e,s(this,Xe))}async removeEditor(e){return He.removeEditor(s(this,Pe),s(this,Se),e,s(this,Xe))}static async getPage(e,t,i){let o=await u.redditAPIPlugins.Wiki.GetWikiPage({subreddit:e,page:t},i);return v(o.data,"Failed to get wiki page"),new He(t,e,o.data,i)}static async getPages(e,t){return(await u.redditAPIPlugins.Wiki.GetWikiPages({subreddit:e},t)).data||[]}static async createPage(e,t){return He.updatePage(e,t)}static async updatePage(e,t){return await u.redditAPIPlugins.Wiki.EditWikiPage({subreddit:e.subredditName,page:e.page,content:e.content,reason:e.reason??""},t),He.getPage(e.subredditName,e.page,t)}static getPageRevisions(e,t){let i=u.redditAPIPlugins.Wiki;return new V({hasMore:!0,after:e.after,limit:e.limit,pageSize:e.pageSize,async fetch(n){let o=await i.GetWikiPageRevisions({subreddit:e.subredditName,page:e.page,limit:n.limit,after:n.after,before:n.before},t);return rO(o,t)}})}static async revertPage(e,t,i,n){await u.redditAPIPlugins.Wiki.RevertWikiPage({subreddit:e,page:t,revision:i},n)}static async getPageSettings(e,t,i){let o=await u.redditAPIPlugins.Wiki.GetWikiPageSettings({subreddit:e,page:t},i);return v(o.data,"Failed to get wiki page settings"),new dl(o.data,i)}static async updatePageSettings(e,t){let n=await u.redditAPIPlugins.Wiki.UpdateWikiPageSettings({subreddit:e.subredditName,page:e.page,listed:e.listed?"on":"",permlevel:e.permLevel},t);return v(n.data,"Failed to update wiki page settings"),new dl(n.data,t)}static async addEditor(e,t,i,n){await u.redditAPIPlugins.Wiki.AllowEditor({act:"add",subreddit:e,page:t,username:i},n)}static async removeEditor(e,t,i,n){await u.redditAPIPlugins.Wiki.AllowEditor({act:"del",subreddit:e,page:t,username:i},n)}};Se=new WeakMap,Pe=new WeakMap,Sn=new WeakMap,Pn=new WeakMap,Cn=new WeakMap,wn=new WeakMap,In=new WeakMap,xn=new WeakMap,Xe=new WeakMap;var be=He,Fn,Tn,An,En,Rn,On,Em=class{constructor(e,t){l(this,Fn);l(this,Tn);l(this,An);l(this,En);l(this,Rn);l(this,On);d(this,Fn,e.id),d(this,Tn,e.page),d(this,An,new Date(e.timestamp)),v(e.author?.data,"Wiki page revision author details are missing"),d(this,En,new w(e.author.data,t)),d(this,Rn,e.reason??""),d(this,On,e.revisionHidden??!1)}get id(){return s(this,Fn)}get page(){return s(this,Tn)}get date(){return s(this,An)}get author(){return s(this,En)}get reason(){return s(this,Rn)}get hidden(){return s(this,On)}toJSON(){return{id:s(this,Fn),page:s(this,Tn),date:s(this,An),author:s(this,En).toJSON(),reason:s(this,Rn),hidden:s(this,On)}}};Fn=new WeakMap,Tn=new WeakMap,An=new WeakMap,En=new WeakMap,Rn=new WeakMap,On=new WeakMap;var Bn,Mn,Un,dl=class{constructor(e,t){l(this,Bn);l(this,Mn);l(this,Un);d(this,Bn,e.listed),d(this,Mn,e.permLevel),d(this,Un,e.editors.map(i=>(v(i.data,"Wiki page editor details are missing"),new w(i.data,t))))}get listed(){return s(this,Bn)}get permLevel(){return s(this,Mn)}get editors(){return s(this,Un)}toJSON(){return{listed:s(this,Bn),permLevel:s(this,Mn),editors:s(this,Un).map(e=>e.toJSON())}}};Bn=new WeakMap,Mn=new WeakMap,Un=new WeakMap;function rO(r,e){return v(r.data?.children,"Wiki page revision listing is missing children"),{children:r.data.children.map(i=>new Em(i,e)),before:r.data.before,after:r.data.after}}var iO=["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"],nO=["border-image","border-image-source","behavior","expression","list-style-image","cursor","content"],sO=["onload","onerror","onclick","onmouseover"];function oO(r){return/xmlns=["']http:\/\/www\.w3\.org\/2000\/svg["']/.test(r)?r:r.replace(/<svg\b/,'<svg xmlns="http://www.w3.org/2000/svg"')}function FS(r){if(r){if(!r.trim().startsWith("<svg")){console.log("The provided string is not a valid SVG.");return}try{let e=new RegExp(`<\\s*(${iO.join("|")})\\b`,"gi"),t=new RegExp(`(${nO.join("|")})\\s*:\\s*url\\s*\\((['"]?)(.*?)\\2\\)`,"gi"),i=new RegExp(`(${sO.join("|")})\\s*(=\\s*(['"]?)(.*?)\\3)?`,"gi");r=r.trim().replace(/\s+/g," "),r=oO(r);let n=r.match(e)||[],o=r.match(t)||[],a=r.match(i)||[],c=!1;return n.length>0&&(c=!0,console.warn(`Disallowed elements detected in SVG: ${n.map(p=>p.replace("<","")).join(", ")}`)),o.length>0&&(c=!0,console.warn(`Disallowed styles detected in SVG: ${o.map(p=>p.split(":")[0]).join(", ")}`)),a.length>0&&(c=!0,console.warn(`Disallowed attributes detected in SVG: ${a.map(p=>p.split("=")[0]).join(", ")}`)),c?void 0:r}catch{return}}}function bq(r,...e){let t="";return r.forEach((i,n)=>{t+=i;let o=e[n];o!==void 0&&(t+=`${o}`)}),t=FS(t),t===void 0?"":`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(t)}`}export{FM as ALL_ICON_NAMES,ty as AboutLocations,CS as AuthorFlairSettings,Zd as ButtonWidget,Kd as CalendarWidget,te as Comment,Qd as CommunityListWidget,el as CustomWidget,u as Devvit,Ue as Flair,ue as FlairTemplate,TR as FlairType,Ft as Hook,$d as ImageWidget,V as Listing,KR as ModMailActionType,JR as ModMailConversationState,id as ModMailService,Me as ModNote,z as Post,wS as PostFlairSettings,Yd as PostFlairWidget,hr as PrivateMessage,Or as RichTextBuilder,dc as SettingScope,WR as SocialLinkType,ye as Subreddit,SS as SubredditDescription,Tm as SubredditRulesWidget,PS as SubredditWikiSettings,Xd as TextAreaWidget,w as User,ae as Widget,be as WikiPage,tO as WikiPagePermissionLevel,Em as WikiPageRevision,dl as WikiPageSettings,_s as convertUserFlairProtoToAPI,rd as getModerationLog,ry as getSubredditInfoById,iy as getSubredditInfoByName,ny as getSubredditLeaderboard,sy as getSubredditStyles,oy as getVaultByAddress,ay as getVaultByUserId,bq as svg,gR as useAsync,im as useChannel,em as useForm,om as useInterval,um as useState};
|
|
5
|
+
`))}static async getSnoovatarUrl(e,t){return(await re.query("GetSnoovatarUrlByName","c47fd42345af268616d2d8904b56856acdc05cf61d3650380f539ad7d596ac0c",{username:e},t)).data?.redditorInfoByName?.snoovatarIcon?.url}static getOverview(e,t){let i=u.redditAPIPlugins.Users;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"overview",...n},t);return GR(o,t)}})}};ro=new WeakMap,mn=new WeakMap,io=new WeakMap,no=new WeakMap,so=new WeakMap,oo=new WeakMap,ao=new WeakMap,tr=new WeakMap,lo=new WeakMap,uo=new WeakMap,ot=new WeakMap;var w=Hr;function GR(r,e){if(!r.data?.children)throw new Error("Listing response is missing children");return{children:r.data.children.map(i=>{if(i.kind==="t3")return new z(i.data,e);if(i.kind==="t1")return new te(i.data,e);throw new Error(`Type ${i.kind} is not supported`)}),before:r.data.before,after:r.data.after}}async function VR(r,e,t){let i=u.redditAPIPlugins.Users;if(!r.data?.children)throw new Error("Listing response is missing children");let n=r.data.children.map(f=>(v(f.data?.id,"User id is still from listing data"),f.data.id)),o=100,a=[];for(let f=0;f<n.length;f+=o)a.push(n.slice(f,f+o));let p=(await Promise.all(a.map(f=>i.UserDataByAccountIds({ids:f.join(",")},t)))).reduce((f,m)=>({...f,...m.users}),{});return{children:r.data.children.map(f=>{let m=f.data?.id;v(m,"User id is missing from listing");let y=p[m];return v(y,"User data is missing from response"),new w({id:m,name:y.name,linkKarma:y.linkKarma,commentKarma:y.commentKarma,createdUtc:y.createdUtc,over18:y.profileOver18,snoovatarSize:[],modPermissions:{[e]:f.data?.modPermissions??[]}},t)}),before:r.data.before,after:r.data.after}}var qr,co,pn,gn,mo,po,hn,go,ho,fn,rr,fo,vo,jr,ir,nr,kt,Wr,St,yo,bo,ko,So,Po,Co,wo,sr,ee,at,zd,Jd,j=class j{constructor(e,t){l(this,qr);l(this,co);l(this,pn);l(this,gn);l(this,mo);l(this,po);l(this,hn);l(this,go);l(this,ho);l(this,fn);l(this,rr);l(this,fo);l(this,vo);l(this,jr);l(this,ir);l(this,nr);l(this,kt);l(this,Wr);l(this,St);l(this,yo);l(this,bo);l(this,ko);l(this,So);l(this,Po);l(this,Co);l(this,wo);l(this,sr);l(this,ee);var n;Y(this),v(e.id,"Comment id is null or undefined"),v(e.body,"Comment body is null or undefined"),v(e.createdUtc,"Comment is missing created date"),v(e.author,"Comment author is null or undefined"),v(e.parentId,"Comment parentId is null or undefined"),v(e.linkId,"Comment linkId is null or undefined"),v(e.permalink,"Comment permalink is null or undefined"),v(e.subreddit,"Comment is missing subreddit name"),v(e.subredditId,"Comment is missing subreddit id"),d(this,qr,ni(`t1_${e.id}`)),d(this,co,e.authorFullname?oe(e.authorFullname):void 0),d(this,pn,e.author),d(this,gn,e.body),d(this,go,ie(e.subredditId)),d(this,ho,e.subreddit),d(this,po,ac(e.parentId)?ni(e.parentId):ve(e.parentId)),d(this,hn,ve(e.linkId)),d(this,jr,e.edited??!1),d(this,ir,e.locked??!1),d(this,nr,e.removed??!1),d(this,kt,e.stickied??!1),d(this,rr,e.approved??!1),d(this,fo,e.approvedAtUtc??0),d(this,vo,e.bannedAtUtc??0),d(this,Wr,e.spam??!1),d(this,St,e.distinguished),d(this,yo,e.numReports??0),d(this,bo,e.collapsedBecauseCrowdControl??!1),d(this,ko,e.score??0),d(this,So,e.permalink),d(this,wo,new URL(e.permalink??"","https://www.reddit.com/").toString()),d(this,sr,e.ignoreReports??!1),d(this,Po,(e.modReports??[]).map(([o])=>o)),d(this,Co,(e.userReports??[]).map(([o])=>o));let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,mo,i),d(this,fn,S(n=j,at,zd).call(n,{postId:s(this,hn),commentId:s(this,qr)},t)),d(this,ee,t)}get id(){return s(this,qr)}get authorId(){return s(this,co)}get authorName(){return s(this,pn)}get subredditId(){return s(this,go)}get subredditName(){return s(this,ho)}get body(){return s(this,gn)}get createdAt(){return s(this,mo)}get parentId(){return s(this,po)}get postId(){return s(this,hn)}get replies(){return s(this,fn)}get distinguishedBy(){return s(this,St)}get locked(){return s(this,ir)}get stickied(){return s(this,kt)}get removed(){return s(this,nr)}get approved(){return s(this,rr)}get approvedAtUtc(){return s(this,fo)}get bannedAtUtc(){return s(this,vo)}get spam(){return s(this,Wr)}get edited(){return s(this,jr)}get numReports(){return s(this,yo)}get collapsedBecauseCrowdControl(){return s(this,bo)}get score(){return s(this,ko)}get permalink(){return s(this,So)}get userReportReasons(){return s(this,Co)}get modReportReasons(){return s(this,Po)}get url(){return s(this,wo)}get ignoringReports(){return s(this,sr)}toJSON(){return{id:this.id,authorName:this.authorName,subredditId:this.subredditId,subredditName:this.subredditName,body:this.body,createdAt:this.createdAt,parentId:this.parentId,postId:this.postId,replies:this.replies,approved:this.approved,locked:this.locked,removed:this.removed,stickied:this.stickied,spam:this.spam,edited:this.edited,distinguishedBy:this.distinguishedBy,numReports:this.numReports,collapsedBecauseCrowdControl:this.collapsedBecauseCrowdControl,score:this.score,permalink:this.permalink,modReportReasons:this.modReportReasons,userReportReasons:this.userReportReasons,url:this.url,ignoringReports:this.ignoringReports}}isLocked(){return s(this,ir)}isApproved(){return s(this,rr)}isRemoved(){return s(this,nr)}isSpam(){return s(this,Wr)}isStickied(){return s(this,kt)}isDistinguished(){return!!s(this,St)}isEdited(){return s(this,jr)}isIgnoringReports(){return s(this,sr)}async delete(){return j.delete(this.id,s(this,ee))}async edit(e){let t=await j.edit({id:this.id,...e},s(this,ee));return d(this,gn,t.body),d(this,jr,t.edited),this}async approve(){await j.approve(this.id,s(this,ee)),d(this,rr,!0),d(this,nr,!1)}async remove(e=!1){await j.remove(this.id,e,s(this,ee)),d(this,nr,!0),d(this,Wr,e),d(this,rr,!1)}async lock(){await j.lock(this.id,s(this,ee)),d(this,ir,!0)}async unlock(){await j.unlock(this.id,s(this,ee)),d(this,ir,!1)}async reply(e){return j.submit({id:this.id,...e},s(this,ee))}async getAuthor(){return w.getByUsername(s(this,pn),s(this,ee))}async distinguish(e=!1){let{distinguishedBy:t,stickied:i}=await j.distinguish(this.id,e,!1,s(this,ee));d(this,St,t),d(this,kt,i)}async distinguishAsAdmin(e=!1){let{distinguishedBy:t,stickied:i}=await j.distinguish(this.id,e,!0,s(this,ee));d(this,St,t),d(this,kt,i)}async undistinguish(){let{distinguishedBy:e,stickied:t}=await j.undistinguish(this.id,s(this,ee));d(this,St,e),d(this,kt,t)}async ignoreReports(){await j.ignoreReports(this.id,s(this,ee)),d(this,sr,!0)}async unignoreReports(){await j.unignoreReports(this.id,s(this,ee)),d(this,sr,!1)}addRemovalNote(e){return Me.addRemovalNote({itemIds:[s(this,qr)],...e},s(this,ee))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=xt(e)?e:`t1_${e}`,o=await i.Info({subreddits:[],thingIds:[n]},t);if(!o.data?.children?.[0]?.data)throw new Error("not found");return new j(o.data.children[0].data,t)}static getComments(e,t){var a;let{postId:i,commentId:n,...o}=e;return S(a=j,at,zd).call(a,{postId:ve(i),commentId:n?ni(n):void 0,...o},t)}static async edit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;"richtext"in e&&(o=ji(e.richtext));let a=await i.EditUserText({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t);if(a.json?.errors?.length)throw new Error("Failed to edit comment");let c=a.json?.data?.things?.[0]?.data;return v(c),new j(c,t)}static async delete(e,t){await u.redditAPIPlugins.LinksAndComments.Del({id:e},t)}static async approve(e,t){await u.redditAPIPlugins.Moderation.Approve({id:e},t)}static async remove(e,t=!1,i){await u.redditAPIPlugins.Moderation.Remove({id:e,spam:t},i)}static async lock(e,t){await u.redditAPIPlugins.LinksAndComments.Lock({id:e},t)}static async unlock(e,t){await u.redditAPIPlugins.LinksAndComments.Unlock({id:e},t)}static async submit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;"richtext"in e&&(o=ji(e.richtext));let a=await i.Comment({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t);if(a.json?.errors?.length)throw new Error("failed to reply to comment");let c=a.json?.data?.things?.[0]?.data;return v(c),new j(c,t)}static async distinguish(e,t,i,n){let c=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:i?"admin":"yes",sticky:t},n)).json?.data?.things?.[0]?.data;return v(c),{distinguishedBy:c.distinguished,stickied:!!c.stickied}}static async undistinguish(e,t){let o=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:"no",sticky:!1},t)).json?.data?.things?.[0]?.data;return v(o),{distinguishedBy:o.distinguished,stickied:!!o.stickied}}static getCommentsByUser(e,t){let i=u.redditAPIPlugins.Users;return new V({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"comments",...n},t);return v(o.data,"Failed to get comments for user"),{children:o.data.children?.map(c=>new j(c.data,t))||[],before:o.data.before,after:o.data.after}}})}static async ignoreReports(e,t){await u.redditAPIPlugins.Moderation.IgnoreReports({id:e},t)}static async unignoreReports(e,t){await u.redditAPIPlugins.Moderation.UnignoreReports({id:e},t)}};qr=new WeakMap,co=new WeakMap,pn=new WeakMap,gn=new WeakMap,mo=new WeakMap,po=new WeakMap,hn=new WeakMap,go=new WeakMap,ho=new WeakMap,fn=new WeakMap,rr=new WeakMap,fo=new WeakMap,vo=new WeakMap,jr=new WeakMap,ir=new WeakMap,nr=new WeakMap,kt=new WeakMap,Wr=new WeakMap,St=new WeakMap,yo=new WeakMap,bo=new WeakMap,ko=new WeakMap,So=new WeakMap,Po=new WeakMap,Co=new WeakMap,wo=new WeakMap,sr=new WeakMap,ee=new WeakMap,at=new WeakSet,zd=function(e,t,i=0){return new V({limit:e.limit,pageSize:e.pageSize,fetch:async n=>{var y,b;let o=n.limit,a=u.redditAPIPlugins.Listings,c=u.redditAPIPlugins.LinksAndComments,p=e.commentId;if(n.more)if(n.more.children.length){let P=n.more;(!o||o>100)&&(o=100);let x=P.children.splice(0,o),I=await c.MoreChildren({linkId:e.postId,children:x,sort:e.sort},t);if(!I.json?.data?.things?.length)return{children:[]};let{children:M}=S(y=j,at,Jd).call(y,I.json.data.things,e.postId,e,t);return{children:M,more:P.children.length?P:void 0}}else p=n.more.parentId,i=i+n.more.depth;let f=(await a.Comments({article:e.postId.substring(3),comment:p?.substring(3),limit:o,depth:e.depth,sort:e.sort},t)).listings?.[1]?.data?.children??[],m=f[0];return p&&m?.data?.replyList?.data&&(f=m.data.replyList.data.children),S(b=j,at,Jd).call(b,f,p??e.postId,e,t,i)}})},Jd=function(e,t,i,n,o=0){var g,f;let a=[],c,p={};for(let m of e){if(!m.data||(m.data.depth!=null&&(m.data.depth=m.data.depth+o),m.data.depth!=null&&i.depth!=null&&m.data.depth>=i.depth))continue;let y=m.data.parentId?p[m.data.parentId]:void 0;if(m.kind==="t1"){if(m.data.name===t)continue;let b=new j(m.data,n);if(p[b.id]=b,d(b,fn,S(g=j,at,zd).call(g,{...i,postId:b.postId,commentId:b.id},n,o)),"replyList"in m.data&&m.data.replyList?.data){let{children:P,more:x}=S(f=j,at,Jd).call(f,m.data.replyList.data.children,b.id,i,n,o);P.length&&b.replies.children.push(...P),x&&b.replies.setMore(x)}b.replies.preventInitialFetch(),y?y.replies.children.push(b):a.push(b)}else if(m.kind==="more"&&m.data.parentId&&m.data.depth!=null){let b={parentId:ac(m.data.parentId)?ni(m.data.parentId):ve(m.data.parentId),children:m.data.children??[],depth:m.data.depth};y?y.replies.setMore(b):b.parentId===t&&(c=b)}}return{children:a,more:c}},l(j,at);var te=j;function rd(r,e){let t=u.redditAPIPlugins.Moderation;return new V({hasMore:!0,after:r.after,before:r.before,limit:r.limit,pageSize:r.pageSize,fetch:async i=>{let n=await t.AboutLog({subreddit:r.subredditName,mod:r.moderatorUsernames?r.moderatorUsernames.join(","):void 0,type:r.type,...i},e);return zR(n)}})}function zR(r){if(!r.data?.children)throw new Error("AboutLogResponse is missing children");return{children:r.data.children.map(t=>{if(!t.data)throw new Error("ModAction from AboutLogResponse is missing or invalid");let{id:i,mod:n,modId36:o,createdUtc:a,subreddit:c,subredditNamePrefixed:p,action:g,srId36:f,description:m,details:y,targetAuthor:b,targetBody:P,targetFullname:x,targetPermalink:I,targetTitle:M}=t.data;v(i,"ModAction from AboutLogResponse is missing id"),v(n,"ModAction from AboutLogResponse is missing mod"),v(o,"ModAction from AboutLogResponse is missing modId36"),v(a,"ModAction from AboutLogResponse is missing createdUtc"),v(c,"ModAction from AboutLogResponse is missing subreddit"),v(p,"ModAction from AboutLogResponse is missing subredditNamePrefixed"),v(g,"ModAction from AboutLogResponse is missing action"),v(f,"ModAction from AboutLogResponse is missing srId36");let Ce=new Date(0);return Ce.setUTCSeconds(a),{id:i,type:g,moderatorName:n,moderatorId:`t2_${o}`,createdAt:Ce,subredditName:c,subredditId:`t5_${f}`,description:m,details:y,target:x?{id:x,author:b,body:P,permalink:I,title:M}:void 0}}),after:r.data.after,before:r.data.before}}import"@devvit/protos";var JR=(a=>(a.New="New",a.InProgress="InProgress",a.Archived="Archived",a.Appeals="Appeals",a.JoinRequests="JoinRequests",a.Filtered="Filtered",a))(JR||{}),$R={0:"New",1:"InProgress",2:"Archived",3:"Appeals",4:"JoinRequests",5:"Filtered"},KR=(b=>(b.Highlighted="Highlighted",b.Unhighlighted="Unhighlighted",b.Archived="Archived",b.Unarchived="Unarchived",b.ReportedToAdmins="ReportedToAdmins",b.Muted="Muted",b.Unmuted="Unmuted",b.Banned="Banned",b.Unbanned="Unbanned",b.Approved="Approved",b.Disapproved="Disapproved",b.Filtered="Filtered",b.Unfiltered="Unfiltered",b))(KR||{}),XR={0:"Highlighted",1:"Unhighlighted",2:"Archived",3:"Unarchived",4:"ReportedToAdmins",5:"Muted",6:"Unmuted",7:"Banned",8:"Unbanned",9:"Approved",10:"Disapproved",11:"Filtered",12:"Unfiltered"},H,J,de,bS,kS,id=class{constructor(e){l(this,J);l(this,H);this.notificationSubjectPrefix="[notification]";d(this,H,e)}async bulkReadConversations(e,t){let i=u.redditAPIPlugins.NewModmail,{conversationIds:n}=await i.BulkReadConversations({entity:e.join(","),state:t},s(this,H));return n}async getConversations(e){let i=await u.redditAPIPlugins.NewModmail.GetConversations({after:e.after,entity:e.subreddits?e.subreddits.join(","):void 0,limit:e.limit,sort:e.sort,state:e.state},s(this,H)),n={};for(let o in i.conversations)n[o]=S(this,J,de).call(this,{protoConversation:i.conversations[o],protoMessages:i.messages,protoModActions:{}});return{conversations:n,viewerId:i.viewerId,conversationIds:i.conversationIds}}async getConversation(e){let i=await u.redditAPIPlugins.NewModmail.GetConversation({...e,markRead:!!e.markRead},s(this,H));return{participantSubreddit:i.participantSubreddit,conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async getSubreddits(){let e=u.redditAPIPlugins.NewModmail,{subreddits:t}=await e.Subreddits({},s(this,H));return t}async createConversation(e){let i=await u.redditAPIPlugins.NewModmail.CreateConversation({body:e.body,isAuthorHidden:e.isAuthorHidden??!1,srName:e.subredditName,subject:e.subject,to:e.to?e.to:void 0},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async createModDiscussionConversation(e){return xm({subject:e.subject,bodyMarkdown:e.bodyMarkdown,subredditId:ie(e.subredditId),isInternal:!0,participantType:"MODERATOR",conversationType:"INTERNAL"},s(this,H))}async createModInboxConversation(e){return xm({subject:e.subject,bodyMarkdown:e.bodyMarkdown,subredditId:ie(e.subredditId),isInternal:!1,participantType:"PARTICIPANT_USER",conversationType:"SR_USER"},s(this,H))}async createModNotification(e){let t=e.subject;return e.subject.startsWith(this.notificationSubjectPrefix)||(t=`${this.notificationSubjectPrefix} ${e.subject}`),xm({subject:t,bodyMarkdown:e.bodyMarkdown,subredditId:ie(e.subredditId),isInternal:!1,participantType:"PARTICIPANT_USER",conversationType:"SR_USER"},s(this,H))}async reply(e){let i=await u.redditAPIPlugins.NewModmail.CreateConversationMessage({body:e.body,conversationId:e.conversationId,isAuthorHidden:e.isAuthorHidden??!1,isInternal:e.isInternal??!1},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:{}}),user:i.user}}async highlightConversation(e){let i=await u.redditAPIPlugins.NewModmail.HighlightConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async unhighlightConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnhighlightConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async archiveConversation(e){let i=await u.redditAPIPlugins.NewModmail.ArchiveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async unarchiveConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnarchiveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async muteConversation(e){let i=await u.redditAPIPlugins.NewModmail.MuteConversation({conversationId:e.conversationId,numHours:e.numHours},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async unmuteConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnmuteConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async readConversations(e){await u.redditAPIPlugins.NewModmail.Read({conversationIds:e.join(",")},s(this,H))}async unreadConversations(e){await u.redditAPIPlugins.NewModmail.Unread({conversationIds:e.join(",")},s(this,H))}async approveConversation(e){let i=await u.redditAPIPlugins.NewModmail.ApproveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async disapproveConversation(e){let i=await u.redditAPIPlugins.NewModmail.DisapproveConversation({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async tempBanConversation(e){let i=await u.redditAPIPlugins.NewModmail.TempBan({...e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async unbanConversation(e){let i=await u.redditAPIPlugins.NewModmail.Unban({conversationId:e},s(this,H));return{conversation:S(this,J,de).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async getUnreadCount(){return await u.redditAPIPlugins.NewModmail.UnreadCount({},s(this,H))}async getUserConversations(e){return await u.redditAPIPlugins.NewModmail.UserConversations({conversationId:e},s(this,H))}};H=new WeakMap,J=new WeakSet,de=function({protoConversation:e,protoMessages:t,protoModActions:i}){return{...e,state:$R[e.state],messages:S(this,J,bS).call(this,e,t),modActions:S(this,J,kS).call(this,e,i)}},bS=function(e,t){let i={},n=e.objIds.filter(o=>o.key==="messages").map(({id:o})=>o);for(let o of n){let a=t[o];a&&(i[o]=a)}return i},kS=function(e,t){let i={},n=e.objIds.filter(o=>o.key==="modActions").map(({id:o})=>o);for(let o of n){let a=t[o];a&&(i[o]={...a,actionType:XR[a.actionTypeId]})}return i};async function xm(r,e){let t=e[L.AppUser]?.values[0],o=await re.query("CreateModmailConversation","5f9ae20b0c7bdffcafb80241728a72e67cd4239bc09f67284b79d4aa706ee0e5",{subject:r.subject,bodyMarkdown:r.bodyMarkdown,subredditId:r.subredditId,authorId:t,isInternal:r.isInternal,participantType:r.participantType,conversationType:r.conversationType},e);if(o.data?.createModmailConversationV2?.ok)return o.data?.createModmailConversationV2?.conversationId;throw new Error("modmail conversation creation failed; ${response.data?.createModmailConversationV2?.errors[0].message}")}var vn,yn,Io,xo,Fo,To,Fm=class Fm{constructor(e,t){l(this,vn);l(this,yn);l(this,Io);l(this,xo);l(this,Fo);l(this,To);if(Y(this),v(e.id,"PrivateMessage: Invalid data, no id"),v(e.name,"PrivateMessage: Invalid data, no name"),v(e.created,"PrivateMessage: Invalid data, no created date"),d(this,vn,Re(e.name)),e.author!=null)d(this,yn,{type:"user",username:e.author,id:e.authorFullname?oe(e.authorFullname):void 0});else if(e.subreddit!=null)d(this,yn,{type:"subreddit",name:e.subreddit,id:e.subredditId?ie(e.subredditId):void 0});else throw new Error("PrivateMessage: Invalid data, no author or subreddit");d(this,Io,e.body??""),d(this,xo,e.bodyHtml??"");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Fo,i),d(this,To,t)}static async getMessages(e,t){let i=u.redditAPIPlugins.PrivateMessages;return new V({...e,fetch:async n=>{let o=await i.MessageWhere({...n,where:e.type??"inbox"},t);return{after:o.data?.after,before:o.data?.before,children:o.data?.children?.map(a=>new Fm(a.data,t)).filter(Boolean)||[]}}})}static async send({to:e,subject:t,text:i},n){await u.redditAPIPlugins.PrivateMessages.Compose({to:e,subject:t,text:i,fromSr:""},n)}static async sendAsSubreddit({to:e,fromSubredditName:t,subject:i,text:n},o){await u.redditAPIPlugins.PrivateMessages.Compose({to:e,fromSr:t,subject:i,text:n},o)}static async markAllAsRead(e){await u.redditAPIPlugins.PrivateMessages.ReadAllMessages({filterTypes:""},e)}get id(){return s(this,vn)}get from(){return s(this,yn)}get body(){return s(this,Io)}get bodyHtml(){return s(this,xo)}get created(){return s(this,Fo)}async markAsRead(){await u.redditAPIPlugins.PrivateMessages.ReadMessage({id:s(this,vn)},s(this,To))}};vn=new WeakMap,yn=new WeakMap,Io=new WeakMap,xo=new WeakMap,Fo=new WeakMap,To=new WeakMap;var hr=Fm;var ty=(o=>(o.Reports="reports",o.Spam="spam",o.Modqueue="modqueue",o.Unmoderated="unmoderated",o.Edited="edited",o))(ty||{}),SS=class{},PS=class{},CS=class{},wS=class{},bn,T,Ao,Eo,Ro,Oo,Bo,Mo,Uo,Lo,Do,kn,O,dt=class dt{constructor(e,t){l(this,bn);l(this,T);l(this,Ao);l(this,Eo);l(this,Ro);l(this,Oo);l(this,Bo);l(this,Mo);l(this,Uo);l(this,Lo);l(this,Do);l(this,kn);l(this,O);Y(this),v(e.id,"Subreddit id is missing or undefined"),v(e.displayName,"Subreddit name is missing or undefined"),d(this,bn,ie(`t5_${e.id}`)),d(this,T,e.displayName),v(e.createdUtc,"Subreddit is missing created date");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Ao,i),d(this,Eo,ZR(e.subredditType)),d(this,Ro,e.title),d(this,Oo,e.description),v(e.lang,"Subreddit is missing language"),d(this,Bo,e.lang),d(this,Mo,e.subscribers??0),d(this,Uo,e.activeUserCount??0),d(this,Lo,e.over18??!1),d(this,kn,e.url??""),d(this,Do,{acceptFollowers:e.acceptFollowers??!1,allOriginalContent:e.allOriginalContent??!1,allowChatPostCreation:e.allowChatPostCreation??!1,allowDiscovery:e.allowDiscovery??!1,allowGalleries:e.allowGalleries??!1,allowImages:e.allowImages??!1,allowPolls:e.allowPolls??!1,allowPredictionContributors:e.allowPredictionContributors??!1,allowPredictions:e.allowPredictions??!1,allowPredictionsTournament:e.allowPredictionsTournament??!1,allowTalks:e.allowTalks??!1,allowVideoGifs:e.allowVideogifs??!1,allowVideos:e.allowVideos??!1,chatPostEnabled:e.isChatPostFeatureEnabled??!1,collectionsEnabled:e.collectionsEnabled??!1,crosspostable:e.isCrosspostableSubreddit??!1,emojisEnabled:e.emojisEnabled??!1,eventPostsEnabled:e.eventPostsEnabled??!1,linkFlairEnabled:e.linkFlairEnabled??!1,originalContentTagEnabled:e.originalContentTagEnabled??!1,restrictCommenting:e.restrictCommenting??!1,restrictPosting:e.restrictPosting??!1,shouldArchivePosts:e.shouldArchivePosts??!1,spoilersEnabled:e.spoilersEnabled??!1,wikiEnabled:e.wikiEnabled??!1,allowedPostType:QR(e.submissionType),allowedMediaInComments:(e.allowedMediaInComments??[]).map(YR),bannerBackgroundColor:e.bannerBackgroundColor,bannerBackgroundImage:e.bannerBackgroundImage,bannerImage:e.bannerImg,communityIcon:e.communityIcon,headerTitle:e.headerTitle,keyColor:e.keyColor,mobileBannerImage:e.mobileBannerImage,primaryColor:e.primaryColor,userFlairs:{enabled:e.userFlairEnabledInSr??!1,usersCanAssign:e.canAssignUserFlair??!1,userFlairBackgroundColor:e.userFlairBackgroundColor,userFlairTextColor:e.userFlairTextColor},postFlairs:{enabled:e.linkFlairEnabled??!1,usersCanAssign:e.canAssignLinkFlair??!1},url:new URL(s(this,kn),"https://www.reddit.com").toString()}),d(this,O,t)}get id(){return s(this,bn)}get name(){return s(this,T)}get createdAt(){return s(this,Ao)}get type(){return s(this,Eo)}get title(){return s(this,Ro)}get description(){return s(this,Oo)}get language(){return s(this,Bo)}get numberOfSubscribers(){return s(this,Mo)}get numberOfActiveUsers(){return s(this,Uo)}get nsfw(){return s(this,Lo)}get settings(){return s(this,Do)}get userFlairsEnabled(){return this.settings.userFlairs.enabled}get postFlairsEnabled(){return this.settings.postFlairs.enabled}get usersCanAssignUserFlairs(){return this.settings.userFlairs.usersCanAssign}get usersCanAssignPostFlairs(){return this.settings.postFlairs.usersCanAssign}get url(){return this.settings.url}get permalink(){return s(this,kn)}toJSON(){return{id:this.id,name:this.name,createdAt:this.createdAt,type:this.type,title:this.title,description:this.description,language:this.language,nsfw:this.nsfw,numberOfSubscribers:this.numberOfSubscribers,numberOfActiveUsers:this.numberOfActiveUsers,settings:this.settings}}async submitPost(e){let t={...e,subredditName:s(this,T)};return z.submit(t,s(this,O))}getControversialPosts(e={}){if(!s(this,T))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getControversialPosts({...e,subredditName:s(this,T)},s(this,O))}getTopPosts(e={}){if(!s(this,T))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getTopPosts({...e,subredditName:s(this,T)},s(this,O))}getApprovedUsers(e={}){return w.getSubredditUsersByType({type:"contributors",subredditName:s(this,T),...e},s(this,O))}approveUser(e){return w.createRelationship({username:e,subredditName:s(this,T),type:"contributor"},s(this,O))}removeUser(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"contributor"},s(this,O))}getWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikicontributors",subredditName:s(this,T),...e},s(this,O))}addWikiContributor(e){return w.createRelationship({username:e,subredditName:s(this,T),type:"wikicontributor"},s(this,O))}removeWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"wikicontributor"},s(this,O))}getBannedUsers(e={}){return w.getSubredditUsersByType({type:"banned",subredditName:s(this,T),...e},s(this,O))}banUser(e){return w.createRelationship({username:e.username,subredditName:s(this,T),type:"banned",banReason:e.reason,banMessage:e.message,note:e.note,duration:e.duration,banContext:e.context},s(this,O))}unbanUser(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"banned"},s(this,O))}getBannedWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikibanned",subredditName:s(this,T),...e},s(this,O))}banWikiContributor(e){return w.createRelationship({username:e.username,subredditName:s(this,T),type:"wikibanned",banReason:e.reason,note:e.note,duration:e.duration},s(this,O))}unbanWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"wikibanned"},s(this,O))}getModerators(e={}){return w.getSubredditUsersByType({type:"moderators",subredditName:s(this,T),...e},s(this,O))}inviteModerator(e,t){return w.createRelationship({type:"moderator_invite",subredditName:s(this,T),username:e,permissions:t??[]},s(this,O))}revokeModeratorInvite(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"moderator_invite"},s(this,O))}removeModerator(e){return w.removeRelationship({type:"moderator",subredditName:s(this,T),username:e},s(this,O))}setModeratorPermissions(e,t){return w.setModeratorPermissions(e,s(this,T),t,s(this,O))}getMutedUsers(e={}){return w.getSubredditUsersByType({type:"muted",subredditName:s(this,T),...e},s(this,O))}muteUser(e,t){return w.createRelationship({username:e,subredditName:s(this,T),type:"muted",note:t},s(this,O))}unmuteUser(e){return w.removeRelationship({username:e,subredditName:s(this,T),type:"muted"},s(this,O))}getModerationLog(e){return rd({subredditName:s(this,T),...e},s(this,O))}getUserFlairTemplates(){return ue.getUserFlairTemplates(s(this,T),s(this,O))}getPostFlairTemplates(){return ue.getPostFlairTemplates(s(this,T),s(this,O))}createPostFlairTemplate(e){return ue.createPostFlairTemplate({subredditName:s(this,T),...e},s(this,O))}createUserFlairTemplate(e){return ue.createUserFlairTemplate({subredditName:s(this,T),...e},s(this,O))}async getUserFlair(e){if(e?.usernames!==void 0)return{users:await Promise.all(e.usernames.map(async i=>{let n=await Ue.getUserFlairBySubreddit({subreddit:s(this,T),name:i},s(this,O));return _s(n.users[0])}))};{let t=await Ue.getUserFlairBySubreddit({...e,subreddit:s(this,T)},s(this,O));return{next:t.next,prev:t.prev,users:t.users.map(i=>_s(i))}}}getModQueue(e={type:"all"}){return dt.aboutLocation({...e,location:"modqueue",subreddit:s(this,T)},s(this,O))}getReports(e={type:"all"}){return dt.aboutLocation({...e,location:"reports",subreddit:s(this,T)},s(this,O))}getSpam(e={type:"all"}){return dt.aboutLocation({...e,location:"spam",subreddit:s(this,T)},s(this,O))}getUnmoderated(e={type:"all"}){return dt.aboutLocation({...e,location:"unmoderated",subreddit:s(this,T)},s(this,O))}getEdited(e={type:"all"}){return dt.aboutLocation({...e,location:"edited",subreddit:s(this,T)},s(this,O))}static aboutLocation(e,t){let i=u.redditAPIPlugins.Moderation,n;switch(e.type){case"post":n="links";break;case"comment":n="comments";break;default:n=void 0}return new V({...e,fetch:async o=>{let a=await i.AboutLocation({...o,...e,only:n},t);return IS(a,t)}})}getCommentsAndPostsByIds(e){let t=u.redditAPIPlugins.LinksAndComments;return new V({fetch:async()=>{let i=await t.Info({thingIds:e,subreddits:[s(this,bn)]},s(this,O));return IS(i,s(this,O))}})}static async addRemovalReason(e,t,i,n){return(await u.redditAPIPlugins.Subreddits.SubredditAddRemovalReason({title:t,message:i,subreddit:e},n)).id}static async getRemovalReasons(e,t){let n=await u.redditAPIPlugins.Subreddits.SubredditGetRemovalReasons({subreddit:e},t);return n.order.map(o=>({...n.data[o]}))}static async getFromMetadata(e){v(e);let t=e?.[L.Subreddit]?.values[0];return v(t),dt.getById(ie(t),e)}static async getById(e,t){let o=(await u.redditAPIPlugins.LinksAndComments.Info({thingIds:[e],subreddits:[]},t)).data?.children[0]?.data?.displayName;return v(o),dt.getByName(o,t)}static async getByName(e,t){let n=await u.redditAPIPlugins.Subreddits.SubredditAbout({subreddit:e},t);if(!n?.data)throw new Error("not found");return new dt(n.data,t)}};bn=new WeakMap,T=new WeakMap,Ao=new WeakMap,Eo=new WeakMap,Ro=new WeakMap,Oo=new WeakMap,Bo=new WeakMap,Mo=new WeakMap,Uo=new WeakMap,Lo=new WeakMap,Do=new WeakMap,kn=new WeakMap,O=new WeakMap;var ye=dt;async function ry(r,e){let o=(await re.query("GetSubredditInfoById","315a9b75c22a017d526afdf2d274616946156451aacfd56dfb91e7ad3f7a2fde",{id:r},e)).data?.subredditInfoById;if(!o)throw new Error("subreddit info not found");return o}async function iy(r,e){let o=(await re.query("GetSubredditInfoByName","4aa69726c7e3f5d33ab2bee22b3d74fce645824fddd5ea3ec6dfe30bdb4295cb",{name:r},e)).data?.subredditInfoByName;if(!o)throw new Error("subreddit info not found");return o}async function ny(r,e){let o=(await re.query("GetSubredditLeaderboard","18ead70c46b6446d45ecd8b679b16d9a929a933d6ef25d8262a459cb18b72848",{id:r},e)).data?.subredditInfoById?.leaderboard;if(!o)throw new Error("subreddit leaderboard not found");if(!o.summary)throw new Error("subreddit leaderboard summary not found");return{id:o.id,summary:o.summary}}async function sy(r,e){let o=(await re.query("GetSubredditStyles","d491d17ea8858f563ea578b26b9595d64adecf4bf34557d567c7e53c470f5f22",{id:r},e)).data?.subredditInfoById?.styles;if(!o)throw new Error("subreddit styles not found");return o}function ZR(r){if(r==="public"||r==="private"||r==="restricted"||r==="employees_only"||r==="gold_only"||r==="gold_restricted"||r==="archived"||r==="user")return r;throw new Error(`invalid subreddit type: ${r}`)}function QR(r){if(r==="any"||r==="link"||r==="self")return r;throw new Error(`invalid allowed post type: ${r}`)}function YR(r){if(r==="animated"||r==="giphy"||r==="static"||r==="expression")return r;throw new Error(`invalid comment media type: ${r}`)}function IS(r,e){let i=(r.data?.children??[]).map(a=>{let c=n(a);if(c!=null)return c;let p=o(a);return p??null}).filter(Boolean);return{after:r.data?.after,before:r.data?.before,children:i};function n(a){try{return new z(a.data,e)}catch{return null}}function o(a){try{return new te(a.data,e)}catch{return null}}}async function oy(r,e){return xS("GetVaultContactByAddress","3e2f7966a5c120e64fd2795d06a46595c52d988185be98d3ed71c3f81ae80d2e",{provider:"ethereum",address:r},e)}async function ay(r,e){return xS("GetVaultContactByUserId","a854ddc19d0e22c4f36ed917fdbd568f299f3571427e393aee5e2972080fffe9",{provider:"ethereum",userId:r},e)}async function xS(r,e,t,i){let o=(await re.query(r,e,t,i))?.data?.vault?.contact;return{provider:o?.provider,userId:oe(o?.userId),address:o?.address,createdAt:o?.createdAt,isActive:o?.isActive}}import{CommunityListWidget_CommunityData as eO,GetWidgetsResponse_WidgetItem as pe}from"@devvit/protos";var No,_o,Ho,qo,Am=class Am{constructor(e,t,i){l(this,No);l(this,_o);l(this,Ho);l(this,qo);Y(this),d(this,No,e.id),d(this,_o,e.shortName),d(this,Ho,t),d(this,qo,i)}get id(){return s(this,No)}get name(){return s(this,_o)}get subredditName(){return s(this,Ho)}toJSON(){return{id:this.id,name:this.name,subredditName:this.subredditName}}delete(){return Am.delete(this.subredditName,this.id,s(this,qo))}static async getWidgets(e,t){let n=await u.redditAPIPlugins.Widgets.GetWidgets({subreddit:e},t);v(n.layout,"Failed to load widgets for subreddit");let o=n.items,a=[];for(let c of n.layout.sidebar?.order??[]){let p=o[c];switch(p?.kind){case"image":a.push(new $d(p,e,t));break;case"calendar":a.push(new Kd(p,e,t));break;case"textarea":a.push(new Xd(p,e,t));break;case"button":a.push(new Zd(p,e,t));break;case"community-list":a.push(new Qd(p,e,t));break;case"post-flair":a.push(new Yd(p,e,t));break;case"custom":a.push(new el(p,e,t));break;case"subreddit-rules":{let g=await u.redditAPIPlugins.Subreddits.SubredditAboutRules({subreddit:e},t);a.push(new Tm(g,p,e,t));break}default:throw new Error(`Unknown widget type: ${p.kind}`)}}return a}static async delete(e,t,i){await u.redditAPIPlugins.Widgets.DeleteWidget({subreddit:e,id:t},i)}static async reorder(e,t,i){await u.redditAPIPlugins.Widgets.OrderWidgets({subreddit:e,order:t},i)}static async add(e,t){switch(e?.type){case"image":return $d.create(e,t);case"calendar":return Kd.create(e,t);case"textarea":return Xd.create(e,t);case"button":return Zd.create(e,t);case"community-list":return Qd.create(e,t);case"post-flair":return Yd.create(e,t);case"custom":return el.create(e,t);default:throw new Error("Unknown widget type")}}};No=new WeakMap,_o=new WeakMap,Ho=new WeakMap,qo=new WeakMap;var ae=Am,jo,tl=class tl extends ae{constructor(t,i,n){super(t,i,n);l(this,jo);d(this,jo,t.data.map(o=>(v(o.url,"Image widget data is missing url"),v(o.height,"Image widget data is missing height"),v(o.width,"Image widget data is missing width"),v(o.linkUrl,"Image widget data is missing linkUrl"),{url:o.url,height:o.height,width:o.width,linkUrl:o.linkUrl})))}get images(){return s(this,jo)}toJSON(){return{...super.toJSON(),images:this.images}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddImageWidget(t,i);return new tl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateImageWidget(t,i);return new tl(pe.fromJSON(o),t.subreddit,i)}};jo=new WeakMap;var $d=tl,Wo,Go,Vo,rl=class rl extends ae{constructor(t,i,n){super(t,i,n);l(this,Wo);l(this,Go);l(this,Vo);v(t.googleCalendarId,"Calendar widget data is missing googleCalendarId"),v(t.configuration,"Calendar widget data is missing configuration"),v(t.styles,"Calendar widget data is missing styles"),d(this,Wo,t.googleCalendarId),d(this,Go,t.configuration),d(this,Vo,t.styles)}get googleCalendarId(){return s(this,Wo)}get configuration(){return s(this,Go)}get styles(){return s(this,Vo)}toJSON(){return{...super.toJSON(),googleCalendarId:this.googleCalendarId,configuration:this.configuration,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCalendarWidget(t,i);return new rl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCalendarWidget(t,i);return new rl(pe.fromJSON(o),t.subreddit,i)}};Wo=new WeakMap,Go=new WeakMap,Vo=new WeakMap;var Kd=rl,zo,Jo,il=class il extends ae{constructor(t,i,n){super(t,i,n);l(this,zo);l(this,Jo);v(t.text,"Textarea widget data is missing text"),v(t.styles,"Textarea widget data is missing styles"),d(this,zo,t.text),d(this,Jo,t.styles)}get text(){return s(this,zo)}get styles(){return s(this,Jo)}toJSON(){return{...super.toJSON(),text:this.text,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddTextAreaWidget(t,i);return new il(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateTextAreaWidget(t,i);return new il(pe.fromJSON(o),t.subreddit,i)}};zo=new WeakMap,Jo=new WeakMap;var Xd=il,$o,Ko,Xo,nl=class nl extends ae{constructor(t,i,n){super(t,i,n);l(this,$o);l(this,Ko);l(this,Xo);v(t.styles,"Button widget data is missing styles"),d(this,$o,t.buttons),d(this,Ko,t.description??""),d(this,Xo,t.styles)}get buttons(){return s(this,$o)}get description(){return s(this,Ko)}get styles(){return s(this,Xo)}toJSON(){return{...super.toJSON(),buttons:this.buttons,description:this.description,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddButtonWidget(t,i);return new nl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateButtonWidget(t,i);return new nl(pe.fromJSON(o),t.subreddit,i)}};$o=new WeakMap,Ko=new WeakMap,Xo=new WeakMap;var Zd=nl,Zo,Qo,sl=class sl extends ae{constructor(t,i,n){super(t,i,n);l(this,Zo);l(this,Qo);d(this,Zo,t.data.map(o=>eO.fromJSON(o))),v(t.styles,"Community list widget data is missing styles"),d(this,Qo,t.styles)}get communities(){return s(this,Zo)}get styles(){return s(this,Qo)}toJSON(){return{...super.toJSON(),communities:this.communities,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCommunityListWidget(t,i);return new sl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCommunityListWidget(t,i);return new sl(pe.fromJSON(o),t.subreddit,i)}};Zo=new WeakMap,Qo=new WeakMap;var Qd=sl,Yo,ea,ta,ol=class ol extends ae{constructor(t,i,n){super(t,i,n);l(this,Yo);l(this,ea);l(this,ta);if(v(t.styles,"Post flair widget data is missing styles"),d(this,Yo,t.styles),d(this,ea,t.order.map(o=>t.templates[o])),!(t.display&&t.display==="list"||t.display==="cloud"))throw new Error("Post flair widget data is missing display type");d(this,ta,t.display)}get styles(){return s(this,Yo)}get templates(){return s(this,ea)}get display(){return s(this,ta)}toJSON(){return{...super.toJSON(),styles:this.styles,templates:this.templates,display:this.display}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddPostFlairWidget(t,i);return new ol(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdatePostFlairWidget(t,i);return new ol(pe.fromJSON(o),t.subreddit,i)}};Yo=new WeakMap,ea=new WeakMap,ta=new WeakMap;var Yd=ol,ra,ia,na,sa,oa,al=class al extends ae{constructor(t,i,n){super(t,i,n);l(this,ra);l(this,ia);l(this,na);l(this,sa);l(this,oa);v(t.stylesheetUrl,"Custom widget data is missing stylesheetUrl"),v(t.height,"Custom widget data is missing height"),v(t.css,"Custom widget data is missing css"),d(this,ra,t.imageData??[]),d(this,ia,t.text??""),d(this,na,t.stylesheetUrl),d(this,sa,t.height),d(this,oa,t.css)}get images(){return s(this,ra)}get text(){return s(this,ia)}get stylesheetUrl(){return s(this,na)}get height(){return s(this,sa)}get css(){return s(this,oa)}toJSON(){return{...super.toJSON(),images:this.images,text:this.text,stylesheetUrl:this.stylesheetUrl,height:this.height,css:this.css}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCustomWidget(t,i);return new al(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCustomWidget(t,i);return new al(pe.fromJSON(o),t.subreddit,i)}};ra=new WeakMap,ia=new WeakMap,na=new WeakMap,sa=new WeakMap,oa=new WeakMap;var el=al,aa,Tm=class extends ae{constructor(t,i,n,o){super(i,n,o);l(this,aa);let a=t.rules.map(({description:c,priority:p,shortName:g,violationReason:f})=>(v(c,"Subreddit rule is missing description"),v(p,"Subreddit rule is missing priority"),v(g,"Subreddit rule is missing shortName"),v(f,"Subreddit rule is missing violationReason"),{description:c,priority:p,shortName:g,violationReason:f}));d(this,aa,a)}get rules(){return s(this,aa)}toJSON(){return{...super.toJSON(),rules:this.rules}}};aa=new WeakMap;var tO=(i=>(i[i.SUBREDDIT_PERMISSIONS=0]="SUBREDDIT_PERMISSIONS",i[i.APPROVED_CONTRIBUTORS_ONLY=1]="APPROVED_CONTRIBUTORS_ONLY",i[i.MODS_ONLY=2]="MODS_ONLY",i))(tO||{}),Se,Pe,Sn,Pn,Cn,wn,In,xn,Xe,He=class He{constructor(e,t,i,n){l(this,Se);l(this,Pe);l(this,Sn);l(this,Pn);l(this,Cn);l(this,wn);l(this,In);l(this,xn);l(this,Xe);Y(this),d(this,Se,e),d(this,Pe,t),d(this,Sn,i.contentMd),d(this,Pn,i.contentHtml),d(this,Cn,i.revisionId),d(this,wn,new Date(i.revisionDate*1e3)),d(this,In,i.reason??""),d(this,xn,i.revisionBy?.data?new w(i.revisionBy.data,n):void 0),d(this,Xe,n)}get name(){return s(this,Se)}get subredditName(){return s(this,Pe)}get content(){return s(this,Sn)}get contentHtml(){return s(this,Pn)}get revisionId(){return s(this,Cn)}get revisionDate(){return s(this,wn)}get revisionReason(){return s(this,In)}get revisionAuthor(){return s(this,xn)}toJSON(){return{name:s(this,Se),subredditName:s(this,Pe),content:s(this,Sn),contentHtml:s(this,Pn),revisionId:s(this,Cn),revisionDate:s(this,wn),revisionReason:s(this,In),revisionAuthor:s(this,xn)?.toJSON()}}async update(e,t){return He.updatePage({subredditName:s(this,Pe),page:s(this,Se),content:e,reason:t},s(this,Xe))}async getRevisions(e){return He.getPageRevisions({subredditName:s(this,Pe),page:s(this,Se),...e},s(this,Xe))}async revertTo(e){return He.revertPage(s(this,Pe),s(this,Se),e,s(this,Xe))}async getSettings(){return He.getPageSettings(s(this,Pe),s(this,Se),s(this,Xe))}async updateSettings(e){return He.updatePageSettings({subredditName:s(this,Pe),page:s(this,Se),listed:e.listed,permLevel:e.permLevel},s(this,Xe))}async addEditor(e){return He.addEditor(s(this,Pe),s(this,Se),e,s(this,Xe))}async removeEditor(e){return He.removeEditor(s(this,Pe),s(this,Se),e,s(this,Xe))}static async getPage(e,t,i){let o=await u.redditAPIPlugins.Wiki.GetWikiPage({subreddit:e,page:t},i);return v(o.data,"Failed to get wiki page"),new He(t,e,o.data,i)}static async getPages(e,t){return(await u.redditAPIPlugins.Wiki.GetWikiPages({subreddit:e},t)).data||[]}static async createPage(e,t){return He.updatePage(e,t)}static async updatePage(e,t){return await u.redditAPIPlugins.Wiki.EditWikiPage({subreddit:e.subredditName,page:e.page,content:e.content,reason:e.reason??""},t),He.getPage(e.subredditName,e.page,t)}static getPageRevisions(e,t){let i=u.redditAPIPlugins.Wiki;return new V({hasMore:!0,after:e.after,limit:e.limit,pageSize:e.pageSize,async fetch(n){let o=await i.GetWikiPageRevisions({subreddit:e.subredditName,page:e.page,limit:n.limit,after:n.after,before:n.before},t);return rO(o,t)}})}static async revertPage(e,t,i,n){await u.redditAPIPlugins.Wiki.RevertWikiPage({subreddit:e,page:t,revision:i},n)}static async getPageSettings(e,t,i){let o=await u.redditAPIPlugins.Wiki.GetWikiPageSettings({subreddit:e,page:t},i);return v(o.data,"Failed to get wiki page settings"),new dl(o.data,i)}static async updatePageSettings(e,t){let n=await u.redditAPIPlugins.Wiki.UpdateWikiPageSettings({subreddit:e.subredditName,page:e.page,listed:e.listed?"on":"",permlevel:e.permLevel},t);return v(n.data,"Failed to update wiki page settings"),new dl(n.data,t)}static async addEditor(e,t,i,n){await u.redditAPIPlugins.Wiki.AllowEditor({act:"add",subreddit:e,page:t,username:i},n)}static async removeEditor(e,t,i,n){await u.redditAPIPlugins.Wiki.AllowEditor({act:"del",subreddit:e,page:t,username:i},n)}};Se=new WeakMap,Pe=new WeakMap,Sn=new WeakMap,Pn=new WeakMap,Cn=new WeakMap,wn=new WeakMap,In=new WeakMap,xn=new WeakMap,Xe=new WeakMap;var be=He,Fn,Tn,An,En,Rn,On,Em=class{constructor(e,t){l(this,Fn);l(this,Tn);l(this,An);l(this,En);l(this,Rn);l(this,On);d(this,Fn,e.id),d(this,Tn,e.page),d(this,An,new Date(e.timestamp)),v(e.author?.data,"Wiki page revision author details are missing"),d(this,En,new w(e.author.data,t)),d(this,Rn,e.reason??""),d(this,On,e.revisionHidden??!1)}get id(){return s(this,Fn)}get page(){return s(this,Tn)}get date(){return s(this,An)}get author(){return s(this,En)}get reason(){return s(this,Rn)}get hidden(){return s(this,On)}toJSON(){return{id:s(this,Fn),page:s(this,Tn),date:s(this,An),author:s(this,En).toJSON(),reason:s(this,Rn),hidden:s(this,On)}}};Fn=new WeakMap,Tn=new WeakMap,An=new WeakMap,En=new WeakMap,Rn=new WeakMap,On=new WeakMap;var Bn,Mn,Un,dl=class{constructor(e,t){l(this,Bn);l(this,Mn);l(this,Un);d(this,Bn,e.listed),d(this,Mn,e.permLevel),d(this,Un,e.editors.map(i=>(v(i.data,"Wiki page editor details are missing"),new w(i.data,t))))}get listed(){return s(this,Bn)}get permLevel(){return s(this,Mn)}get editors(){return s(this,Un)}toJSON(){return{listed:s(this,Bn),permLevel:s(this,Mn),editors:s(this,Un).map(e=>e.toJSON())}}};Bn=new WeakMap,Mn=new WeakMap,Un=new WeakMap;function rO(r,e){return v(r.data?.children,"Wiki page revision listing is missing children"),{children:r.data.children.map(i=>new Em(i,e)),before:r.data.before,after:r.data.after}}var iO=["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"],nO=["border-image","border-image-source","behavior","expression","list-style-image","cursor","content"],sO=["onload","onerror","onclick","onmouseover"];function oO(r){return/xmlns=["']http:\/\/www\.w3\.org\/2000\/svg["']/.test(r)?r:r.replace(/<svg\b/,'<svg xmlns="http://www.w3.org/2000/svg"')}function FS(r){if(r){if(!r.trim().startsWith("<svg")){console.log("The provided string is not a valid SVG.");return}try{let e=new RegExp(`<\\s*(${iO.join("|")})\\b`,"gi"),t=new RegExp(`(${nO.join("|")})\\s*:\\s*url\\s*\\((['"]?)(.*?)\\2\\)`,"gi"),i=new RegExp(`(${sO.join("|")})\\s*(=\\s*(['"]?)(.*?)\\3)?`,"gi");r=r.trim().replace(/\s+/g," "),r=oO(r);let n=r.match(e)||[],o=r.match(t)||[],a=r.match(i)||[],c=!1;return n.length>0&&(c=!0,console.warn(`Disallowed elements detected in SVG: ${n.map(p=>p.replace("<","")).join(", ")}`)),o.length>0&&(c=!0,console.warn(`Disallowed styles detected in SVG: ${o.map(p=>p.split(":")[0]).join(", ")}`)),a.length>0&&(c=!0,console.warn(`Disallowed attributes detected in SVG: ${a.map(p=>p.split("=")[0]).join(", ")}`)),c?void 0:r}catch{return}}}function bq(r,...e){let t="";return r.forEach((i,n)=>{t+=i;let o=e[n];o!==void 0&&(t+=`${o}`)}),t=FS(t),t===void 0?"":`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(t)}`}export{FM as ALL_ICON_NAMES,ty as AboutLocations,CS as AuthorFlairSettings,Zd as ButtonWidget,Kd as CalendarWidget,te as Comment,Qd as CommunityListWidget,el as CustomWidget,u as Devvit,Ue as Flair,ue as FlairTemplate,TR as FlairType,Ft as Hook,$d as ImageWidget,V as Listing,KR as ModMailActionType,JR as ModMailConversationState,id as ModMailService,Me as ModNote,z as Post,wS as PostFlairSettings,Yd as PostFlairWidget,hr as PrivateMessage,Or as RichTextBuilder,dc as SettingScope,WR as SocialLinkType,ye as Subreddit,SS as SubredditDescription,Tm as SubredditRulesWidget,PS as SubredditWikiSettings,Xd as TextAreaWidget,w as User,ae as Widget,be as WikiPage,tO as WikiPagePermissionLevel,Em as WikiPageRevision,dl as WikiPageSettings,_s as convertUserFlairProtoToAPI,rd as getModerationLog,ry as getSubredditInfoById,iy as getSubredditInfoByName,ny as getSubredditLeaderboard,sy as getSubredditStyles,oy as getVaultByAddress,ay as getVaultByUserId,bq as svg,gR as useAsync,im as useChannel,em as useForm,om as useInterval,um as useState};
|
|
6
6
|
/*! Bundled license information:
|
|
7
7
|
|
|
8
8
|
shallow-clone/index.js:
|