@devvit/public-api 0.11.4-next-2024-12-03-2baa412bf.0 → 0.11.4-next-2024-12-03-534d9fc60.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/devvit/internals/blocks/handler/useAsync.d.ts +1 -1
- package/devvit/internals/blocks/handler/useAsync.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/useAsync.js +0 -3
- package/meta.json +3 -3
- package/meta.min.json +4 -4
- package/package.json +6 -6
- package/public-api.iife.js +1 -4
- package/public-api.min.js +1 -1
- package/public-api.min.js.map +2 -2
package/public-api.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var AS=Object.create;var Rm=Object.defineProperty;var ES=Object.getOwnPropertyDescriptor;var RS=Object.getOwnPropertyNames;var OS=Object.getPrototypeOf,BS=Object.prototype.hasOwnProperty;var Om=r=>{throw TypeError(r)};var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var MS=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of RS(e))!BS.call(r,n)&&n!==t&&Rm(r,n,{get:()=>e[n],enumerable:!(i=ES(e,n))||i.enumerable});return r};var Ln=(r,e,t)=>(t=r!=null?AS(OS(r)):{},MS(e||!r||!r.__esModule?Rm(t,"default",{value:r,enumerable:!0}):t,r));var ul=(r,e,t)=>e.has(r)||Om("Cannot "+t);var s=(r,e,t)=>(ul(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)=>(ul(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),S=(r,e,t)=>(ul(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((cO,Mm)=>{Mm.exports=function(r){try{return!!r()}catch{return!0}}});var ua=h((mO,Um)=>{var US=le();Um.exports=!US(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Z=h((pO,Nm)=>{var Dm=ua(),Lm=Function.prototype,cl=Lm.call,DS=Dm&&Lm.bind.bind(cl,cl);Nm.exports=Dm?DS:function(r){return function(){return cl.apply(r,arguments)}}});var Hm=h((gO,_m)=>{var LS=Math.ceil,NS=Math.floor;_m.exports=Math.trunc||function(e){var t=+e;return(t>0?NS:LS)(t)}});var ca=h((hO,qm)=>{var _S=Hm();qm.exports=function(r){var e=+r;return e!==e||e===0?0:_S(e)}});var ge=h((fO,jm)=>{var ma=function(r){return r&&r.Math==Math&&r};jm.exports=ma(typeof globalThis=="object"&&globalThis)||ma(typeof window=="object"&&window)||ma(typeof self=="object"&&self)||ma(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Gr=h((vO,Wm)=>{Wm.exports=!1});var pa=h((yO,Vm)=>{var Gm=ge(),HS=Object.defineProperty;Vm.exports=function(r,e){try{HS(Gm,r,{value:e,configurable:!0,writable:!0})}catch{Gm[r]=e}return e}});var ga=h((bO,Jm)=>{var qS=ge(),jS=pa(),zm="__core-js_shared__",WS=qS[zm]||jS(zm,{});Jm.exports=WS});var ml=h((kO,Km)=>{var GS=Gr(),$m=ga();(Km.exports=function(r,e){return $m[r]||($m[r]=e!==void 0?e:{})})("versions",[]).push({version:"3.27.2",mode:GS?"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 ha=h((SO,Xm)=>{Xm.exports=function(r){return r==null}});var fa=h((PO,Zm)=>{var VS=ha(),zS=TypeError;Zm.exports=function(r){if(VS(r))throw zS("Can't call method on "+r);return r}});var Nn=h((CO,Qm)=>{var JS=fa(),$S=Object;Qm.exports=function(r){return $S(JS(r))}});var we=h((wO,Ym)=>{var KS=Z(),XS=Nn(),ZS=KS({}.hasOwnProperty);Ym.exports=Object.hasOwn||function(e,t){return ZS(XS(e),t)}});var pl=h((IO,ep)=>{var QS=Z(),YS=0,eP=Math.random(),tP=QS(1 .toString);ep.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+tP(++YS+eP,36)}});var rp=h((xO,tp)=>{tp.exports=typeof navigator<"u"&&String(navigator.userAgent)||""});var lp=h((FO,dp)=>{var ap=ge(),gl=rp(),ip=ap.process,np=ap.Deno,sp=ip&&ip.versions||np&&np.version,op=sp&&sp.v8,qe,va;op&&(qe=op.split("."),va=qe[0]>0&&qe[0]<4?1:+(qe[0]+qe[1]));!va&&gl&&(qe=gl.match(/Edge\/(\d+)/),(!qe||qe[1]>=74)&&(qe=gl.match(/Chrome\/(\d+)/),qe&&(va=+qe[1])));dp.exports=va});var hl=h((TO,cp)=>{var up=lp(),rP=le();cp.exports=!!Object.getOwnPropertySymbols&&!rP(function(){var r=Symbol();return!String(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&up&&up<41})});var fl=h((AO,mp)=>{var iP=hl();mp.exports=iP&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Ie=h((EO,gp)=>{var nP=ge(),sP=ml(),pp=we(),oP=pl(),aP=hl(),dP=fl(),Vr=nP.Symbol,vl=sP("wks"),lP=dP?Vr.for||Vr:Vr&&Vr.withoutSetter||oP;gp.exports=function(r){return pp(vl,r)||(vl[r]=aP&&pp(Vr,r)?Vr[r]:lP("Symbol."+r)),vl[r]}});var vp=h((RO,fp)=>{var uP=Ie(),cP=uP("toStringTag"),hp={};hp[cP]="z";fp.exports=String(hp)==="[object z]"});var bl=h((OO,yp)=>{var yl=typeof document=="object"&&document.all,mP=typeof yl>"u"&&yl!==void 0;yp.exports={all:yl,IS_HTMLDDA:mP}});var Q=h((BO,kp)=>{var bp=bl(),pP=bp.all;kp.exports=bp.IS_HTMLDDA?function(r){return typeof r=="function"||r===pP}:function(r){return typeof r=="function"}});var ya=h((MO,Pp)=>{var Sp=Z(),gP=Sp({}.toString),hP=Sp("".slice);Pp.exports=function(r){return hP(gP(r),8,-1)}});var _n=h((UO,Cp)=>{var fP=vp(),vP=Q(),ba=ya(),yP=Ie(),bP=yP("toStringTag"),kP=Object,SP=ba(function(){return arguments}())=="Arguments",PP=function(r,e){try{return r[e]}catch{}};Cp.exports=fP?ba:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=PP(e=kP(r),bP))=="string"?t:SP?ba(e):(i=ba(e))=="Object"&&vP(e.callee)?"Arguments":i}});var Hn=h((DO,wp)=>{var CP=_n(),wP=String;wp.exports=function(r){if(CP(r)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return wP(r)}});var Sl=h((LO,Fp)=>{var kl=Z(),IP=ca(),xP=Hn(),FP=fa(),TP=kl("".charAt),Ip=kl("".charCodeAt),AP=kl("".slice),xp=function(r){return function(e,t){var i=xP(FP(e)),n=IP(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?TP(i,n):a:r?AP(i,n,n+2):(a-55296<<10)+(c-56320)+65536)}};Fp.exports={codeAt:xp(!1),charAt:xp(!0)}});var Ep=h((NO,Ap)=>{var EP=ge(),RP=Q(),Tp=EP.WeakMap;Ap.exports=RP(Tp)&&/native code/.test(String(Tp))});var It=h((_O,Bp)=>{var Rp=Q(),Op=bl(),OP=Op.all;Bp.exports=Op.IS_HTMLDDA?function(r){return typeof r=="object"?r!==null:Rp(r)||r===OP}:function(r){return typeof r=="object"?r!==null:Rp(r)}});var he=h((HO,Mp)=>{var BP=le();Mp.exports=!BP(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Cl=h((qO,Dp)=>{var MP=ge(),Up=It(),Pl=MP.document,UP=Up(Pl)&&Up(Pl.createElement);Dp.exports=function(r){return UP?Pl.createElement(r):{}}});var wl=h((jO,Lp)=>{var DP=he(),LP=le(),NP=Cl();Lp.exports=!DP&&!LP(function(){return Object.defineProperty(NP("div"),"a",{get:function(){return 7}}).a!=7})});var Il=h((WO,Np)=>{var _P=he(),HP=le();Np.exports=_P&&HP(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Ze=h((GO,_p)=>{var qP=It(),jP=String,WP=TypeError;_p.exports=function(r){if(qP(r))return r;throw WP(jP(r)+" is not an object")}});var je=h((VO,Hp)=>{var GP=ua(),ka=Function.prototype.call;Hp.exports=GP?ka.bind(ka):function(){return ka.apply(ka,arguments)}});var qn=h((zO,qp)=>{var xl=ge(),VP=Q(),zP=function(r){return VP(r)?r:void 0};qp.exports=function(r,e){return arguments.length<2?zP(xl[r]):xl[r]&&xl[r][e]}});var Fl=h((JO,jp)=>{var JP=Z();jp.exports=JP({}.isPrototypeOf)});var Tl=h(($O,Wp)=>{var $P=qn(),KP=Q(),XP=Fl(),ZP=fl(),QP=Object;Wp.exports=ZP?function(r){return typeof r=="symbol"}:function(r){var e=$P("Symbol");return KP(e)&&XP(e.prototype,QP(r))}});var Al=h((KO,Gp)=>{var YP=String;Gp.exports=function(r){try{return YP(r)}catch{return"Object"}}});var Sa=h((XO,Vp)=>{var eC=Q(),tC=Al(),rC=TypeError;Vp.exports=function(r){if(eC(r))return r;throw rC(tC(r)+" is not a function")}});var Pa=h((ZO,zp)=>{var iC=Sa(),nC=ha();zp.exports=function(r,e){var t=r[e];return nC(t)?void 0:iC(t)}});var $p=h((QO,Jp)=>{var El=je(),Rl=Q(),Ol=It(),sC=TypeError;Jp.exports=function(r,e){var t,i;if(e==="string"&&Rl(t=r.toString)&&!Ol(i=El(t,r))||Rl(t=r.valueOf)&&!Ol(i=El(t,r))||e!=="string"&&Rl(t=r.toString)&&!Ol(i=El(t,r)))return i;throw sC("Can't convert object to primitive value")}});var Qp=h((YO,Zp)=>{var oC=je(),Kp=It(),Xp=Tl(),aC=Pa(),dC=$p(),lC=Ie(),uC=TypeError,cC=lC("toPrimitive");Zp.exports=function(r,e){if(!Kp(r)||Xp(r))return r;var t=aC(r,cC),i;if(t){if(e===void 0&&(e="default"),i=oC(t,r,e),!Kp(i)||Xp(i))return i;throw uC("Can't convert object to primitive value")}return e===void 0&&(e="number"),dC(r,e)}});var Ca=h((eB,Yp)=>{var mC=Qp(),pC=Tl();Yp.exports=function(r){var e=mC(r,"string");return pC(e)?e:e+""}});var Qe=h(tg=>{var gC=he(),hC=wl(),fC=Il(),wa=Ze(),eg=Ca(),vC=TypeError,Bl=Object.defineProperty,yC=Object.getOwnPropertyDescriptor,Ml="enumerable",Ul="configurable",Dl="writable";tg.f=gC?fC?function(e,t,i){if(wa(e),t=eg(t),wa(i),typeof e=="function"&&t==="prototype"&&"value"in i&&Dl in i&&!i[Dl]){var n=yC(e,t);n&&n[Dl]&&(e[t]=i.value,i={configurable:Ul in i?i[Ul]:n[Ul],enumerable:Ml in i?i[Ml]:n[Ml],writable:!1})}return Bl(e,t,i)}:Bl:function(e,t,i){if(wa(e),t=eg(t),wa(i),hC)try{return Bl(e,t,i)}catch{}if("get"in i||"set"in i)throw vC("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var zr=h((rB,rg)=>{rg.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var Ia=h((iB,ig)=>{var bC=he(),kC=Qe(),SC=zr();ig.exports=bC?function(r,e,t){return kC.f(r,e,SC(1,t))}:function(r,e,t){return r[e]=t,r}});var xa=h((nB,sg)=>{var PC=ml(),CC=pl(),ng=PC("keys");sg.exports=function(r){return ng[r]||(ng[r]=CC(r))}});var Fa=h((sB,og)=>{og.exports={}});var Jr=h((oB,lg)=>{var wC=Ep(),dg=ge(),IC=It(),xC=Ia(),Ll=we(),Nl=ga(),FC=xa(),TC=Fa(),ag="Object already initialized",_l=dg.TypeError,AC=dg.WeakMap,Ta,jn,Aa,EC=function(r){return Aa(r)?jn(r):Ta(r,{})},RC=function(r){return function(e){var t;if(!IC(e)||(t=jn(e)).type!==r)throw _l("Incompatible receiver, "+r+" required");return t}};wC||Nl.state?(We=Nl.state||(Nl.state=new AC),We.get=We.get,We.has=We.has,We.set=We.set,Ta=function(r,e){if(We.has(r))throw _l(ag);return e.facade=r,We.set(r,e),e},jn=function(r){return We.get(r)||{}},Aa=function(r){return We.has(r)}):(dr=FC("state"),TC[dr]=!0,Ta=function(r,e){if(Ll(r,dr))throw _l(ag);return e.facade=r,xC(r,dr,e),e},jn=function(r){return Ll(r,dr)?r[dr]:{}},Aa=function(r){return Ll(r,dr)});var We,dr;lg.exports={set:Ta,get:jn,has:Aa,enforce:EC,getterFor:RC}});var Hl=h(mg=>{"use strict";var ug={}.propertyIsEnumerable,cg=Object.getOwnPropertyDescriptor,OC=cg&&!ug.call({1:2},1);mg.f=OC?function(e){var t=cg(this,e);return!!t&&t.enumerable}:ug});var jl=h((dB,pg)=>{var BC=Z(),MC=le(),UC=ya(),ql=Object,DC=BC("".split);pg.exports=MC(function(){return!ql("z").propertyIsEnumerable(0)})?function(r){return UC(r)=="String"?DC(r,""):ql(r)}:ql});var $r=h((lB,gg)=>{var LC=jl(),NC=fa();gg.exports=function(r){return LC(NC(r))}});var Wl=h(fg=>{var _C=he(),HC=je(),qC=Hl(),jC=zr(),WC=$r(),GC=Ca(),VC=we(),zC=wl(),hg=Object.getOwnPropertyDescriptor;fg.f=_C?hg:function(e,t){if(e=WC(e),t=GC(t),zC)try{return hg(e,t)}catch{}if(VC(e,t))return jC(!HC(qC.f,e,t),e[t])}});var zl=h((cB,yg)=>{var Gl=he(),JC=we(),vg=Function.prototype,$C=Gl&&Object.getOwnPropertyDescriptor,Vl=JC(vg,"name"),KC=Vl&&function(){}.name==="something",XC=Vl&&(!Gl||Gl&&$C(vg,"name").configurable);yg.exports={EXISTS:Vl,PROPER:KC,CONFIGURABLE:XC}});var $l=h((mB,bg)=>{var ZC=Z(),QC=Q(),Jl=ga(),YC=ZC(Function.toString);QC(Jl.inspectSource)||(Jl.inspectSource=function(r){return YC(r)});bg.exports=Jl.inspectSource});var Zl=h((pB,Pg)=>{var Xl=Z(),e0=le(),t0=Q(),Ea=we(),Kl=he(),r0=zl().CONFIGURABLE,i0=$l(),Sg=Jr(),n0=Sg.enforce,s0=Sg.get,kg=String,Ra=Object.defineProperty,o0=Xl("".slice),a0=Xl("".replace),d0=Xl([].join),l0=Kl&&!e0(function(){return Ra(function(){},"length",{value:8}).length!==8}),u0=String(String).split("String"),c0=Pg.exports=function(r,e,t){o0(kg(e),0,7)==="Symbol("&&(e="["+a0(kg(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),t&&t.getter&&(e="get "+e),t&&t.setter&&(e="set "+e),(!Ea(r,"name")||r0&&r.name!==e)&&(Kl?Ra(r,"name",{value:e,configurable:!0}):r.name=e),l0&&t&&Ea(t,"arity")&&r.length!==t.arity&&Ra(r,"length",{value:t.arity});try{t&&Ea(t,"constructor")&&t.constructor?Kl&&Ra(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch{}var i=n0(r);return Ea(i,"source")||(i.source=d0(u0,typeof e=="string"?e:"")),r};Function.prototype.toString=c0(function(){return t0(this)&&s0(this).source||i0(this)},"toString")});var lr=h((gB,Cg)=>{var m0=Q(),p0=Qe(),g0=Zl(),h0=pa();Cg.exports=function(r,e,t,i){i||(i={});var n=i.enumerable,o=i.name!==void 0?i.name:e;if(m0(t)&&g0(t,o,i),i.global)n?r[e]=t:h0(e,t);else{try{i.unsafe?r[e]&&(n=!0):delete r[e]}catch{}n?r[e]=t:p0.f(r,e,{value:t,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return r}});var Ql=h((hB,wg)=>{var f0=ca(),v0=Math.max,y0=Math.min;wg.exports=function(r,e){var t=f0(r);return t<0?v0(t+e,0):y0(t,e)}});var xg=h((fB,Ig)=>{var b0=ca(),k0=Math.min;Ig.exports=function(r){return r>0?k0(b0(r),9007199254740991):0}});var Oa=h((vB,Fg)=>{var S0=xg();Fg.exports=function(r){return S0(r.length)}});var Eg=h((yB,Ag)=>{var P0=$r(),C0=Ql(),w0=Oa(),Tg=function(r){return function(e,t,i){var n=P0(e),o=w0(n),a=C0(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 eu=h((bB,Og)=>{var I0=Z(),Yl=we(),x0=$r(),F0=Eg().indexOf,T0=Fa(),Rg=I0([].push);Og.exports=function(r,e){var t=x0(r),i=0,n=[],o;for(o in t)!Yl(T0,o)&&Yl(t,o)&&Rg(n,o);for(;e.length>i;)Yl(t,o=e[i++])&&(~F0(n,o)||Rg(n,o));return n}});var Ba=h((kB,Bg)=>{Bg.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Ug=h(Mg=>{var A0=eu(),E0=Ba(),R0=E0.concat("length","prototype");Mg.f=Object.getOwnPropertyNames||function(e){return A0(e,R0)}});var tu=h(Dg=>{Dg.f=Object.getOwnPropertySymbols});var Ng=h((CB,Lg)=>{var O0=qn(),B0=Z(),M0=Ug(),U0=tu(),D0=Ze(),L0=B0([].concat);Lg.exports=O0("Reflect","ownKeys")||function(e){var t=M0.f(D0(e)),i=U0.f;return i?L0(t,i(e)):t}});var qg=h((wB,Hg)=>{var _g=we(),N0=Ng(),_0=Wl(),H0=Qe();Hg.exports=function(r,e,t){for(var i=N0(e),n=H0.f,o=_0.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((IB,jg)=>{var q0=le(),j0=Q(),W0=/#|\.prototype\./,Wn=function(r,e){var t=V0[G0(r)];return t==J0?!0:t==z0?!1:j0(e)?q0(e):!!e},G0=Wn.normalize=function(r){return String(r).replace(W0,".").toLowerCase()},V0=Wn.data={},z0=Wn.NATIVE="N",J0=Wn.POLYFILL="P";jg.exports=Wn});var Gn=h((xB,Gg)=>{var ru=ge(),$0=Wl().f,K0=Ia(),X0=lr(),Z0=pa(),Q0=qg(),Y0=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=ru:n?a=ru[t]||Z0(t,{}):a=(ru[t]||{}).prototype,a)for(c in e){if(g=e[c],r.dontCallGetSet?(f=$0(a,c),p=f&&f.value):p=a[c],o=Y0(i?c:t+(n?".":"#")+c,r.forced),!o&&p!==void 0){if(typeof g==typeof p)continue;Q0(g,p)}(r.sham||p&&p.sham)&&K0(g,"sham",!0),X0(a,c,g,r)}}});var iu=h((FB,Vg)=>{var ew=eu(),tw=Ba();Vg.exports=Object.keys||function(e){return ew(e,tw)}});var Jg=h(zg=>{var rw=he(),iw=Il(),nw=Qe(),sw=Ze(),ow=$r(),aw=iu();zg.f=rw&&!iw?Object.defineProperties:function(e,t){sw(e);for(var i=ow(t),n=aw(t),o=n.length,a=0,c;o>a;)nw.f(e,c=n[a++],i[c]);return e}});var Kg=h((AB,$g)=>{var dw=qn();$g.exports=dw("document","documentElement")});var Vn=h((EB,rh)=>{var lw=Ze(),uw=Jg(),Xg=Ba(),cw=Fa(),mw=Kg(),pw=Cl(),gw=xa(),Zg=">",Qg="<",su="prototype",ou="script",eh=gw("IE_PROTO"),nu=function(){},th=function(r){return Qg+ou+Zg+r+Qg+"/"+ou+Zg},Yg=function(r){r.write(th("")),r.close();var e=r.parentWindow.Object;return r=null,e},hw=function(){var r=pw("iframe"),e="java"+ou+":",t;return r.style.display="none",mw.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(th("document.F=Object")),t.close(),t.F},Ma,Ua=function(){try{Ma=new ActiveXObject("htmlfile")}catch{}Ua=typeof document<"u"?document.domain&&Ma?Yg(Ma):hw():Yg(Ma);for(var r=Xg.length;r--;)delete Ua[su][Xg[r]];return Ua()};cw[eh]=!0;rh.exports=Object.create||function(e,t){var i;return e!==null?(nu[su]=lw(e),i=new nu,nu[su]=null,i[eh]=e):i=Ua(),t===void 0?i:uw.f(i,t)}});var nh=h((RB,ih)=>{var fw=le();ih.exports=!fw(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var du=h((OB,oh)=>{var vw=we(),yw=Q(),bw=Nn(),kw=xa(),Sw=nh(),sh=kw("IE_PROTO"),au=Object,Pw=au.prototype;oh.exports=Sw?au.getPrototypeOf:function(r){var e=bw(r);if(vw(e,sh))return e[sh];var t=e.constructor;return yw(t)&&e instanceof t?t.prototype:e instanceof au?Pw:null}});var mu=h((BB,lh)=>{"use strict";var Cw=le(),ww=Q(),Iw=It(),xw=Vn(),ah=du(),Fw=lr(),Tw=Ie(),Aw=Gr(),cu=Tw("iterator"),dh=!1,lt,lu,uu;[].keys&&(uu=[].keys(),"next"in uu?(lu=ah(ah(uu)),lu!==Object.prototype&&(lt=lu)):dh=!0);var Ew=!Iw(lt)||Cw(function(){var r={};return lt[cu].call(r)!==r});Ew?lt={}:Aw&&(lt=xw(lt));ww(lt[cu])||Fw(lt,cu,function(){return this});lh.exports={IteratorPrototype:lt,BUGGY_SAFARI_ITERATORS:dh}});var zn=h((MB,ch)=>{var Rw=Qe().f,Ow=we(),Bw=Ie(),uh=Bw("toStringTag");ch.exports=function(r,e,t){r&&!t&&(r=r.prototype),r&&!Ow(r,uh)&&Rw(r,uh,{configurable:!0,value:e})}});var Kr=h((UB,mh)=>{mh.exports={}});var pu=h((DB,ph)=>{"use strict";var Mw=mu().IteratorPrototype,Uw=Vn(),Dw=zr(),Lw=zn(),Nw=Kr(),_w=function(){return this};ph.exports=function(r,e,t,i){var n=e+" Iterator";return r.prototype=Uw(Mw,{next:Dw(+!i,t)}),Lw(r,n,!1,!0),Nw[n]=_w,r}});var hh=h((LB,gh)=>{var Hw=Q(),qw=String,jw=TypeError;gh.exports=function(r){if(typeof r=="object"||Hw(r))return r;throw jw("Can't set "+qw(r)+" as a prototype")}});var vh=h((NB,fh)=>{var Ww=Z(),Gw=Ze(),Vw=hh();fh.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=Ww(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),t(e,[]),r=e instanceof Array}catch{}return function(n,o){return Gw(n),Vw(o),r?t(n,o):n.__proto__=o,n}}():void 0)});var hu=h((_B,Fh)=>{"use strict";var zw=Gn(),Jw=je(),Da=Gr(),Ih=zl(),$w=Q(),Kw=pu(),yh=du(),bh=vh(),Xw=zn(),Zw=Ia(),gu=lr(),Qw=Ie(),kh=Kr(),xh=mu(),Yw=Ih.PROPER,eI=Ih.CONFIGURABLE,Sh=xh.IteratorPrototype,La=xh.BUGGY_SAFARI_ITERATORS,Jn=Qw("iterator"),Ph="keys",$n="values",Ch="entries",wh=function(){return this};Fh.exports=function(r,e,t,i,n,o,a){Kw(t,e,i);var c=function(x){if(x===n&&y)return y;if(!La&&x in f)return f[x];switch(x){case Ph:return function(){return new t(this,x)};case $n:return function(){return new t(this,x)};case Ch:return function(){return new t(this,x)}}return function(){return new t(this)}},p=e+" Iterator",g=!1,f=r.prototype,m=f[Jn]||f["@@iterator"]||n&&f[n],y=!La&&m||c(n),b=e=="Array"&&f.entries||m,P,F,I;if(b&&(P=yh(b.call(new r)),P!==Object.prototype&&P.next&&(!Da&&yh(P)!==Sh&&(bh?bh(P,Sh):$w(P[Jn])||gu(P,Jn,wh)),Xw(P,p,!0,!0),Da&&(kh[p]=wh))),Yw&&n==$n&&m&&m.name!==$n&&(!Da&&eI?Zw(f,"name",$n):(g=!0,y=function(){return Jw(m,this)})),n)if(F={values:c($n),keys:o?y:c(Ph),entries:c(Ch)},a)for(I in F)(La||g||!(I in f))&&gu(f,I,F[I]);else zw({target:e,proto:!0,forced:La||g},F);return(!Da||a)&&f[Jn]!==y&&gu(f,Jn,y,{name:n}),kh[e]=y,F}});var fu=h((HB,Th)=>{Th.exports=function(r,e){return{value:r,done:e}}});var Oh=h(()=>{"use strict";var tI=Sl().charAt,rI=Hn(),Eh=Jr(),iI=hu(),Ah=fu(),Rh="String Iterator",nI=Eh.set,sI=Eh.getterFor(Rh);iI(String,"String",function(r){nI(this,{type:Rh,string:rI(r),index:0})},function(){var e=sI(this),t=e.string,i=e.index,n;return i>=t.length?Ah(void 0,!0):(n=tI(t,i),e.index+=n.length,Ah(n,!1))})});var vu=h((WB,Bh)=>{var oI=le(),aI=Ie(),dI=Gr(),lI=aI("iterator");Bh.exports=!oI(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}),dI&&!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[lI]||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((GB,Mh)=>{var uI=ya(),cI=Z();Mh.exports=function(r){if(uI(r)==="Function")return cI(r)}});var Na=h((VB,Lh)=>{var Dh=Uh(),mI=Sa(),pI=ua(),gI=Dh(Dh.bind);Lh.exports=function(r,e){return mI(r),e===void 0?r:pI?gI(r,e):function(){return r.apply(e,arguments)}}});var Hh=h((zB,_h)=>{var Nh=Zl(),hI=Qe();_h.exports=function(r,e,t){return t.get&&Nh(t.get,e,{getter:!0}),t.set&&Nh(t.set,e,{setter:!0}),hI.f(r,e,t)}});var yu=h((JB,qh)=>{var fI=Fl(),vI=TypeError;qh.exports=function(r,e){if(fI(e,r))return r;throw vI("Incorrect invocation")}});var Vh=h(($B,Gh)=>{"use strict";var jh=he(),yI=Z(),bI=je(),kI=le(),bu=iu(),SI=tu(),PI=Hl(),CI=Nn(),wI=jl(),Xr=Object.assign,Wh=Object.defineProperty,II=yI([].concat);Gh.exports=!Xr||kI(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||bu(Xr({},e)).join("")!=i})?function(e,t){for(var i=CI(e),n=arguments.length,o=1,a=SI.f,c=PI.f;n>o;)for(var p=wI(arguments[o++]),g=a?II(bu(p),a(p)):bu(p),f=g.length,m=0,y;f>m;)y=g[m++],(!jh||bI(c,p,y))&&(i[y]=p[y]);return i}:Xr});var $h=h((KB,Jh)=>{var xI=je(),zh=Ze(),FI=Pa();Jh.exports=function(r,e,t){var i,n;zh(r);try{if(i=FI(r,"return"),!i){if(e==="throw")throw t;return t}i=xI(i,r)}catch(o){n=!0,i=o}if(e==="throw")throw t;if(n)throw i;return zh(i),t}});var Xh=h((XB,Kh)=>{var TI=Ze(),AI=$h();Kh.exports=function(r,e,t,i){try{return i?e(TI(t)[0],t[1]):e(t)}catch(n){AI(r,"throw",n)}}});var Qh=h((ZB,Zh)=>{var EI=Ie(),RI=Kr(),OI=EI("iterator"),BI=Array.prototype;Zh.exports=function(r){return r!==void 0&&(RI.Array===r||BI[OI]===r)}});var sf=h((QB,nf)=>{var MI=Z(),UI=le(),Yh=Q(),DI=_n(),LI=qn(),NI=$l(),ef=function(){},_I=[],tf=LI("Reflect","construct"),ku=/^\s*(?:class|function)\b/,HI=MI(ku.exec),qI=!ku.exec(ef),Kn=function(e){if(!Yh(e))return!1;try{return tf(ef,_I,e),!0}catch{return!1}},rf=function(e){if(!Yh(e))return!1;switch(DI(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return qI||!!HI(ku,NI(e))}catch{return!0}};rf.sham=!0;nf.exports=!tf||UI(function(){var r;return Kn(Kn.call)||!Kn(Object)||!Kn(function(){r=!0})||r})?rf:Kn});var Su=h((YB,of)=>{"use strict";var jI=Ca(),WI=Qe(),GI=zr();of.exports=function(r,e,t){var i=jI(e);i in r?WI.f(r,i,GI(0,t)):r[i]=t}});var _a=h((eM,df)=>{var VI=_n(),af=Pa(),zI=ha(),JI=Kr(),$I=Ie(),KI=$I("iterator");df.exports=function(r){if(!zI(r))return af(r,KI)||af(r,"@@iterator")||JI[VI(r)]}});var Pu=h((tM,lf)=>{var XI=je(),ZI=Sa(),QI=Ze(),YI=Al(),ex=_a(),tx=TypeError;lf.exports=function(r,e){var t=arguments.length<2?ex(r):e;if(ZI(t))return QI(XI(t,r));throw tx(YI(r)+" is not iterable")}});var pf=h((rM,mf)=>{"use strict";var rx=Na(),ix=je(),nx=Nn(),sx=Xh(),ox=Qh(),ax=sf(),dx=Oa(),uf=Su(),lx=Pu(),ux=_a(),cf=Array;mf.exports=function(e){var t=nx(e),i=ax(this),n=arguments.length,o=n>1?arguments[1]:void 0,a=o!==void 0;a&&(o=rx(o,n>2?arguments[2]:void 0));var c=ux(t),p=0,g,f,m,y,b,P;if(c&&!(this===cf&&ox(c)))for(y=lx(t,c),b=y.next,f=i?new this:[];!(m=ix(b,y)).done;p++)P=a?sx(y,o,[m.value,p],!0):m.value,uf(f,p,P);else for(g=dx(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 Cu=h((iM,hf)=>{var gf=Ql(),cx=Oa(),mx=Su(),px=Array,gx=Math.max;hf.exports=function(r,e,t){for(var i=cx(r),n=gf(e,i),o=gf(t===void 0?i:t,i),a=px(gx(o-n,0)),c=0;n<o;n++,c++)mx(a,c,r[n]);return a.length=c,a}});var wf=h((nM,Cf)=>{var ur=Z(),wu=2147483647,Xn=36,kf=1,Fu=26,hx=38,fx=700,vx=72,yx=128,bx="-",kx=/[^\0-\u007E]/,Sf=/[.\u3002\uFF0E\uFF61]/g,ff="Overflow: input needs wider integers to process",Iu=Xn-kf,vf=RangeError,Sx=ur(Sf.exec),Zr=Math.floor,xu=String.fromCharCode,yf=ur("".charCodeAt),Pf=ur([].join),xt=ur([].push),Px=ur("".replace),Cx=ur("".split),wx=ur("".toLowerCase),Ix=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?xt(e,((n&1023)<<10)+(o&1023)+65536):(xt(e,n),t--)}else xt(e,n)}return e},bf=function(r){return r+22+75*(r<26)},xx=function(r,e,t){var i=0;for(r=t?Zr(r/fx):r>>1,r+=Zr(r/e);r>Iu*Fu>>1;)r=Zr(r/Iu),i+=Xn;return Zr(i+(Iu+1)*r/(r+hx))},Fx=function(r){var e=[];r=Ix(r);var t=r.length,i=yx,n=0,o=vx,a,c;for(a=0;a<r.length;a++)c=r[a],c<128&&xt(e,xu(c));var p=e.length,g=p;for(p&&xt(e,bx);g<t;){var f=wu;for(a=0;a<r.length;a++)c=r[a],c>=i&&c<f&&(f=c);var m=g+1;if(f-i>Zr((wu-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>wu)throw vf(ff);if(c==i){for(var y=n,b=Xn;;){var P=b<=o?kf:b>=o+Fu?Fu:b-o;if(y<P)break;var F=y-P,I=Xn-P;xt(e,xu(bf(P+F%I))),y=Zr(F/I),b+=Xn}xt(e,xu(bf(y))),o=xx(n,m,g==p),n=0,g++}}n++,i++}return Pf(e,"")};Cf.exports=function(r){var e=[],t=Cx(Px(wx(r),Sf,"."),"."),i,n;for(i=0;i<t.length;i++)n=t[i],xt(e,Sx(kx,n)?"xn--"+Fx(n):n);return Pf(e,".")}});var Tu=h((sM,If)=>{var Tx=TypeError;If.exports=function(r,e){if(r<e)throw Tx("Not enough arguments");return r}});var Ff=h((oM,xf)=>{var Ax=Ie(),Ex=Vn(),Rx=Qe().f,Au=Ax("unscopables"),Eu=Array.prototype;Eu[Au]==null&&Rx(Eu,Au,{configurable:!0,value:Ex(null)});xf.exports=function(r){Eu[Au][r]=!0}});var Bf=h((aM,Of)=>{"use strict";var Ox=$r(),Ru=Ff(),Tf=Kr(),Ef=Jr(),Bx=Qe().f,Mx=hu(),Ha=fu(),Ux=Gr(),Dx=he(),Rf="Array Iterator",Lx=Ef.set,Nx=Ef.getterFor(Rf);Of.exports=Mx(Array,"Array",function(r,e){Lx(this,{type:Rf,target:Ox(r),index:0,kind:e})},function(){var r=Nx(this),e=r.target,t=r.kind,i=r.index++;return!e||i>=e.length?(r.target=void 0,Ha(void 0,!0)):t=="keys"?Ha(i,!1):t=="values"?Ha(e[i],!1):Ha([i,e[i]],!1)},"values");var Af=Tf.Arguments=Tf.Array;Ru("keys");Ru("values");Ru("entries");if(!Ux&&Dx&&Af.name!=="values")try{Bx(Af,"name",{value:"values"})}catch{}});var Uf=h((dM,Mf)=>{var _x=lr();Mf.exports=function(r,e,t){for(var i in e)_x(r,i,e[i],t);return r}});var Nf=h((lM,Lf)=>{var Df=Cu(),Hx=Math.floor,Ou=function(r,e){var t=r.length,i=Hx(t/2);return t<8?qx(r,e):jx(r,Ou(Df(r,0,i),e),Ou(Df(r,i),e),e)},qx=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},jx=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};Lf.exports=Ou});var ju=h((uM,nv)=>{"use strict";Bf();var Lu=Gn(),Yr=ge(),qa=je(),Ye=Z(),Wx=he(),Xf=vu(),Zf=lr(),Gx=Uf(),Vx=zn(),zx=pu(),Hu=Jr(),Qf=yu(),Bu=Q(),Jx=we(),$x=Na(),Kx=_n(),Xx=Ze(),Yf=It(),fe=Hn(),Zx=Vn(),_f=zr(),Nu=Pu(),Qx=_a(),Qr=Tu(),Yx=Ie(),eF=Nf(),tF=Yx("iterator"),Yn="URLSearchParams",ev=Yn+"Iterator",tv=Hu.set,Ge=Hu.getterFor(Yn),rF=Hu.getterFor(ev),iF=Object.getOwnPropertyDescriptor,qu=function(r){if(!Wx)return Yr[r];var e=iF(Yr,r);return e&&e.value},Hf=qu("fetch"),Wa=qu("Request"),Zn=qu("Headers"),Mu=Wa&&Wa.prototype,qf=Zn&&Zn.prototype,nF=Yr.RegExp,sF=Yr.TypeError,rv=Yr.decodeURIComponent,oF=Yr.encodeURIComponent,aF=Ye("".charAt),jf=Ye([].join),cr=Ye([].push),_u=Ye("".replace),dF=Ye([].shift),Wf=Ye([].splice),Gf=Ye("".split),lF=Ye("".slice),uF=/\+/g,Vf=Array(4),cF=function(r){return Vf[r-1]||(Vf[r-1]=nF("((?:%[\\da-f]{2}){"+r+"})","gi"))},mF=function(r){try{return rv(r)}catch{return r}},zf=function(r){var e=_u(r,uF," "),t=4;try{return rv(e)}catch{for(;t;)e=_u(e,cF(t--),mF);return e}},pF=/[!'()~]|%20/g,gF={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},hF=function(r){return gF[r]},Jf=function(r){return _u(oF(r),pF,hF)},Uu=zx(function(e,t){tv(this,{type:ev,iterator:Nu(Ge(e).entries),kind:t})},"Iterator",function(){var e=rF(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"?aF(r,0)==="?"?lF(r,1):r:fe(r)))};iv.prototype={type:Yn,bindURL:function(r){this.url=r,this.update()},parseObject:function(r){var e=Qx(r),t,i,n,o,a,c,p;if(e)for(t=Nu(r,e),i=t.next;!(n=qa(i,t)).done;){if(o=Nu(Xx(n.value)),a=o.next,(c=qa(a,o)).done||(p=qa(a,o)).done||!qa(a,o).done)throw sF("Expected sequence with length 2");cr(this.entries,{key:fe(c.value),value:fe(p.value)})}else for(var g in r)Jx(r,g)&&cr(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,"="),cr(this.entries,{key:zf(dF(n)),value:zf(jf(n,"="))}))},serialize:function(){for(var r=this.entries,e=[],t=0,i;t<r.length;)i=r[t++],cr(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 Ga=function(){Qf(this,Qn);var e=arguments.length>0?arguments[0]:void 0;tv(this,new iv(e))},Qn=Ga.prototype;Gx(Qn,{append:function(e,t){Qr(arguments.length,2);var i=Ge(this);cr(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&&cr(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||cr(n,{key:a,value:c}),i.updateURL()},sort:function(){var e=Ge(this);eF(e.entries,function(t,i){return t.key>i.key?1:-1}),e.updateURL()},forEach:function(e){for(var t=Ge(this).entries,i=$x(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 Uu(this,"keys")},values:function(){return new Uu(this,"values")},entries:function(){return new Uu(this,"entries")}},{enumerable:!0});Zf(Qn,tF,Qn.entries,{name:"entries"});Zf(Qn,"toString",function(){return Ge(this).serialize()},{enumerable:!0});Vx(Ga,Yn);Lu({global:!0,constructor:!0,forced:!Xf},{URLSearchParams:Ga});!Xf&&Bu(Zn)&&($f=Ye(qf.has),Kf=Ye(qf.set),Du=function(r){if(Yf(r)){var e=r.body,t;if(Kx(e)===Yn)return t=r.headers?new Zn(r.headers):new Zn,$f(t,"content-type")||Kf(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),Zx(r,{body:_f(0,fe(e)),headers:_f(0,t)})}return r},Bu(Hf)&&Lu({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return Hf(e,arguments.length>1?Du(arguments[1]):{})}}),Bu(Wa)&&(ja=function(e){return Qf(this,Mu),new Wa(e,arguments.length>1?Du(arguments[1]):{})},Mu.constructor=ja,ja.prototype=Mu,Lu({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:ja})));var $f,Kf,Du,ja;nv.exports={URLSearchParams:Ga,getState:Ge}});var Cv=h(()=>{"use strict";Oh();var fF=Gn(),nc=he(),vF=vu(),sc=ge(),sv=Na(),Ee=Z(),Ka=lr(),xe=Hh(),yF=yu(),tc=we(),oc=Vh(),ei=pf(),Ve=Cu(),bF=Sl().codeAt,kF=wf(),ct=Hn(),SF=zn(),PF=Tu(),vv=ju(),yv=Jr(),CF=yv.set,Xa=yv.getterFor("URL"),wF=vv.URLSearchParams,IF=vv.getState,es=sc.URL,rc=sc.TypeError,Za=sc.parseInt,xF=Math.floor,ov=Math.pow,Ae=Ee("".charAt),ze=Ee(/./.exec),rs=Ee([].join),FF=Ee(1 .toString),TF=Ee([].pop),ri=Ee([].push),av=Ee("".replace),AF=Ee([].shift),EF=Ee("".split),ns=Ee("".slice),Qa=Ee("".toLowerCase),RF=Ee([].unshift),OF="Invalid authority",Wu="Invalid scheme",mr="Invalid host",dv="Invalid port",bv=/[a-z]/i,BF=/[\d+-.a-z]/i,ic=/\d/,MF=/^0x/i,UF=/^[0-7]+$/,DF=/^\d+$/,kv=/^[\da-f]+$/i,LF=/[\0\t\n\r #%/:<>?@[\\\]^|]/,NF=/[\0\t\n\r #/:<>?@[\\\]^|]/,_F=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,HF=/[\t\n\r]/g,Fe,qF=function(r){var e=EF(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(MF,o)?16:8,o=ns(o,a==8?1:2)),o==="")c=0;else{if(!ze(a==10?DF:a==8?UF:kv,o))return r;c=Za(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=TF(i),n=0;n<i.length;n++)p+=i[n]*ov(256,3-n);return p},jF=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+Za(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(ic,y()))return;for(;ze(ic,y());){if(g=Za(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},WF=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},ts=function(r){var e,t,i,n;if(typeof r=="number"){for(e=[],t=0;t<4;t++)RF(e,r%256),r=xF(r/256);return rs(e,".")}else if(typeof r=="object"){for(e="",i=WF(r),t=0;t<8;t++)n&&r[t]===0||(n&&(n=!1),i===t?(e+=t?":":"::",n=!0):(e+=FF(r[t],16),t<7&&(e+=":")));return"["+e+"]"}return r},$a={},Sv=oc({},$a,{" ":1,'"':1,"<":1,">":1,"`":1}),Pv=oc({},Sv,{"#":1,"?":1,"{":1,"}":1}),Gu=oc({},Pv,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Ft=function(r,e){var t=bF(r,0);return t>32&&t<127&&!tc(e,r)?r:encodeURIComponent(r)},Va={ftp:21,file:null,http:80,https:443,ws:80,wss:443},is=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&&is(ns(r,0,2))&&(r.length==2||(e=Ae(r,2))==="/"||e==="\\"||e==="?"||e==="#")},GF=function(r){return r==="."||Qa(r)==="%2e"},VF=function(r){return r=Qa(r),r===".."||r==="%2e."||r===".%2e"||r==="%2e%2e"},Vu={},uv={},zu={},cv={},mv={},Ju={},pv={},gv={},za={},Ja={},$u={},Ku={},Xu={},Zu={},hv={},Qu={},ti={},et={},fv={},pr={},ut={},ac=function(r,e,t){var i=ct(r),n,o,a;if(e){if(o=this.parse(i),o)throw rc(o);this.searchParams=null}else{if(t!==void 0&&(n=new ac(t,!0)),o=this.parse(i,null,n),o)throw rc(o);a=IF(new wF),a.bindURL(this),this.searchParams=a}};ac.prototype={type:"URL",parse:function(r,e,t){var i=this,n=e||Vu,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,_F,"")),r=av(r,HF,""),f=ei(r);o<=f.length;){switch(m=f[o],n){case Vu:if(m&&ze(bv,m))a+=Qa(m),n=uv;else{if(e)return Wu;n=zu;continue}break;case uv:if(m&&(ze(BF,m)||m=="+"||m=="-"||m=="."))a+=Qa(m);else if(m==":"){if(e&&(i.isSpecial()!=tc(Va,a)||a=="file"&&(i.includesCredentials()||i.port!==null)||i.scheme=="file"&&!i.host))return;if(i.scheme=a,e){i.isSpecial()&&Va[i.scheme]==i.port&&(i.port=null);return}a="",i.scheme=="file"?n=Zu: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 Wu;a="",n=zu,o=0;continue}break;case zu:if(!t||t.cannotBeABaseURL&&m!="#")return Wu;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"?Zu:Ju;continue;case cv:if(m=="/"&&f[o+1]=="/")n=za,o++;else{n=Ju;continue}break;case mv:if(m=="/"){n=Ja;break}else{n=et;continue}case Ju: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=pr;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=za;else if(m=="/")n=Ja;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=za,m!="/"||Ae(a,o+1)!="/")continue;o++;break;case za:if(m!="/"&&m!="\\"){n=Ja;continue}break;case Ja:if(m=="@"){c&&(a="%40"+a),c=!0,y=ei(a);for(var P=0;P<y.length;P++){var F=y[P];if(F==":"&&!g){g=!0;continue}var I=Ft(F,Gu);g?i.password+=I:i.username+=I}a=""}else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(c&&a=="")return OF;o-=ei(a).length+1,a="",n=$u}else a+=m;break;case $u:case Ku:if(e&&i.scheme=="file"){n=Qu;continue}else if(m==":"&&!p){if(a=="")return mr;if(b=i.parseHost(a),b)return b;if(a="",n=Xu,e==Ku)return}else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(i.isSpecial()&&a=="")return mr;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 Xu:if(ze(ic,m))a+=m;else if(m==Fe||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()||e){if(a!=""){var x=Za(a,10);if(x>65535)return dv;i.port=i.isSpecial()&&x===Va[i.scheme]?null:x,a=""}if(e)return;n=ti;continue}else return dv;break;case Zu: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=pr;else if(m=="#")i.host=t.host,i.path=Ve(t.path),i.query=t.query,i.fragment="",n=ut;else{lv(rs(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=Qu;break}t&&t.scheme=="file"&&!lv(rs(Ve(f,o),""))&&(is(t.path[0],!0)?ri(i.path,t.path[0]):i.host=t.host),n=et;continue;case Qu:if(m==Fe||m=="/"||m=="\\"||m=="?"||m=="#"){if(!e&&is(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=pr;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(VF(a)?(i.shortenPath(),m!="/"&&!(m=="\\"&&i.isSpecial())&&ri(i.path,"")):GF(a)?m!="/"&&!(m=="\\"&&i.isSpecial())&&ri(i.path,""):(i.scheme=="file"&&!i.path.length&&is(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]==="";)AF(i.path);m=="?"?(i.query="",n=pr):m=="#"&&(i.fragment="",n=ut)}else a+=Ft(m,Pv);break;case fv:m=="?"?(i.query="",n=pr):m=="#"?(i.fragment="",n=ut):m!=Fe&&(i.path[0]+=Ft(m,$a));break;case pr:!e&&m=="#"?(i.fragment="",n=ut):m!=Fe&&(m=="'"&&i.isSpecial()?i.query+="%27":m=="#"?i.query+="%23":i.query+=Ft(m,$a));break;case ut:m!=Fe&&(i.fragment+=Ft(m,Sv));break}o++}},parseHost:function(r){var e,t,i;if(Ae(r,0)=="["){if(Ae(r,r.length-1)!="]"||(e=jF(ns(r,1,-1)),!e))return mr;this.host=e}else if(this.isSpecial()){if(r=kF(r),ze(LF,r)||(e=qF(r),e===null))return mr;this.host=e}else{if(ze(NF,r))return mr;for(e="",t=ei(r),i=0;i<t.length;i++)e+=Ft(t[i],$a);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme=="file"},includesCredentials:function(){return this.username!=""||this.password!=""},isSpecial:function(){return tc(Va,this.scheme)},shortenPath:function(){var r=this.path,e=r.length;e&&(this.scheme!="file"||e!=1||!is(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+=ts(n),o!==null&&(g+=":"+o)):e=="file"&&(g+="//"),g+=r.cannotBeABaseURL?a[0]:a.length?"/"+rs(a,"/"):"",c!==null&&(g+="?"+c),p!==null&&(g+="#"+p),g},setHref:function(r){var e=this.parse(r);if(e)throw rc(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+"://"+ts(this.host)+(e!==null?":"+e:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(r){this.parse(ct(r)+":",Vu)},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+=Ft(e[t],Gu)}},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+=Ft(e[t],Gu)}},getHost:function(){var r=this.host,e=this.port;return r===null?"":e===null?ts(r):ts(r)+":"+e},setHost:function(r){this.cannotBeABaseURL||this.parse(r,$u)},getHostname:function(){var r=this.host;return r===null?"":ts(r)},setHostname:function(r){this.cannotBeABaseURL||this.parse(r,Ku)},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,Xu))},getPathname:function(){var r=this.path;return this.cannotBeABaseURL?r[0]:r.length?"/"+rs(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=ns(r,1)),this.query="",this.parse(r,pr)),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=ns(r,1)),this.fragment="",this.parse(r,ut)},update:function(){this.query=this.searchParams.serialize()||null}};var ii=function(e){var t=yF(this,ne),i=PF(arguments.length,1)>1?arguments[1]:void 0,n=CF(t,new ac(e,!1,i));nc||(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 Xa(this)[r]()},set:e&&function(t){return Xa(this)[e](t)},configurable:!0,enumerable:!0}};nc&&(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")));Ka(ne,"toJSON",function(){return Xa(this).serialize()},{enumerable:!0});Ka(ne,"toString",function(){return Xa(this).serialize()},{enumerable:!0});es&&(Yu=es.createObjectURL,ec=es.revokeObjectURL,Yu&&Ka(ii,"createObjectURL",sv(Yu,es)),ec&&Ka(ii,"revokeObjectURL",sv(ec,es)));var Yu,ec;SF(ii,"URL");fF({global:!0,constructor:!0,forced:!vF,sham:!nc},{URL:ii})});var wv=h(()=>{Cv()});var Iv=h(()=>{"use strict";var zF=Gn(),JF=je();zF({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return JF(URL.prototype.toString,this)}})});var xv=h(()=>{ju()});var Tv=h((bM,Fv)=>{var $F=ge();Fv.exports=$F});var Ev=h((kM,Av)=>{wv();Iv();xv();var KF=Tv();Av.exports=KF.URL});var Mc=h((JL,_y)=>{var lA=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 gA(e)?"generatorfunction":"function";if(uA(e))return"array";if(vA(e))return"buffer";if(fA(e))return"arguments";if(mA(e))return"date";if(cA(e))return"error";if(pA(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(hA(e))return"generator";switch(t=lA.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 uA(r){return Array.isArray?Array.isArray(r):r instanceof Array}function cA(r){return r instanceof Error||typeof r.message=="string"&&r.constructor&&typeof r.constructor.stackTraceLimit=="number"}function mA(r){return r instanceof Date?!0:typeof r.toDateString=="function"&&typeof r.getDate=="function"&&typeof r.setDate=="function"}function pA(r){return r instanceof RegExp?!0:typeof r.flags=="string"&&typeof r.ignoreCase=="boolean"&&typeof r.multiline=="boolean"&&typeof r.global=="boolean"}function gA(r,e){return Ny(r)==="GeneratorFunction"}function hA(r){return typeof r.throw=="function"&&typeof r.return=="function"&&typeof r.next=="function"}function fA(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 vA(r){return r.constructor&&typeof r.constructor.isBuffer=="function"?r.constructor.isBuffer(r):!1}});var jy=h(($L,qy)=>{"use strict";var Hy=Symbol.prototype.valueOf,yA=Mc();function bA(r,e){switch(yA(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 CA(r);case"symbol":return wA(r);case"arraybuffer":return SA(r);case"float32array":case"float64array":case"int16array":case"int32array":case"int8array":case"uint16array":case"uint32array":case"uint8clampedarray":case"uint8array":return PA(r);case"regexp":return kA(r);case"error":return Object.create(r);default:return r}}function kA(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 SA(r){let e=new r.constructor(r.byteLength);return new Uint8Array(e).set(new Uint8Array(r)),e}function PA(r,e){return new r.constructor(r.buffer,r.byteOffset,r.length)}function CA(r){let e=r.length,t=Buffer.allocUnsafe?Buffer.allocUnsafe(e):Buffer.from(e);return r.copy(t),t}function wA(r){return Hy?Object(Hy.call(r)):{}}qy.exports=bA});var Gy=h((KL,Wy)=>{"use strict";Wy.exports=function(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}});var Jy=h((XL,zy)=>{"use strict";var IA=Gy();function Vy(r){return IA(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((ZL,$y)=>{"use strict";var xA=jy(),FA=Mc(),TA=Jy();function Uc(r,e){switch(FA(r)){case"object":return AA(r,e);case"array":return EA(r,e);default:return xA(r)}}function AA(r,e){if(typeof e=="function")return e(r);if(e||TA(r)){let t=new r.constructor;for(let i in r)t[i]=Uc(r[i],e);return t}return r}function EA(r,e){let t=new r.constructor(r.length);for(let i=0;i<r.length;i++)t[i]=Uc(r[i],e);return t}$y.exports=Uc});var Jc=h((ys,Fi)=>{var RA=200,zc="__lodash_hash_undefined__",wd=1,ab=2,db=9007199254740991,vd="[object Arguments]",_c="[object Array]",OA="[object AsyncFunction]",lb="[object Boolean]",ub="[object Date]",cb="[object Error]",mb="[object Function]",BA="[object GeneratorFunction]",yd="[object Map]",pb="[object Number]",MA="[object Null]",xi="[object Object]",Xy="[object Promise]",UA="[object Proxy]",gb="[object RegExp]",bd="[object Set]",hb="[object String]",DA="[object Symbol]",LA="[object Undefined]",Hc="[object WeakMap]",fb="[object ArrayBuffer]",kd="[object DataView]",NA="[object Float32Array]",_A="[object Float64Array]",HA="[object Int8Array]",qA="[object Int16Array]",jA="[object Int32Array]",WA="[object Uint8Array]",GA="[object Uint8ClampedArray]",VA="[object Uint16Array]",zA="[object Uint32Array]",JA=/[\\^$.*+?()[\]{}|]/g,$A=/^\[object .+?Constructor\]$/,KA=/^(?:0|[1-9]\d*)$/,W={};W[NA]=W[_A]=W[HA]=W[qA]=W[jA]=W[WA]=W[GA]=W[VA]=W[zA]=!0;W[vd]=W[_c]=W[fb]=W[lb]=W[kd]=W[ub]=W[cb]=W[mb]=W[yd]=W[pb]=W[xi]=W[gb]=W[bd]=W[hb]=W[Hc]=!1;var vb=typeof global=="object"&&global&&global.Object===Object&&global,XA=typeof self=="object"&&self&&self.Object===Object&&self,ht=vb||XA||Function("return this")(),yb=typeof ys=="object"&&ys&&!ys.nodeType&&ys,Zy=yb&&typeof Fi=="object"&&Fi&&!Fi.nodeType&&Fi,bb=Zy&&Zy.exports===yb,Dc=bb&&vb.process,Qy=function(){try{return Dc&&Dc.binding&&Dc.binding("util")}catch{}}(),Yy=Qy&&Qy.isTypedArray;function ZA(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 QA(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}function YA(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 eE(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}function tE(r){return function(e){return r(e)}}function rE(r,e){return r.has(e)}function iE(r,e){return r?.[e]}function nE(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}function sE(r,e){return function(t){return r(e(t))}}function oE(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}var aE=Array.prototype,dE=Function.prototype,Id=Object.prototype,Lc=ht["__core-js_shared__"],kb=dE.toString,rt=Id.hasOwnProperty,eb=function(){var r=/[^.]+$/.exec(Lc&&Lc.keys&&Lc.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),Sb=Id.toString,lE=RegExp("^"+kb.call(rt).replace(JA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),tb=bb?ht.Buffer:void 0,Sd=ht.Symbol,rb=ht.Uint8Array,Pb=Id.propertyIsEnumerable,uE=aE.splice,kr=Sd?Sd.toStringTag:void 0,ib=Object.getOwnPropertySymbols,cE=tb?tb.isBuffer:void 0,mE=sE(Object.keys,Object),qc=Ti(ht,"DataView"),bs=Ti(ht,"Map"),jc=Ti(ht,"Promise"),Wc=Ti(ht,"Set"),Gc=Ti(ht,"WeakMap"),ks=Ti(Object,"create"),pE=Cr(qc),gE=Cr(bs),hE=Cr(jc),fE=Cr(Wc),vE=Cr(Gc),nb=Sd?Sd.prototype:void 0,Nc=nb?nb.valueOf:void 0;function Sr(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 yE(){this.__data__=ks?ks(null):{},this.size=0}function bE(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}function kE(r){var e=this.__data__;if(ks){var t=e[r];return t===zc?void 0:t}return rt.call(e,r)?e[r]:void 0}function SE(r){var e=this.__data__;return ks?e[r]!==void 0:rt.call(e,r)}function PE(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=ks&&e===void 0?zc:e,this}Sr.prototype.clear=yE;Sr.prototype.delete=bE;Sr.prototype.get=kE;Sr.prototype.has=SE;Sr.prototype.set=PE;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 CE(){this.__data__=[],this.size=0}function wE(r){var e=this.__data__,t=xd(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():uE.call(e,t,1),--this.size,!0}function IE(r){var e=this.__data__,t=xd(e,r);return t<0?void 0:e[t][1]}function xE(r){return xd(this.__data__,r)>-1}function FE(r,e){var t=this.__data__,i=xd(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}ft.prototype.clear=CE;ft.prototype.delete=wE;ft.prototype.get=IE;ft.prototype.has=xE;ft.prototype.set=FE;function Pr(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 TE(){this.size=0,this.__data__={hash:new Sr,map:new(bs||ft),string:new Sr}}function AE(r){var e=Fd(this,r).delete(r);return this.size-=e?1:0,e}function EE(r){return Fd(this,r).get(r)}function RE(r){return Fd(this,r).has(r)}function OE(r,e){var t=Fd(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}Pr.prototype.clear=TE;Pr.prototype.delete=AE;Pr.prototype.get=EE;Pr.prototype.has=RE;Pr.prototype.set=OE;function Pd(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new Pr;++e<t;)this.add(r[e])}function BE(r){return this.__data__.set(r,zc),this}function ME(r){return this.__data__.has(r)}Pd.prototype.add=Pd.prototype.push=BE;Pd.prototype.has=ME;function Nt(r){var e=this.__data__=new ft(r);this.size=e.size}function UE(){this.__data__=new ft,this.size=0}function DE(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}function LE(r){return this.__data__.get(r)}function NE(r){return this.__data__.has(r)}function _E(r,e){var t=this.__data__;if(t instanceof ft){var i=t.__data__;if(!bs||i.length<RA-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new Pr(i)}return t.set(r,e),this.size=t.size,this}Nt.prototype.clear=UE;Nt.prototype.delete=DE;Nt.prototype.get=LE;Nt.prototype.has=NE;Nt.prototype.set=_E;function HE(r,e){var t=Cd(r),i=!t&&tR(r),n=!t&&!i&&Vc(r),o=!t&&!i&&!n&&Ab(r),a=t||i||n||o,c=a?eE(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")||XE(g,p)))&&c.push(g);return c}function xd(r,e){for(var t=r.length;t--;)if(Ib(r[t][0],e))return t;return-1}function qE(r,e,t){var i=e(r);return Cd(r)?i:QA(i,t(r))}function Ps(r){return r==null?r===void 0?LA:MA:kr&&kr in Object(r)?$E(r):eR(r)}function sb(r){return Ss(r)&&Ps(r)==vd}function Cb(r,e,t,i,n){return r===e?!0:r==null||e==null||!Ss(r)&&!Ss(e)?r!==r&&e!==e:jE(r,e,t,i,Cb,n)}function jE(r,e,t,i,n,o){var a=Cd(r),c=Cd(e),p=a?_c:Lt(r),g=c?_c:Lt(e);p=p==vd?xi:p,g=g==vd?xi:g;var f=p==xi,m=g==xi,y=p==g;if(y&&Vc(r)){if(!Vc(e))return!1;a=!0,f=!1}if(y&&!f)return o||(o=new Nt),a||Ab(r)?wb(r,e,t,i,n,o):zE(r,e,p,t,i,n,o);if(!(t&wd)){var b=f&&rt.call(r,"__wrapped__"),P=m&&rt.call(e,"__wrapped__");if(b||P){var F=b?r.value():r,I=P?e.value():e;return o||(o=new Nt),n(F,I,t,i,o)}}return y?(o||(o=new Nt),JE(r,e,t,i,n,o)):!1}function WE(r){if(!Tb(r)||QE(r))return!1;var e=xb(r)?lE:$A;return e.test(Cr(r))}function GE(r){return Ss(r)&&Fb(r.length)&&!!W[Ps(r)]}function VE(r){if(!YE(r))return mE(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&wd,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 Pd:void 0;for(o.set(r,e),o.set(e,r);++f<c;){var b=r[f],P=e[f];if(i)var F=a?i(P,b,f,e,r,o):i(b,P,f,r,e,o);if(F!==void 0){if(F)continue;m=!1;break}if(y){if(!YA(e,function(I,x){if(!rE(y,x)&&(b===I||n(b,I,t,i,o)))return y.push(x)})){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 zE(r,e,t,i,n,o,a){switch(t){case kd: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 yd:var c=nE;case bd:var p=i&wd;if(c||(c=oE),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 DA:if(Nc)return Nc.call(r)==Nc.call(e)}return!1}function JE(r,e,t,i,n,o){var a=t&wd,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 F=a;++m<p;){y=c[m];var I=r[y],x=e[y];if(i)var Ce=a?i(x,I,y,e,r,o):i(I,x,y,r,e,o);if(!(Ce===void 0?I===x||n(I,x,t,i,o):Ce)){P=!1;break}F||(F=y=="constructor")}if(P&&!F){var wt=r.constructor,la=e.constructor;wt!=la&&"constructor"in r&&"constructor"in e&&!(typeof wt=="function"&&wt instanceof wt&&typeof la=="function"&&la instanceof la)&&(P=!1)}return o.delete(r),o.delete(e),P}function ob(r){return qE(r,nR,KE)}function Fd(r,e){var t=r.__data__;return ZE(e)?t[typeof e=="string"?"string":"hash"]:t.map}function Ti(r,e){var t=iE(r,e);return WE(t)?t:void 0}function $E(r){var e=rt.call(r,kr),t=r[kr];try{r[kr]=void 0;var i=!0}catch{}var n=Sb.call(r);return i&&(e?r[kr]=t:delete r[kr]),n}var KE=ib?function(r){return r==null?[]:(r=Object(r),ZA(ib(r),function(e){return Pb.call(r,e)}))}:sR,Lt=Ps;(qc&&Lt(new qc(new ArrayBuffer(1)))!=kd||bs&&Lt(new bs)!=yd||jc&&Lt(jc.resolve())!=Xy||Wc&&Lt(new Wc)!=bd||Gc&&Lt(new Gc)!=Hc)&&(Lt=function(r){var e=Ps(r),t=e==xi?r.constructor:void 0,i=t?Cr(t):"";if(i)switch(i){case pE:return kd;case gE:return yd;case hE:return Xy;case fE:return bd;case vE:return Hc}return e});function XE(r,e){return e=e??db,!!e&&(typeof r=="number"||KA.test(r))&&r>-1&&r%1==0&&r<e}function ZE(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}function QE(r){return!!eb&&eb in r}function YE(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||Id;return r===t}function eR(r){return Sb.call(r)}function Cr(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 tR=sb(function(){return arguments}())?sb:function(r){return Ss(r)&&rt.call(r,"callee")&&!Pb.call(r,"callee")},Cd=Array.isArray;function rR(r){return r!=null&&Fb(r.length)&&!xb(r)}var Vc=cE||oR;function iR(r,e){return Cb(r,e)}function xb(r){if(!Tb(r))return!1;var e=Ps(r);return e==mb||e==BA||e==OA||e==UA}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 Ss(r){return r!=null&&typeof r=="object"}var Ab=Yy?tE(Yy):GE;function nR(r){return rR(r)?HE(r):VE(r)}function sR(){return[]}function oR(){return!1}Fi.exports=iR});var vS=h(zd=>{"use strict";zd.byteLength=MR;zd.toByteArray=DR;zd.fromByteArray=_R;var st=[],_e=[],BR=typeof Uint8Array<"u"?Uint8Array:Array,wm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Nr=0,hS=wm.length;Nr<hS;++Nr)st[Nr]=wm[Nr],_e[wm.charCodeAt(Nr)]=Nr;var Nr,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 MR(r){var e=fS(r),t=e[0],i=e[1];return(t+i)*3/4-i}function UR(r,e,t){return(e+t)*3/4-t}function DR(r){var e,t=fS(r),i=t[0],n=t[1],o=new BR(UR(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 NR(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 _R(r){for(var e,t=r.length,i=t%3,n=[],o=16383,a=0,c=t-i;a<c;a+=o)n.push(NR(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 Cq=Ln(Ev(),1);function v(r,e){if(r==null)throw Error(e??"Expected nonnullish value.")}function gr(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 Tt(r){return r.startsWith(se.COMMENT)}function Ya(r){return r.startsWith(se.ACCOUNT)}function hr(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 XF(r){gr(Tt(r),`Expected comment id to start with ${se.COMMENT}, got ${r}}`)}function ZF(r){gr(Ya(r),`Expected account id to start with ${se.ACCOUNT}, got ${r}}`)}function QF(r){gr(hr(r),`Expected link id to start with ${se.LINK}, got ${r}}`)}function YF(r){gr(Rv(r),`Expected message id to start with ${se.MESSAGE}, got ${r}}`)}function eT(r){gr(Ov(r),`Expected subreddit id to start with ${se.SUBREDDIT}, got ${r}}`)}function tT(r){gr(Bv(r),`Expected award id to start with ${se.AWARD}, got ${r}}`)}function ni(r){return XF(r),r}function oe(r){return ZF(r),r}function ve(r){return QF(r),r}function rT(r){return YF(r),r}function ie(r){return eT(r),r}function iT(r){return tT(r),r}function Re(r){if(Tt(r))return ni(r);if(Ya(r))return oe(r);if(hr(r))return ve(r);if(Rv(r))return rT(r);if(Ov(r))return ie(r);if(Bv(r))return iT(r);throw new Error(`Expected thing id to start with ${Object.values(se).join(", ")} got ${r}}`)}function dc(r){return Tt(r)}import*as C from"@devvit/protos";var ed=class{constructor(e){}};var lc=(t=>(t.Installation="installation",t.App="app",t))(lc||{});function fr(r,e=new Set){for(let t of r){if(t.type==="group"){fr(t.fields,e);continue}let i=t.name;if(e.has(i))throw new Error(`Duplicate field name: ${i}`);e.add(i)}nT(r)}function nT(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 At=Object.freeze({INTERVAL:0,FORM:1,STATE:2,CHANNEL:3});var EM=["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 bT,GetFieldsResponse as kT}from"@devvit/protos";import{FormFieldType as Oe}from"@devvit/protos";function mt(r){return r.map(e=>{switch(e.type){case"string":return sT(e);case"image":return oT(e);case"paragraph":return aT(e);case"number":return dT(e);case"select":return lT(e);case"boolean":return uT(e);case"group":return cT(e);default:throw new Error("Unknown field type.")}})}function sT(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 oT(r){return{disabled:r.disabled,fieldId:r.name,fieldType:Oe.IMAGE,helpText:r.helpText,label:r.label,required:r.required}}function aT(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 dT(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 lT(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 uT(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 cT(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 yT}from"@devvit/protos";import{RealtimeSubscriptionStatus as Uv}from"@devvit/protos";var D=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 Dv(r){function e(t){let n=r.currentHookIndex,o=r.getCurrentComponentState(),a=r.getPreviousComponentState(),c=r.metadata[D.App]?.values[0];v(c,"useChannel - app is missing from Context");let p=r.metadata[D.Installation]?.values[0];v(p,"useChannel - installation is missing from Context");async function g(I){let x=o[n].channel;if(o[n].active)if(o[n].connected)await r.realtime.send(x,I);else throw Error(`Failed to send to channel '${x}'; it is active but not yet connected`);else throw Error(`Cannot send a message over inactive channel: ${x}`)}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 x;switch(I.status){case Uv.REALTIME_SUBSCRIBED:o[n].connected=!0,x=t.onSubscribed?.();break;case Uv.REALTIME_UNSUBSCRIBED:o[n].connected=!1,x=t.onUnsubscribed?.();break;default:x=t.onMessage(I.event?.data?.msg);break}await x}}let b={channel:`${c}:${p}:${t.name}`,active:!1,connected:!1,preventCallback:!1,type:At.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 F=0;return b.active&&b.connected?F=2:b.active&&!b.connected?F=1:!b.active&&b.connected?F=3:!b.active&&!b.connected&&(F=4),{subscribe:f,unsubscribe:m,send:g,status:F}}return e}import{FormFieldType as si}from"@devvit/protos";function uc(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 Et(r){return Object.keys(r).reduce((e,t)=>{let i=uc(r[t]);return i!==void 0&&(e[t]=i),e},{})}function Lv(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:At.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(Et(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:At.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===At.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:At.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 gc={now(){return new Date}};function Hv(r){return`__autocache__${r}`}function qv(r){return`__lock__${r}`}var pT=300,gT=1e3,td=5e3,cc=3,jv=.1,Wv=1e3,hT=3e4;function Gv(r){if(r.error)throw new Error(r.error);return r.value}var Rt,Ot,Be,oi,$,Vv,zv,Jv,mc,$v,Kv,pc,Xv,rd=class{constructor(e,t,i=gc){l(this,$);l(this,Rt);l(this,Ot,{});l(this,Be);l(this,oi);d(this,Rt,e),d(this,oi,t),d(this,Be,i)}async cache(e,t){d(this,Ot,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,$,pc).call(this,t.key),o=await S(this,$,zv).call(this,t,n,e);return Gv(o)}};Rt=new WeakMap,Ot=new WeakMap,Be=new WeakMap,oi=new WeakMap,$=new WeakSet,Vv=function(e){let t=s(this,Ot)[e];if(t){let i=s(this,Be).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<cc&&Math.random()<jv&&t.errorTime+Wv<i;if(t?.expires&&t.expires<i&&t.checkedAt+Wv<i||n){delete s(this,Ot)[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<cc&&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,Rt).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,$,mc).call(this,p,e.key,e.ttl)}},mc=async function(e,t,i){let n=Math.min(i,gT),o=await S(this,$,pc).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,pT)),S(this,$,mc).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,Ot)[e]=t,await s(this,Rt).set(Hv(e),JSON.stringify(t),{expiration:new Date(o+hT)}),t.error&&t.errorCount<cc&&await s(this,Rt).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},pc=async function(e){let t=await s(this,Rt).get(Hv(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Be).now().getTime(),s(this,Ot)[e]=i,i}},Xv=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 Zv(r,e,t=gc){let i=new rd(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 Bt,ci=class{constructor(e){l(this,Bt);d(this,Bt,e)}async get(e){let{messages:t}=await u.kvStorePlugin.Get({keys:[e]},s(this,Bt));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,Bt))}async delete(e){await u.kvStorePlugin.Del({keys:[e]},s(this,Bt))}async list(){let{keys:e}=await u.kvStorePlugin.List({filter:"*"},s(this,Bt));return e}};Bt=new WeakMap;var ss,mi=class{constructor(e){l(this,ss);d(this,ss,e)}async upload(e){let t=await u.mediaPlugin.Upload(e,s(this,ss));if(!t.mediaId)throw new Error("unable to get mediaId via uploads");return Promise.resolve({mediaId:t.mediaId,mediaUrl:t.mediaUrl})}};ss=new WeakMap;var os,pi=class{constructor(e){l(this,os);d(this,os,e)}async add(e){await u.modLogPlugin.Add(e,s(this,os))}};os=new WeakMap;var as,gi=class{constructor(e){l(this,as);d(this,as,e)}async send(e,t){await u.realtimePlugin.Send({channel:e,data:{msg:t}},s(this,as))}};as=new WeakMap;var k,ds,ls,hi=class{constructor(e){l(this,k);l(this,ds);l(this,ls);d(this,k,e),d(this,ds,new nd(e))}get modMail(){return s(this,ds)}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,ls)??d(this,ls,w.getFromMetadata(D.User,s(this,k))),s(this,ls)}getAppUser(){return w.getFromMetadata(D.AppUser,s(this,k))}getSnoovatarUrl(e){return w.getSnoovatarUrl(e,s(this,k))}getCommentById(e){return re.getById(Re(e),s(this,k))}getComments(e){return re.getComments(e,s(this,k))}getCommentsByUser(e){return re.getCommentsByUser(e,s(this,k))}submitComment(e){return re.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 id(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 vr.send(e,s(this,k))}async sendPrivateMessageAsSubreddit(e){return vr.sendAsSubreddit(e,s(this,k))}async approve(e){if(Tt(e))return re.approve(e,s(this,k));if(hr(e))return z.approve(e,s(this,k));throw new Error("id must start with either t1_ or t3_")}async remove(e,t){if(Tt(e))return re.remove(e,t,s(this,k));if(hr(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 vr.getMessages(e,s(this,k))}markAllMessagesAsRead(){return vr.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,ds=new WeakMap,ls=new WeakMap;import{RedisKeyScope as hc}from"@devvit/protos";function sd(r){return r&&typeof r=="object"&&"message"in r&&r.message!==void 0&&typeof r.message=="string"?r.message.includes("redis: nil"):!1}var R,O,B,fc=class{constructor(e,t,i){l(this,R);l(this,O);l(this,B);d(this,R,e),d(this,O,t),d(this,B,i)}async get(e){return await s(this,R).Get({key:e,transactionId:s(this,O)},s(this,B)),this}async multi(){await s(this,R).Multi(s(this,O),s(this,B))}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,R).Set({key:e,value:t,nx:i?.nx===!0,xx:i?.xx===!0,expiration:n||0,transactionId:s(this,O)},s(this,B)),this}async del(...e){return await s(this,R).Del({keys:e,transactionId:s(this,O)},s(this,B)),this}async type(e){return await s(this,R).Type({key:e,transactionId:s(this,O)},s(this,B)),this}async exec(){let e=await s(this,R).Exec(s(this,O),s(this,B)),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,R).Discard(s(this,O),s(this,B))}async watch(...e){return await s(this,R).Watch({keys:e,transactionId:s(this,O)},s(this,B)),this}async unwatch(){return await s(this,R).Unwatch(s(this,O),s(this,B)),this}async getRange(e,t,i){return await s(this,R).GetRange({key:e,start:t,end:i,transactionId:s(this,O)},s(this,B)),this}async setRange(e,t,i){return await s(this,R).SetRange({key:e,offset:t,value:i,transactionId:s(this,O)},s(this,B)),this}async strlen(e){return this.strLen(e)}async strLen(e){return await s(this,R).Strlen({key:e,transactionId:s(this,O)},s(this,B)),this}async mget(e){return this.mGet(e)}async mGet(e){return await s(this,R).MGet({keys:e,transactionId:s(this,O)},s(this,B)),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,R).MSet({kv:t,transactionId:s(this,O)},s(this,B)),this}async incrBy(e,t){return await s(this,R).IncrBy({key:e,value:t,transactionId:s(this,O)},s(this,B)),this}async expire(e,t){return await s(this,R).Expire({key:e,seconds:t,transactionId:s(this,O)},s(this,B)),this}async expireTime(e){return await s(this,R).ExpireTime({key:e,transactionId:s(this,O)},s(this,B)),this}async zAdd(e,...t){return await s(this,R).ZAdd({key:e,members:t,transactionId:s(this,O)},s(this,B)),this}async zScore(e,t){return await s(this,R).ZScore({key:{key:e,transactionId:s(this,O)},member:t},s(this,B)),this}async zRank(e,t){return await s(this,R).ZRank({key:{key:e,transactionId:s(this,O)},member:t},s(this,B)),this}async zIncrBy(e,t,i){return await s(this,R).ZIncrBy({key:e,member:t,value:i,transactionId:s(this,O)},s(this,B)),this}async zScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,transactionId:s(this,O)};return await s(this,R).ZScan(o,s(this,B)),this}async zCard(e){return await s(this,R).ZCard({key:e,transactionId:s(this,O)},s(this,B)),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,R).ZRange({key:{key:e,transactionId:s(this,O)},start:t+"",stop:i+"",...o},s(this,B)),this}async zRem(e,t){return await s(this,R).ZRem({key:{key:e,transactionId:s(this,O)},members:t},s(this,B)),this}async zRemRangeByLex(e,t,i){return await s(this,R).ZRemRangeByLex({key:{key:e,transactionId:s(this,O)},min:t,max:i},s(this,B)),this}async zRemRangeByRank(e,t,i){return await s(this,R).ZRemRangeByRank({key:{key:e,transactionId:s(this,O)},start:t,stop:i},s(this,B)),this}async zRemRangeByScore(e,t,i){return await s(this,R).ZRemRangeByScore({key:{key:e,transactionId:s(this,O)},min:t,max:i},s(this,B)),this}async hgetall(e){return this.hGetAll(e)}async hGetAll(e){return await s(this,R).HGetAll({key:e,transactionId:s(this,O)},s(this,B)),this}async hget(e,t){return this.hGet(e,t)}async hGet(e,t){return await s(this,R).HGet({key:e,field:t,transactionId:s(this,O)},s(this,B)),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,R).HSet({key:e,fv:i,transactionId:s(this,O)},s(this,B)),this}async hincrby(e,t,i){return this.hIncrBy(e,t,i)}async hIncrBy(e,t,i){return await s(this,R).HIncrBy({key:e,field:t,value:i,transactionId:s(this,O)},s(this,B)),this}async hdel(e,t){return this.hDel(e,t)}async hDel(e,t){return await s(this,R).HDel({key:e,fields:t,transactionId:s(this,O)},s(this,B)),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,O)};return await s(this,R).HScan(o,s(this,B)),this}async hkeys(e){return this.hKeys(e)}async hKeys(e){return await s(this,R).HKeys({key:e,transactionId:s(this,O)},s(this,B)),this}async hlen(e){return this.hLen(e)}async hLen(e){return await s(this,R).HLen({key:e,transactionId:s(this,O)},s(this,B)),this}};R=new WeakMap,O=new WeakMap,B=new WeakMap;var U,fi,vc=class vc{constructor(e,t=void 0,i=hc.INSTALLATION){l(this,U);l(this,fi);d(this,U,e),d(this,fi,t),this.scope=i,this.global=i===hc.INSTALLATION?new vc(s(this,U),s(this,fi),hc.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 fc(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(sd(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(sd(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(sd(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(sd(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=vc;var yr,yi=class{constructor(e){l(this,yr);d(this,yr,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,yr))).id}async cancelJob(e){await u.schedulerPlugin.Cancel({id:e},s(this,yr))}async listJobs(){return(await u.schedulerPlugin.List({after:new Date(0),before:new Date(Date.now()+31536e7)},s(this,yr))).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}))}};yr=new WeakMap;var us,bi=class{constructor(e){l(this,us);d(this,us,e)}async get(e){return(await this.getAll())[e]}async getAll(){let t=await u.settingsPlugin.GetSettings({},s(this,us));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)}}};us=new WeakMap;function dy(r,e){let t=Object.keys(r).reduce((i,n)=>(i[n]=uc(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 od,ToastAppearance as uy}from"@devvit/protos";var Mt,ki,cs,dd,ad=class{constructor(e){l(this,Mt,[]);l(this,ki);l(this,cs);l(this,dd,(e,t)=>{s(this,Mt).push({type:od.EFFECT_WEB_VIEW,webView:{postMessage:{webViewId:e,app:{message:t}}}})});d(this,ki,e),d(this,cs,{postMessage:s(this,dd)})}get webView(){return s(this,cs)}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};fr(n.fields),o.fields=mt(n.fields),s(this,Mt).push({type:od.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,Mt).push({type:od.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,Mt).push({type:od.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}get __effects(){return s(this,Mt)}};Mt=new WeakMap,ki=new WeakMap,cs=new WeakMap,dd=new WeakMap;function De({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 ad(i):void 0,y=new mi(r),b=new li,P=new gi(r),F=t&&i?_v(i):void 0,I=t&&i?Nv(i):void 0,x=t&&i?Lv(i):void 0,Ce=t&&i?Dv(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 x??(()=>{throw new Error("useForm() is unavailable")})},get cache(){return c??(()=>{throw new Error("cache() is unavailable")})},get useState(){return F??(()=>{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.4-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.4-dev","@devvit/shared-types":"0.11.4-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.4-dev","@devvit/tsconfig":"0.11.4-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[D.Subreddit]?.values[0];v(i,"subreddit is missing from Context");let n=r[D.SubredditName]?.values[0],o=r[D.AppUser]?.values[0],a=r[D.App]?.values[0],c=r[D.Version]?.values[0],p=r[D.User]?.values[0],g=vT(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 vT(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[D.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[D.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 ld(r,e,t){if(!e)throw new Error("Settings were not defined.");let i={success:!0,errors:{}},n=Et(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(De({metadata:t}),ce(t)),m=await g({value:p,isEditing:r.editing},f);m&&(i.success=!1,i.errors[c]=m)}})),yT.fromJSON(i)}async function ST(){if(!u.appSettings)throw new Error("App settings were not defined.");return kT.fromJSON({fields:{fields:mt(u.appSettings)}})}async function PT(r,e){return ld(r,u.appSettings,e)}function py(r){r.provides(bT),M("GetAppSettingsFields",ST),M("ValidateAppForm",PT)}import{CustomPostDefinition as AT,RenderPostResponse as ET}from"@devvit/protos";import{BlockRenderEventType as Rc,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 Ec,BlockAvatarBackground as wy,BlockAvatarFacing as Iy,BlockAvatarSize as Ut,BlockBorderWidth as pd,BlockButtonAppearance as Dt,BlockButtonSize as Pc,BlockGap as gd,BlockHorizontalAlignment as Cc,BlockIconSize as hd,BlockImageResizeMode as ms,BlockPadding as ps,BlockRadius as gs,BlockSpacerShape as wc,BlockSpacerSize as fd,BlockStackDirection as Ic,BlockTextOutline as xc,BlockTextOverflow as Fc,BlockTextSize as Ci,BlockTextStyle as Tc,BlockTextWeight as xy,BlockType as tt,BlockVerticalAlignment as Ac}from"@devvit/protos";var yc={"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 yc,bc=r=>r in hy,yy=r=>!!r.match(/^rgba?\(.*/),by=r=>!!r.match(/^hsla?\(.*/),ky=(r,e="light")=>{if(bc(r))return ud(r);let i=yc[r];return typeof i=="string"?i:i[e]},ud=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 cd}from"@devvit/protos";var kc={stackParentLayout:{hasHeight:!0,hasWidth:!0,direction:cd.UNRECOGNIZED,alignment:void 0}};function Cy(r,e,t){if(!e)return{hasHeight:!1,hasWidth:!1};let{growDirection:i,stretchDirection:n}=CT(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 CT(r,e,t){let i=e===cd.STACK_VERTICAL||e===cd.UNRECOGNIZED,n=e===cd.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 br,BlockStackDirection as md}from"@devvit/protos";function Pi(r){if(r==null)return;if(typeof r=="number")return{value:r,unit:br.SIZE_UNIT_PERCENT};let e=r.match(/^(\d+(?:\.\d+)?)(px|%)?$/);if(e==null)return;let t=br.SIZE_UNIT_PERCENT;return e.at(2)==="px"&&(t=br.SIZE_UNIT_PIXELS),{value:Number.parseFloat(e[1]),unit:t}}function wT(r,e){return(r.width?.value?.unit===br.SIZE_UNIT_PERCENT||r.width?.min?.unit===br.SIZE_UNIT_PERCENT)&&(e.direction===md.STACK_HORIZONTAL||e.direction===md.STACK_DEPTH)&&(e.hasWidth||(r.width=void 0)),(r.height?.value?.unit===br.SIZE_UNIT_PERCENT||r.height?.min?.unit===br.SIZE_UNIT_PERCENT)&&(e.direction===md.STACK_VERTICAL||e.direction===md.STACK_DEPTH)&&(e.hasHeight||(r.height=void 0)),r}function Sc(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=wT(n,e.stackParentLayout)),n}}}var Fy="data-",IT=new Set(["onPress","onMessage"]),xT=new Map([["onPress",Ec.ACTION_CLICK],["onMessage",Ec.ACTION_WEBVIEW]]),hs,wi=class{constructor(e=()=>{}){l(this,hs);d(this,hs,e)}createBlocksElementOrThrow({type:e,props:t,children:i}){let n=this.createBlocksElement({type:e,props:t,children:i},kc);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 ps.PADDING_NONE;case"xsmall":return ps.PADDING_XSMALL;case"small":return ps.PADDING_SMALL;case"medium":return ps.PADDING_MEDIUM;case"large":return ps.PADDING_LARGE}}makeBlockRadius(e){switch(e){case"none":return gs.RADIUS_NONE;case"small":return gs.RADIUS_SMALL;case"medium":return gs.RADIUS_MEDIUM;case"large":return gs.RADIUS_LARGE;case"full":return gs.RADIUS_FULL}}makeBlockGap(e){switch(e){case"none":return gd.GAP_NONE;case"small":return gd.GAP_SMALL;case"medium":return gd.GAP_MEDIUM;case"large":return gd.GAP_LARGE}}makeBlockAlignment(e){if(e===void 0)return;let t,i;if(e.includes("top")?t=Ac.ALIGN_TOP:e.includes("middle")?t=Ac.ALIGN_MIDDLE:e.includes("bottom")&&(t=Ac.ALIGN_BOTTOM),e.includes("start")?i=Cc.ALIGN_START:e.includes("center")?i=Cc.ALIGN_CENTER:e.includes("end")&&(i=Cc.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=pd.BORDER_WIDTH_NONE;break;case"thin":o=pd.BORDER_WIDTH_THIN;break;case"thick":o=pd.BORDER_WIDTH_THICK;break;default:o=pd.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 Tc.TEXT_STYLE_BODY;case"metadata":return Tc.TEXT_STYLE_METADATA;case"heading":return Tc.TEXT_STYLE_HEADING}}makeBlockTextOutline(e){switch(e){case"none":return xc.TEXT_OUTLINE_NONE;case"thin":return xc.TEXT_OUTLINE_THIN;case"thick":return xc.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 Fc.TEXT_OVERFLOW_CLIP;case"ellipsis":return Fc.TEXT_OVERFLOW_ELLIPSE}return Fc.TEXT_OVERFLOW_ELLIPSE}makeBlockButtonAppearance(e){switch(e){case"secondary":return Dt.BUTTON_APPEARANCE_SECONDARY;case"primary":return Dt.BUTTON_APPEARANCE_PRIMARY;case"plain":return Dt.BUTTON_APPEARANCE_PLAIN;case"bordered":return Dt.BUTTON_APPEARANCE_BORDERED;case"media":return Dt.BUTTON_APPEARANCE_MEDIA;case"destructive":return Dt.BUTTON_APPEARANCE_DESTRUCTIVE;case"caution":return Dt.BUTTON_APPEARANCE_CAUTION;case"success":return Dt.BUTTON_APPEARANCE_SUCCESS}}makeBlockButtonSize(e){switch(e){case"small":return Pc.BUTTON_SIZE_SMALL;case"medium":return Pc.BUTTON_SIZE_MEDIUM;case"large":return Pc.BUTTON_SIZE_LARGE}}makeBlockImageResizeMode(e){switch(e){case"none":return ms.IMAGE_RESIZE_NONE;case"fit":return ms.IMAGE_RESIZE_FIT;case"fill":return ms.IMAGE_RESIZE_FILL;case"cover":return ms.IMAGE_RESIZE_COVER;case"scale-down":return ms.IMAGE_RESIZE_SCALE_DOWN}}makeBlockSpacerSize(e){switch(e){case"xsmall":return fd.SPACER_XSMALL;case"small":return fd.SPACER_SMALL;case"medium":return fd.SPACER_MEDIUM;case"large":return fd.SPACER_LARGE}}makeBlockSpacerShape(e){switch(e){case"invisible":return wc.SPACER_INVISIBLE;case"thin":return wc.SPACER_THIN;case"square":return wc.SPACER_SQUARE}}makeBlockIconSize(e){switch(e){case"xsmall":return hd.ICON_SIZE_XSMALL;case"small":return hd.ICON_SIZE_SMALL;case"medium":return hd.ICON_SIZE_MEDIUM;case"large":return hd.ICON_SIZE_LARGE}}makeBlockAvatarSize(e){switch(e){case"xxsmall":return Ut.AVATAR_SIZE_XXSMALL;case"xsmall":return Ut.AVATAR_SIZE_XSMALL;case"small":return Ut.AVATAR_SIZE_SMALL;case"medium":return Ut.AVATAR_SIZE_MEDIUM;case"large":return Ut.AVATAR_SIZE_LARGE;case"xlarge":return Ut.AVATAR_SIZE_XXLARGE;case"xxlarge":return Ut.AVATAR_SIZE_XXLARGE;case"xxxlarge":return Ut.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 IT.forEach(o=>{if(o in t){let a=t[o];i.push({type:xT.get(o)??Ec.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):bc(e)?ud(e):yy(e)?Sy(e):by(e)?e:(console.warn(`Could not parse color: ${e}.`),ud("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,hs).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,kc))}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=Sc(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(Ic.STACK_HORIZONTAL,e,t,i)}makeVStack(e,t,...i){return this.makeStackBlock(Ic.STACK_VERTICAL,e,t,i)}makeZStack(e,t,...i){return this.makeStackBlock(Ic.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:Sc(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}};hs=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 FT(r){return" ".repeat(r)}function TT(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+=FT(t),n!==0&&(e+="<"),e+=o,n!==i.length-1&&(e+=`>
|
|
2
2
|
`),!a&&o.indexOf("</")===-1&&o.charAt(o.length-1)!=="/"&&t++}return e}var Le,Ry,fs,Oc,vs,pt=class{constructor(e,t,i,n,o){l(this,Le);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,vs,!1);this.component=e,this.event=t,this.state={__renderState:{},...i},this.metadata=n,this.state.__realtimeChannels&&(this.realtimeChannels=this.state.__realtimeChannels);let a=De({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,Le,fs).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,Le,Ry).call(this)}async buildBlocksUI(){let e=S(this,Le,fs).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(TT(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,Le,Oc).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,Le,fs).call(this),...n.props,children:p},f;for(;f===void 0;)try{f=await n.type(g,S(this,Le,fs).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===Rc.RENDER_INITIAL:!1}get isUserActionRender(){return this.event?this.event.type===Rc.RENDER_USER_ACTION:!1}get isEffectRender(){return this.event?this.event.type===Rc.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,vs)||(d(this,vs,!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}:{}}}};Le=new WeakSet,Ry=function(){this.actions.clear(),this.currentComponentKey=[],this.currentHookIndex=0,this.pendingHooks=[],this.realtimeChannels=[],this.realtimeUpdated=!1},fs=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[D.Timezone]?.values[0],locale:this.metadata[D.Language]?.values[0],dimensions:this.dimensions},...this.hooks};return e.debug.effects=this,e},Oc=function(e){let t=[];for(let i of e)typeof i=="string"?t.push(i):i.type==="__fragment"?t.push(...S(this,Le,Oc).call(this,i.children)):t.push(i);return t},vs=new WeakMap;async function RT(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 ET.fromJSON({state:i.state,blocks:{ui:n},effects:i.getEffects()})}function Oy(r){r.provides(AT),M("RenderPost",RT)}import{GetFieldsResponse as OT,InstallationSettingsDefinition as BT}from"@devvit/protos";async function MT(){if(!u.installationSettings)throw new Error("Installation settings were not defined.");return OT.fromJSON({fields:{fields:mt(u.installationSettings)}})}async function UT(r,e){return ld(r,u.installationSettings,e)}function By(r){r.provides(BT),M("GetSettingsFields",MT),M("ValidateForm",UT)}import{ContextActionDefinition as DT,ContextActionList as LT,ContextActionResponse as NT}from"@devvit/protos";var My=r=>`menuItem.${r}`;function Bc(r){return u.menuItems.find((e,t)=>My(t)===r)}async function _T(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 HT(r,e){let t=Bc(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(De({ui:!0,metadata:e}),ce(e,n,i),{uiEnvironment:{timezone:e[D.Timezone]?.values[0],locale:e[D.Language]?.values[0]}});return await t.onPress(c,p),NT.fromJSON({effects:Si(p.ui)})}function Uy(r){r.provides(DT),M("GetActions",_T),M("OnAction",HT)}function gt(r){return r?r===!0?!0:r.enabled:!1}import{SchedulerHandlerDefinition as qT}from"@devvit/protos";async function jT(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(De({metadata:e}),ce(e));await i(n,o)}function Dy(r){r.provides(qT),M("HandleScheduledAction",jT)}import{OnAppInstallDefinition as WT,OnAppUpgradeDefinition as GT,OnAutomoderatorFilterCommentDefinition as VT,OnAutomoderatorFilterPostDefinition as zT,OnCommentCreateDefinition as JT,OnCommentDeleteDefinition as $T,OnCommentReportDefinition as KT,OnCommentSubmitDefinition as XT,OnCommentUpdateDefinition as ZT,OnModActionDefinition as QT,OnModMailDefinition as YT,OnPostCreateDefinition as eA,OnPostDeleteDefinition as tA,OnPostFlairUpdateDefinition as rA,OnPostNsfwUpdateDefinition as iA,OnPostReportDefinition as nA,OnPostSpoilerUpdateDefinition as sA,OnPostSubmitDefinition as oA,OnPostUpdateDefinition as aA}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(De({metadata:i}),ce(i)),a=await Promise.allSettled(e.map(p=>p(n,o))),c=dA(a);if(c)throw c.err;return{}}}function Ly(r){for(let e of u.triggerOnEventHandlers.keys())switch(e){case"PostSubmit":r.provides(oA),M("OnPostSubmit",X("PostSubmit",u.triggerOnEventHandlers.get(e)));break;case"PostCreate":r.provides(eA),M("OnPostCreate",X("PostCreate",u.triggerOnEventHandlers.get(e)));break;case"PostUpdate":r.provides(aA),M("OnPostUpdate",X("PostUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostReport":r.provides(nA),M("OnPostReport",X("PostReport",u.triggerOnEventHandlers.get(e)));break;case"PostDelete":r.provides(tA),M("OnPostDelete",X("PostDelete",u.triggerOnEventHandlers.get(e)));break;case"PostFlairUpdate":r.provides(rA),M("OnPostFlairUpdate",X("PostFlairUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentSubmit":r.provides(XT),M("OnCommentSubmit",X("CommentSubmit",u.triggerOnEventHandlers.get(e)));break;case"CommentCreate":r.provides(JT),M("OnCommentCreate",X("CommentCreate",u.triggerOnEventHandlers.get(e)));break;case"CommentUpdate":r.provides(ZT),M("OnCommentUpdate",X("CommentUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentReport":r.provides(KT),M("OnCommentReport",X("CommentReport",u.triggerOnEventHandlers.get(e)));break;case"CommentDelete":r.provides($T),M("OnCommentDelete",X("CommentDelete",u.triggerOnEventHandlers.get(e)));break;case"AppInstall":r.provides(WT),M("OnAppInstall",X("AppInstall",u.triggerOnEventHandlers.get(e)));break;case"AppUpgrade":r.provides(GT),M("OnAppUpgrade",X("AppUpgrade",u.triggerOnEventHandlers.get(e)));break;case"ModAction":r.provides(QT),M("OnModAction",X("ModAction",u.triggerOnEventHandlers.get(e)));break;case"ModMail":r.provides(YT),M("OnModMail",X("ModMail",u.triggerOnEventHandlers.get(e)));break;case"PostNsfwUpdate":r.provides(iA),M("OnPostNsfwUpdate",X("PostNsfwUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostSpoilerUpdate":r.provides(sA),M("OnPostSpoilerUpdate",X("PostSpoilerUpdate",u.triggerOnEventHandlers.get(e)));break;case"AutomoderatorFilterPost":r.provides(zT),M("OnAutomoderatorFilterPost",X("AutomoderatorFilterPost",u.triggerOnEventHandlers.get(e)));break;case"AutomoderatorFilterComment":r.provides(VT),M("OnAutomoderatorFilterComment",X("AutomoderatorFilterComment",u.triggerOnEventHandlers.get(e)));break;default:throw new Error(`Unknown trigger event: ${e}`)}}function dA(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 aR,HandleUIEventResponse as $c,UIEventHandlerDefinition as dR}from"@devvit/protos";var Eb=Ln(Ky(),1),Rb=Ln(Jc(),1);async function lR(r,e){let t=r.state??{},i=(0,Eb.default)(t),n=De({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,F)=>u.customPostType?.render(F)??null,r.event,r.state,e,void 0);return await b.reconcile(),$c.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,F=Bc(b);F?.location==="post"?f=P:F?.location==="comment"&&(m=P)}let y=Object.assign(n,ce(e,f,m),{uiEnvironment:{timezone:e[D.Timezone]?.values[0],locale:e[D.Language]?.values[0]}});await g.onSubmit({values:Et(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(),$c.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:aR.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:0}}]:a;return $c.fromJSON({state:i,effects:c})}function Ob(r){r.provides(dR),M("HandleUIEvent",lR)}import{CustomPostDefinition as Hd,UIResponse as ak}from"@devvit/protos";import{UIEventScope as vR}from"@devvit/protos";var Kc="ServerCallRequired";function Td(r){return r?.message===Kc}var Yc={now(){return new Date}};function Bb(r){return`__autocache__${r}`}function Mb(r){return`__lock__${r}`}var uR=300,cR=1e3,Ad=5e3,Xc=3,Ub=.1,Db=1e3,mR=3e4;function Lb(r){if(r.error)throw new Error(r.error);return r.value}var _t,Ht,Ne,Ai,K,Nb,_b,Hb,Zc,qb,jb,Qc,Wb,Ed=class{constructor(e,t,i=Yc){l(this,K);l(this,_t);l(this,Ht,{});l(this,Ne);l(this,Ai);d(this,_t,e),d(this,Ai,t),d(this,Ne,i)}async cache(e,t){var a;(a=s(this,Ai)).__cache??(a.__cache={}),d(this,Ht,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,Qc).call(this,t.key),o=await S(this,K,_b).call(this,t,n,e);return Lb(o)}};_t=new WeakMap,Ht=new WeakMap,Ne=new WeakMap,Ai=new WeakMap,K=new WeakSet,Nb=function(e){let t=s(this,Ht)[e];if(t){let i=s(this,Ne).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<Xc&&Math.random()<Ub&&t.errorTime+Db<i;if(t?.expires&&t.expires<i&&t.checkedAt+Db<i||n){delete s(this,Ht)[e];return}else return Lb(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<Xc&&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,_t).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,Zc).call(this,p,e.key,e.ttl)}},Zc=async function(e,t,i){let n=Math.min(i,cR),o=await S(this,K,Qc).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,uR)),S(this,K,Zc).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,Ht)[e]=t,await s(this,_t).set(Bb(e),JSON.stringify(t),{expiration:new Date(o+mR)}),t.error&&t.errorCount<Xc&&await s(this,_t).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},Qc=async function(e){let t=await s(this,_t).get(Bb(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Ne).now().getTime(),s(this,Ht)[e]=i,i}},Wb=function(e){e.ttl<Ad&&(console.warn(`Cache TTL cannot be less than ${Ad} milliseconds! Updating ttl value of ${e.ttl} to ${Ad}.`),e.ttl=Ad)};function Gb(r,e,t=Yc){let i=new Ed(r,e,t);return i.cache.bind(i)}import{EffectType as Rd,ToastAppearance as Jb}from"@devvit/protos";function Vb(r){let e=r.match(/form\.hook\.(.+)\.0/);if(e?.[1])return e[1]}var em=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(Et(n.formSubmitted.results))}}};function tm(r,e){let t=Je({namespace:"useForm",initializer:i=>new em(i,r,e)});return pR({id:t.hookId})}function pR(r){return`form.hook.${r.id}.0`}function zb(r,e){let t=Vb(e);return r.getHook({id:t})}var vt,Bd,Cs,Md,Od=class{constructor(e){l(this,vt);l(this,Bd,0);l(this,Cs);l(this,Md,(e,t)=>{s(this,vt).emitEffect(`postMessage${Bm(this,Bd)._++}`,{type:Rd.EFFECT_WEB_VIEW,webView:{postMessage:{webViewId:e,app:{message:t}}}})});d(this,vt,e),d(this,Cs,{postMessage:s(this,Md)})}get webView(){return s(this,Cs)}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};fr(n.fields),o.fields=mt(n.fields),s(this,vt).emitEffect(e,{type:Rd.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:Rd.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:Rd.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}};vt=new WeakMap,Bd=new WeakMap,Cs=new WeakMap,Md=new WeakMap;import{EffectType as gR,RealtimeSubscriptionStatus as $b}from"@devvit/protos";var qt,it,jt,wr,ws,im,Ud=class Ud{constructor(e,t){l(this,ws);l(this,qt);l(this,it);l(this,jt);l(this,wr);d(this,qt,t.context),d(this,it,!!t.context._devvitContext?.debug.realtime),d(this,wr,e),d(this,jt,t.invalidate);let i=t.context.meta[D.App]?.values[0];if(!i)throw Error("useChannel missing app ID metadata");let n=t.context.meta[D.Installation]?.values[0];if(!n)throw Error("useChannel missing install ID from metadata");let o=`${i}:${n}:${e.name}`;if(Object.values(s(this,qt)._hooks).filter(c=>c instanceof Ud).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,jt).call(this),await s(this,wr).onSubscribed?.();break;case $b.REALTIME_UNSUBSCRIBED:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" disconnected`),this.state.connected=!1,s(this,jt).call(this),await s(this,wr).onUnsubscribed?.();break;default:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" received message: ${JSON.stringify(e,void 0,2)}`),s(this,wr).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,qt).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,jt).call(this),S(this,ws,im).call(this))}unsubscribe(){this.state.subscribed&&(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" unsubscribed`),this.state.subscribed=!1,s(this,jt).call(this),S(this,ws,im).call(this))}};qt=new WeakMap,it=new WeakMap,jt=new WeakMap,wr=new WeakMap,ws=new WeakSet,im=function(){let e=Object.values(s(this,qt)._hooks).filter(t=>t instanceof Ud&&t.state.subscribed).map(t=>t.state.channel);s(this,qt).emitEffect(this.state.channel,{type:gR.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:e}})};var rm=Ud;function nm(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 rm(r,t)})}import{EffectType as sm}from"@devvit/protos";function Kb(r){return typeof r=="object"&&r!==null&&"__deleted"in r}var Ir,Wt,Ei=class Ei{constructor(e,t){l(this,Ir);this._segments=[];l(this,Wt,{});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,Ir,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,Ir).__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,Wt)).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,Wt)}set _hooks(e){this._prevHooks=s(this,Wt),d(this,Wt,e)}get _state(){return s(this,Ir)}set _state(e){d(this,Ir,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,Wt)[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()}}};Ir=new WeakMap,Wt=new WeakMap,Ei._staticUndeliveredHandlers={};var Ri=Ei;var Gt={};Ri.addGlobalUndeliveredEventHandler("intervals",async(r,e)=>{r.timer&&r.hook&&(delete Gt[r.hook],e.emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:Gt}}))});var Vt,Oi,Is,Bi,om=class{constructor(e,t,i){l(this,Vt);l(this,Oi);l(this,Is);l(this,Bi);this.state={duration:{seconds:0,nanos:0},running:!1};d(this,Oi,i.invalidate),d(this,Vt,i.hookId),d(this,Is,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?Gt[s(this,Vt)]={duration:this.state.duration}:delete Gt[s(this,Vt)]}async onUIEvent(e){await s(this,Is).call(this)}start(){Gt[s(this,Vt)]={duration:this.state.duration},this.state.running=!0,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:Gt}})}stop(){delete Gt[s(this,Vt)],this.state.running=!1,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:Gt}})}};Vt=new WeakMap,Oi=new WeakMap,Is=new WeakMap,Bi=new WeakMap;function am(r,e){let t=Je({namespace:"useInterval",initializer:i=>new om(r,e,i)});return{start:()=>t.start(),stop:()=>t.stop()}}import{UIEventScope as fR}from"@devvit/protos";var xr=class extends Error{};import{UIEventScope as Xb}from"@devvit/protos";var Zb=Ln(Jc(),1);function lm(r){if(r instanceof Error){if(r.message===Kc)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,xs,Ui,dm=class{constructor(e,t,i){l(this,$e);l(this,nt);l(this,Mi);l(this,xs);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,xs,i.context),this.localDepends=t.depends??null,d(this,Ui,t)}onStateLoaded(){if(this.state.load_state!=="disabled"&&(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,xs).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=lm(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,xs=new WeakMap,Ui=new WeakMap;function hR(r,e={}){let t=Je({namespace:"useAsync",initializer:i=>new dm(r,e,i)});return{data:t.state.data,error:t.state.error,loading:t.state.load_state==="loading"}}var yt,Di,Fr,Tr,um=class{constructor(e,t){this.state={value:null,load_state:"initial",error:null};l(this,yt);l(this,Di);l(this,Fr);l(this,Tr);d(this,Fr,e),d(this,Tr,t.hookId),d(this,yt,t.invalidate),d(this,Di,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=lm(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,Di)._prevHooks[s(this,Tr)]?._promise,this.state.load_state==="loading")throw new xr;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,Fr)instanceof Function?s(this,Fr).call(this):s(this,Fr)}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:fR.ALL,asyncRequest:{requestId:s(this,Tr)},hook:s(this,Tr)};throw s(this,Di).addToRequeueEvents(t),s(this,yt).call(this),new xr}else this.state.value=e,this.state.load_state="loaded";s(this,yt).call(this)}}};yt=new WeakMap,Di=new WeakMap,Fr=new WeakMap,Tr=new WeakMap;function cm(r){let e=Je({namespace:"useState",initializer:t=>new um(r,t)});return[e.state.value,e.setter.bind(e)]}var Dd=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 Od(e),m=new mi(i),y=new li,b=new gi(i),P=Gb(a,e._state),F={modLog:n,kvStore:o,redis:a,reddit:c,scheduler:p,settings:g,media:m,assets:y,realtime:b,ui:f,useState:cm,useChannel:nm,useInterval:am,useForm:tm,cache:P,dimensions:t.env?.dimensions,uiEnvironment:{timezone:i[D.Timezone]?.values[0],locale:i[D.Language]?.values[0],dimensions:t.env?.dimensions}},I=ce(i,t.props?.postId);return I.debug.effects=e,{...I,...F}}};var ke=null;function Qb(r){return JSON.parse(JSON.stringify(r))}function yR(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.");yR(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 bR=null,Yb=64,Li,_d,Fs,T,me,Ld,ek,mm,tk,pm,gm,Nd,hm,rk,Ar=class{constructor(e){l(this,T);l(this,Li);l(this,_d,new Dd);l(this,Fs,new wi(()=>this._latestRenderContext?.devvitContext?.assets));this._latestRenderContext=null;s(this,T,me)&&console.debug("[blocks] BlocksHandler v1"),d(this,Li,e),bR=this}async handle(e,t){let i=new Ri(e,t),n=s(this,_d).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:vR.ALL}),s(this,T,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,T,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,T,ek).call(this,i,...P),i._state=I}else await S(this,T,tk).call(this,i,...P)}catch(I){if(!Td(I))throw I;if(s(this,T,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 x=y.map(Ce=>{let wt={...Ce};return wt.retry=!0,wt});i.addToRequeueEvents(...x);break}else throw Td(I)||console.error("[blocks] unhandled error in handler",I),I}s(this,T,me)&&console.debug("[blocks] remaining events",i._requeueEvents);let F=[];for(let I of i._requeueEvents){if(!p&&!I.async){s(this,T,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch A",I),F.push(I);continue}if(p&&I.async&&!g){s(this,T,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch B",I),F.push(I);continue}s(this,T,me)&&console.debug("[blocks] reprocessing event in BlocksHandler",I),a.push(I)}i._requeueEvents=F,a.length>0&&(f={...i._changed},m={_state:Qb(i._state),_effects:{...i._effects}},y=[...a])}if(p){i._latestRenderContent||(i._latestRenderContent=S(this,T,pm).call(this,s(this,Li),i.request.props??{},i));let P=i._latestRenderContent;P&&(o=s(this,Fs).createBlocksElementOrThrow(P),o=s(this,Fs).ensureRootBlock(o))}return{state:i._changedState,effects:i.effects,blocks:o,events:i._requeueEvents}}};Li=new WeakMap,_d=new WeakMap,Fs=new WeakMap,T=new WeakSet,me=function(){return!!this._latestRenderContext?.devvitContext.debug.blocks},Ld=function(e,...t){e._hooks={},S(this,T,pm).call(this,s(this,Li),e.request.props??{},e)},ek=async function(e,...t){S(this,T,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,T,mm).call(this,e,i)}))},mm=async function(e,t){let i=e._hooks[t.hook];if(i?.onUIEvent)try{await i.onUIEvent(t,e)}catch(n){throw Td(n)?s(this,T,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,T,me)&&console.log("[blocks] handling main queue event",i),s(this,T,me)&&console.log("[blocks] before",e._state),S(this,T,Ld).call(this,e,i),await S(this,T,mm).call(this,e,i),s(this,T,me)&&console.log("[blocks] after",e._state);S(this,T,Ld).call(this,e)},pm=function(e,t,i){s(this,T,me)&&console.debug("[blocks] renderRoot"),i._generated={},ke=i,this._latestRenderContext=i;try{let n=S(this,T,gm).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 xr)return;throw n}finally{ke=null}},gm=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,T,hm).call(this,n,i)}finally{i.pop()}},Nd=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,T,hm).call(this,i,t)))},hm=function(e,t){if(Array.isArray(e))return S(this,T,Nd).call(this,e,t);if(kR(e))if(e.type===void 0)try{return t.push({namespace:"fragment",...e.props}),S(this,T,Nd).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,T,gm).call(this,e.type,i,t)}else try{t.push({namespace:e.type,...e.props});let i=S(this,T,Nd).call(this,e.children,t),n=S(this,T,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 kR(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),SR=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}`)}},PR=({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=SR(r);t?e.ui.navigateTo(t):console.warn("No upgrade link found for platform:",r)}},"Upgrade"))))),ok=r=>()=>u.createElement(PR,{platform:r});var CR=()=>u.createElement("vstack",{alignment:"center middle",width:"100%",height:"100%"},u.createElement("text",null,"This feature is not available yet")),wR=[[Hd,Hd.methods.renderPostContent,(r,e)=>u.customPostType?.render(e)??null],[Hd,Hd.methods.renderPostComposer,(r,e)=>u.createElement(CR,null)]];function IR(r){return async(e,t)=>{let i=nk(t["devvit-user-agent"]?.values?.[0]??"");if(i&&sk(i)){let o=new Ar(ok(i.platform));return ak.fromJSON(await o.handle(e,t))}let n=new Ar(r);return ak.fromJSON(await n.handle(e,t))}}function dk(r){for(let[e,t,i]of wR)r.provides(e),M(t.name,IR(i))}var Ni,Ts,_i,Er,Rr,Hi,qi,Or,zt,As,Es,Br,G,_=class _ extends ed{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,Er,e)}static createForm(e,t){let i=`form.${s(this,Rr).size}`;return s(this,Rr).set(i,{form:e,onSubmit:t}),i}static addSchedulerJob(e){if(s(this,G)[C.SchedulerDefinition.fullName]||this.use(C.SchedulerDefinition),s(this,Or).has(e.name))throw new Error(`Job ${e.name} is already defined`);s(this,Or).set(e.name,e.onRun)}static addSettings(e){fr(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,zt).has(e.event)?s(this,zt).get(e.event)?.push(e.onEvent):s(this,zt).set(e.event,[e.onEvent]),_}static provide(e){s(this,Es).push(e)}static use(e,t){s(this,Br)[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,Br)[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,Er)}static get formDefinitions(){return s(this,Rr)}static get scheduledJobHandlers(){return s(this,Or)}static get installationSettings(){return s(this,Hi)}static get appSettings(){return s(this,Ni)}static get triggerOnEventHandlers(){return s(this,zt)}static get assets(){return s(this,Ts)}static get webViewAssets(){return s(this,As)}constructor(e){super(e),d(_,Ts,e.assets??{}),d(_,As,e.webviewAssets??{});for(let t in s(_,Br)){let i=s(_,Br)[t];i.handler=e.use(i.def,i.options)}s(_,qi).length>0&&Uy(e),s(_,Or).size>0&&Dy(e),s(_,Er)&&(Oy(e),dk(e)),(s(_,Er)||s(_,Rr).size>0)&&Ob(e),s(_,Hi)&&By(e),s(_,Ni)&&py(e),s(_,zt).size>0&&Ly(e);for(let t of s(_,Es))e.provides(t)}};Ni=new WeakMap,Ts=new WeakMap,_i=new WeakMap,Er=new WeakMap,Rr=new WeakMap,Hi=new WeakMap,qi=new WeakMap,Or=new WeakMap,zt=new WeakMap,As=new WeakMap,Es=new WeakMap,Br=new WeakMap,G=new WeakMap,_.debug={},l(_,Ni),l(_,Ts,{}),l(_,_i,{}),l(_,Er),l(_,Rr,new Map),l(_,Hi),l(_,qi,[]),l(_,Or,new Map),l(_,zt,new Map),l(_,As,{}),l(_,Es,[]),l(_,Br,{}),l(_,G,{});var u=_;(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 fm;(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"})(fm||(fm={}));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,Rs(t,i),Os(t,i),Bs(t,i),Ds(t,i),Ls(t,i),Ns(t,i)),e(t),{e:Pk,c:i,...r.author&&{a:r.author}}}function Dk(r,e){let t={},i=[];return Object.assign(t,ym(t,i)),e(t),{e:Ck,c:i,...r.language&&{l:r.language}}}function Lk(r){return{e:pk,t:r.permalink}}function Nk(r,e){let t={},i=[];return Object.assign(t,ym(t,i),Us(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,Rs(e,t),Os(e,t),Bs(e,t),qd(e,t),Ds(e,t),Ls(e,t),Ns(e,t)),r(e),{e:wk,c:t}}function zk(r){let e={},t=[];return Object.assign(e,jd(e,t),Us(e,t),vm(e,t),bm(e,t),Ms(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,jd(e,t),Us(e,t),vm(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,jd(r,e),Us(r,e),bm(r,e),Ms(r,e)),[r,e]}function Rs(r,e){return{blockQuote(t,i){return e.push(Uk(t,i)),r}}}function Os(r,e){return{codeBlock(t,i){return e.push(Dk(t,i)),r}}}function lS(r,e){return{embed(t){return e.push(_k(t)),r}}}function Bs(r,e){return{heading(t,i){return e.push(Nk(t,i)),r}}}function qd(r,e){return{horizontalRule(){return e.push(Hk()),r}}}function Ms(r,e){return{image(t){return e.push(qk(t)),r},animatedImage(t){return e.push(Mk(t)),r}}}function vm(r,e){return{linebreak(){return e.push(jk()),r}}}function Us(r,e){return{link(t){return e.push(Wk(t)),r},commentLink(t){return e.push(Lk(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 Ds(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 ym(r,e){return{rawText(t){return e.push($k(t)),r}}}function bm(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 Ns(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 jd(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 xR=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},FR=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)},Wd,bt=class{constructor(){Wd.set(this,void 0);let e=[];Object.assign(this,Ls(this,e),Bs(this,e),qd(this,e),Rs(this,e),Os(this,e),lS(this,e),Ds(this,e),Ns(this,e),Ms(this,e),uS(this,e)),xR(this,Wd,{document:e},"f")}build(){return JSON.stringify(FR(this,Wd,"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}};Wd=new WeakMap;function ji(r){let e;return r instanceof bt?e=r.build():typeof r=="object"?e=JSON.stringify(r):e=r,e}var cS=100,mS=1/0,Mr,Ur,Jt,Wi,Gi,Gd,V=class{constructor(e){l(this,Gi);l(this,Mr);l(this,Ur);l(this,Jt);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,Ur,e.after),d(this,Mr,e.before),d(this,Jt,e.more),e.children&&(this.children=e.children)}get hasMore(){return!s(this,Wi)||!!(s(this,Ur)||s(this,Mr)||s(this,Jt))}async*[Symbol.asyncIterator](){let e=0;for(;;){if(e===this.children.length)if(this.hasMore){if((await S(this,Gi,Gd).call(this)).length===0)break}else break;if(yield this.children[e],e++,e===this.limit)break}}setMore(e){d(this,Jt,e)}preventInitialFetch(){d(this,Wi,!0)}async all(){for(;this.hasMore&&this.children.length<this.limit;)await S(this,Gi,Gd).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,Gd).call(this);return this.children.slice(0,t)}};Mr=new WeakMap,Ur=new WeakMap,Jt=new WeakMap,Wi=new WeakMap,Gi=new WeakSet,Gd=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,Mr),after:s(this,Ur),limit:this.pageSize,more:s(this,Jt)});return this.children.push(...e),d(this,Mr,t),d(this,Ur,i),d(this,Jt,n),d(this,Wi,!0),e};var _s,km,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,_s,km).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,_s,km).call(this,n.created)}static async addRemovalNote(e,t){await u.redditAPIPlugins.ModNote.PostRemovalNote(e,t)}};_s=new WeakSet,km=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,_s);var ee=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 TR(r,e){return e.map(t=>(r.includes(t)?"+":"-")+t).join(",")}function Sm(r){return TR(r,pS)}function gS(r){return r.filter(e=>pS.includes(e))}var AR=(t=>(t.User="USER_FLAIR",t.Post="LINK_FLAIR",t))(AR||{}),Lr,Vi,zi,Ji,$i,Ki,Xi,Zi,Qi,Yi,en,Vd,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,ER(e.textColor)),d(this,$i,RR(e.backgroundColor)),d(this,Ki,OR(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,Vd).call(i,{...e,flairType:"LINK_FLAIR"},t)}static async createUserFlairTemplate(e,t){var i;return S(i=Ke,en,Vd).call(i,{...e,flairType:"USER_FLAIR"},t)}static async editFlairTemplate(e,t){var i;return S(i=Ke,en,Vd).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,Vd=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 Hs(r){return{flairCssClass:r.flairCssClass,user:r.user,flairText:r.flairText}}var $t,Pm,Cm,Dr=class Dr{static async getUserFlairBySubreddit(e,t){return u.redditAPIPlugins.Flair.FlairList(e,t)}static setUserFlair(e,t){var i;return S(i=Dr,$t,Pm).call(i,e,t)}static setPostFlair(e,t){var i;return S(i=Dr,$t,Pm).call(i,{...e,postId:ve(e.postId)},t)}static async removePostFlair(e,t,i){var n;return S(n=Dr,$t,Cm).call(n,e,t,void 0,i)}static async removeUserFlair(e,t,i){var n;return S(n=Dr,$t,Cm).call(n,e,void 0,t,i)}};$t=new WeakSet,Pm=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)},Cm=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(Dr,$t);var Ue=Dr;function ER(r){if(v(r,"Flair text color is required"),r==="light"||r==="dark")return r;throw new Error(`Invalid flair text color: ${r}`)}function RR(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 OR(r){if(r==="all"||r==="text"||r==="emoji")return r;throw new Error(`Invalid allowable content: ${r}`)}import{Block as yS,CustomPostDefinition as qR,Definition as jR,UIEventHandlerDefinition as WR,UIResponse as GR}from"@devvit/protos";import{LinkedBundle as bS}from"@devvit/protos/types/devvit/runtime/bundle.js";var tn=Ln(vS(),1);var Im=r=>"text"in r?r.text:HR(r.richtext),HR=r=>r instanceof bt?r.build():typeof r=="object"?JSON.stringify(r):r;var rn,js,nn,Ws,sn,Gs,Vs,zs,Kt,Js,$s,Ks,Xs,Zs,Qs,Xt,Ys,eo,_r,on,Zt,an,dn,ln,kt,Qt,Yt,un,er,tr,rr,St,to,ro,cn,mn,L,N=class N{constructor(e,t){l(this,rn);l(this,js);l(this,nn);l(this,Ws);l(this,sn);l(this,Gs);l(this,Vs);l(this,zs);l(this,Kt);l(this,Js);l(this,$s);l(this,Ks);l(this,Xs);l(this,Zs);l(this,Qs);l(this,Xt);l(this,Ys);l(this,eo);l(this,_r);l(this,on);l(this,Zt);l(this,an);l(this,dn);l(this,ln);l(this,kt);l(this,Qt);l(this,Yt);l(this,un);l(this,er);l(this,tr);l(this,rr);l(this,St);l(this,to);l(this,ro);l(this,cn);l(this,mn);l(this,L);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,rn,ve(`t3_${e.id}`)),d(this,nn,e.author),d(this,js,e.authorFullname?oe(e.authorFullname):void 0),d(this,sn,ie(e.subredditId)),d(this,Gs,e.subreddit),d(this,Ks,e.score??0),d(this,Xs,e.numComments??0),d(this,Zs,e.numReports??0);let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Ws,i),d(this,zs,e.title),d(this,Kt,e.selftext),d(this,Js,e.selftextHtml),d(this,$s,e.url),d(this,Vs,e.permalink),e.thumbnail&&e.thumbnail!=="self"&&e.thumbnail!=="nsfw"&&e.thumbnailHeight!=null&&e.thumbnailWidth!=null&&d(this,Qs,{url:e.thumbnail,height:e.thumbnailHeight,width:e.thumbnailWidth}),d(this,Xt,e.approved??!1),d(this,Ys,e.approvedAtUtc??0),d(this,eo,e.bannedAtUtc??0),d(this,Zt,e.removed??!1),d(this,an,e.removedBy),d(this,dn,e.removedByCategory),d(this,_r,e.spam??!1),d(this,on,e.stickied??!1),d(this,ln,e.archived??!1),d(this,kt,e.edited??!1),d(this,Qt,e.locked??!1),d(this,Yt,e.over18??!1),d(this,un,e.quarantine??!1),d(this,er,e.spoiler),d(this,tr,e.hidden??!1),d(this,rr,e.ignoreReports??!1),d(this,St,e.distinguished),d(this,ro,e.secureMedia),d(this,cn,(e.modReports??[]).map(([n])=>n)),d(this,mn,(e.userReports??[]).map(([n])=>n)),d(this,L,t),(e.linkFlairBackgroundColor||e.linkFlairCssClass||e.linkFlairText||e.linkFlairType||e.linkFlairTemplateId||e.linkFlairRichtext||e.linkFlairTextColor)&&d(this,to,{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,rn)}get authorId(){return s(this,js)}get authorName(){return s(this,nn)}get subredditId(){return s(this,sn)}get subredditName(){return s(this,Gs)}get permalink(){return s(this,Vs)}get title(){return s(this,zs)}get body(){return s(this,Kt)}get bodyHtml(){return s(this,Js)}get url(){return s(this,$s)}get thumbnail(){return s(this,Qs)}get createdAt(){return s(this,Ws)}get score(){return s(this,Ks)}get numberOfComments(){return s(this,Xs)}get numberOfReports(){return s(this,Zs)}get approved(){return s(this,Xt)}get approvedAtUtc(){return s(this,Ys)}get bannedAtUtc(){return s(this,eo)}get spam(){return s(this,_r)}get stickied(){return s(this,on)}get removed(){return s(this,Zt)}get removedBy(){return s(this,an)}get removedByCategory(){return s(this,dn)}get archived(){return s(this,ln)}get edited(){return s(this,kt)}get locked(){return s(this,Qt)}get nsfw(){return s(this,Yt)}get quarantined(){return s(this,un)}get spoiler(){return s(this,er)}get hidden(){return s(this,tr)}get ignoringReports(){return s(this,rr)}get distinguishedBy(){return s(this,St)}get comments(){return re.getComments({postId:this.id},s(this,L))}get flair(){return s(this,to)}get secureMedia(){return s(this,ro)}get userReportReasons(){return s(this,mn)}get modReportReasons(){return s(this,cn)}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,an),removedByCategory:s(this,dn),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,cn),userReportReasons:s(this,mn)}}isApproved(){return s(this,Xt)}isSpam(){return s(this,_r)}isStickied(){return s(this,on)}isRemoved(){return s(this,Zt)}isArchived(){return s(this,ln)}isEdited(){return s(this,kt)}isLocked(){return s(this,Qt)}isNsfw(){return s(this,Yt)}isQuarantined(){return s(this,un)}isSpoiler(){return s(this,er)}isHidden(){return s(this,tr)}isIgnoringReports(){return s(this,rr)}isDistinguishedBy(){return s(this,St)}async edit(e){let t=await N.edit({id:this.id,...e},s(this,L));d(this,Kt,t.body),d(this,kt,t.edited)}async setSuggestedCommentSort(e){await N.setSuggestedCommentSort({id:this.id,subredditId:s(this,sn),suggestedSort:e},s(this,L))}async setCustomPostPreview(e){let t=await N.setCustomPostPreview({id:this.id,body:this.body,ui:e},s(this,L));d(this,Kt,t.body),d(this,kt,t.edited)}async setTextFallback(e){let t=await N.setTextFallback(e,this.id,s(this,L));d(this,Kt,t.body),d(this,kt,t.edited)}async addComment(e){return re.submit({id:this.id,...e},s(this,L))}async delete(){return N.delete(this.id,s(this,L))}async approve(){await N.approve(this.id,s(this,L)),d(this,Xt,!0),d(this,Zt,!1)}async remove(e=!1){await N.remove(this.id,e,s(this,L)),d(this,Zt,!0),d(this,_r,e),d(this,Xt,!1)}async lock(){await N.lock(this.id,s(this,L)),d(this,Qt,!0)}async unlock(){await N.unlock(this.id,s(this,L)),d(this,Qt,!1)}async hide(){await N.hide(this.id,s(this,L)),d(this,tr,!0)}async unhide(){await N.unhide(this.id,s(this,L)),d(this,tr,!1)}async markAsNsfw(){await N.markAsNsfw(this.id,s(this,L)),d(this,Yt,!0)}async unmarkAsNsfw(){await N.unmarkAsNsfw(this.id,s(this,L)),d(this,Yt,!1)}async markAsSpoiler(){await N.markAsSpoiler(this.id,s(this,L)),d(this,er,!0)}async unmarkAsSpoiler(){await N.unmarkAsSpoiler(this.id,s(this,L)),d(this,er,!1)}async sticky(e){await N.sticky(this.id,e,s(this,L))}async unsticky(){await N.unsticky(this.id,s(this,L))}async distinguish(){let{distinguishedBy:e}=await N.distinguish(this.id,!1,s(this,L));d(this,St,e)}async distinguishAsAdmin(){let{distinguishedBy:e}=await N.distinguish(this.id,!0,s(this,L));d(this,St,e)}async undistinguish(){let{distinguishedBy:e}=await N.undistinguish(this.id,s(this,L));d(this,St,e)}async ignoreReports(){await N.ignoreReports(this.id,s(this,L)),d(this,rr,!0)}async unignoreReports(){await N.unignoreReports(this.id,s(this,L)),d(this,rr,!1)}async getAuthor(){return w.getByUsername(s(this,nn),s(this,L))}async crosspost(e){return N.crosspost({...e,postId:this.id},s(this,L))}addRemovalNote(e){return Me.addRemovalNote({itemIds:[s(this,rn)],...e},s(this,L))}async getEnrichedThumbnail(){return VR({id:this.id},s(this,L))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=hr(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 N(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?Im(g):"",y={kind:"custom",sr:e.subredditName,richtextJson:(0,tn.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 N.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 N.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 N.getById(n,t)}static async setSuggestedCommentSort(e,t){if(!(await ee.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=new RegExp(/DX_Bundle:\n\n {4}(?<bundle>[^\n]*)/g).exec(e.body??"");if(!i?.groups?.bundle)throw new Error(`Failed to set custom post preview. Couldn't find bundle in post ${e.id}`);let n=(0,tn.toByteArray)(i.groups.bundle),o=bS.decode(n);o.provides=[qR,WR].map(x=>jR.toSerializable(x));let a=(0,tn.fromByteArray)(bS.encode(o).finish()),p=new RegExp(/DX_RichtextFallback:\n\n {4}(?<fallback>[^\n]*)/g).exec(e.body??"")?.groups?.fallback,g=new Ar(e.ui),m=GR.fromJSON(await g.handle({events:[]},t)).blocks,y=(0,tn.fromByteArray)(yS.encode(m).finish()),b=new bt().heading({level:1},x=>x.rawText("DX_Bundle:")).codeBlock({language:""},x=>{x.rawText(a)}).heading({level:1},x=>x.rawText("DX_Config:")).codeBlock({language:""},x=>{x.rawText("EgA=")}).heading({level:1},x=>x.rawText("DX_Cached:")).codeBlock({language:""},x=>{x.rawText(y)});if(p&&b.heading({level:1},x=>x.rawText("DX_RichtextFallback:")).codeBlock({language:""},x=>{x.rawText(p)}),!(await ee.query("UpdatePost","ccc5f1da31a8d8c518b6607e81c2903a46f922cb6562c8b47fcc8988f0611360",{input:{postId:e.id,content:{richText:b.build()}}},t)).data?.updatePost?.ok)throw new Error("Failed to set custom post preview");return N.getById(e.id,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=Im(e);if((await n.EditCustomPost({thingId:t,richtextFallback:o},i)).json?.errors?.length)throw new Error("Failed to set post text fallback");return N.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 qs(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 qs(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 qs(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 qs(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 qs(o,t)}})}};rn=new WeakMap,js=new WeakMap,nn=new WeakMap,Ws=new WeakMap,sn=new WeakMap,Gs=new WeakMap,Vs=new WeakMap,zs=new WeakMap,Kt=new WeakMap,Js=new WeakMap,$s=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Qs=new WeakMap,Xt=new WeakMap,Ys=new WeakMap,eo=new WeakMap,_r=new WeakMap,on=new WeakMap,Zt=new WeakMap,an=new WeakMap,dn=new WeakMap,ln=new WeakMap,kt=new WeakMap,Qt=new WeakMap,Yt=new WeakMap,un=new WeakMap,er=new WeakMap,tr=new WeakMap,rr=new WeakMap,St=new WeakMap,to=new WeakMap,ro=new WeakMap,cn=new WeakMap,mn=new WeakMap,L=new WeakMap;var z=N;function qs(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 VR(r,e){let o=(await ee.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 zR=(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))(zR||{}),io,pn,no,so,oo,ao,lo,ir,uo,co,ot,Hr=class Hr{constructor(e,t){l(this,io);l(this,pn);l(this,no);l(this,so);l(this,oo);l(this,ao);l(this,lo);l(this,ir,new Map);l(this,uo);l(this,co);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,io,oe(Ya(e.id)?e.id:`t2_${e.id}`)),d(this,pn,e.name),d(this,ao,e.over18??!1),d(this,lo,e.isEmployee??!1);let i=new Date(0);if(i.setUTCSeconds(e.createdUtc),d(this,no,i),d(this,so,e.linkKarma??0),d(this,oo,e.commentKarma??0),e.modPermissions)for(let[n,o]of Object.entries(e.modPermissions))s(this,ir).set(n,gS(o));d(this,uo,new URL(e.subreddit?.url??"","https://www.reddit.com").toString()),d(this,co,e.subreddit?.url??""),d(this,ot,t)}get id(){return s(this,io)}get username(){return s(this,pn)}get createdAt(){return s(this,no)}get linkKarma(){return s(this,so)}get commentKarma(){return s(this,oo)}get nsfw(){return s(this,ao)}get isAdmin(){return s(this,lo)}get modPermissions(){return s(this,ir)}get url(){return s(this,uo)}get permalink(){return s(this,co)}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,ir).has(e))return s(this,ir).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,ir).set(e,i),i}getComments(e){return re.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,pn)},s(this,ot));return t.users[0]?Hs(t.users[0]):void 0}getSnoovatarUrl(){return Hr.getSnoovatarUrl(this.username,s(this,ot))}async getSocialLinks(){let i=await ee.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 $R(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?Sm(c):void 0,...p},t);if(g.json?.errors?.length)throw new Error(g.json.errors.join(`
|
|
3
|
+
`))}}import{EffectType as aR,HandleUIEventResponse as $c,UIEventHandlerDefinition as dR}from"@devvit/protos";var Eb=Ln(Ky(),1),Rb=Ln(Jc(),1);async function lR(r,e){let t=r.state??{},i=(0,Eb.default)(t),n=De({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,F)=>u.customPostType?.render(F)??null,r.event,r.state,e,void 0);return await b.reconcile(),$c.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,F=Bc(b);F?.location==="post"?f=P:F?.location==="comment"&&(m=P)}let y=Object.assign(n,ce(e,f,m),{uiEnvironment:{timezone:e[D.Timezone]?.values[0],locale:e[D.Language]?.values[0]}});await g.onSubmit({values:Et(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(),$c.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:aR.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:0}}]:a;return $c.fromJSON({state:i,effects:c})}function Ob(r){r.provides(dR),M("HandleUIEvent",lR)}import{CustomPostDefinition as Hd,UIResponse as ak}from"@devvit/protos";import{UIEventScope as vR}from"@devvit/protos";var Kc="ServerCallRequired";function Td(r){return r?.message===Kc}var Yc={now(){return new Date}};function Bb(r){return`__autocache__${r}`}function Mb(r){return`__lock__${r}`}var uR=300,cR=1e3,Ad=5e3,Xc=3,Ub=.1,Db=1e3,mR=3e4;function Lb(r){if(r.error)throw new Error(r.error);return r.value}var _t,Ht,Ne,Ai,K,Nb,_b,Hb,Zc,qb,jb,Qc,Wb,Ed=class{constructor(e,t,i=Yc){l(this,K);l(this,_t);l(this,Ht,{});l(this,Ne);l(this,Ai);d(this,_t,e),d(this,Ai,t),d(this,Ne,i)}async cache(e,t){var a;(a=s(this,Ai)).__cache??(a.__cache={}),d(this,Ht,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,Qc).call(this,t.key),o=await S(this,K,_b).call(this,t,n,e);return Lb(o)}};_t=new WeakMap,Ht=new WeakMap,Ne=new WeakMap,Ai=new WeakMap,K=new WeakSet,Nb=function(e){let t=s(this,Ht)[e];if(t){let i=s(this,Ne).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<Xc&&Math.random()<Ub&&t.errorTime+Db<i;if(t?.expires&&t.expires<i&&t.checkedAt+Db<i||n){delete s(this,Ht)[e];return}else return Lb(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<Xc&&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,_t).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,Zc).call(this,p,e.key,e.ttl)}},Zc=async function(e,t,i){let n=Math.min(i,cR),o=await S(this,K,Qc).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,uR)),S(this,K,Zc).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,Ht)[e]=t,await s(this,_t).set(Bb(e),JSON.stringify(t),{expiration:new Date(o+mR)}),t.error&&t.errorCount<Xc&&await s(this,_t).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},Qc=async function(e){let t=await s(this,_t).get(Bb(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Ne).now().getTime(),s(this,Ht)[e]=i,i}},Wb=function(e){e.ttl<Ad&&(console.warn(`Cache TTL cannot be less than ${Ad} milliseconds! Updating ttl value of ${e.ttl} to ${Ad}.`),e.ttl=Ad)};function Gb(r,e,t=Yc){let i=new Ed(r,e,t);return i.cache.bind(i)}import{EffectType as Rd,ToastAppearance as Jb}from"@devvit/protos";function Vb(r){let e=r.match(/form\.hook\.(.+)\.0/);if(e?.[1])return e[1]}var em=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(Et(n.formSubmitted.results))}}};function tm(r,e){let t=Je({namespace:"useForm",initializer:i=>new em(i,r,e)});return pR({id:t.hookId})}function pR(r){return`form.hook.${r.id}.0`}function zb(r,e){let t=Vb(e);return r.getHook({id:t})}var vt,Bd,Cs,Md,Od=class{constructor(e){l(this,vt);l(this,Bd,0);l(this,Cs);l(this,Md,(e,t)=>{s(this,vt).emitEffect(`postMessage${Bm(this,Bd)._++}`,{type:Rd.EFFECT_WEB_VIEW,webView:{postMessage:{webViewId:e,app:{message:t}}}})});d(this,vt,e),d(this,Cs,{postMessage:s(this,Md)})}get webView(){return s(this,Cs)}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};fr(n.fields),o.fields=mt(n.fields),s(this,vt).emitEffect(e,{type:Rd.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:Rd.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:Rd.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}};vt=new WeakMap,Bd=new WeakMap,Cs=new WeakMap,Md=new WeakMap;import{EffectType as gR,RealtimeSubscriptionStatus as $b}from"@devvit/protos";var qt,it,jt,wr,ws,im,Ud=class Ud{constructor(e,t){l(this,ws);l(this,qt);l(this,it);l(this,jt);l(this,wr);d(this,qt,t.context),d(this,it,!!t.context._devvitContext?.debug.realtime),d(this,wr,e),d(this,jt,t.invalidate);let i=t.context.meta[D.App]?.values[0];if(!i)throw Error("useChannel missing app ID metadata");let n=t.context.meta[D.Installation]?.values[0];if(!n)throw Error("useChannel missing install ID from metadata");let o=`${i}:${n}:${e.name}`;if(Object.values(s(this,qt)._hooks).filter(c=>c instanceof Ud).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,jt).call(this),await s(this,wr).onSubscribed?.();break;case $b.REALTIME_UNSUBSCRIBED:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" disconnected`),this.state.connected=!1,s(this,jt).call(this),await s(this,wr).onUnsubscribed?.();break;default:s(this,it)&&console.debug(`[realtime] "${this.state.channel}" received message: ${JSON.stringify(e,void 0,2)}`),s(this,wr).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,qt).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,jt).call(this),S(this,ws,im).call(this))}unsubscribe(){this.state.subscribed&&(s(this,it)&&console.debug(`[realtime] "${this.state.channel}" unsubscribed`),this.state.subscribed=!1,s(this,jt).call(this),S(this,ws,im).call(this))}};qt=new WeakMap,it=new WeakMap,jt=new WeakMap,wr=new WeakMap,ws=new WeakSet,im=function(){let e=Object.values(s(this,qt)._hooks).filter(t=>t instanceof Ud&&t.state.subscribed).map(t=>t.state.channel);s(this,qt).emitEffect(this.state.channel,{type:gR.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:e}})};var rm=Ud;function nm(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 rm(r,t)})}import{EffectType as sm}from"@devvit/protos";function Kb(r){return typeof r=="object"&&r!==null&&"__deleted"in r}var Ir,Wt,Ei=class Ei{constructor(e,t){l(this,Ir);this._segments=[];l(this,Wt,{});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,Ir,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,Ir).__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,Wt)).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,Wt)}set _hooks(e){this._prevHooks=s(this,Wt),d(this,Wt,e)}get _state(){return s(this,Ir)}set _state(e){d(this,Ir,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,Wt)[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()}}};Ir=new WeakMap,Wt=new WeakMap,Ei._staticUndeliveredHandlers={};var Ri=Ei;var Gt={};Ri.addGlobalUndeliveredEventHandler("intervals",async(r,e)=>{r.timer&&r.hook&&(delete Gt[r.hook],e.emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:Gt}}))});var Vt,Oi,Is,Bi,om=class{constructor(e,t,i){l(this,Vt);l(this,Oi);l(this,Is);l(this,Bi);this.state={duration:{seconds:0,nanos:0},running:!1};d(this,Oi,i.invalidate),d(this,Vt,i.hookId),d(this,Is,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?Gt[s(this,Vt)]={duration:this.state.duration}:delete Gt[s(this,Vt)]}async onUIEvent(e){await s(this,Is).call(this)}start(){Gt[s(this,Vt)]={duration:this.state.duration},this.state.running=!0,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:Gt}})}stop(){delete Gt[s(this,Vt)],this.state.running=!1,s(this,Oi).call(this),s(this,Bi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:Gt}})}};Vt=new WeakMap,Oi=new WeakMap,Is=new WeakMap,Bi=new WeakMap;function am(r,e){let t=Je({namespace:"useInterval",initializer:i=>new om(r,e,i)});return{start:()=>t.start(),stop:()=>t.stop()}}import{UIEventScope as fR}from"@devvit/protos";var xr=class extends Error{};import{UIEventScope as Xb}from"@devvit/protos";var Zb=Ln(Jc(),1);function lm(r){if(r instanceof Error){if(r.message===Kc)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,xs,Ui,dm=class{constructor(e,t,i){l(this,$e);l(this,nt);l(this,Mi);l(this,xs);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,xs,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,xs).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=lm(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,xs=new WeakMap,Ui=new WeakMap;function hR(r,e={}){let t=Je({namespace:"useAsync",initializer:i=>new dm(r,e,i)});return{data:t.state.data,error:t.state.error,loading:t.state.load_state==="loading"}}var yt,Di,Fr,Tr,um=class{constructor(e,t){this.state={value:null,load_state:"initial",error:null};l(this,yt);l(this,Di);l(this,Fr);l(this,Tr);d(this,Fr,e),d(this,Tr,t.hookId),d(this,yt,t.invalidate),d(this,Di,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=lm(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,Di)._prevHooks[s(this,Tr)]?._promise,this.state.load_state==="loading")throw new xr;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,Fr)instanceof Function?s(this,Fr).call(this):s(this,Fr)}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:fR.ALL,asyncRequest:{requestId:s(this,Tr)},hook:s(this,Tr)};throw s(this,Di).addToRequeueEvents(t),s(this,yt).call(this),new xr}else this.state.value=e,this.state.load_state="loaded";s(this,yt).call(this)}}};yt=new WeakMap,Di=new WeakMap,Fr=new WeakMap,Tr=new WeakMap;function cm(r){let e=Je({namespace:"useState",initializer:t=>new um(r,t)});return[e.state.value,e.setter.bind(e)]}var Dd=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 Od(e),m=new mi(i),y=new li,b=new gi(i),P=Gb(a,e._state),F={modLog:n,kvStore:o,redis:a,reddit:c,scheduler:p,settings:g,media:m,assets:y,realtime:b,ui:f,useState:cm,useChannel:nm,useInterval:am,useForm:tm,cache:P,dimensions:t.env?.dimensions,uiEnvironment:{timezone:i[D.Timezone]?.values[0],locale:i[D.Language]?.values[0],dimensions:t.env?.dimensions}},I=ce(i,t.props?.postId);return I.debug.effects=e,{...I,...F}}};var ke=null;function Qb(r){return JSON.parse(JSON.stringify(r))}function yR(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.");yR(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 bR=null,Yb=64,Li,_d,Fs,T,me,Ld,ek,mm,tk,pm,gm,Nd,hm,rk,Ar=class{constructor(e){l(this,T);l(this,Li);l(this,_d,new Dd);l(this,Fs,new wi(()=>this._latestRenderContext?.devvitContext?.assets));this._latestRenderContext=null;s(this,T,me)&&console.debug("[blocks] BlocksHandler v1"),d(this,Li,e),bR=this}async handle(e,t){let i=new Ri(e,t),n=s(this,_d).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:vR.ALL}),s(this,T,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,T,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,T,ek).call(this,i,...P),i._state=I}else await S(this,T,tk).call(this,i,...P)}catch(I){if(!Td(I))throw I;if(s(this,T,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 x=y.map(Ce=>{let wt={...Ce};return wt.retry=!0,wt});i.addToRequeueEvents(...x);break}else throw Td(I)||console.error("[blocks] unhandled error in handler",I),I}s(this,T,me)&&console.debug("[blocks] remaining events",i._requeueEvents);let F=[];for(let I of i._requeueEvents){if(!p&&!I.async){s(this,T,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch A",I),F.push(I);continue}if(p&&I.async&&!g){s(this,T,me)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch B",I),F.push(I);continue}s(this,T,me)&&console.debug("[blocks] reprocessing event in BlocksHandler",I),a.push(I)}i._requeueEvents=F,a.length>0&&(f={...i._changed},m={_state:Qb(i._state),_effects:{...i._effects}},y=[...a])}if(p){i._latestRenderContent||(i._latestRenderContent=S(this,T,pm).call(this,s(this,Li),i.request.props??{},i));let P=i._latestRenderContent;P&&(o=s(this,Fs).createBlocksElementOrThrow(P),o=s(this,Fs).ensureRootBlock(o))}return{state:i._changedState,effects:i.effects,blocks:o,events:i._requeueEvents}}};Li=new WeakMap,_d=new WeakMap,Fs=new WeakMap,T=new WeakSet,me=function(){return!!this._latestRenderContext?.devvitContext.debug.blocks},Ld=function(e,...t){e._hooks={},S(this,T,pm).call(this,s(this,Li),e.request.props??{},e)},ek=async function(e,...t){S(this,T,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,T,mm).call(this,e,i)}))},mm=async function(e,t){let i=e._hooks[t.hook];if(i?.onUIEvent)try{await i.onUIEvent(t,e)}catch(n){throw Td(n)?s(this,T,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,T,me)&&console.log("[blocks] handling main queue event",i),s(this,T,me)&&console.log("[blocks] before",e._state),S(this,T,Ld).call(this,e,i),await S(this,T,mm).call(this,e,i),s(this,T,me)&&console.log("[blocks] after",e._state);S(this,T,Ld).call(this,e)},pm=function(e,t,i){s(this,T,me)&&console.debug("[blocks] renderRoot"),i._generated={},ke=i,this._latestRenderContext=i;try{let n=S(this,T,gm).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 xr)return;throw n}finally{ke=null}},gm=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,T,hm).call(this,n,i)}finally{i.pop()}},Nd=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,T,hm).call(this,i,t)))},hm=function(e,t){if(Array.isArray(e))return S(this,T,Nd).call(this,e,t);if(kR(e))if(e.type===void 0)try{return t.push({namespace:"fragment",...e.props}),S(this,T,Nd).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,T,gm).call(this,e.type,i,t)}else try{t.push({namespace:e.type,...e.props});let i=S(this,T,Nd).call(this,e.children,t),n=S(this,T,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 kR(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),SR=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}`)}},PR=({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=SR(r);t?e.ui.navigateTo(t):console.warn("No upgrade link found for platform:",r)}},"Upgrade"))))),ok=r=>()=>u.createElement(PR,{platform:r});var CR=()=>u.createElement("vstack",{alignment:"center middle",width:"100%",height:"100%"},u.createElement("text",null,"This feature is not available yet")),wR=[[Hd,Hd.methods.renderPostContent,(r,e)=>u.customPostType?.render(e)??null],[Hd,Hd.methods.renderPostComposer,(r,e)=>u.createElement(CR,null)]];function IR(r){return async(e,t)=>{let i=nk(t["devvit-user-agent"]?.values?.[0]??"");if(i&&sk(i)){let o=new Ar(ok(i.platform));return ak.fromJSON(await o.handle(e,t))}let n=new Ar(r);return ak.fromJSON(await n.handle(e,t))}}function dk(r){for(let[e,t,i]of wR)r.provides(e),M(t.name,IR(i))}var Ni,Ts,_i,Er,Rr,Hi,qi,Or,zt,As,Es,Br,G,_=class _ extends ed{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,Er,e)}static createForm(e,t){let i=`form.${s(this,Rr).size}`;return s(this,Rr).set(i,{form:e,onSubmit:t}),i}static addSchedulerJob(e){if(s(this,G)[C.SchedulerDefinition.fullName]||this.use(C.SchedulerDefinition),s(this,Or).has(e.name))throw new Error(`Job ${e.name} is already defined`);s(this,Or).set(e.name,e.onRun)}static addSettings(e){fr(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,zt).has(e.event)?s(this,zt).get(e.event)?.push(e.onEvent):s(this,zt).set(e.event,[e.onEvent]),_}static provide(e){s(this,Es).push(e)}static use(e,t){s(this,Br)[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,Br)[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,Er)}static get formDefinitions(){return s(this,Rr)}static get scheduledJobHandlers(){return s(this,Or)}static get installationSettings(){return s(this,Hi)}static get appSettings(){return s(this,Ni)}static get triggerOnEventHandlers(){return s(this,zt)}static get assets(){return s(this,Ts)}static get webViewAssets(){return s(this,As)}constructor(e){super(e),d(_,Ts,e.assets??{}),d(_,As,e.webviewAssets??{});for(let t in s(_,Br)){let i=s(_,Br)[t];i.handler=e.use(i.def,i.options)}s(_,qi).length>0&&Uy(e),s(_,Or).size>0&&Dy(e),s(_,Er)&&(Oy(e),dk(e)),(s(_,Er)||s(_,Rr).size>0)&&Ob(e),s(_,Hi)&&By(e),s(_,Ni)&&py(e),s(_,zt).size>0&&Ly(e);for(let t of s(_,Es))e.provides(t)}};Ni=new WeakMap,Ts=new WeakMap,_i=new WeakMap,Er=new WeakMap,Rr=new WeakMap,Hi=new WeakMap,qi=new WeakMap,Or=new WeakMap,zt=new WeakMap,As=new WeakMap,Es=new WeakMap,Br=new WeakMap,G=new WeakMap,_.debug={},l(_,Ni),l(_,Ts,{}),l(_,_i,{}),l(_,Er),l(_,Rr,new Map),l(_,Hi),l(_,qi,[]),l(_,Or,new Map),l(_,zt,new Map),l(_,As,{}),l(_,Es,[]),l(_,Br,{}),l(_,G,{});var u=_;(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 fm;(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"})(fm||(fm={}));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,Rs(t,i),Os(t,i),Bs(t,i),Ds(t,i),Ls(t,i),Ns(t,i)),e(t),{e:Pk,c:i,...r.author&&{a:r.author}}}function Dk(r,e){let t={},i=[];return Object.assign(t,ym(t,i)),e(t),{e:Ck,c:i,...r.language&&{l:r.language}}}function Lk(r){return{e:pk,t:r.permalink}}function Nk(r,e){let t={},i=[];return Object.assign(t,ym(t,i),Us(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,Rs(e,t),Os(e,t),Bs(e,t),qd(e,t),Ds(e,t),Ls(e,t),Ns(e,t)),r(e),{e:wk,c:t}}function zk(r){let e={},t=[];return Object.assign(e,jd(e,t),Us(e,t),vm(e,t),bm(e,t),Ms(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,jd(e,t),Us(e,t),vm(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,jd(r,e),Us(r,e),bm(r,e),Ms(r,e)),[r,e]}function Rs(r,e){return{blockQuote(t,i){return e.push(Uk(t,i)),r}}}function Os(r,e){return{codeBlock(t,i){return e.push(Dk(t,i)),r}}}function lS(r,e){return{embed(t){return e.push(_k(t)),r}}}function Bs(r,e){return{heading(t,i){return e.push(Nk(t,i)),r}}}function qd(r,e){return{horizontalRule(){return e.push(Hk()),r}}}function Ms(r,e){return{image(t){return e.push(qk(t)),r},animatedImage(t){return e.push(Mk(t)),r}}}function vm(r,e){return{linebreak(){return e.push(jk()),r}}}function Us(r,e){return{link(t){return e.push(Wk(t)),r},commentLink(t){return e.push(Lk(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 Ds(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 ym(r,e){return{rawText(t){return e.push($k(t)),r}}}function bm(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 Ns(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 jd(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 xR=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},FR=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)},Wd,bt=class{constructor(){Wd.set(this,void 0);let e=[];Object.assign(this,Ls(this,e),Bs(this,e),qd(this,e),Rs(this,e),Os(this,e),lS(this,e),Ds(this,e),Ns(this,e),Ms(this,e),uS(this,e)),xR(this,Wd,{document:e},"f")}build(){return JSON.stringify(FR(this,Wd,"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}};Wd=new WeakMap;function ji(r){let e;return r instanceof bt?e=r.build():typeof r=="object"?e=JSON.stringify(r):e=r,e}var cS=100,mS=1/0,Mr,Ur,Jt,Wi,Gi,Gd,V=class{constructor(e){l(this,Gi);l(this,Mr);l(this,Ur);l(this,Jt);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,Ur,e.after),d(this,Mr,e.before),d(this,Jt,e.more),e.children&&(this.children=e.children)}get hasMore(){return!s(this,Wi)||!!(s(this,Ur)||s(this,Mr)||s(this,Jt))}async*[Symbol.asyncIterator](){let e=0;for(;;){if(e===this.children.length)if(this.hasMore){if((await S(this,Gi,Gd).call(this)).length===0)break}else break;if(yield this.children[e],e++,e===this.limit)break}}setMore(e){d(this,Jt,e)}preventInitialFetch(){d(this,Wi,!0)}async all(){for(;this.hasMore&&this.children.length<this.limit;)await S(this,Gi,Gd).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,Gd).call(this);return this.children.slice(0,t)}};Mr=new WeakMap,Ur=new WeakMap,Jt=new WeakMap,Wi=new WeakMap,Gi=new WeakSet,Gd=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,Mr),after:s(this,Ur),limit:this.pageSize,more:s(this,Jt)});return this.children.push(...e),d(this,Mr,t),d(this,Ur,i),d(this,Jt,n),d(this,Wi,!0),e};var _s,km,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,_s,km).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,_s,km).call(this,n.created)}static async addRemovalNote(e,t){await u.redditAPIPlugins.ModNote.PostRemovalNote(e,t)}};_s=new WeakSet,km=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,_s);var ee=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 TR(r,e){return e.map(t=>(r.includes(t)?"+":"-")+t).join(",")}function Sm(r){return TR(r,pS)}function gS(r){return r.filter(e=>pS.includes(e))}var AR=(t=>(t.User="USER_FLAIR",t.Post="LINK_FLAIR",t))(AR||{}),Lr,Vi,zi,Ji,$i,Ki,Xi,Zi,Qi,Yi,en,Vd,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,ER(e.textColor)),d(this,$i,RR(e.backgroundColor)),d(this,Ki,OR(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,Vd).call(i,{...e,flairType:"LINK_FLAIR"},t)}static async createUserFlairTemplate(e,t){var i;return S(i=Ke,en,Vd).call(i,{...e,flairType:"USER_FLAIR"},t)}static async editFlairTemplate(e,t){var i;return S(i=Ke,en,Vd).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,Vd=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 Hs(r){return{flairCssClass:r.flairCssClass,user:r.user,flairText:r.flairText}}var $t,Pm,Cm,Dr=class Dr{static async getUserFlairBySubreddit(e,t){return u.redditAPIPlugins.Flair.FlairList(e,t)}static setUserFlair(e,t){var i;return S(i=Dr,$t,Pm).call(i,e,t)}static setPostFlair(e,t){var i;return S(i=Dr,$t,Pm).call(i,{...e,postId:ve(e.postId)},t)}static async removePostFlair(e,t,i){var n;return S(n=Dr,$t,Cm).call(n,e,t,void 0,i)}static async removeUserFlair(e,t,i){var n;return S(n=Dr,$t,Cm).call(n,e,void 0,t,i)}};$t=new WeakSet,Pm=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)},Cm=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(Dr,$t);var Ue=Dr;function ER(r){if(v(r,"Flair text color is required"),r==="light"||r==="dark")return r;throw new Error(`Invalid flair text color: ${r}`)}function RR(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 OR(r){if(r==="all"||r==="text"||r==="emoji")return r;throw new Error(`Invalid allowable content: ${r}`)}import{Block as yS,CustomPostDefinition as qR,Definition as jR,UIEventHandlerDefinition as WR,UIResponse as GR}from"@devvit/protos";import{LinkedBundle as bS}from"@devvit/protos/types/devvit/runtime/bundle.js";var tn=Ln(vS(),1);var Im=r=>"text"in r?r.text:HR(r.richtext),HR=r=>r instanceof bt?r.build():typeof r=="object"?JSON.stringify(r):r;var rn,js,nn,Ws,sn,Gs,Vs,zs,Kt,Js,$s,Ks,Xs,Zs,Qs,Xt,Ys,eo,_r,on,Zt,an,dn,ln,kt,Qt,Yt,un,er,tr,rr,St,to,ro,cn,mn,L,N=class N{constructor(e,t){l(this,rn);l(this,js);l(this,nn);l(this,Ws);l(this,sn);l(this,Gs);l(this,Vs);l(this,zs);l(this,Kt);l(this,Js);l(this,$s);l(this,Ks);l(this,Xs);l(this,Zs);l(this,Qs);l(this,Xt);l(this,Ys);l(this,eo);l(this,_r);l(this,on);l(this,Zt);l(this,an);l(this,dn);l(this,ln);l(this,kt);l(this,Qt);l(this,Yt);l(this,un);l(this,er);l(this,tr);l(this,rr);l(this,St);l(this,to);l(this,ro);l(this,cn);l(this,mn);l(this,L);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,rn,ve(`t3_${e.id}`)),d(this,nn,e.author),d(this,js,e.authorFullname?oe(e.authorFullname):void 0),d(this,sn,ie(e.subredditId)),d(this,Gs,e.subreddit),d(this,Ks,e.score??0),d(this,Xs,e.numComments??0),d(this,Zs,e.numReports??0);let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Ws,i),d(this,zs,e.title),d(this,Kt,e.selftext),d(this,Js,e.selftextHtml),d(this,$s,e.url),d(this,Vs,e.permalink),e.thumbnail&&e.thumbnail!=="self"&&e.thumbnail!=="nsfw"&&e.thumbnailHeight!=null&&e.thumbnailWidth!=null&&d(this,Qs,{url:e.thumbnail,height:e.thumbnailHeight,width:e.thumbnailWidth}),d(this,Xt,e.approved??!1),d(this,Ys,e.approvedAtUtc??0),d(this,eo,e.bannedAtUtc??0),d(this,Zt,e.removed??!1),d(this,an,e.removedBy),d(this,dn,e.removedByCategory),d(this,_r,e.spam??!1),d(this,on,e.stickied??!1),d(this,ln,e.archived??!1),d(this,kt,e.edited??!1),d(this,Qt,e.locked??!1),d(this,Yt,e.over18??!1),d(this,un,e.quarantine??!1),d(this,er,e.spoiler),d(this,tr,e.hidden??!1),d(this,rr,e.ignoreReports??!1),d(this,St,e.distinguished),d(this,ro,e.secureMedia),d(this,cn,(e.modReports??[]).map(([n])=>n)),d(this,mn,(e.userReports??[]).map(([n])=>n)),d(this,L,t),(e.linkFlairBackgroundColor||e.linkFlairCssClass||e.linkFlairText||e.linkFlairType||e.linkFlairTemplateId||e.linkFlairRichtext||e.linkFlairTextColor)&&d(this,to,{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,rn)}get authorId(){return s(this,js)}get authorName(){return s(this,nn)}get subredditId(){return s(this,sn)}get subredditName(){return s(this,Gs)}get permalink(){return s(this,Vs)}get title(){return s(this,zs)}get body(){return s(this,Kt)}get bodyHtml(){return s(this,Js)}get url(){return s(this,$s)}get thumbnail(){return s(this,Qs)}get createdAt(){return s(this,Ws)}get score(){return s(this,Ks)}get numberOfComments(){return s(this,Xs)}get numberOfReports(){return s(this,Zs)}get approved(){return s(this,Xt)}get approvedAtUtc(){return s(this,Ys)}get bannedAtUtc(){return s(this,eo)}get spam(){return s(this,_r)}get stickied(){return s(this,on)}get removed(){return s(this,Zt)}get removedBy(){return s(this,an)}get removedByCategory(){return s(this,dn)}get archived(){return s(this,ln)}get edited(){return s(this,kt)}get locked(){return s(this,Qt)}get nsfw(){return s(this,Yt)}get quarantined(){return s(this,un)}get spoiler(){return s(this,er)}get hidden(){return s(this,tr)}get ignoringReports(){return s(this,rr)}get distinguishedBy(){return s(this,St)}get comments(){return re.getComments({postId:this.id},s(this,L))}get flair(){return s(this,to)}get secureMedia(){return s(this,ro)}get userReportReasons(){return s(this,mn)}get modReportReasons(){return s(this,cn)}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,an),removedByCategory:s(this,dn),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,cn),userReportReasons:s(this,mn)}}isApproved(){return s(this,Xt)}isSpam(){return s(this,_r)}isStickied(){return s(this,on)}isRemoved(){return s(this,Zt)}isArchived(){return s(this,ln)}isEdited(){return s(this,kt)}isLocked(){return s(this,Qt)}isNsfw(){return s(this,Yt)}isQuarantined(){return s(this,un)}isSpoiler(){return s(this,er)}isHidden(){return s(this,tr)}isIgnoringReports(){return s(this,rr)}isDistinguishedBy(){return s(this,St)}async edit(e){let t=await N.edit({id:this.id,...e},s(this,L));d(this,Kt,t.body),d(this,kt,t.edited)}async setSuggestedCommentSort(e){await N.setSuggestedCommentSort({id:this.id,subredditId:s(this,sn),suggestedSort:e},s(this,L))}async setCustomPostPreview(e){let t=await N.setCustomPostPreview({id:this.id,body:this.body,ui:e},s(this,L));d(this,Kt,t.body),d(this,kt,t.edited)}async setTextFallback(e){let t=await N.setTextFallback(e,this.id,s(this,L));d(this,Kt,t.body),d(this,kt,t.edited)}async addComment(e){return re.submit({id:this.id,...e},s(this,L))}async delete(){return N.delete(this.id,s(this,L))}async approve(){await N.approve(this.id,s(this,L)),d(this,Xt,!0),d(this,Zt,!1)}async remove(e=!1){await N.remove(this.id,e,s(this,L)),d(this,Zt,!0),d(this,_r,e),d(this,Xt,!1)}async lock(){await N.lock(this.id,s(this,L)),d(this,Qt,!0)}async unlock(){await N.unlock(this.id,s(this,L)),d(this,Qt,!1)}async hide(){await N.hide(this.id,s(this,L)),d(this,tr,!0)}async unhide(){await N.unhide(this.id,s(this,L)),d(this,tr,!1)}async markAsNsfw(){await N.markAsNsfw(this.id,s(this,L)),d(this,Yt,!0)}async unmarkAsNsfw(){await N.unmarkAsNsfw(this.id,s(this,L)),d(this,Yt,!1)}async markAsSpoiler(){await N.markAsSpoiler(this.id,s(this,L)),d(this,er,!0)}async unmarkAsSpoiler(){await N.unmarkAsSpoiler(this.id,s(this,L)),d(this,er,!1)}async sticky(e){await N.sticky(this.id,e,s(this,L))}async unsticky(){await N.unsticky(this.id,s(this,L))}async distinguish(){let{distinguishedBy:e}=await N.distinguish(this.id,!1,s(this,L));d(this,St,e)}async distinguishAsAdmin(){let{distinguishedBy:e}=await N.distinguish(this.id,!0,s(this,L));d(this,St,e)}async undistinguish(){let{distinguishedBy:e}=await N.undistinguish(this.id,s(this,L));d(this,St,e)}async ignoreReports(){await N.ignoreReports(this.id,s(this,L)),d(this,rr,!0)}async unignoreReports(){await N.unignoreReports(this.id,s(this,L)),d(this,rr,!1)}async getAuthor(){return w.getByUsername(s(this,nn),s(this,L))}async crosspost(e){return N.crosspost({...e,postId:this.id},s(this,L))}addRemovalNote(e){return Me.addRemovalNote({itemIds:[s(this,rn)],...e},s(this,L))}async getEnrichedThumbnail(){return VR({id:this.id},s(this,L))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=hr(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 N(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?Im(g):"",y={kind:"custom",sr:e.subredditName,richtextJson:(0,tn.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 N.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 N.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 N.getById(n,t)}static async setSuggestedCommentSort(e,t){if(!(await ee.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=new RegExp(/DX_Bundle:\n\n {4}(?<bundle>[^\n]*)/g).exec(e.body??"");if(!i?.groups?.bundle)throw new Error(`Failed to set custom post preview. Couldn't find bundle in post ${e.id}`);let n=(0,tn.toByteArray)(i.groups.bundle),o=bS.decode(n);o.provides=[qR,WR].map(x=>jR.toSerializable(x));let a=(0,tn.fromByteArray)(bS.encode(o).finish()),p=new RegExp(/DX_RichtextFallback:\n\n {4}(?<fallback>[^\n]*)/g).exec(e.body??"")?.groups?.fallback,g=new Ar(e.ui),m=GR.fromJSON(await g.handle({events:[]},t)).blocks,y=(0,tn.fromByteArray)(yS.encode(m).finish()),b=new bt().heading({level:1},x=>x.rawText("DX_Bundle:")).codeBlock({language:""},x=>{x.rawText(a)}).heading({level:1},x=>x.rawText("DX_Config:")).codeBlock({language:""},x=>{x.rawText("EgA=")}).heading({level:1},x=>x.rawText("DX_Cached:")).codeBlock({language:""},x=>{x.rawText(y)});if(p&&b.heading({level:1},x=>x.rawText("DX_RichtextFallback:")).codeBlock({language:""},x=>{x.rawText(p)}),!(await ee.query("UpdatePost","ccc5f1da31a8d8c518b6607e81c2903a46f922cb6562c8b47fcc8988f0611360",{input:{postId:e.id,content:{richText:b.build()}}},t)).data?.updatePost?.ok)throw new Error("Failed to set custom post preview");return N.getById(e.id,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=Im(e);if((await n.EditCustomPost({thingId:t,richtextFallback:o},i)).json?.errors?.length)throw new Error("Failed to set post text fallback");return N.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 qs(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 qs(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 qs(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 qs(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 qs(o,t)}})}};rn=new WeakMap,js=new WeakMap,nn=new WeakMap,Ws=new WeakMap,sn=new WeakMap,Gs=new WeakMap,Vs=new WeakMap,zs=new WeakMap,Kt=new WeakMap,Js=new WeakMap,$s=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Qs=new WeakMap,Xt=new WeakMap,Ys=new WeakMap,eo=new WeakMap,_r=new WeakMap,on=new WeakMap,Zt=new WeakMap,an=new WeakMap,dn=new WeakMap,ln=new WeakMap,kt=new WeakMap,Qt=new WeakMap,Yt=new WeakMap,un=new WeakMap,er=new WeakMap,tr=new WeakMap,rr=new WeakMap,St=new WeakMap,to=new WeakMap,ro=new WeakMap,cn=new WeakMap,mn=new WeakMap,L=new WeakMap;var z=N;function qs(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 VR(r,e){let o=(await ee.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 zR=(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))(zR||{}),io,pn,no,so,oo,ao,lo,ir,uo,co,ot,Hr=class Hr{constructor(e,t){l(this,io);l(this,pn);l(this,no);l(this,so);l(this,oo);l(this,ao);l(this,lo);l(this,ir,new Map);l(this,uo);l(this,co);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,io,oe(Ya(e.id)?e.id:`t2_${e.id}`)),d(this,pn,e.name),d(this,ao,e.over18??!1),d(this,lo,e.isEmployee??!1);let i=new Date(0);if(i.setUTCSeconds(e.createdUtc),d(this,no,i),d(this,so,e.linkKarma??0),d(this,oo,e.commentKarma??0),e.modPermissions)for(let[n,o]of Object.entries(e.modPermissions))s(this,ir).set(n,gS(o));d(this,uo,new URL(e.subreddit?.url??"","https://www.reddit.com").toString()),d(this,co,e.subreddit?.url??""),d(this,ot,t)}get id(){return s(this,io)}get username(){return s(this,pn)}get createdAt(){return s(this,no)}get linkKarma(){return s(this,so)}get commentKarma(){return s(this,oo)}get nsfw(){return s(this,ao)}get isAdmin(){return s(this,lo)}get modPermissions(){return s(this,ir)}get url(){return s(this,uo)}get permalink(){return s(this,co)}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,ir).has(e))return s(this,ir).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,ir).set(e,i),i}getComments(e){return re.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,pn)},s(this,ot));return t.users[0]?Hs(t.users[0]):void 0}getSnoovatarUrl(){return Hr.getSnoovatarUrl(this.username,s(this,ot))}async getSocialLinks(){let i=await ee.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 $R(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?Sm(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:Sm(i)},n);if(a.json?.errors?.length)throw new Error(a.json.errors.join(`
|
|
5
5
|
`))}static async getSnoovatarUrl(e,t){return(await ee.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 JR(o,t)}})}};io=new WeakMap,pn=new WeakMap,no=new WeakMap,so=new WeakMap,oo=new WeakMap,ao=new WeakMap,lo=new WeakMap,ir=new WeakMap,uo=new WeakMap,co=new WeakMap,ot=new WeakMap;var w=Hr;function JR(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 re(i.data,e);throw new Error(`Type ${i.kind} is not supported`)}),before:r.data.before,after:r.data.after}}async function $R(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,mo,gn,hn,po,go,fn,ho,fo,vn,nr,vo,yo,jr,sr,or,Pt,Wr,Ct,bo,ko,So,Po,Co,wo,Io,ar,te,at,Jd,$d,j=class j{constructor(e,t){l(this,qr);l(this,mo);l(this,gn);l(this,hn);l(this,po);l(this,go);l(this,fn);l(this,ho);l(this,fo);l(this,vn);l(this,nr);l(this,vo);l(this,yo);l(this,jr);l(this,sr);l(this,or);l(this,Pt);l(this,Wr);l(this,Ct);l(this,bo);l(this,ko);l(this,So);l(this,Po);l(this,Co);l(this,wo);l(this,Io);l(this,ar);l(this,te);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,mo,e.authorFullname?oe(e.authorFullname):void 0),d(this,gn,e.author),d(this,hn,e.body),d(this,ho,ie(e.subredditId)),d(this,fo,e.subreddit),d(this,go,dc(e.parentId)?ni(e.parentId):ve(e.parentId)),d(this,fn,ve(e.linkId)),d(this,jr,e.edited??!1),d(this,sr,e.locked??!1),d(this,or,e.removed??!1),d(this,Pt,e.stickied??!1),d(this,nr,e.approved??!1),d(this,vo,e.approvedAtUtc??0),d(this,yo,e.bannedAtUtc??0),d(this,Wr,e.spam??!1),d(this,Ct,e.distinguished),d(this,bo,e.numReports??0),d(this,ko,e.collapsedBecauseCrowdControl??!1),d(this,So,e.score??0),d(this,Po,e.permalink),d(this,Io,new URL(e.permalink??"","https://www.reddit.com/").toString()),d(this,ar,e.ignoreReports??!1),d(this,Co,(e.modReports??[]).map(([o])=>o)),d(this,wo,(e.userReports??[]).map(([o])=>o));let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,po,i),d(this,vn,S(n=j,at,Jd).call(n,{postId:s(this,fn),commentId:s(this,qr)},t)),d(this,te,t)}get id(){return s(this,qr)}get authorId(){return s(this,mo)}get authorName(){return s(this,gn)}get subredditId(){return s(this,ho)}get subredditName(){return s(this,fo)}get body(){return s(this,hn)}get createdAt(){return s(this,po)}get parentId(){return s(this,go)}get postId(){return s(this,fn)}get replies(){return s(this,vn)}get distinguishedBy(){return s(this,Ct)}get locked(){return s(this,sr)}get stickied(){return s(this,Pt)}get removed(){return s(this,or)}get approved(){return s(this,nr)}get approvedAtUtc(){return s(this,vo)}get bannedAtUtc(){return s(this,yo)}get spam(){return s(this,Wr)}get edited(){return s(this,jr)}get numReports(){return s(this,bo)}get collapsedBecauseCrowdControl(){return s(this,ko)}get score(){return s(this,So)}get permalink(){return s(this,Po)}get userReportReasons(){return s(this,wo)}get modReportReasons(){return s(this,Co)}get url(){return s(this,Io)}get ignoringReports(){return s(this,ar)}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,sr)}isApproved(){return s(this,nr)}isRemoved(){return s(this,or)}isSpam(){return s(this,Wr)}isStickied(){return s(this,Pt)}isDistinguished(){return!!s(this,Ct)}isEdited(){return s(this,jr)}isIgnoringReports(){return s(this,ar)}async delete(){return j.delete(this.id,s(this,te))}async edit(e){let t=await j.edit({id:this.id,...e},s(this,te));return d(this,hn,t.body),d(this,jr,t.edited),this}async approve(){await j.approve(this.id,s(this,te)),d(this,nr,!0),d(this,or,!1)}async remove(e=!1){await j.remove(this.id,e,s(this,te)),d(this,or,!0),d(this,Wr,e),d(this,nr,!1)}async lock(){await j.lock(this.id,s(this,te)),d(this,sr,!0)}async unlock(){await j.unlock(this.id,s(this,te)),d(this,sr,!1)}async reply(e){return j.submit({id:this.id,...e},s(this,te))}async getAuthor(){return w.getByUsername(s(this,gn),s(this,te))}async distinguish(e=!1){let{distinguishedBy:t,stickied:i}=await j.distinguish(this.id,e,!1,s(this,te));d(this,Ct,t),d(this,Pt,i)}async distinguishAsAdmin(e=!1){let{distinguishedBy:t,stickied:i}=await j.distinguish(this.id,e,!0,s(this,te));d(this,Ct,t),d(this,Pt,i)}async undistinguish(){let{distinguishedBy:e,stickied:t}=await j.undistinguish(this.id,s(this,te));d(this,Ct,e),d(this,Pt,t)}async ignoreReports(){await j.ignoreReports(this.id,s(this,te)),d(this,ar,!0)}async unignoreReports(){await j.unignoreReports(this.id,s(this,te)),d(this,ar,!1)}addRemovalNote(e){return Me.addRemovalNote({itemIds:[s(this,qr)],...e},s(this,te))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=Tt(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,Jd).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,mo=new WeakMap,gn=new WeakMap,hn=new WeakMap,po=new WeakMap,go=new WeakMap,fn=new WeakMap,ho=new WeakMap,fo=new WeakMap,vn=new WeakMap,nr=new WeakMap,vo=new WeakMap,yo=new WeakMap,jr=new WeakMap,sr=new WeakMap,or=new WeakMap,Pt=new WeakMap,Wr=new WeakMap,Ct=new WeakMap,bo=new WeakMap,ko=new WeakMap,So=new WeakMap,Po=new WeakMap,Co=new WeakMap,wo=new WeakMap,Io=new WeakMap,ar=new WeakMap,te=new WeakMap,at=new WeakSet,Jd=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 F=P.children.splice(0,o),I=await c.MoreChildren({linkId:e.postId,children:F,sort:e.sort},t);if(!I.json?.data?.things?.length)return{children:[]};let{children:x}=S(y=j,at,$d).call(y,I.json.data.things,e.postId,e,t);return{children:x,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,$d).call(b,f,p??e.postId,e,t,i)}})},$d=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,vn,S(g=j,at,Jd).call(g,{...i,postId:b.postId,commentId:b.id},n,o)),"replyList"in m.data&&m.data.replyList?.data){let{children:P,more:F}=S(f=j,at,$d).call(f,m.data.replyList.data.children,b.id,i,n,o);P.length&&b.replies.children.push(...P),F&&b.replies.setMore(F)}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:dc(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 re=j;function id(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 KR(n)}})}function KR(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:F,targetPermalink:I,targetTitle:x}=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:F?{id:F,author:b,body:P,permalink:I,title:x}:void 0}}),after:r.data.after,before:r.data.before}}import"@devvit/protos";var XR=(a=>(a.New="New",a.InProgress="InProgress",a.Archived="Archived",a.Appeals="Appeals",a.JoinRequests="JoinRequests",a.Filtered="Filtered",a))(XR||{}),ZR={0:"New",1:"InProgress",2:"Archived",3:"Appeals",4:"JoinRequests",5:"Filtered"},QR=(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))(QR||{}),YR={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,kS,SS,nd=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:ZR[e.state],messages:S(this,J,kS).call(this,e,t),modActions:S(this,J,SS).call(this,e,i)}},kS=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},SS=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:YR[a.actionTypeId]})}return i};async function xm(r,e){let t=e[D.AppUser]?.values[0],o=await ee.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 yn,bn,xo,Fo,To,Ao,Fm=class Fm{constructor(e,t){l(this,yn);l(this,bn);l(this,xo);l(this,Fo);l(this,To);l(this,Ao);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,yn,Re(e.name)),e.author!=null)d(this,bn,{type:"user",username:e.author,id:e.authorFullname?oe(e.authorFullname):void 0});else if(e.subreddit!=null)d(this,bn,{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,xo,e.body??""),d(this,Fo,e.bodyHtml??"");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,To,i),d(this,Ao,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,yn)}get from(){return s(this,bn)}get body(){return s(this,xo)}get bodyHtml(){return s(this,Fo)}get created(){return s(this,To)}async markAsRead(){await u.redditAPIPlugins.PrivateMessages.ReadMessage({id:s(this,yn)},s(this,Ao))}};yn=new WeakMap,bn=new WeakMap,xo=new WeakMap,Fo=new WeakMap,To=new WeakMap,Ao=new WeakMap;var vr=Fm;var ty=(o=>(o.Reports="reports",o.Spam="spam",o.Modqueue="modqueue",o.Unmoderated="unmoderated",o.Edited="edited",o))(ty||{}),PS=class{},CS=class{},wS=class{},IS=class{},kn,A,Eo,Ro,Oo,Bo,Mo,Uo,Do,Lo,No,Sn,E,dt=class dt{constructor(e,t){l(this,kn);l(this,A);l(this,Eo);l(this,Ro);l(this,Oo);l(this,Bo);l(this,Mo);l(this,Uo);l(this,Do);l(this,Lo);l(this,No);l(this,Sn);l(this,E);Y(this),v(e.id,"Subreddit id is missing or undefined"),v(e.displayName,"Subreddit name is missing or undefined"),d(this,kn,ie(`t5_${e.id}`)),d(this,A,e.displayName),v(e.createdUtc,"Subreddit is missing created date");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Eo,i),d(this,Ro,eO(e.subredditType)),d(this,Oo,e.title),d(this,Bo,e.description),v(e.lang,"Subreddit is missing language"),d(this,Mo,e.lang),d(this,Uo,e.subscribers??0),d(this,Do,e.activeUserCount??0),d(this,Lo,e.over18??!1),d(this,Sn,e.url??""),d(this,No,{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:tO(e.submissionType),allowedMediaInComments:(e.allowedMediaInComments??[]).map(rO),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,Sn),"https://www.reddit.com").toString()}),d(this,E,t)}get id(){return s(this,kn)}get name(){return s(this,A)}get createdAt(){return s(this,Eo)}get type(){return s(this,Ro)}get title(){return s(this,Oo)}get description(){return s(this,Bo)}get language(){return s(this,Mo)}get numberOfSubscribers(){return s(this,Uo)}get numberOfActiveUsers(){return s(this,Do)}get nsfw(){return s(this,Lo)}get settings(){return s(this,No)}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,Sn)}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,A)};return z.submit(t,s(this,E))}getControversialPosts(e={}){if(!s(this,A))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getControversialPosts({...e,subredditName:s(this,A)},s(this,E))}getTopPosts(e={}){if(!s(this,A))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getTopPosts({...e,subredditName:s(this,A)},s(this,E))}getApprovedUsers(e={}){return w.getSubredditUsersByType({type:"contributors",subredditName:s(this,A),...e},s(this,E))}approveUser(e){return w.createRelationship({username:e,subredditName:s(this,A),type:"contributor"},s(this,E))}removeUser(e){return w.removeRelationship({username:e,subredditName:s(this,A),type:"contributor"},s(this,E))}getWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikicontributors",subredditName:s(this,A),...e},s(this,E))}addWikiContributor(e){return w.createRelationship({username:e,subredditName:s(this,A),type:"wikicontributor"},s(this,E))}removeWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,A),type:"wikicontributor"},s(this,E))}getBannedUsers(e={}){return w.getSubredditUsersByType({type:"banned",subredditName:s(this,A),...e},s(this,E))}banUser(e){return w.createRelationship({username:e.username,subredditName:s(this,A),type:"banned",banReason:e.reason,banMessage:e.message,note:e.note,duration:e.duration,banContext:e.context},s(this,E))}unbanUser(e){return w.removeRelationship({username:e,subredditName:s(this,A),type:"banned"},s(this,E))}getBannedWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikibanned",subredditName:s(this,A),...e},s(this,E))}banWikiContributor(e){return w.createRelationship({username:e.username,subredditName:s(this,A),type:"wikibanned",banReason:e.reason,note:e.note,duration:e.duration},s(this,E))}unbanWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,A),type:"wikibanned"},s(this,E))}getModerators(e={}){return w.getSubredditUsersByType({type:"moderators",subredditName:s(this,A),...e},s(this,E))}inviteModerator(e,t){return w.createRelationship({type:"moderator_invite",subredditName:s(this,A),username:e,permissions:t??[]},s(this,E))}revokeModeratorInvite(e){return w.removeRelationship({username:e,subredditName:s(this,A),type:"moderator_invite"},s(this,E))}removeModerator(e){return w.removeRelationship({type:"moderator",subredditName:s(this,A),username:e},s(this,E))}setModeratorPermissions(e,t){return w.setModeratorPermissions(e,s(this,A),t,s(this,E))}getMutedUsers(e={}){return w.getSubredditUsersByType({type:"muted",subredditName:s(this,A),...e},s(this,E))}muteUser(e,t){return w.createRelationship({username:e,subredditName:s(this,A),type:"muted",note:t},s(this,E))}unmuteUser(e){return w.removeRelationship({username:e,subredditName:s(this,A),type:"muted"},s(this,E))}getModerationLog(e){return id({subredditName:s(this,A),...e},s(this,E))}getUserFlairTemplates(){return ue.getUserFlairTemplates(s(this,A),s(this,E))}getPostFlairTemplates(){return ue.getPostFlairTemplates(s(this,A),s(this,E))}createPostFlairTemplate(e){return ue.createPostFlairTemplate({subredditName:s(this,A),...e},s(this,E))}createUserFlairTemplate(e){return ue.createUserFlairTemplate({subredditName:s(this,A),...e},s(this,E))}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,A),name:i},s(this,E));return Hs(n.users[0])}))};{let t=await Ue.getUserFlairBySubreddit({...e,subreddit:s(this,A)},s(this,E));return{next:t.next,prev:t.prev,users:t.users.map(i=>Hs(i))}}}getModQueue(e={type:"all"}){return dt.aboutLocation({...e,location:"modqueue",subreddit:s(this,A)},s(this,E))}getReports(e={type:"all"}){return dt.aboutLocation({...e,location:"reports",subreddit:s(this,A)},s(this,E))}getSpam(e={type:"all"}){return dt.aboutLocation({...e,location:"spam",subreddit:s(this,A)},s(this,E))}getUnmoderated(e={type:"all"}){return dt.aboutLocation({...e,location:"unmoderated",subreddit:s(this,A)},s(this,E))}getEdited(e={type:"all"}){return dt.aboutLocation({...e,location:"edited",subreddit:s(this,A)},s(this,E))}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 xS(a,t)}})}getCommentsAndPostsByIds(e){let t=u.redditAPIPlugins.LinksAndComments;return new V({fetch:async()=>{let i=await t.Info({thingIds:e,subreddits:[s(this,kn)]},s(this,E));return xS(i,s(this,E))}})}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?.[D.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)}};kn=new WeakMap,A=new WeakMap,Eo=new WeakMap,Ro=new WeakMap,Oo=new WeakMap,Bo=new WeakMap,Mo=new WeakMap,Uo=new WeakMap,Do=new WeakMap,Lo=new WeakMap,No=new WeakMap,Sn=new WeakMap,E=new WeakMap;var ye=dt;async function ry(r,e){let o=(await ee.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 ee.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 ee.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 ee.query("GetSubredditStyles","d491d17ea8858f563ea578b26b9595d64adecf4bf34557d567c7e53c470f5f22",{id:r},e)).data?.subredditInfoById?.styles;if(!o)throw new Error("subreddit styles not found");return o}function eO(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 tO(r){if(r==="any"||r==="link"||r==="self")return r;throw new Error(`invalid allowed post type: ${r}`)}function rO(r){if(r==="animated"||r==="giphy"||r==="static"||r==="expression")return r;throw new Error(`invalid comment media type: ${r}`)}function xS(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 re(a.data,e)}catch{return null}}}async function oy(r,e){return FS("GetVaultContactByAddress","3e2f7966a5c120e64fd2795d06a46595c52d988185be98d3ed71c3f81ae80d2e",{provider:"ethereum",address:r},e)}async function ay(r,e){return FS("GetVaultContactByUserId","a854ddc19d0e22c4f36ed917fdbd568f299f3571427e393aee5e2972080fffe9",{provider:"ethereum",userId:r},e)}async function FS(r,e,t,i){let o=(await ee.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 iO,GetWidgetsResponse_WidgetItem as pe}from"@devvit/protos";var _o,Ho,qo,jo,Am=class Am{constructor(e,t,i){l(this,_o);l(this,Ho);l(this,qo);l(this,jo);Y(this),d(this,_o,e.id),d(this,Ho,e.shortName),d(this,qo,t),d(this,jo,i)}get id(){return s(this,_o)}get name(){return s(this,Ho)}get subredditName(){return s(this,qo)}toJSON(){return{id:this.id,name:this.name,subredditName:this.subredditName}}delete(){return Am.delete(this.subredditName,this.id,s(this,jo))}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 Kd(p,e,t));break;case"calendar":a.push(new Xd(p,e,t));break;case"textarea":a.push(new Zd(p,e,t));break;case"button":a.push(new Qd(p,e,t));break;case"community-list":a.push(new Yd(p,e,t));break;case"post-flair":a.push(new el(p,e,t));break;case"custom":a.push(new tl(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 Kd.create(e,t);case"calendar":return Xd.create(e,t);case"textarea":return Zd.create(e,t);case"button":return Qd.create(e,t);case"community-list":return Yd.create(e,t);case"post-flair":return el.create(e,t);case"custom":return tl.create(e,t);default:throw new Error("Unknown widget type")}}};_o=new WeakMap,Ho=new WeakMap,qo=new WeakMap,jo=new WeakMap;var ae=Am,Wo,rl=class rl extends ae{constructor(t,i,n){super(t,i,n);l(this,Wo);d(this,Wo,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,Wo)}toJSON(){return{...super.toJSON(),images:this.images}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddImageWidget(t,i);return new rl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateImageWidget(t,i);return new rl(pe.fromJSON(o),t.subreddit,i)}};Wo=new WeakMap;var Kd=rl,Go,Vo,zo,il=class il extends ae{constructor(t,i,n){super(t,i,n);l(this,Go);l(this,Vo);l(this,zo);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,Go,t.googleCalendarId),d(this,Vo,t.configuration),d(this,zo,t.styles)}get googleCalendarId(){return s(this,Go)}get configuration(){return s(this,Vo)}get styles(){return s(this,zo)}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 il(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCalendarWidget(t,i);return new il(pe.fromJSON(o),t.subreddit,i)}};Go=new WeakMap,Vo=new WeakMap,zo=new WeakMap;var Xd=il,Jo,$o,nl=class nl extends ae{constructor(t,i,n){super(t,i,n);l(this,Jo);l(this,$o);v(t.text,"Textarea widget data is missing text"),v(t.styles,"Textarea widget data is missing styles"),d(this,Jo,t.text),d(this,$o,t.styles)}get text(){return s(this,Jo)}get styles(){return s(this,$o)}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 nl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateTextAreaWidget(t,i);return new nl(pe.fromJSON(o),t.subreddit,i)}};Jo=new WeakMap,$o=new WeakMap;var Zd=nl,Ko,Xo,Zo,sl=class sl extends ae{constructor(t,i,n){super(t,i,n);l(this,Ko);l(this,Xo);l(this,Zo);v(t.styles,"Button widget data is missing styles"),d(this,Ko,t.buttons),d(this,Xo,t.description??""),d(this,Zo,t.styles)}get buttons(){return s(this,Ko)}get description(){return s(this,Xo)}get styles(){return s(this,Zo)}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 sl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateButtonWidget(t,i);return new sl(pe.fromJSON(o),t.subreddit,i)}};Ko=new WeakMap,Xo=new WeakMap,Zo=new WeakMap;var Qd=sl,Qo,Yo,ol=class ol extends ae{constructor(t,i,n){super(t,i,n);l(this,Qo);l(this,Yo);d(this,Qo,t.data.map(o=>iO.fromJSON(o))),v(t.styles,"Community list widget data is missing styles"),d(this,Yo,t.styles)}get communities(){return s(this,Qo)}get styles(){return s(this,Yo)}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 ol(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCommunityListWidget(t,i);return new ol(pe.fromJSON(o),t.subreddit,i)}};Qo=new WeakMap,Yo=new WeakMap;var Yd=ol,ea,ta,ra,al=class al extends ae{constructor(t,i,n){super(t,i,n);l(this,ea);l(this,ta);l(this,ra);if(v(t.styles,"Post flair widget data is missing styles"),d(this,ea,t.styles),d(this,ta,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,ra,t.display)}get styles(){return s(this,ea)}get templates(){return s(this,ta)}get display(){return s(this,ra)}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 al(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdatePostFlairWidget(t,i);return new al(pe.fromJSON(o),t.subreddit,i)}};ea=new WeakMap,ta=new WeakMap,ra=new WeakMap;var el=al,ia,na,sa,oa,aa,dl=class dl extends ae{constructor(t,i,n){super(t,i,n);l(this,ia);l(this,na);l(this,sa);l(this,oa);l(this,aa);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,ia,t.imageData??[]),d(this,na,t.text??""),d(this,sa,t.stylesheetUrl),d(this,oa,t.height),d(this,aa,t.css)}get images(){return s(this,ia)}get text(){return s(this,na)}get stylesheetUrl(){return s(this,sa)}get height(){return s(this,oa)}get css(){return s(this,aa)}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 dl(pe.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCustomWidget(t,i);return new dl(pe.fromJSON(o),t.subreddit,i)}};ia=new WeakMap,na=new WeakMap,sa=new WeakMap,oa=new WeakMap,aa=new WeakMap;var tl=dl,da,Tm=class extends ae{constructor(t,i,n,o){super(i,n,o);l(this,da);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,da,a)}get rules(){return s(this,da)}toJSON(){return{...super.toJSON(),rules:this.rules}}};da=new WeakMap;var nO=(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))(nO||{}),Se,Pe,Pn,Cn,wn,In,xn,Fn,Xe,He=class He{constructor(e,t,i,n){l(this,Se);l(this,Pe);l(this,Pn);l(this,Cn);l(this,wn);l(this,In);l(this,xn);l(this,Fn);l(this,Xe);Y(this),d(this,Se,e),d(this,Pe,t),d(this,Pn,i.contentMd),d(this,Cn,i.contentHtml),d(this,wn,i.revisionId),d(this,In,new Date(i.revisionDate*1e3)),d(this,xn,i.reason??""),d(this,Fn,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,Pn)}get contentHtml(){return s(this,Cn)}get revisionId(){return s(this,wn)}get revisionDate(){return s(this,In)}get revisionReason(){return s(this,xn)}get revisionAuthor(){return s(this,Fn)}toJSON(){return{name:s(this,Se),subredditName:s(this,Pe),content:s(this,Pn),contentHtml:s(this,Cn),revisionId:s(this,wn),revisionDate:s(this,In),revisionReason:s(this,xn),revisionAuthor:s(this,Fn)?.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 sO(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 ll(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 ll(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,Pn=new WeakMap,Cn=new WeakMap,wn=new WeakMap,In=new WeakMap,xn=new WeakMap,Fn=new WeakMap,Xe=new WeakMap;var be=He,Tn,An,En,Rn,On,Bn,Em=class{constructor(e,t){l(this,Tn);l(this,An);l(this,En);l(this,Rn);l(this,On);l(this,Bn);d(this,Tn,e.id),d(this,An,e.page),d(this,En,new Date(e.timestamp)),v(e.author?.data,"Wiki page revision author details are missing"),d(this,Rn,new w(e.author.data,t)),d(this,On,e.reason??""),d(this,Bn,e.revisionHidden??!1)}get id(){return s(this,Tn)}get page(){return s(this,An)}get date(){return s(this,En)}get author(){return s(this,Rn)}get reason(){return s(this,On)}get hidden(){return s(this,Bn)}toJSON(){return{id:s(this,Tn),page:s(this,An),date:s(this,En),author:s(this,Rn).toJSON(),reason:s(this,On),hidden:s(this,Bn)}}};Tn=new WeakMap,An=new WeakMap,En=new WeakMap,Rn=new WeakMap,On=new WeakMap,Bn=new WeakMap;var Mn,Un,Dn,ll=class{constructor(e,t){l(this,Mn);l(this,Un);l(this,Dn);d(this,Mn,e.listed),d(this,Un,e.permLevel),d(this,Dn,e.editors.map(i=>(v(i.data,"Wiki page editor details are missing"),new w(i.data,t))))}get listed(){return s(this,Mn)}get permLevel(){return s(this,Un)}get editors(){return s(this,Dn)}toJSON(){return{listed:s(this,Mn),permLevel:s(this,Un),editors:s(this,Dn).map(e=>e.toJSON())}}};Mn=new WeakMap,Un=new WeakMap,Dn=new WeakMap;function sO(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 oO=["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"],aO=["border-image","border-image-source","behavior","expression","list-style-image","cursor","content"],dO=["onload","onerror","onclick","onmouseover"];function lO(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 TS(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*(${oO.join("|")})\\b`,"gi"),t=new RegExp(`(${aO.join("|")})\\s*:\\s*url\\s*\\((['"]?)(.*?)\\2\\)`,"gi"),i=new RegExp(`(${dO.join("|")})\\s*(=\\s*(['"]?)(.*?)\\3)?`,"gi");r=r.trim().replace(/\s+/g," "),r=lO(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 Sq(r,...e){let t="";return r.forEach((i,n)=>{t+=i;let o=e[n];o!==void 0&&(t+=`${o}`)}),t=TS(t),t===void 0?"":`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(t)}`}export{EM as ALL_ICON_NAMES,ty as AboutLocations,wS as AuthorFlairSettings,Qd as ButtonWidget,Xd as CalendarWidget,re as Comment,Yd as CommunityListWidget,tl as CustomWidget,u as Devvit,Ue as Flair,ue as FlairTemplate,AR as FlairType,At as Hook,Kd as ImageWidget,V as Listing,QR as ModMailActionType,XR as ModMailConversationState,nd as ModMailService,Me as ModNote,z as Post,IS as PostFlairSettings,el as PostFlairWidget,vr as PrivateMessage,bt as RichTextBuilder,lc as SettingScope,zR as SocialLinkType,ye as Subreddit,PS as SubredditDescription,Tm as SubredditRulesWidget,CS as SubredditWikiSettings,Zd as TextAreaWidget,w as User,ae as Widget,be as WikiPage,nO as WikiPagePermissionLevel,Em as WikiPageRevision,ll as WikiPageSettings,Hs as convertUserFlairProtoToAPI,id as getModerationLog,ry as getSubredditInfoById,iy as getSubredditInfoByName,ny as getSubredditLeaderboard,sy as getSubredditStyles,oy as getVaultByAddress,ay as getVaultByUserId,Sq as svg,hR as useAsync,nm as useChannel,tm as useForm,am as useInterval,cm as useState};
|
|
6
6
|
/*! Bundled license information:
|