@devvit/ui-renderer 0.12.2-next-2025-10-14-20-12-24-67ef9681c.0 → 0.12.2-next-2025-10-14-20-54-23-baa59b4c1.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/client/devvit-custom-post.d.ts.map +1 -1
- package/client/devvit-custom-post.js +1 -1
- package/client/devvit-custom-post.js.map +1 -1
- package/client/devvit-surface.d.ts +12 -0
- package/client/devvit-surface.d.ts.map +1 -1
- package/client/devvit-surface.js +20 -3
- package/client/devvit-surface.js.map +1 -1
- package/client/web-view.d.ts +5 -1
- package/client/web-view.d.ts.map +1 -1
- package/client/web-view.js +10 -2
- package/client/web-view.js.map +1 -1
- package/client/web-view.test.js.map +1 -1
- package/devvit-custom-post-meta.min.json +6 -6
- package/devvit-custom-post.min.js +1 -1
- package/devvit-custom-post.min.js.map +3 -3
- package/devvit-surface-meta.min.json +6 -6
- package/devvit-surface.min.js +17 -17
- package/devvit-surface.min.js.map +3 -3
- package/package.json +8 -8
|
@@ -631,7 +631,7 @@ button inline-flex`},tn=e=>{let{createElement:t}=P(),{attributes:n,selected:i,ro
|
|
|
631
631
|
style="${i(r)}"
|
|
632
632
|
>
|
|
633
633
|
${a===E?"":a}
|
|
634
|
-
</div>`}else return a}var f5,p5,St,e3=class extends r0{constructor(){super(...arguments);M(this,f5,window.matchMedia("(prefers-color-scheme: dark)"));M(this,p5,()=>this.requestUpdate());M(this,St,()=>({stackDirection:I.UNRECOGNIZED}))}static get styles(){return[et]}connectedCallback(){super.connectedCallback(),p(this,f5)?.addEventListener("change",p(this,p5))}disconnectedCallback(){super.disconnectedCallback(),p(this,f5)?.removeEventListener("change",p(this,p5))}async getUpdateComplete(){let n=await super.getUpdateComplete(),i=this.renderRoot.querySelectorAll("[data-block-type]");for(let a=0;a<i.length;a++)await i.item(a).updateComplete;return n}reset(){this.renderRoot.querySelectorAll("[data-block-type]").forEach(i=>{i.reset?.()})}findBlockById(n){let i=this.renderRoot.querySelector(`#${n}[data-block-type]`);if(i)return{blockType:i.dataset.blockType,element:i}}findBlocksByType(n){return Array.from(this.renderRoot.querySelectorAll(`[data-block-type=${n}]`)).map(i=>({blockType:n,element:i}))}render(){if(this.block&&this.block.type===_.BLOCK_ROOT){let n={...p(this,St).call(this),...this.renderContext?.()??{}},i=new j5,a=L7(this.block,n);return i.finish(),this.dispatchEvent(G0(W3,{name:"blocks_layout",timeStart:i.timeStart,timeEnd:i.timeEnd})),U1` <div class="${f2(this.class)}">${a}</div>`}return U1`${nn({creative:U1`<slot name="empty-state-image"></slot>`,title:S6("Whoops!",{desc:"Header for message to display when rendering fails"}),description:S6("Something went wrong while attempting to display this content.",{desc:"Message for users to display when rendering fails"})})}`}};f5=new WeakMap,p5=new WeakMap,St=new WeakMap,L([G({attribute:!1})],e3.prototype,"block",2),L([G({attribute:!1})],e3.prototype,"renderContext",2),L([G()],e3.prototype,"class",2),e3=L([en(),u3("devvit-blocks-renderer")],e3);var Mt;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.INLINE_MODE=1]="INLINE_MODE",e[e.IMMERSIVE_MODE=2]="IMMERSIVE_MODE",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"})(Mt||(Mt={}));var Lt=b(B(),1);function g8(){return{height:0,width:0,scale:0,fontScale:void 0}}var _7={$type:"devvit.ui.common.v1alpha.UIDimensions",encode(e,t=Lt.default.Writer.create()){return e.height!==0&&t.uint32(8).int32(e.height),e.width!==0&&t.uint32(16).int32(e.width),e.scale!==0&&t.uint32(29).float(e.scale),e.fontScale!==void 0&&t.uint32(37).float(e.fontScale),t},decode(e,t){let n=e instanceof Lt.default.Reader?e:Lt.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=g8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==8)break;a.height=n.int32();continue;case 2:if(r!==16)break;a.width=n.int32();continue;case 3:if(r!==29)break;a.scale=n.float();continue;case 4:if(r!==37)break;a.fontScale=n.float();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{height:yt(e.height)?globalThis.Number(e.height):0,width:yt(e.width)?globalThis.Number(e.width):0,scale:yt(e.scale)?globalThis.Number(e.scale):0,fontScale:yt(e.fontScale)?globalThis.Number(e.fontScale):void 0}},toJSON(e){let t={};return e.height!==0&&(t.height=Math.round(e.height)),e.width!==0&&(t.width=Math.round(e.width)),e.scale!==0&&(t.scale=e.scale),e.fontScale!==void 0&&(t.fontScale=e.fontScale),t},create(e){return _7.fromPartial(e??{})},fromPartial(e){let t=g8();return t.height=e.height??0,t.width=e.width??0,t.scale=e.scale??0,t.fontScale=e.fontScale??void 0,t}};u.set(_7.$type,_7);function yt(e){return e!=null}var w8="ServerCallRequired";var _t=class extends Error{constructor(t,n){super(w8),this.response=t,this.cause=n,this.name="CircuitBreakerResponse"}};function t3(e){return e?.message===w8}var x0=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",PostData:"devvit-post-data",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",Username:"devvit-user-name",UserSnoovatarUrl:"devvit-user-snoovatar-url",UserAgent:"devvit-user-agent",Version:"devvit-version",Language:"devvit-accept-language",Timezone:"devvit-accept-timezone",Traceparent:"traceparent",AppDependencies:"devvit-app-dependencies"});var A8;(function(e){e.Blocks="blocks",e.EmitSnapshots="emitSnapshots",e.EmitState="emitState",e.Realtime="realtime",e.Runtime="runtime",e.Surface="surface",e.UseAsync="useAsync",e.Payments="payments",e.Bootstrap="bootstrap",e.WebView="webView"})(A8||(A8={}));function Z8(e,t){let n,i=0,a;return function(...r){return a=r,n??(n=setTimeout(()=>{i=Date.now(),n=void 0;let o=a;a=void 0,e.apply(this,o)},Math.max(0,t-(Date.now()-i)))),()=>{n!=null&&clearTimeout(n),n=void 0,a=void 0}}}function E8(e,t){if(!e)throw Error(t)}var Nt;(function(e){e.COMMENT="t1_",e.ACCOUNT="t2_",e.LINK="t3_",e.MESSAGE="t4_",e.SUBREDDIT="t5_",e.AWARD="t6_"})(Nt||(Nt={}));function Ms(e){return e.startsWith(Nt.LINK)}function ys(e){E8(Ms(e),`Expected link id to start with ${Nt.LINK}, got ${e}}`)}function x8(e){return ys(e),e}var Vt="0.0.0";var Ls=1,_s=16;function C8(e,t,n){let{width:i,height:a}=e.contentRect,o=t.getComputedStyle(n).fontSize.split("px")[0],s=o?parseFloat(o)/_s:Ls;return{width:Math.round(i),height:Math.round(a),scale:t.devicePixelRatio,fontScale:s}}var U=b(B(),1);var n1;(function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.VERBOSE=4]="VERBOSE",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"})(n1||(n1={}));function Ns(e){switch(e){case 0:case"DEBUG":return n1.DEBUG;case 1:case"INFO":return n1.INFO;case 2:case"WARN":return n1.WARN;case 3:case"ERROR":return n1.ERROR;case 4:case"VERBOSE":return n1.VERBOSE;case-1:case"UNRECOGNIZED":default:return n1.UNRECOGNIZED}}function Vs(e){switch(e){case n1.DEBUG:return 0;case n1.INFO:return 1;case n1.WARN:return 2;case n1.ERROR:return 3;case n1.VERBOSE:return 4;case n1.UNRECOGNIZED:default:return-1}}function S8(){return{message:"",name:"",fileName:void 0,lineNumber:void 0,columnNumber:void 0,stack:void 0,timestamp:void 0,tags:[]}}var N7={$type:"devvit.plugin.logger.LogErrorMessage",encode(e,t=U.default.Writer.create()){e.message!==""&&t.uint32(10).string(e.message),e.name!==""&&t.uint32(18).string(e.name),e.fileName!==void 0&&E0.encode({value:e.fileName},t.uint32(26).fork()).ldelim(),e.lineNumber!==void 0&&k2.encode({value:e.lineNumber},t.uint32(34).fork()).ldelim(),e.columnNumber!==void 0&&k2.encode({value:e.columnNumber},t.uint32(42).fork()).ldelim(),e.stack!==void 0&&E0.encode({value:e.stack},t.uint32(50).fork()).ldelim(),e.timestamp!==void 0&&I1.encode(H7(e.timestamp),t.uint32(58).fork()).ldelim();for(let n of e.tags)t.uint32(66).string(n);return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=S8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.message=n.string();continue;case 2:if(r!==18)break;a.name=n.string();continue;case 3:if(r!==26)break;a.fileName=E0.decode(n,n.uint32()).value;continue;case 4:if(r!==34)break;a.lineNumber=k2.decode(n,n.uint32()).value;continue;case 5:if(r!==42)break;a.columnNumber=k2.decode(n,n.uint32()).value;continue;case 6:if(r!==50)break;a.stack=E0.decode(n,n.uint32()).value;continue;case 7:if(r!==58)break;a.timestamp=It(I1.decode(n,n.uint32()));continue;case 8:if(r!==66)break;a.tags.push(n.string());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{message:S1(e.message)?globalThis.String(e.message):"",name:S1(e.name)?globalThis.String(e.name):"",fileName:S1(e.fileName)?String(e.fileName):void 0,lineNumber:S1(e.lineNumber)?Number(e.lineNumber):void 0,columnNumber:S1(e.columnNumber)?Number(e.columnNumber):void 0,stack:S1(e.stack)?String(e.stack):void 0,timestamp:S1(e.timestamp)?b7(e.timestamp):void 0,tags:globalThis.Array.isArray(e?.tags)?e.tags.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),e.name!==""&&(t.name=e.name),e.fileName!==void 0&&(t.fileName=e.fileName),e.lineNumber!==void 0&&(t.lineNumber=e.lineNumber),e.columnNumber!==void 0&&(t.columnNumber=e.columnNumber),e.stack!==void 0&&(t.stack=e.stack),e.timestamp!==void 0&&(t.timestamp=e.timestamp.toISOString()),e.tags?.length&&(t.tags=e.tags),t},create(e){return N7.fromPartial(e??{})},fromPartial(e){let t=S8();return t.message=e.message??"",t.name=e.name??"",t.fileName=e.fileName??void 0,t.lineNumber=e.lineNumber??void 0,t.columnNumber=e.columnNumber??void 0,t.stack=e.stack??void 0,t.timestamp=e.timestamp??void 0,t.tags=e.tags?.map(n=>n)||[],t}};u.set(N7.$type,N7);function M8(){return{type:"",timestamp:void 0,labels:{},data:{}}}var V7={$type:"devvit.plugin.logger.LogEventMessage",encode(e,t=U.default.Writer.create()){return e.type!==""&&t.uint32(10).string(e.type),e.timestamp!==void 0&&I1.encode(H7(e.timestamp),t.uint32(18).fork()).ldelim(),Object.entries(e.labels).forEach(([n,i])=>{m5.encode({key:n,value:i},t.uint32(26).fork()).ldelim()}),Object.entries(e.data).forEach(([n,i])=>{g5.encode({key:n,value:i},t.uint32(34).fork()).ldelim()}),t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=M8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.type=n.string();continue;case 2:if(r!==18)break;a.timestamp=It(I1.decode(n,n.uint32()));continue;case 3:if(r!==26)break;let o=m5.decode(n,n.uint32());o.value!==void 0&&(a.labels[o.key]=o.value);continue;case 4:if(r!==34)break;let s=g5.decode(n,n.uint32());s.value!==void 0&&(a.data[s.key]=s.value);continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{type:S1(e.type)?globalThis.String(e.type):"",timestamp:S1(e.timestamp)?b7(e.timestamp):void 0,labels:R8(e.labels)?Object.entries(e.labels).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},data:R8(e.data)?Object.entries(e.data).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.type!==""&&(t.type=e.type),e.timestamp!==void 0&&(t.timestamp=e.timestamp.toISOString()),e.labels){let n=Object.entries(e.labels);n.length>0&&(t.labels={},n.forEach(([i,a])=>{t.labels[i]=a}))}if(e.data){let n=Object.entries(e.data);n.length>0&&(t.data={},n.forEach(([i,a])=>{t.data[i]=a}))}return t},create(e){return V7.fromPartial(e??{})},fromPartial(e){let t=M8();return t.type=e.type??"",t.timestamp=e.timestamp??void 0,t.labels=Object.entries(e.labels??{}).reduce((n,[i,a])=>(a!==void 0&&(n[i]=globalThis.String(a)),n),{}),t.data=Object.entries(e.data??{}).reduce((n,[i,a])=>(a!==void 0&&(n[i]=globalThis.String(a)),n),{}),t}};u.set(V7.$type,V7);function y8(){return{key:"",value:""}}var m5={$type:"devvit.plugin.logger.LogEventMessage.LabelsEntry",encode(e,t=U.default.Writer.create()){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=y8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.key=n.string();continue;case 2:if(r!==18)break;a.value=n.string();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{key:S1(e.key)?globalThis.String(e.key):"",value:S1(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return m5.fromPartial(e??{})},fromPartial(e){let t=y8();return t.key=e.key??"",t.value=e.value??"",t}};u.set(m5.$type,m5);function L8(){return{key:"",value:""}}var g5={$type:"devvit.plugin.logger.LogEventMessage.DataEntry",encode(e,t=U.default.Writer.create()){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=L8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.key=n.string();continue;case 2:if(r!==18)break;a.value=n.string();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{key:S1(e.key)?globalThis.String(e.key):"",value:S1(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return g5.fromPartial(e??{})},fromPartial(e){let t=L8();return t.key=e.key??"",t.value=e.value??"",t}};u.set(g5.$type,g5);function _8(){return{severity:0,message:"",timestamp:void 0,tags:[]}}var $1={$type:"devvit.plugin.logger.LogMessage",encode(e,t=U.default.Writer.create()){e.severity!==0&&t.uint32(8).int32(e.severity),e.message!==""&&t.uint32(18).string(e.message),e.timestamp!==void 0&&I1.encode(H7(e.timestamp),t.uint32(26).fork()).ldelim();for(let n of e.tags)t.uint32(34).string(n);return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=_8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==8)break;a.severity=n.int32();continue;case 2:if(r!==18)break;a.message=n.string();continue;case 3:if(r!==26)break;a.timestamp=It(I1.decode(n,n.uint32()));continue;case 4:if(r!==34)break;a.tags.push(n.string());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{severity:S1(e.severity)?Ns(e.severity):0,message:S1(e.message)?globalThis.String(e.message):"",timestamp:S1(e.timestamp)?b7(e.timestamp):void 0,tags:globalThis.Array.isArray(e?.tags)?e.tags.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.severity!==0&&(t.severity=Vs(e.severity)),e.message!==""&&(t.message=e.message),e.timestamp!==void 0&&(t.timestamp=e.timestamp.toISOString()),e.tags?.length&&(t.tags=e.tags),t},create(e){return $1.fromPartial(e??{})},fromPartial(e){let t=_8();return t.severity=e.severity??0,t.message=e.message??"",t.timestamp=e.timestamp??void 0,t.tags=e.tags?.map(n=>n)||[],t}};u.set($1.$type,$1);function N8(){return{messages:[]}}var I7={$type:"devvit.plugin.logger.LogMessages",encode(e,t=U.default.Writer.create()){for(let n of e.messages)$1.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=N8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.messages.push($1.decode(n,n.uint32()));continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{messages:globalThis.Array.isArray(e?.messages)?e.messages.map(t=>$1.fromJSON(t)):[]}},toJSON(e){let t={};return e.messages?.length&&(t.messages=e.messages.map(n=>$1.toJSON(n))),t},create(e){return I7.fromPartial(e??{})},fromPartial(e){let t=N8();return t.messages=e.messages?.map(n=>$1.fromPartial(n))||[],t}};u.set(I7.$type,I7);function V8(){return{}}var T7={$type:"devvit.plugin.logger.LogErrorResponse",encode(e,t=U.default.Writer.create()){return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=V8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return T7.fromPartial(e??{})},fromPartial(e){return V8()}};u.set(T7.$type,T7);function I8(){return{}}var R7={$type:"devvit.plugin.logger.LogEventResponse",encode(e,t=U.default.Writer.create()){return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=I8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return R7.fromPartial(e??{})},fromPartial(e){return I8()}};u.set(R7.$type,R7);function T8(){return{}}var O7={$type:"devvit.plugin.logger.LogResponse",encode(e,t=U.default.Writer.create()){return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=T8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return O7.fromPartial(e??{})},fromPartial(e){return T8()}};u.set(O7.$type,O7);function H7(e){let t=Math.trunc(e.getTime()/1e3),n=e.getTime()%1e3*1e6;return{seconds:t,nanos:n}}function It(e){let t=(e.seconds||0)*1e3;return t+=(e.nanos||0)/1e6,new globalThis.Date(t)}function b7(e){return e instanceof globalThis.Date?e:typeof e=="string"?new globalThis.Date(e):It(I1.fromJSON(e))}function R8(e){return typeof e=="object"&&e!==null}function S1(e){return e!=null}var C0;(function(e){e.ENABLE_APP_LOGGING="enableAppLogging",e.ENABLE_DEBUG_LOGGING="enableDebugLogging",e.ENABLE_PLUGINS="enablePlugins",e.LOAD_BUNDLE="loadBundle",e.CALL="call",e.PLUGIN_RESPONSE="pluginResponse",e.QUIT="quit"})(C0||(C0={}));var v0;(function(e){e.READY="ready",e.PLUGINS_CONFIGURED="pluginsConfigured",e.BUNDLE_LOADED="bundleLoaded",e.BUNDLE_LOAD_FAILED="bundleLoadFailed",e.RETURN="return",e.ERROR="error",e.CIRCUIT_BREAKER="circuitBreaker",e.PLUGIN_CALL="pluginCall",e.UNHANDLED_REJECTION="unhandledRejection"})(v0||(v0={}));function O8(e){return e.hostname.split(".")[1]??e.hostname}var M1=b(B(),1);function H8(){return{callState:void 0,connect:void 0}}var B7={$type:"devvit.cli.PlaytestProviderMessage",encode(e,t=M1.default.Writer.create()){return e.callState!==void 0&&Ee.encode(e.callState,t.uint32(10).fork()).ldelim(),e.connect!==void 0&&xe.encode(e.connect,t.uint32(18).fork()).ldelim(),t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=H8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.callState=Ee.decode(n,n.uint32());continue;case 2:if(r!==18)break;a.connect=xe.decode(n,n.uint32());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{callState:Tt(e.callState)?Ee.fromJSON(e.callState):void 0,connect:Tt(e.connect)?xe.fromJSON(e.connect):void 0}},toJSON(e){let t={};return e.callState!==void 0&&(t.callState=Ee.toJSON(e.callState)),e.connect!==void 0&&(t.connect=xe.toJSON(e.connect)),t},create(e){return B7.fromPartial(e??{})},fromPartial(e){let t=H8();return t.callState=e.callState!==void 0&&e.callState!==null?Ee.fromPartial(e.callState):void 0,t.connect=e.connect!==void 0&&e.connect!==null?xe.fromPartial(e.connect):void 0,t}};u.set(B7.$type,B7);function b8(){return{appInstalled:void 0}}var w5={$type:"devvit.cli.PlaytestSubscriberMessage",encode(e,t=M1.default.Writer.create()){return e.appInstalled!==void 0&&Ze.encode(e.appInstalled,t.uint32(10).fork()).ldelim(),t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=b8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.appInstalled=Ze.decode(n,n.uint32());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{appInstalled:Tt(e.appInstalled)?Ze.fromJSON(e.appInstalled):void 0}},toJSON(e){let t={};return e.appInstalled!==void 0&&(t.appInstalled=Ze.toJSON(e.appInstalled)),t},create(e){return w5.fromPartial(e??{})},fromPartial(e){let t=b8();return t.appInstalled=e.appInstalled!==void 0&&e.appInstalled!==null?Ze.fromPartial(e.appInstalled):void 0,t}};u.set(w5.$type,w5);function B8(){return{}}var Ze={$type:"devvit.cli.PlaytestAppInstalled",encode(e,t=M1.default.Writer.create()){return t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=B8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return Ze.fromPartial(e??{})},fromPartial(e){return B8()}};u.set(Ze.$type,Ze);function k8(){return{logs:[]}}var Ee={$type:"devvit.cli.PlaytestCallState",encode(e,t=M1.default.Writer.create()){for(let n of e.logs)$1.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=k8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.logs.push($1.decode(n,n.uint32()));continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{logs:globalThis.Array.isArray(e?.logs)?e.logs.map(t=>$1.fromJSON(t)):[]}},toJSON(e){let t={};return e.logs?.length&&(t.logs=e.logs.map(n=>$1.toJSON(n))),t},create(e){return Ee.fromPartial(e??{})},fromPartial(e){let t=k8();return t.logs=e.logs?.map(n=>$1.fromPartial(n))||[],t}};u.set(Ee.$type,Ee);function P8(){return{url:""}}var xe={$type:"devvit.cli.PlaytestConnect",encode(e,t=M1.default.Writer.create()){return e.url!==""&&t.uint32(10).string(e.url),t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=P8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.url=n.string();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{url:Tt(e.url)?globalThis.String(e.url):""}},toJSON(e){let t={};return e.url!==""&&(t.url=e.url),t},create(e){return xe.fromPartial(e??{})},fromPartial(e){let t=P8();return t.url=e.url??"",t}};u.set(xe.$type,xe);function Tt(e){return e!=null}var k7="playtest",$8="ws://localhost:5678";function U8(e){let t=P7();return t===""||t===e}function P7(){return globalThis.location?new URL(location.href).searchParams.get(k7)??void 0:void 0}var a1=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},A5=function(e,t,n,i,a){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?a.call(e,n):a?a.value=n:t.set(e,n),n},Z5,r1,$7,D8,U7,D7,G7,F7,Is=15e3,Rt=class{constructor(){Z5.add(this),r1.set(this,{type:"Init"}),U7.set(this,()=>{a1(this,r1,"f").type==="Opened"&&this.onState?.("Closed"),A5(this,r1,a1(this,Z5,"m",D8).call(this),"f")}),D7.set(this,t=>{let n=w5.fromJSON(JSON.parse(t.data));switch(!0){case n.appInstalled!=null:this.onState?.("Reloading");break}}),G7.set(this,()=>{if(a1(this,r1,"f").type!=="Opening")throw Error(`invalid transition from ${a1(this,r1,"f").type}`);this.onState?.("Opened"),A5(this,r1,{sock:a1(this,r1,"f").sock,type:"Opened"},"f"),this.send({connect:{url:location.href}})}),F7.set(this,()=>{A5(this,r1,a1(this,Z5,"m",$7).call(this),"f")})}close(){"timer"in a1(this,r1,"f")&&clearTimeout(a1(this,r1,"f").timer),"sock"in a1(this,r1,"f")&&(a1(this,r1,"f").sock.onopen=null,a1(this,r1,"f").sock.onmessage=null,a1(this,r1,"f").sock.onclose=null,a1(this,r1,"f").sock.close()),A5(this,r1,{type:"Init"},"f")}open(){a1(this,r1,"f").type==="Init"&&A5(this,r1,a1(this,Z5,"m",$7).call(this),"f")}send(t){"sock"in a1(this,r1,"f")?a1(this,r1,"f").sock.send(JSON.stringify(t)):console.warn("devvit playtest message dropped",t)}};r1=new WeakMap,U7=new WeakMap,D7=new WeakMap,G7=new WeakMap,F7=new WeakMap,Z5=new WeakSet,$7=function(){let t=new WebSocket($8);return t.onclose=a1(this,U7,"f"),t.onmessage=a1(this,D7,"f"),t.onopen=a1(this,G7,"f"),{sock:t,type:"Opening"}},D8=function(){return{timer:setTimeout(a1(this,F7,"f"),Is),type:"Retrying"}};var X=function(e,t,n,i,a){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?a.call(e,n):a?a.value=n:t.set(e,n),n},m=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},S0,Ot,Ht,Y,S3,E5,x5,bt,n3,M0,c2,M3,L3,d2,J7,C5,Bt,W7,G8,y3,kt,q7,Ts={debug:n1.DEBUG,error:n1.ERROR,info:n1.INFO,log:n1.DEBUG,trace:n1.DEBUG,warn:n1.WARN},Pt=class{constructor(t,n,i,a){S0.add(this),Ot.set(this,void 0),Ht.set(this,void 0),Y.set(this,void 0),S3.set(this,!1),E5.set(this,!1),x5.set(this,!1),bt.set(this,0),n3.set(this,void 0),M0.set(this,{}),c2.set(this,void 0),M3.set(this,()=>{}),L3.set(this,void 0),d2.set(this,void 0),J7.set(this,P7()),C5.set(this,!1),Bt.set(this,void 0),W7.set(this,r=>{let o=r.data,[s]=o;switch(s){case v0.READY:{let[,l]=o;X(this,Bt,l,"f"),X(this,E5,!0,"f"),m(this,L3,"f")?.plugins?m(this,S0,"m",G8).call(this):m(this,S0,"m",kt).call(this);break}case v0.PLUGINS_CONFIGURED:m(this,S0,"m",kt).call(this);break;case v0.BUNDLE_LOADED:{let[,l,c]=o;m(this,S0,"m",y3).call(this,l),X(this,S3,!0,"f"),X(this,x5,!0,"f"),m(this,c2,"f")?.resolve({metrics:{init:m(this,Bt,"f"),loadBundle:c}}),X(this,c2,void 0,"f");break}case v0.BUNDLE_LOAD_FAILED:{let[,,l,c]=o;m(this,S0,"m",y3).call(this,c),m(this,c2,"f")?.reject(l),X(this,c2,void 0,"f");break}case v0.RETURN:{let[,l,c,d]=o;m(this,S0,"m",y3).call(this,d),m(this,M0,"f")[l]?.resolve(c),delete m(this,M0,"f")[l];break}case v0.ERROR:{let[,l,c,d]=o;m(this,S0,"m",y3).call(this,d),m(this,M0,"f")[l]?.reject(c),delete m(this,M0,"f")[l];break}case v0.CIRCUIT_BREAKER:{let[,l,c,d]=o;m(this,M0,"f")[l]?.reject(new _t(c,d)),delete m(this,M0,"f")[l];break}case v0.PLUGIN_CALL:{let[,l,c,d,v,f]=o;m(this,L3,"f")?.callback(l,c,d,v,f);break}case v0.UNHANDLED_REJECTION:{let[,,l,c]=o;m(this,S0,"m",y3).call(this,c),m(this,M3,"f").call(this,"UnhandledRejection",l);break}}}),q7.set(this,r=>{switch(r){case"Opened":console.info("devvit playtest connected");break;case"Closed":console.info("devvit playtest disconnected");break;case"Reloading":{console.info("devvit playtest reloading"),m(this,d2,"f")?.close();let o=new URL(location.href);o.searchParams.set(k7,m(this,J7,"f")??""),location.assign(o),location.reload();break}}}),X(this,Ot,typeof t=="string"?t:URL.createObjectURL(t),"f"),X(this,Ht,n,"f"),i&&X(this,M3,i,"f"),a&&X(this,L3,a,"f")}initializeWorker(){X(this,Y,new Worker(m(this,Ot,"f"),{name:m(this,Ht,"f"),type:"module"}),"f"),m(this,Y,"f").onerror=t=>{m(this,M3,"f").call(this,"Error",t)},m(this,Y,"f").onmessageerror=t=>{m(this,M3,"f").call(this,"MessageError",t.data)},m(this,Y,"f").onmessage=m(this,W7,"f"),this.runtimeDebugLogging&&m(this,Y,"f").postMessage([C0.ENABLE_DEBUG_LOGGING])}get ready(){return m(this,S3,"f")}get runtimeDebugLogging(){return m(this,C5,"f")}set runtimeDebugLogging(t){t!==m(this,C5,"f")&&(X(this,C5,t,"f"),this.runtimeDebugLogging&&m(this,Y,"f")?.postMessage([C0.ENABLE_DEBUG_LOGGING]))}async loadBundle(t){return X(this,n3,t,"f"),m(this,Y,"f")?m(this,E5,"f")&&!m(this,x5,"f")&&m(this,S0,"m",kt).call(this):this.initializeWorker(),new Promise((n,i)=>{X(this,c2,{resolve:n,reject:i},"f")})}async call(t,n,i){var a;if(!m(this,S3,"f")||!m(this,Y,"f"))throw new Error("No bundle loaded");let r=X(this,bt,(a=m(this,bt,"f"),++a),"f"),o=new Promise((s,l)=>{m(this,M0,"f")[r]={resolve:s,reject:l}});return m(this,Y,"f").postMessage([C0.CALL,r,t,n,i,!1]),o}onPluginResponse(t,n){m(this,Y,"f")?.postMessage([C0.PLUGIN_RESPONSE,t,n])}quit(){if(m(this,n3,"f")){m(this,d2,"f")?.close(),X(this,d2,void 0,"f"),X(this,S3,!1,"f"),m(this,Y,"f")&&(m(this,Y,"f").postMessage([C0.QUIT]),m(this,Y,"f").onerror=null,m(this,Y,"f").onmessageerror=null,m(this,Y,"f").onmessage=null,m(this,Y,"f").terminate()),X(this,Y,void 0,"f"),X(this,x5,!1,"f"),X(this,E5,!1,"f");for(let{reject:t}of Object.values(m(this,M0,"f")))t(Error("worker terminated"));X(this,M0,{},"f"),m(this,c2,"f")?.reject(Error("worker terminated")),X(this,c2,void 0,"f")}}};Ot=new WeakMap,Ht=new WeakMap,Y=new WeakMap,S3=new WeakMap,E5=new WeakMap,x5=new WeakMap,bt=new WeakMap,n3=new WeakMap,M0=new WeakMap,c2=new WeakMap,M3=new WeakMap,L3=new WeakMap,d2=new WeakMap,J7=new WeakMap,C5=new WeakMap,Bt=new WeakMap,W7=new WeakMap,q7=new WeakMap,S0=new WeakSet,G8=function(){m(this,Y,"f")?.postMessage([C0.ENABLE_PLUGINS,m(this,L3,"f")?.plugins??[]])},y3=function(t){if(!t.length)return;let n=new Date,i={logs:t.map(a=>({severity:Ts[a.method],message:a.args.join(" "),tags:[],timestamp:n}))};m(this,d2,"f")?.send({callState:i})},kt=function(){if(!m(this,n3,"f"))return;let t=U8(O8(m(this,n3,"f")));t&&(X(this,d2,new Rt,"f"),m(this,d2,"f").onState=m(this,q7,"f")),m(this,d2,"f")?.open(),t&&m(this,Y,"f").postMessage([C0.ENABLE_APP_LOGGING]),m(this,Y,"f")?.postMessage([C0.LOAD_BUNDLE,m(this,n3,"f")])};var eo=b(J8(),1);var M5=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},K7=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},W8=e=>globalThis.DOMException===void 0?new K7(e):new DOMException(e),q8=e=>{let t=e.reason===void 0?W8("This operation was aborted."):e.reason;return t instanceof Error?t:W8(t)};function z7(e,t,n,i){let a,r=new Promise((o,s)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(e);return}if(i={customTimers:{setTimeout,clearTimeout},...i},i.signal){let{signal:l}=i;l.aborted&&s(q8(l)),l.addEventListener("abort",()=>{s(q8(l))})}a=i.customTimers.setTimeout.call(void 0,()=>{if(typeof n=="function"){try{o(n())}catch(d){s(d)}return}let l=typeof n=="string"?n:`Promise timed out after ${t} milliseconds`,c=n instanceof Error?n:new M5(l);typeof e.cancel=="function"&&e.cancel(),s(c)},t),(async()=>{try{o(await e)}catch(l){s(l)}finally{i.customTimers.clearTimeout.call(void 0,a)}})()});return r.clear=()=>{clearTimeout(a),a=void 0},r}function Q7(e,t,n){let i=0,a=e.length;for(;a>0;){let r=Math.trunc(a/2),o=i+r;n(e[o],t)<=0?(i=++o,a-=r+1):a=r}return i}var r3=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},u2,y5=class{constructor(){u2.set(this,[])}enqueue(t,n){n={priority:0,...n};let i={priority:n.priority,run:t};if(this.size&&r3(this,u2,"f")[this.size-1].priority>=n.priority){r3(this,u2,"f").push(i);return}let a=Q7(r3(this,u2,"f"),i,(r,o)=>o.priority-r.priority);r3(this,u2,"f").splice(a,0,i)}dequeue(){let t=r3(this,u2,"f").shift();return t?.run}filter(t){return r3(this,u2,"f").filter(n=>n.priority===t.priority).map(n=>n.run)}get size(){return r3(this,u2,"f").length}};u2=new WeakMap;var K=function(e,t,n,i,a){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?a.call(e,n):a?a.value=n:t.set(e,n),n},w=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},i1,_5,N5,Se,Wt,V5,Ut,y0,L5,e0,Dt,t0,I5,Ce,Gt,X8,K8,Y8,z8,Q8,Ft,Y7,j7,qt,j8,Jt,Xt=class extends Error{},T5=class extends eo.default{constructor(t){var n,i,a,r;if(super(),i1.add(this),_5.set(this,void 0),N5.set(this,void 0),Se.set(this,0),Wt.set(this,void 0),V5.set(this,void 0),Ut.set(this,0),y0.set(this,void 0),L5.set(this,void 0),e0.set(this,void 0),Dt.set(this,void 0),t0.set(this,0),I5.set(this,void 0),Ce.set(this,void 0),Gt.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:y5,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(i=(n=t.intervalCap)===null||n===void 0?void 0:n.toString())!==null&&i!==void 0?i:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(r=(a=t.interval)===null||a===void 0?void 0:a.toString())!==null&&r!==void 0?r:""}\` (${typeof t.interval})`);K(this,_5,t.carryoverConcurrencyCount,"f"),K(this,N5,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),K(this,Wt,t.intervalCap,"f"),K(this,V5,t.interval,"f"),K(this,e0,new t.queueClass,"f"),K(this,Dt,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,K(this,Gt,t.throwOnTimeout===!0,"f"),K(this,Ce,t.autoStart===!1,"f")}get concurrency(){return w(this,I5,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);K(this,I5,t,"f"),w(this,i1,"m",qt).call(this)}async add(t,n={}){return n={timeout:this.timeout,throwOnTimeout:w(this,Gt,"f"),...n},new Promise((i,a)=>{w(this,e0,"f").enqueue(async()=>{var r,o,s;K(this,t0,(o=w(this,t0,"f"),o++,o),"f"),K(this,Se,(s=w(this,Se,"f"),s++,s),"f");try{if(!((r=n.signal)===null||r===void 0)&&r.aborted)throw new Xt("The task was aborted.");let l=t({signal:n.signal});n.timeout&&(l=z7(Promise.resolve(l),n.timeout)),n.signal&&(l=Promise.race([l,w(this,i1,"m",j8).call(this,n.signal)]));let c=await l;i(c),this.emit("completed",c)}catch(l){if(l instanceof M5&&!n.throwOnTimeout){i();return}a(l),this.emit("error",l)}finally{w(this,i1,"m",Y8).call(this)}},n),this.emit("add"),w(this,i1,"m",Ft).call(this)})}async addAll(t,n){return Promise.all(t.map(async i=>this.add(i,n)))}start(){return w(this,Ce,"f")?(K(this,Ce,!1,"f"),w(this,i1,"m",qt).call(this),this):this}pause(){K(this,Ce,!0,"f")}clear(){K(this,e0,new(w(this,Dt,"f")),"f")}async onEmpty(){w(this,e0,"f").size!==0&&await w(this,i1,"m",Jt).call(this,"empty")}async onSizeLessThan(t){w(this,e0,"f").size<t||await w(this,i1,"m",Jt).call(this,"next",()=>w(this,e0,"f").size<t)}async onIdle(){w(this,t0,"f")===0&&w(this,e0,"f").size===0||await w(this,i1,"m",Jt).call(this,"idle")}get size(){return w(this,e0,"f").size}sizeBy(t){return w(this,e0,"f").filter(t).length}get pending(){return w(this,t0,"f")}get isPaused(){return w(this,Ce,"f")}};_5=new WeakMap,N5=new WeakMap,Se=new WeakMap,Wt=new WeakMap,V5=new WeakMap,Ut=new WeakMap,y0=new WeakMap,L5=new WeakMap,e0=new WeakMap,Dt=new WeakMap,t0=new WeakMap,I5=new WeakMap,Ce=new WeakMap,Gt=new WeakMap,i1=new WeakSet,X8=function(){return w(this,N5,"f")||w(this,Se,"f")<w(this,Wt,"f")},K8=function(){return w(this,t0,"f")<w(this,I5,"f")},Y8=function(){var t;K(this,t0,(t=w(this,t0,"f"),t--,t),"f"),w(this,i1,"m",Ft).call(this),this.emit("next")},z8=function(){w(this,i1,"m",j7).call(this),w(this,i1,"m",Y7).call(this),K(this,L5,void 0,"f")},Q8=function(){let t=Date.now();if(w(this,y0,"f")===void 0){let n=w(this,Ut,"f")-t;if(n<0)K(this,Se,w(this,_5,"f")?w(this,t0,"f"):0,"f");else return w(this,L5,"f")===void 0&&K(this,L5,setTimeout(()=>{w(this,i1,"m",z8).call(this)},n),"f"),!0}return!1},Ft=function(){if(w(this,e0,"f").size===0)return w(this,y0,"f")&&clearInterval(w(this,y0,"f")),K(this,y0,void 0,"f"),this.emit("empty"),w(this,t0,"f")===0&&this.emit("idle"),!1;if(!w(this,Ce,"f")){let t=!w(this,i1,"a",Q8);if(w(this,i1,"a",X8)&&w(this,i1,"a",K8)){let n=w(this,e0,"f").dequeue();return n?(this.emit("active"),n(),t&&w(this,i1,"m",Y7).call(this),!0):!1}}return!1},Y7=function(){w(this,N5,"f")||w(this,y0,"f")!==void 0||(K(this,y0,setInterval(()=>{w(this,i1,"m",j7).call(this)},w(this,V5,"f")),"f"),K(this,Ut,Date.now()+w(this,V5,"f"),"f"))},j7=function(){w(this,Se,"f")===0&&w(this,t0,"f")===0&&w(this,y0,"f")&&(clearInterval(w(this,y0,"f")),K(this,y0,void 0,"f")),K(this,Se,w(this,_5,"f")?w(this,t0,"f"):0,"f"),w(this,i1,"m",qt).call(this)},qt=function(){for(;w(this,i1,"m",Ft).call(this););},j8=async function(t){return new Promise((n,i)=>{t.addEventListener("abort",()=>{i(new Xt("The task was aborted."))},{once:!0})})},Jt=async function(t,n){return new Promise(i=>{let a=()=>{n&&!n()||(this.off(t,a),i())};this.on(t,a)})};var Hs={width:288,height:320,scale:1,fontScale:1},bs=["showToast","showForm","navigateToUrl"];Ct();var Me,ye,Le,N3,V3,_e,R5,I3,v2,l1,e4,Kt,_3,Qt,t4,to,zt=class{constructor(){M(this,l1);M(this,Me);this.dimensions=Hs;M(this,ye);M(this,Le,{});M(this,N3,new T5({concurrency:1}));M(this,V3,!1);M(this,_e);M(this,R5,!1);M(this,I3,!1);M(this,v2,[]);M(this,Qt,(t,n,i,a,r)=>{this.onPluginCall?.(t,n,i,a,r),n===m3.fullName&&i===m3.methods.send.name&&this._local?.onPluginResponse(t,{error:void 0,success:!0,value:{}})})}get appState(){return p(this,Le).__postData={thingId:this.postID,config:this.postConfig},p(this,Le)}async load(t){this.unload(),D(this,ye,t);try{return await this._local?.loadBundle(t)}catch(n){C(this,l1,_3).call(this,t,"Error",n)}}set meta(t){let n={...t},i=[];for(let[a,r]of Object.entries(devvit?.debug??{}))i.push(`${a}=${r}`);i.length&&(n[x0.Debug]={values:i}),D(this,Me,n)}queueEvent(t){let n=p(this,ye);t.async?C(this,l1,t4).call(this,n,t):p(this,N3).add(()=>C(this,l1,t4).call(this,n,t))}queueRenderPost(t,n,i){let a=p(this,ye);p(this,N3).add(()=>C(this,l1,to).call(this,a,t,n,i))}get rendered(){return p(this,V3)}get pausedEffects(){return p(this,v2)}resetAppState(){D(this,V3,!1),D(this,Le,{})}set runtimeDebugLogging(t){D(this,R5,t),this._local&&(this._local.runtimeDebugLogging=t)}setLocalSrc(t,n){if(this.unload(),!t){this._local=void 0;return}this._local=new Pt(t,n,(i,a)=>this.onError?.(i,a),{callback:p(this,Qt),plugins:[]}),this._local.runtimeDebugLogging=p(this,R5),this._local.initializeWorker()}unload(){D(this,ye,void 0),p(this,_e)!=null&&clearTimeout(p(this,_e)),p(this,N3).clear(),this._local?.quit()}togglePause(t){if(!t&&p(this,v2).length>0){let n=p(this,v2);D(this,v2,[]),n.forEach(({renderType:i,effects:a})=>{C(this,l1,Kt).call(this,i,a)})}D(this,I3,t)}};Me=new WeakMap,ye=new WeakMap,Le=new WeakMap,N3=new WeakMap,V3=new WeakMap,_e=new WeakMap,R5=new WeakMap,I3=new WeakMap,v2=new WeakMap,l1=new WeakSet,e4=function(t){devvit?.debug.runtime&&(t3(t)?console.debug("[runtime] try remote call; circuit break"):console.debug("[runtime] try remote call; local failed",t),this.remote||console.debug("[runtime] call failed; no remote"))},Kt=function(t,n){for(let i of n)i.rerenderUi?(p(this,_e)!=null&&clearTimeout(p(this,_e)),D(this,_e,setTimeout(()=>{this.queueRenderPost(h0.RENDER_EFFECT_EVENT,"rerender-effect",{})},(i.rerenderUi.delaySeconds??0)*1e3))):(t!==h0.RENDER_USER_ACTION||bs.some(a=>i[a]))&&this.onUserAction?.(i)},_3=function(t,n,i){t&&p(this,ye)!==t||this.onError?.(n,i)},Qt=new WeakMap,t4=async function(t,n){let i,a={event:n,state:this.appState};if(this._local?.ready&&n.scope!==C1.REMOTE)try{i=await this._local.call("HandleUIEvent",a,p(this,Me))}catch(r){(!t3(r)||!this.remote)&&C(this,l1,_3).call(this,t,"Error",r),C(this,l1,e4).call(this,r)}else devvit?.debug.runtime&&console.debug(`[runtime] try remote call; ${n.scope===C1.REMOTE?"local call forbidden":"local not ready"}`);if(!i&&n.scope!==C1.LOCAL)try{i=await this.remote?.HandleUIEvent(a,p(this,Me))}catch(r){C(this,l1,_3).call(this,t,"Error",r),devvit?.debug.runtime&&console.debug("[runtime] remote call failed",r)}if(i){n.async||D(this,Le,i.state??{});let r=n.realtimeEvent?h0.RENDER_EFFECT_EVENT:h0.RENDER_USER_ACTION;p(this,I3)?p(this,v2).push({renderType:r,effects:i.effects}):C(this,l1,Kt).call(this,r,i.effects)}devvit?.debug.runtime&&(!this._local?.ready&&!this.remote?console.debug("[runtime] call failed; no runtimes"):!this._local?.ready&&n.scope===C1.LOCAL?console.debug("[runtime] call failed; local event but local runtime is unavailable"):!this.remote&&n.scope===C1.REMOTE&&console.debug("[runtime] call failed; remote event but remote runtime is unavailable"))},to=async function(t,n,i,a){let r={blocks:{type:n,id:i,data:a},state:this.appState,dimensions:this.dimensions},o;if(this._local?.ready)try{o=await this._local.call("RenderPost",r,p(this,Me))}catch(s){t3(s)&&s.response&&(o=s.response),(!t3(s)||!this.remote)&&C(this,l1,_3).call(this,t,"Error",s),C(this,l1,e4).call(this,s)}else devvit?.debug.runtime&&console.debug("[runtime] try remote call; local not ready");if(!o)try{o=await this.remote?.RenderPost(r,p(this,Me))}catch(s){C(this,l1,_3).call(this,t,"Error",s),devvit?.debug.runtime&&console.debug("[runtime] remote call failed",s)}o&&(D(this,V3,!0),o.state&&D(this,Le,o.state),this.onRenderPost?.(r,o),p(this,I3)?p(this,v2).push({renderType:r.blocks.type,effects:o.effects}):C(this,l1,Kt).call(this,r.blocks.type,o.effects)),devvit?.debug.runtime&&!this._local?.ready&&!this.remote&&console.debug("[runtime] call failed; no runtimes")};function no(e,t,n,i){let a=t.match(/([a-zA-Z0-9-]+)\/(.*)/)??[];if(a.length<3)return"";let[r,o,s]=a;if(!i.webViewContext?.subredditId||!o||!s)return"";let l=i.webViewContext.appVersion.replace(/[^0-9]+/g,"-"),c=i.webViewContext.subredditId.replace(/^t[0-9]_/,""),d=n.split(".")[0],v=e.replace("{{location}}",c).replace("{{app}}",o).replace("{{installation}}",d).replace("{{version}}",l).replace("{{path}}",s),f=new URL(v),g=JSON.stringify(B0.toJSON(i.webViewContext));return i.webbitToken!==Vt&&f.searchParams.append("webbit_token",i.webbitToken),f.searchParams.append("context",g),f.hash=`#${encodeURIComponent(JSON.stringify(i))}`,f.toString()}function ro(e,t,n,i,a){let r={appName:e?.[x0.App]?.values[0]??"",appVersion:t??"",postId:e?.[x0.Post]?.values[0]??"",subredditId:e?.[x0.Subreddit]?.values[0]??"",subredditName:e?.[x0.SubredditName]?.values[0]??"",userId:e?.[x0.User]?.values[0]??""},o=e?.[x0.PostData]?.values[0],s=o?JSON.parse(o):{};return{client:3,devvitDebug:C7()??"",postData:s,shareParam:ks(u8()),shredditVersion:void 0,webbitToken:n,webViewContext:r,appPermissionState:i,viewMode:a}}function ks(e){if(!e)return;let t;try{t=JSON.parse(e)}catch(n){console.warn(`ShareParam unparsable \`${e}\``,n);return}if(!Ps(t)){console.warn(`ShareParam invalid \`${e}\``);return}return t}function Ps(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t={hash:!0,path:!0,params:!0,userData:!0};for(let n in e)if(!t[n])return!1;if(typeof e.hash!="string"||typeof e.path!="string"||e.userData!=null&&(typeof e.userData!="string"||e.userData.length>1024)||!e.params||typeof e.params!="object"||Array.isArray(e.params))return!1;for(let n of Object.values(e.params))if(typeof n!="string")return!1;return!0}var z,a3,R3,O3,n0,ao,n4,T3,Yt,jt,e6,t6,n6,d1=class extends r0{constructor(){super();M(this,n0);this.runtimeDebugLogging=!1;this.useExperimentalBlocks=!1;this.webViewUrlTemplate="";this.disableAssetSandbox=!1;M(this,z,new zt);M(this,a3);M(this,R3);M(this,O3);M(this,Yt,()=>{let n=ro(this.metadata,this.bundle?.actor?.version,Vt,void 0,Mt.INLINE_MODE);return{experimental:this.useExperimentalBlocks,resolveWebViewUrl:i=>this.disableAssetSandbox?i:no(this.webViewUrlTemplate,i,this.bundle?.hostname??"",n),onAction:i=>p(this,z).queueRenderPost(h0.RENDER_USER_ACTION,i.id,i.data??{}),stackDirection:I.UNRECOGNIZED,disableAssetSandbox:this.disableAssetSandbox}});M(this,jt,(n,i)=>{t3(i)||console.error(i),C(this,n0,T3).call(this,"devvit-ui-error",{err:i,type:n})});M(this,e6,(n,i,a,r,o)=>{i===m3.fullName&&a===m3.methods.send.name&&((devvit?.debug.surface||devvit?.debug.realtime)&&console.debug("[realtime][custom] realtime plugin call",r),C(this,n0,T3).call(this,"devvit-realtime-send",{event:r}))});M(this,t6,(n,i)=>{var a,r;this.renderResponse=i,this.renderResponse?.blocks?.ui&&(this._rootBlock=this.renderResponse.blocks.ui,p(this,a3)?((a=this._rootBlock).config??(a.config={}),(r=this._rootBlock.config).rootConfig??(r.rootConfig={children:[],height:0}),this._rootBlock.config.rootConfig.height=p(this,a3)):D(this,a3,this._rootBlock.config?.rootConfig?.height||y7))});M(this,n6,n=>{devvit?.debug.surface&&console.debug("[custom] effect",n),C(this,n0,T3).call(this,"devvit-ui-effect",{effect:n,onEvent:i=>p(this,z).queueEvent(i),metadata:this.metadata})});devvit?.debug.surface&&console.debug("[custom] constructed"),p(this,z).onError=p(this,jt),p(this,z).onPluginCall=p(this,e6),p(this,z).onRenderPost=p(this,t6),p(this,z).onUserAction=p(this,n6)}static get styles(){return[et]}async connectedCallback(){super.connectedCallback(),devvit?.debug.surface&&console.debug("[custom] connected"),D(this,R3,new ResizeObserver(Z8(n=>{n.length!==0&&(this.dimensions=C8(n[0],window,document.body),devvit?.debug.surface&&console.debug("[custom] resized",this.dimensions))},600))),p(this,R3).observe(this,{box:"content-box"}),D(this,O3,new IntersectionObserver(n=>{n.forEach(i=>{devvit?.debug.surface&&console.debug(`[custom] ${i.isIntersecting?"":"not "}intersecting`),p(this,z).togglePause(!i.isIntersecting)})})),p(this,O3).observe(this)}disconnectedCallback(){devvit?.debug.surface&&console.debug("[custom] disconnected"),p(this,z).unload(),p(this,R3)?.unobserve(this),p(this,O3)?.unobserve(this),super.disconnectedCallback()}render(){return this.renderResponse?U1`<div class="relative">
|
|
634
|
+
</div>`}else return a}var f5,p5,St,e3=class extends r0{constructor(){super(...arguments);M(this,f5,window.matchMedia("(prefers-color-scheme: dark)"));M(this,p5,()=>this.requestUpdate());M(this,St,()=>({stackDirection:I.UNRECOGNIZED}))}static get styles(){return[et]}connectedCallback(){super.connectedCallback(),p(this,f5)?.addEventListener("change",p(this,p5))}disconnectedCallback(){super.disconnectedCallback(),p(this,f5)?.removeEventListener("change",p(this,p5))}async getUpdateComplete(){let n=await super.getUpdateComplete(),i=this.renderRoot.querySelectorAll("[data-block-type]");for(let a=0;a<i.length;a++)await i.item(a).updateComplete;return n}reset(){this.renderRoot.querySelectorAll("[data-block-type]").forEach(i=>{i.reset?.()})}findBlockById(n){let i=this.renderRoot.querySelector(`#${n}[data-block-type]`);if(i)return{blockType:i.dataset.blockType,element:i}}findBlocksByType(n){return Array.from(this.renderRoot.querySelectorAll(`[data-block-type=${n}]`)).map(i=>({blockType:n,element:i}))}render(){if(this.block&&this.block.type===_.BLOCK_ROOT){let n={...p(this,St).call(this),...this.renderContext?.()??{}},i=new j5,a=L7(this.block,n);return i.finish(),this.dispatchEvent(G0(W3,{name:"blocks_layout",timeStart:i.timeStart,timeEnd:i.timeEnd})),U1` <div class="${f2(this.class)}">${a}</div>`}return U1`${nn({creative:U1`<slot name="empty-state-image"></slot>`,title:S6("Whoops!",{desc:"Header for message to display when rendering fails"}),description:S6("Something went wrong while attempting to display this content.",{desc:"Message for users to display when rendering fails"})})}`}};f5=new WeakMap,p5=new WeakMap,St=new WeakMap,L([G({attribute:!1})],e3.prototype,"block",2),L([G({attribute:!1})],e3.prototype,"renderContext",2),L([G()],e3.prototype,"class",2),e3=L([en(),u3("devvit-blocks-renderer")],e3);var Mt;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.INLINE_MODE=1]="INLINE_MODE",e[e.IMMERSIVE_MODE=2]="IMMERSIVE_MODE",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"})(Mt||(Mt={}));var Lt=b(B(),1);function g8(){return{height:0,width:0,scale:0,fontScale:void 0}}var _7={$type:"devvit.ui.common.v1alpha.UIDimensions",encode(e,t=Lt.default.Writer.create()){return e.height!==0&&t.uint32(8).int32(e.height),e.width!==0&&t.uint32(16).int32(e.width),e.scale!==0&&t.uint32(29).float(e.scale),e.fontScale!==void 0&&t.uint32(37).float(e.fontScale),t},decode(e,t){let n=e instanceof Lt.default.Reader?e:Lt.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=g8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==8)break;a.height=n.int32();continue;case 2:if(r!==16)break;a.width=n.int32();continue;case 3:if(r!==29)break;a.scale=n.float();continue;case 4:if(r!==37)break;a.fontScale=n.float();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{height:yt(e.height)?globalThis.Number(e.height):0,width:yt(e.width)?globalThis.Number(e.width):0,scale:yt(e.scale)?globalThis.Number(e.scale):0,fontScale:yt(e.fontScale)?globalThis.Number(e.fontScale):void 0}},toJSON(e){let t={};return e.height!==0&&(t.height=Math.round(e.height)),e.width!==0&&(t.width=Math.round(e.width)),e.scale!==0&&(t.scale=e.scale),e.fontScale!==void 0&&(t.fontScale=e.fontScale),t},create(e){return _7.fromPartial(e??{})},fromPartial(e){let t=g8();return t.height=e.height??0,t.width=e.width??0,t.scale=e.scale??0,t.fontScale=e.fontScale??void 0,t}};u.set(_7.$type,_7);function yt(e){return e!=null}var w8="ServerCallRequired";var _t=class extends Error{constructor(t,n){super(w8),this.response=t,this.cause=n,this.name="CircuitBreakerResponse"}};function t3(e){return e?.message===w8}var x0=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",PostData:"devvit-post-data",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",Username:"devvit-user-name",UserSnoovatarUrl:"devvit-user-snoovatar-url",UserAgent:"devvit-user-agent",Version:"devvit-version",Language:"devvit-accept-language",Timezone:"devvit-accept-timezone",Traceparent:"traceparent",AppDependencies:"devvit-app-dependencies"});var A8;(function(e){e.Blocks="blocks",e.EmitSnapshots="emitSnapshots",e.EmitState="emitState",e.Realtime="realtime",e.Runtime="runtime",e.Surface="surface",e.UseAsync="useAsync",e.Payments="payments",e.Bootstrap="bootstrap",e.WebView="webView"})(A8||(A8={}));function Z8(e,t){let n,i=0,a;return function(...r){return a=r,n??(n=setTimeout(()=>{i=Date.now(),n=void 0;let o=a;a=void 0,e.apply(this,o)},Math.max(0,t-(Date.now()-i)))),()=>{n!=null&&clearTimeout(n),n=void 0,a=void 0}}}function E8(e,t){if(!e)throw Error(t)}var Nt;(function(e){e.COMMENT="t1_",e.ACCOUNT="t2_",e.LINK="t3_",e.MESSAGE="t4_",e.SUBREDDIT="t5_",e.AWARD="t6_"})(Nt||(Nt={}));function Ms(e){return e.startsWith(Nt.LINK)}function ys(e){E8(Ms(e),`Expected link id to start with ${Nt.LINK}, got ${e}}`)}function x8(e){return ys(e),e}var Vt="0.0.0";var Ls=1,_s=16;function C8(e,t,n){let{width:i,height:a}=e.contentRect,o=t.getComputedStyle(n).fontSize.split("px")[0],s=o?parseFloat(o)/_s:Ls;return{width:Math.round(i),height:Math.round(a),scale:t.devicePixelRatio,fontScale:s}}var U=b(B(),1);var n1;(function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.VERBOSE=4]="VERBOSE",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"})(n1||(n1={}));function Ns(e){switch(e){case 0:case"DEBUG":return n1.DEBUG;case 1:case"INFO":return n1.INFO;case 2:case"WARN":return n1.WARN;case 3:case"ERROR":return n1.ERROR;case 4:case"VERBOSE":return n1.VERBOSE;case-1:case"UNRECOGNIZED":default:return n1.UNRECOGNIZED}}function Vs(e){switch(e){case n1.DEBUG:return 0;case n1.INFO:return 1;case n1.WARN:return 2;case n1.ERROR:return 3;case n1.VERBOSE:return 4;case n1.UNRECOGNIZED:default:return-1}}function S8(){return{message:"",name:"",fileName:void 0,lineNumber:void 0,columnNumber:void 0,stack:void 0,timestamp:void 0,tags:[]}}var N7={$type:"devvit.plugin.logger.LogErrorMessage",encode(e,t=U.default.Writer.create()){e.message!==""&&t.uint32(10).string(e.message),e.name!==""&&t.uint32(18).string(e.name),e.fileName!==void 0&&E0.encode({value:e.fileName},t.uint32(26).fork()).ldelim(),e.lineNumber!==void 0&&k2.encode({value:e.lineNumber},t.uint32(34).fork()).ldelim(),e.columnNumber!==void 0&&k2.encode({value:e.columnNumber},t.uint32(42).fork()).ldelim(),e.stack!==void 0&&E0.encode({value:e.stack},t.uint32(50).fork()).ldelim(),e.timestamp!==void 0&&I1.encode(H7(e.timestamp),t.uint32(58).fork()).ldelim();for(let n of e.tags)t.uint32(66).string(n);return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=S8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.message=n.string();continue;case 2:if(r!==18)break;a.name=n.string();continue;case 3:if(r!==26)break;a.fileName=E0.decode(n,n.uint32()).value;continue;case 4:if(r!==34)break;a.lineNumber=k2.decode(n,n.uint32()).value;continue;case 5:if(r!==42)break;a.columnNumber=k2.decode(n,n.uint32()).value;continue;case 6:if(r!==50)break;a.stack=E0.decode(n,n.uint32()).value;continue;case 7:if(r!==58)break;a.timestamp=It(I1.decode(n,n.uint32()));continue;case 8:if(r!==66)break;a.tags.push(n.string());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{message:S1(e.message)?globalThis.String(e.message):"",name:S1(e.name)?globalThis.String(e.name):"",fileName:S1(e.fileName)?String(e.fileName):void 0,lineNumber:S1(e.lineNumber)?Number(e.lineNumber):void 0,columnNumber:S1(e.columnNumber)?Number(e.columnNumber):void 0,stack:S1(e.stack)?String(e.stack):void 0,timestamp:S1(e.timestamp)?b7(e.timestamp):void 0,tags:globalThis.Array.isArray(e?.tags)?e.tags.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),e.name!==""&&(t.name=e.name),e.fileName!==void 0&&(t.fileName=e.fileName),e.lineNumber!==void 0&&(t.lineNumber=e.lineNumber),e.columnNumber!==void 0&&(t.columnNumber=e.columnNumber),e.stack!==void 0&&(t.stack=e.stack),e.timestamp!==void 0&&(t.timestamp=e.timestamp.toISOString()),e.tags?.length&&(t.tags=e.tags),t},create(e){return N7.fromPartial(e??{})},fromPartial(e){let t=S8();return t.message=e.message??"",t.name=e.name??"",t.fileName=e.fileName??void 0,t.lineNumber=e.lineNumber??void 0,t.columnNumber=e.columnNumber??void 0,t.stack=e.stack??void 0,t.timestamp=e.timestamp??void 0,t.tags=e.tags?.map(n=>n)||[],t}};u.set(N7.$type,N7);function M8(){return{type:"",timestamp:void 0,labels:{},data:{}}}var V7={$type:"devvit.plugin.logger.LogEventMessage",encode(e,t=U.default.Writer.create()){return e.type!==""&&t.uint32(10).string(e.type),e.timestamp!==void 0&&I1.encode(H7(e.timestamp),t.uint32(18).fork()).ldelim(),Object.entries(e.labels).forEach(([n,i])=>{m5.encode({key:n,value:i},t.uint32(26).fork()).ldelim()}),Object.entries(e.data).forEach(([n,i])=>{g5.encode({key:n,value:i},t.uint32(34).fork()).ldelim()}),t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=M8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.type=n.string();continue;case 2:if(r!==18)break;a.timestamp=It(I1.decode(n,n.uint32()));continue;case 3:if(r!==26)break;let o=m5.decode(n,n.uint32());o.value!==void 0&&(a.labels[o.key]=o.value);continue;case 4:if(r!==34)break;let s=g5.decode(n,n.uint32());s.value!==void 0&&(a.data[s.key]=s.value);continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{type:S1(e.type)?globalThis.String(e.type):"",timestamp:S1(e.timestamp)?b7(e.timestamp):void 0,labels:R8(e.labels)?Object.entries(e.labels).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},data:R8(e.data)?Object.entries(e.data).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.type!==""&&(t.type=e.type),e.timestamp!==void 0&&(t.timestamp=e.timestamp.toISOString()),e.labels){let n=Object.entries(e.labels);n.length>0&&(t.labels={},n.forEach(([i,a])=>{t.labels[i]=a}))}if(e.data){let n=Object.entries(e.data);n.length>0&&(t.data={},n.forEach(([i,a])=>{t.data[i]=a}))}return t},create(e){return V7.fromPartial(e??{})},fromPartial(e){let t=M8();return t.type=e.type??"",t.timestamp=e.timestamp??void 0,t.labels=Object.entries(e.labels??{}).reduce((n,[i,a])=>(a!==void 0&&(n[i]=globalThis.String(a)),n),{}),t.data=Object.entries(e.data??{}).reduce((n,[i,a])=>(a!==void 0&&(n[i]=globalThis.String(a)),n),{}),t}};u.set(V7.$type,V7);function y8(){return{key:"",value:""}}var m5={$type:"devvit.plugin.logger.LogEventMessage.LabelsEntry",encode(e,t=U.default.Writer.create()){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=y8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.key=n.string();continue;case 2:if(r!==18)break;a.value=n.string();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{key:S1(e.key)?globalThis.String(e.key):"",value:S1(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return m5.fromPartial(e??{})},fromPartial(e){let t=y8();return t.key=e.key??"",t.value=e.value??"",t}};u.set(m5.$type,m5);function L8(){return{key:"",value:""}}var g5={$type:"devvit.plugin.logger.LogEventMessage.DataEntry",encode(e,t=U.default.Writer.create()){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=L8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.key=n.string();continue;case 2:if(r!==18)break;a.value=n.string();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{key:S1(e.key)?globalThis.String(e.key):"",value:S1(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return g5.fromPartial(e??{})},fromPartial(e){let t=L8();return t.key=e.key??"",t.value=e.value??"",t}};u.set(g5.$type,g5);function _8(){return{severity:0,message:"",timestamp:void 0,tags:[]}}var $1={$type:"devvit.plugin.logger.LogMessage",encode(e,t=U.default.Writer.create()){e.severity!==0&&t.uint32(8).int32(e.severity),e.message!==""&&t.uint32(18).string(e.message),e.timestamp!==void 0&&I1.encode(H7(e.timestamp),t.uint32(26).fork()).ldelim();for(let n of e.tags)t.uint32(34).string(n);return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=_8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==8)break;a.severity=n.int32();continue;case 2:if(r!==18)break;a.message=n.string();continue;case 3:if(r!==26)break;a.timestamp=It(I1.decode(n,n.uint32()));continue;case 4:if(r!==34)break;a.tags.push(n.string());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{severity:S1(e.severity)?Ns(e.severity):0,message:S1(e.message)?globalThis.String(e.message):"",timestamp:S1(e.timestamp)?b7(e.timestamp):void 0,tags:globalThis.Array.isArray(e?.tags)?e.tags.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.severity!==0&&(t.severity=Vs(e.severity)),e.message!==""&&(t.message=e.message),e.timestamp!==void 0&&(t.timestamp=e.timestamp.toISOString()),e.tags?.length&&(t.tags=e.tags),t},create(e){return $1.fromPartial(e??{})},fromPartial(e){let t=_8();return t.severity=e.severity??0,t.message=e.message??"",t.timestamp=e.timestamp??void 0,t.tags=e.tags?.map(n=>n)||[],t}};u.set($1.$type,$1);function N8(){return{messages:[]}}var I7={$type:"devvit.plugin.logger.LogMessages",encode(e,t=U.default.Writer.create()){for(let n of e.messages)$1.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=N8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.messages.push($1.decode(n,n.uint32()));continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{messages:globalThis.Array.isArray(e?.messages)?e.messages.map(t=>$1.fromJSON(t)):[]}},toJSON(e){let t={};return e.messages?.length&&(t.messages=e.messages.map(n=>$1.toJSON(n))),t},create(e){return I7.fromPartial(e??{})},fromPartial(e){let t=N8();return t.messages=e.messages?.map(n=>$1.fromPartial(n))||[],t}};u.set(I7.$type,I7);function V8(){return{}}var T7={$type:"devvit.plugin.logger.LogErrorResponse",encode(e,t=U.default.Writer.create()){return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=V8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return T7.fromPartial(e??{})},fromPartial(e){return V8()}};u.set(T7.$type,T7);function I8(){return{}}var R7={$type:"devvit.plugin.logger.LogEventResponse",encode(e,t=U.default.Writer.create()){return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=I8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return R7.fromPartial(e??{})},fromPartial(e){return I8()}};u.set(R7.$type,R7);function T8(){return{}}var O7={$type:"devvit.plugin.logger.LogResponse",encode(e,t=U.default.Writer.create()){return t},decode(e,t){let n=e instanceof U.default.Reader?e:U.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=T8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return O7.fromPartial(e??{})},fromPartial(e){return T8()}};u.set(O7.$type,O7);function H7(e){let t=Math.trunc(e.getTime()/1e3),n=e.getTime()%1e3*1e6;return{seconds:t,nanos:n}}function It(e){let t=(e.seconds||0)*1e3;return t+=(e.nanos||0)/1e6,new globalThis.Date(t)}function b7(e){return e instanceof globalThis.Date?e:typeof e=="string"?new globalThis.Date(e):It(I1.fromJSON(e))}function R8(e){return typeof e=="object"&&e!==null}function S1(e){return e!=null}var C0;(function(e){e.ENABLE_APP_LOGGING="enableAppLogging",e.ENABLE_DEBUG_LOGGING="enableDebugLogging",e.ENABLE_PLUGINS="enablePlugins",e.LOAD_BUNDLE="loadBundle",e.CALL="call",e.PLUGIN_RESPONSE="pluginResponse",e.QUIT="quit"})(C0||(C0={}));var v0;(function(e){e.READY="ready",e.PLUGINS_CONFIGURED="pluginsConfigured",e.BUNDLE_LOADED="bundleLoaded",e.BUNDLE_LOAD_FAILED="bundleLoadFailed",e.RETURN="return",e.ERROR="error",e.CIRCUIT_BREAKER="circuitBreaker",e.PLUGIN_CALL="pluginCall",e.UNHANDLED_REJECTION="unhandledRejection"})(v0||(v0={}));function O8(e){return e.hostname.split(".")[1]??e.hostname}var M1=b(B(),1);function H8(){return{callState:void 0,connect:void 0}}var B7={$type:"devvit.cli.PlaytestProviderMessage",encode(e,t=M1.default.Writer.create()){return e.callState!==void 0&&Ee.encode(e.callState,t.uint32(10).fork()).ldelim(),e.connect!==void 0&&xe.encode(e.connect,t.uint32(18).fork()).ldelim(),t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=H8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.callState=Ee.decode(n,n.uint32());continue;case 2:if(r!==18)break;a.connect=xe.decode(n,n.uint32());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{callState:Tt(e.callState)?Ee.fromJSON(e.callState):void 0,connect:Tt(e.connect)?xe.fromJSON(e.connect):void 0}},toJSON(e){let t={};return e.callState!==void 0&&(t.callState=Ee.toJSON(e.callState)),e.connect!==void 0&&(t.connect=xe.toJSON(e.connect)),t},create(e){return B7.fromPartial(e??{})},fromPartial(e){let t=H8();return t.callState=e.callState!==void 0&&e.callState!==null?Ee.fromPartial(e.callState):void 0,t.connect=e.connect!==void 0&&e.connect!==null?xe.fromPartial(e.connect):void 0,t}};u.set(B7.$type,B7);function b8(){return{appInstalled:void 0}}var w5={$type:"devvit.cli.PlaytestSubscriberMessage",encode(e,t=M1.default.Writer.create()){return e.appInstalled!==void 0&&Ze.encode(e.appInstalled,t.uint32(10).fork()).ldelim(),t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=b8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.appInstalled=Ze.decode(n,n.uint32());continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{appInstalled:Tt(e.appInstalled)?Ze.fromJSON(e.appInstalled):void 0}},toJSON(e){let t={};return e.appInstalled!==void 0&&(t.appInstalled=Ze.toJSON(e.appInstalled)),t},create(e){return w5.fromPartial(e??{})},fromPartial(e){let t=b8();return t.appInstalled=e.appInstalled!==void 0&&e.appInstalled!==null?Ze.fromPartial(e.appInstalled):void 0,t}};u.set(w5.$type,w5);function B8(){return{}}var Ze={$type:"devvit.cli.PlaytestAppInstalled",encode(e,t=M1.default.Writer.create()){return t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=B8();for(;n.pos<i;){let r=n.uint32();if(r>>>3,(r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{}},toJSON(e){return{}},create(e){return Ze.fromPartial(e??{})},fromPartial(e){return B8()}};u.set(Ze.$type,Ze);function k8(){return{logs:[]}}var Ee={$type:"devvit.cli.PlaytestCallState",encode(e,t=M1.default.Writer.create()){for(let n of e.logs)$1.encode(n,t.uint32(10).fork()).ldelim();return t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=k8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.logs.push($1.decode(n,n.uint32()));continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{logs:globalThis.Array.isArray(e?.logs)?e.logs.map(t=>$1.fromJSON(t)):[]}},toJSON(e){let t={};return e.logs?.length&&(t.logs=e.logs.map(n=>$1.toJSON(n))),t},create(e){return Ee.fromPartial(e??{})},fromPartial(e){let t=k8();return t.logs=e.logs?.map(n=>$1.fromPartial(n))||[],t}};u.set(Ee.$type,Ee);function P8(){return{url:""}}var xe={$type:"devvit.cli.PlaytestConnect",encode(e,t=M1.default.Writer.create()){return e.url!==""&&t.uint32(10).string(e.url),t},decode(e,t){let n=e instanceof M1.default.Reader?e:M1.default.Reader.create(e),i=t===void 0?n.len:n.pos+t,a=P8();for(;n.pos<i;){let r=n.uint32();switch(r>>>3){case 1:if(r!==10)break;a.url=n.string();continue}if((r&7)===4||r===0)break;n.skipType(r&7)}return a},fromJSON(e){return{url:Tt(e.url)?globalThis.String(e.url):""}},toJSON(e){let t={};return e.url!==""&&(t.url=e.url),t},create(e){return xe.fromPartial(e??{})},fromPartial(e){let t=P8();return t.url=e.url??"",t}};u.set(xe.$type,xe);function Tt(e){return e!=null}var k7="playtest",$8="ws://localhost:5678";function U8(e){let t=P7();return t===""||t===e}function P7(){return globalThis.location?new URL(location.href).searchParams.get(k7)??void 0:void 0}var a1=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},A5=function(e,t,n,i,a){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?a.call(e,n):a?a.value=n:t.set(e,n),n},Z5,r1,$7,D8,U7,D7,G7,F7,Is=15e3,Rt=class{constructor(){Z5.add(this),r1.set(this,{type:"Init"}),U7.set(this,()=>{a1(this,r1,"f").type==="Opened"&&this.onState?.("Closed"),A5(this,r1,a1(this,Z5,"m",D8).call(this),"f")}),D7.set(this,t=>{let n=w5.fromJSON(JSON.parse(t.data));switch(!0){case n.appInstalled!=null:this.onState?.("Reloading");break}}),G7.set(this,()=>{if(a1(this,r1,"f").type!=="Opening")throw Error(`invalid transition from ${a1(this,r1,"f").type}`);this.onState?.("Opened"),A5(this,r1,{sock:a1(this,r1,"f").sock,type:"Opened"},"f"),this.send({connect:{url:location.href}})}),F7.set(this,()=>{A5(this,r1,a1(this,Z5,"m",$7).call(this),"f")})}close(){"timer"in a1(this,r1,"f")&&clearTimeout(a1(this,r1,"f").timer),"sock"in a1(this,r1,"f")&&(a1(this,r1,"f").sock.onopen=null,a1(this,r1,"f").sock.onmessage=null,a1(this,r1,"f").sock.onclose=null,a1(this,r1,"f").sock.close()),A5(this,r1,{type:"Init"},"f")}open(){a1(this,r1,"f").type==="Init"&&A5(this,r1,a1(this,Z5,"m",$7).call(this),"f")}send(t){"sock"in a1(this,r1,"f")?a1(this,r1,"f").sock.send(JSON.stringify(t)):console.warn("devvit playtest message dropped",t)}};r1=new WeakMap,U7=new WeakMap,D7=new WeakMap,G7=new WeakMap,F7=new WeakMap,Z5=new WeakSet,$7=function(){let t=new WebSocket($8);return t.onclose=a1(this,U7,"f"),t.onmessage=a1(this,D7,"f"),t.onopen=a1(this,G7,"f"),{sock:t,type:"Opening"}},D8=function(){return{timer:setTimeout(a1(this,F7,"f"),Is),type:"Retrying"}};var X=function(e,t,n,i,a){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?a.call(e,n):a?a.value=n:t.set(e,n),n},m=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},S0,Ot,Ht,Y,S3,E5,x5,bt,n3,M0,c2,M3,L3,d2,J7,C5,Bt,W7,G8,y3,kt,q7,Ts={debug:n1.DEBUG,error:n1.ERROR,info:n1.INFO,log:n1.DEBUG,trace:n1.DEBUG,warn:n1.WARN},Pt=class{constructor(t,n,i,a){S0.add(this),Ot.set(this,void 0),Ht.set(this,void 0),Y.set(this,void 0),S3.set(this,!1),E5.set(this,!1),x5.set(this,!1),bt.set(this,0),n3.set(this,void 0),M0.set(this,{}),c2.set(this,void 0),M3.set(this,()=>{}),L3.set(this,void 0),d2.set(this,void 0),J7.set(this,P7()),C5.set(this,!1),Bt.set(this,void 0),W7.set(this,r=>{let o=r.data,[s]=o;switch(s){case v0.READY:{let[,l]=o;X(this,Bt,l,"f"),X(this,E5,!0,"f"),m(this,L3,"f")?.plugins?m(this,S0,"m",G8).call(this):m(this,S0,"m",kt).call(this);break}case v0.PLUGINS_CONFIGURED:m(this,S0,"m",kt).call(this);break;case v0.BUNDLE_LOADED:{let[,l,c]=o;m(this,S0,"m",y3).call(this,l),X(this,S3,!0,"f"),X(this,x5,!0,"f"),m(this,c2,"f")?.resolve({metrics:{init:m(this,Bt,"f"),loadBundle:c}}),X(this,c2,void 0,"f");break}case v0.BUNDLE_LOAD_FAILED:{let[,,l,c]=o;m(this,S0,"m",y3).call(this,c),m(this,c2,"f")?.reject(l),X(this,c2,void 0,"f");break}case v0.RETURN:{let[,l,c,d]=o;m(this,S0,"m",y3).call(this,d),m(this,M0,"f")[l]?.resolve(c),delete m(this,M0,"f")[l];break}case v0.ERROR:{let[,l,c,d]=o;m(this,S0,"m",y3).call(this,d),m(this,M0,"f")[l]?.reject(c),delete m(this,M0,"f")[l];break}case v0.CIRCUIT_BREAKER:{let[,l,c,d]=o;m(this,M0,"f")[l]?.reject(new _t(c,d)),delete m(this,M0,"f")[l];break}case v0.PLUGIN_CALL:{let[,l,c,d,v,f]=o;m(this,L3,"f")?.callback(l,c,d,v,f);break}case v0.UNHANDLED_REJECTION:{let[,,l,c]=o;m(this,S0,"m",y3).call(this,c),m(this,M3,"f").call(this,"UnhandledRejection",l);break}}}),q7.set(this,r=>{switch(r){case"Opened":console.info("devvit playtest connected");break;case"Closed":console.info("devvit playtest disconnected");break;case"Reloading":{console.info("devvit playtest reloading"),m(this,d2,"f")?.close();let o=new URL(location.href);o.searchParams.set(k7,m(this,J7,"f")??""),location.assign(o),location.reload();break}}}),X(this,Ot,typeof t=="string"?t:URL.createObjectURL(t),"f"),X(this,Ht,n,"f"),i&&X(this,M3,i,"f"),a&&X(this,L3,a,"f")}initializeWorker(){X(this,Y,new Worker(m(this,Ot,"f"),{name:m(this,Ht,"f"),type:"module"}),"f"),m(this,Y,"f").onerror=t=>{m(this,M3,"f").call(this,"Error",t)},m(this,Y,"f").onmessageerror=t=>{m(this,M3,"f").call(this,"MessageError",t.data)},m(this,Y,"f").onmessage=m(this,W7,"f"),this.runtimeDebugLogging&&m(this,Y,"f").postMessage([C0.ENABLE_DEBUG_LOGGING])}get ready(){return m(this,S3,"f")}get runtimeDebugLogging(){return m(this,C5,"f")}set runtimeDebugLogging(t){t!==m(this,C5,"f")&&(X(this,C5,t,"f"),this.runtimeDebugLogging&&m(this,Y,"f")?.postMessage([C0.ENABLE_DEBUG_LOGGING]))}async loadBundle(t){return X(this,n3,t,"f"),m(this,Y,"f")?m(this,E5,"f")&&!m(this,x5,"f")&&m(this,S0,"m",kt).call(this):this.initializeWorker(),new Promise((n,i)=>{X(this,c2,{resolve:n,reject:i},"f")})}async call(t,n,i){var a;if(!m(this,S3,"f")||!m(this,Y,"f"))throw new Error("No bundle loaded");let r=X(this,bt,(a=m(this,bt,"f"),++a),"f"),o=new Promise((s,l)=>{m(this,M0,"f")[r]={resolve:s,reject:l}});return m(this,Y,"f").postMessage([C0.CALL,r,t,n,i,!1]),o}onPluginResponse(t,n){m(this,Y,"f")?.postMessage([C0.PLUGIN_RESPONSE,t,n])}quit(){if(m(this,n3,"f")){m(this,d2,"f")?.close(),X(this,d2,void 0,"f"),X(this,S3,!1,"f"),m(this,Y,"f")&&(m(this,Y,"f").postMessage([C0.QUIT]),m(this,Y,"f").onerror=null,m(this,Y,"f").onmessageerror=null,m(this,Y,"f").onmessage=null,m(this,Y,"f").terminate()),X(this,Y,void 0,"f"),X(this,x5,!1,"f"),X(this,E5,!1,"f");for(let{reject:t}of Object.values(m(this,M0,"f")))t(Error("worker terminated"));X(this,M0,{},"f"),m(this,c2,"f")?.reject(Error("worker terminated")),X(this,c2,void 0,"f")}}};Ot=new WeakMap,Ht=new WeakMap,Y=new WeakMap,S3=new WeakMap,E5=new WeakMap,x5=new WeakMap,bt=new WeakMap,n3=new WeakMap,M0=new WeakMap,c2=new WeakMap,M3=new WeakMap,L3=new WeakMap,d2=new WeakMap,J7=new WeakMap,C5=new WeakMap,Bt=new WeakMap,W7=new WeakMap,q7=new WeakMap,S0=new WeakSet,G8=function(){m(this,Y,"f")?.postMessage([C0.ENABLE_PLUGINS,m(this,L3,"f")?.plugins??[]])},y3=function(t){if(!t.length)return;let n=new Date,i={logs:t.map(a=>({severity:Ts[a.method],message:a.args.join(" "),tags:[],timestamp:n}))};m(this,d2,"f")?.send({callState:i})},kt=function(){if(!m(this,n3,"f"))return;let t=U8(O8(m(this,n3,"f")));t&&(X(this,d2,new Rt,"f"),m(this,d2,"f").onState=m(this,q7,"f")),m(this,d2,"f")?.open(),t&&m(this,Y,"f").postMessage([C0.ENABLE_APP_LOGGING]),m(this,Y,"f")?.postMessage([C0.LOAD_BUNDLE,m(this,n3,"f")])};var eo=b(J8(),1);var M5=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},K7=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},W8=e=>globalThis.DOMException===void 0?new K7(e):new DOMException(e),q8=e=>{let t=e.reason===void 0?W8("This operation was aborted."):e.reason;return t instanceof Error?t:W8(t)};function z7(e,t,n,i){let a,r=new Promise((o,s)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(e);return}if(i={customTimers:{setTimeout,clearTimeout},...i},i.signal){let{signal:l}=i;l.aborted&&s(q8(l)),l.addEventListener("abort",()=>{s(q8(l))})}a=i.customTimers.setTimeout.call(void 0,()=>{if(typeof n=="function"){try{o(n())}catch(d){s(d)}return}let l=typeof n=="string"?n:`Promise timed out after ${t} milliseconds`,c=n instanceof Error?n:new M5(l);typeof e.cancel=="function"&&e.cancel(),s(c)},t),(async()=>{try{o(await e)}catch(l){s(l)}finally{i.customTimers.clearTimeout.call(void 0,a)}})()});return r.clear=()=>{clearTimeout(a),a=void 0},r}function Q7(e,t,n){let i=0,a=e.length;for(;a>0;){let r=Math.trunc(a/2),o=i+r;n(e[o],t)<=0?(i=++o,a-=r+1):a=r}return i}var r3=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},u2,y5=class{constructor(){u2.set(this,[])}enqueue(t,n){n={priority:0,...n};let i={priority:n.priority,run:t};if(this.size&&r3(this,u2,"f")[this.size-1].priority>=n.priority){r3(this,u2,"f").push(i);return}let a=Q7(r3(this,u2,"f"),i,(r,o)=>o.priority-r.priority);r3(this,u2,"f").splice(a,0,i)}dequeue(){let t=r3(this,u2,"f").shift();return t?.run}filter(t){return r3(this,u2,"f").filter(n=>n.priority===t.priority).map(n=>n.run)}get size(){return r3(this,u2,"f").length}};u2=new WeakMap;var K=function(e,t,n,i,a){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?a.call(e,n):a?a.value=n:t.set(e,n),n},w=function(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)},i1,_5,N5,Se,Wt,V5,Ut,y0,L5,e0,Dt,t0,I5,Ce,Gt,X8,K8,Y8,z8,Q8,Ft,Y7,j7,qt,j8,Jt,Xt=class extends Error{},T5=class extends eo.default{constructor(t){var n,i,a,r;if(super(),i1.add(this),_5.set(this,void 0),N5.set(this,void 0),Se.set(this,0),Wt.set(this,void 0),V5.set(this,void 0),Ut.set(this,0),y0.set(this,void 0),L5.set(this,void 0),e0.set(this,void 0),Dt.set(this,void 0),t0.set(this,0),I5.set(this,void 0),Ce.set(this,void 0),Gt.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:y5,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(i=(n=t.intervalCap)===null||n===void 0?void 0:n.toString())!==null&&i!==void 0?i:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(r=(a=t.interval)===null||a===void 0?void 0:a.toString())!==null&&r!==void 0?r:""}\` (${typeof t.interval})`);K(this,_5,t.carryoverConcurrencyCount,"f"),K(this,N5,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),K(this,Wt,t.intervalCap,"f"),K(this,V5,t.interval,"f"),K(this,e0,new t.queueClass,"f"),K(this,Dt,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,K(this,Gt,t.throwOnTimeout===!0,"f"),K(this,Ce,t.autoStart===!1,"f")}get concurrency(){return w(this,I5,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);K(this,I5,t,"f"),w(this,i1,"m",qt).call(this)}async add(t,n={}){return n={timeout:this.timeout,throwOnTimeout:w(this,Gt,"f"),...n},new Promise((i,a)=>{w(this,e0,"f").enqueue(async()=>{var r,o,s;K(this,t0,(o=w(this,t0,"f"),o++,o),"f"),K(this,Se,(s=w(this,Se,"f"),s++,s),"f");try{if(!((r=n.signal)===null||r===void 0)&&r.aborted)throw new Xt("The task was aborted.");let l=t({signal:n.signal});n.timeout&&(l=z7(Promise.resolve(l),n.timeout)),n.signal&&(l=Promise.race([l,w(this,i1,"m",j8).call(this,n.signal)]));let c=await l;i(c),this.emit("completed",c)}catch(l){if(l instanceof M5&&!n.throwOnTimeout){i();return}a(l),this.emit("error",l)}finally{w(this,i1,"m",Y8).call(this)}},n),this.emit("add"),w(this,i1,"m",Ft).call(this)})}async addAll(t,n){return Promise.all(t.map(async i=>this.add(i,n)))}start(){return w(this,Ce,"f")?(K(this,Ce,!1,"f"),w(this,i1,"m",qt).call(this),this):this}pause(){K(this,Ce,!0,"f")}clear(){K(this,e0,new(w(this,Dt,"f")),"f")}async onEmpty(){w(this,e0,"f").size!==0&&await w(this,i1,"m",Jt).call(this,"empty")}async onSizeLessThan(t){w(this,e0,"f").size<t||await w(this,i1,"m",Jt).call(this,"next",()=>w(this,e0,"f").size<t)}async onIdle(){w(this,t0,"f")===0&&w(this,e0,"f").size===0||await w(this,i1,"m",Jt).call(this,"idle")}get size(){return w(this,e0,"f").size}sizeBy(t){return w(this,e0,"f").filter(t).length}get pending(){return w(this,t0,"f")}get isPaused(){return w(this,Ce,"f")}};_5=new WeakMap,N5=new WeakMap,Se=new WeakMap,Wt=new WeakMap,V5=new WeakMap,Ut=new WeakMap,y0=new WeakMap,L5=new WeakMap,e0=new WeakMap,Dt=new WeakMap,t0=new WeakMap,I5=new WeakMap,Ce=new WeakMap,Gt=new WeakMap,i1=new WeakSet,X8=function(){return w(this,N5,"f")||w(this,Se,"f")<w(this,Wt,"f")},K8=function(){return w(this,t0,"f")<w(this,I5,"f")},Y8=function(){var t;K(this,t0,(t=w(this,t0,"f"),t--,t),"f"),w(this,i1,"m",Ft).call(this),this.emit("next")},z8=function(){w(this,i1,"m",j7).call(this),w(this,i1,"m",Y7).call(this),K(this,L5,void 0,"f")},Q8=function(){let t=Date.now();if(w(this,y0,"f")===void 0){let n=w(this,Ut,"f")-t;if(n<0)K(this,Se,w(this,_5,"f")?w(this,t0,"f"):0,"f");else return w(this,L5,"f")===void 0&&K(this,L5,setTimeout(()=>{w(this,i1,"m",z8).call(this)},n),"f"),!0}return!1},Ft=function(){if(w(this,e0,"f").size===0)return w(this,y0,"f")&&clearInterval(w(this,y0,"f")),K(this,y0,void 0,"f"),this.emit("empty"),w(this,t0,"f")===0&&this.emit("idle"),!1;if(!w(this,Ce,"f")){let t=!w(this,i1,"a",Q8);if(w(this,i1,"a",X8)&&w(this,i1,"a",K8)){let n=w(this,e0,"f").dequeue();return n?(this.emit("active"),n(),t&&w(this,i1,"m",Y7).call(this),!0):!1}}return!1},Y7=function(){w(this,N5,"f")||w(this,y0,"f")!==void 0||(K(this,y0,setInterval(()=>{w(this,i1,"m",j7).call(this)},w(this,V5,"f")),"f"),K(this,Ut,Date.now()+w(this,V5,"f"),"f"))},j7=function(){w(this,Se,"f")===0&&w(this,t0,"f")===0&&w(this,y0,"f")&&(clearInterval(w(this,y0,"f")),K(this,y0,void 0,"f")),K(this,Se,w(this,_5,"f")?w(this,t0,"f"):0,"f"),w(this,i1,"m",qt).call(this)},qt=function(){for(;w(this,i1,"m",Ft).call(this););},j8=async function(t){return new Promise((n,i)=>{t.addEventListener("abort",()=>{i(new Xt("The task was aborted."))},{once:!0})})},Jt=async function(t,n){return new Promise(i=>{let a=()=>{n&&!n()||(this.off(t,a),i())};this.on(t,a)})};var Hs={width:288,height:320,scale:1,fontScale:1},bs=["showToast","showForm","navigateToUrl"];Ct();var Me,ye,Le,N3,V3,_e,R5,I3,v2,l1,e4,Kt,_3,Qt,t4,to,zt=class{constructor(){M(this,l1);M(this,Me);this.dimensions=Hs;M(this,ye);M(this,Le,{});M(this,N3,new T5({concurrency:1}));M(this,V3,!1);M(this,_e);M(this,R5,!1);M(this,I3,!1);M(this,v2,[]);M(this,Qt,(t,n,i,a,r)=>{this.onPluginCall?.(t,n,i,a,r),n===m3.fullName&&i===m3.methods.send.name&&this._local?.onPluginResponse(t,{error:void 0,success:!0,value:{}})})}get appState(){return p(this,Le).__postData={thingId:this.postID,config:this.postConfig},p(this,Le)}async load(t){this.unload(),D(this,ye,t);try{return await this._local?.loadBundle(t)}catch(n){C(this,l1,_3).call(this,t,"Error",n)}}set meta(t){let n={...t},i=[];for(let[a,r]of Object.entries(devvit?.debug??{}))i.push(`${a}=${r}`);i.length&&(n[x0.Debug]={values:i}),D(this,Me,n)}queueEvent(t){let n=p(this,ye);t.async?C(this,l1,t4).call(this,n,t):p(this,N3).add(()=>C(this,l1,t4).call(this,n,t))}queueRenderPost(t,n,i){let a=p(this,ye);p(this,N3).add(()=>C(this,l1,to).call(this,a,t,n,i))}get rendered(){return p(this,V3)}get pausedEffects(){return p(this,v2)}resetAppState(){D(this,V3,!1),D(this,Le,{})}set runtimeDebugLogging(t){D(this,R5,t),this._local&&(this._local.runtimeDebugLogging=t)}setLocalSrc(t,n){if(this.unload(),!t){this._local=void 0;return}this._local=new Pt(t,n,(i,a)=>this.onError?.(i,a),{callback:p(this,Qt),plugins:[]}),this._local.runtimeDebugLogging=p(this,R5),this._local.initializeWorker()}unload(){D(this,ye,void 0),p(this,_e)!=null&&clearTimeout(p(this,_e)),p(this,N3).clear(),this._local?.quit()}togglePause(t){if(!t&&p(this,v2).length>0){let n=p(this,v2);D(this,v2,[]),n.forEach(({renderType:i,effects:a})=>{C(this,l1,Kt).call(this,i,a)})}D(this,I3,t)}};Me=new WeakMap,ye=new WeakMap,Le=new WeakMap,N3=new WeakMap,V3=new WeakMap,_e=new WeakMap,R5=new WeakMap,I3=new WeakMap,v2=new WeakMap,l1=new WeakSet,e4=function(t){devvit?.debug.runtime&&(t3(t)?console.debug("[runtime] try remote call; circuit break"):console.debug("[runtime] try remote call; local failed",t),this.remote||console.debug("[runtime] call failed; no remote"))},Kt=function(t,n){for(let i of n)i.rerenderUi?(p(this,_e)!=null&&clearTimeout(p(this,_e)),D(this,_e,setTimeout(()=>{this.queueRenderPost(h0.RENDER_EFFECT_EVENT,"rerender-effect",{})},(i.rerenderUi.delaySeconds??0)*1e3))):(t!==h0.RENDER_USER_ACTION||bs.some(a=>i[a]))&&this.onUserAction?.(i)},_3=function(t,n,i){t&&p(this,ye)!==t||this.onError?.(n,i)},Qt=new WeakMap,t4=async function(t,n){let i,a={event:n,state:this.appState};if(this._local?.ready&&n.scope!==C1.REMOTE)try{i=await this._local.call("HandleUIEvent",a,p(this,Me))}catch(r){(!t3(r)||!this.remote)&&C(this,l1,_3).call(this,t,"Error",r),C(this,l1,e4).call(this,r)}else devvit?.debug.runtime&&console.debug(`[runtime] try remote call; ${n.scope===C1.REMOTE?"local call forbidden":"local not ready"}`);if(!i&&n.scope!==C1.LOCAL)try{i=await this.remote?.HandleUIEvent(a,p(this,Me))}catch(r){C(this,l1,_3).call(this,t,"Error",r),devvit?.debug.runtime&&console.debug("[runtime] remote call failed",r)}if(i){n.async||D(this,Le,i.state??{});let r=n.realtimeEvent?h0.RENDER_EFFECT_EVENT:h0.RENDER_USER_ACTION;p(this,I3)?p(this,v2).push({renderType:r,effects:i.effects}):C(this,l1,Kt).call(this,r,i.effects)}devvit?.debug.runtime&&(!this._local?.ready&&!this.remote?console.debug("[runtime] call failed; no runtimes"):!this._local?.ready&&n.scope===C1.LOCAL?console.debug("[runtime] call failed; local event but local runtime is unavailable"):!this.remote&&n.scope===C1.REMOTE&&console.debug("[runtime] call failed; remote event but remote runtime is unavailable"))},to=async function(t,n,i,a){let r={blocks:{type:n,id:i,data:a},state:this.appState,dimensions:this.dimensions},o;if(this._local?.ready)try{o=await this._local.call("RenderPost",r,p(this,Me))}catch(s){t3(s)&&s.response&&(o=s.response),(!t3(s)||!this.remote)&&C(this,l1,_3).call(this,t,"Error",s),C(this,l1,e4).call(this,s)}else devvit?.debug.runtime&&console.debug("[runtime] try remote call; local not ready");if(!o)try{o=await this.remote?.RenderPost(r,p(this,Me))}catch(s){C(this,l1,_3).call(this,t,"Error",s),devvit?.debug.runtime&&console.debug("[runtime] remote call failed",s)}o&&(D(this,V3,!0),o.state&&D(this,Le,o.state),this.onRenderPost?.(r,o),p(this,I3)?p(this,v2).push({renderType:r.blocks.type,effects:o.effects}):C(this,l1,Kt).call(this,r.blocks.type,o.effects)),devvit?.debug.runtime&&!this._local?.ready&&!this.remote&&console.debug("[runtime] call failed; no runtimes")};function no(e,t,n,i){let a=t.match(/([a-zA-Z0-9-]+)\/(.*)/)??[];if(a.length<3)return"";let[r,o,s]=a;if(!i.webViewContext?.subredditId||!o||!s)return"";let l=i.webViewContext.appVersion.replace(/[^0-9]+/g,"-"),c=i.webViewContext.subredditId.replace(/^t[0-9]_/,""),d=n.split(".")[0],v=e.replace("{{location}}",c).replace("{{app}}",o).replace("{{installation}}",d).replace("{{version}}",l).replace("{{path}}",s),f=new URL(v),g=JSON.stringify(B0.toJSON(i.webViewContext));return i.webbitToken!==Vt&&i.webbitToken.length<2e3&&f.searchParams.append("webbit_token",i.webbitToken),f.searchParams.append("context",g),f.hash=`#${encodeURIComponent(JSON.stringify(i))}`,f.toString()}function ro(e,t,n,i,a,r,o){let s={appName:e?.[x0.App]?.values[0]??"",appVersion:t??"",postId:e?.[x0.Post]?.values[0]??"",subredditId:e?.[x0.Subreddit]?.values[0]??"",subredditName:e?.[x0.SubredditName]?.values[0]??"",userId:e?.[x0.User]?.values[0]??""},l=e?.[x0.PostData]?.values[0],c=l?JSON.parse(l):{};return{client:3,devvitDebug:C7()??"",postData:c,shareParam:ks(u8()),shredditVersion:void 0,webbitToken:n,webViewContext:s,appPermissionState:i,viewMode:a,signedRequestContext:r,webViewClientData:o}}function ks(e){if(!e)return;let t;try{t=JSON.parse(e)}catch(n){console.warn(`ShareParam unparsable \`${e}\``,n);return}if(!Ps(t)){console.warn(`ShareParam invalid \`${e}\``);return}return t}function Ps(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t={hash:!0,path:!0,params:!0,userData:!0};for(let n in e)if(!t[n])return!1;if(typeof e.hash!="string"||typeof e.path!="string"||e.userData!=null&&(typeof e.userData!="string"||e.userData.length>1024)||!e.params||typeof e.params!="object"||Array.isArray(e.params))return!1;for(let n of Object.values(e.params))if(typeof n!="string")return!1;return!0}var z,a3,R3,O3,n0,ao,n4,T3,Yt,jt,e6,t6,n6,d1=class extends r0{constructor(){super();M(this,n0);this.runtimeDebugLogging=!1;this.useExperimentalBlocks=!1;this.webViewUrlTemplate="";this.disableAssetSandbox=!1;M(this,z,new zt);M(this,a3);M(this,R3);M(this,O3);M(this,Yt,()=>{let n=ro(this.metadata,this.bundle?.actor?.version,Vt,void 0,Mt.INLINE_MODE,void 0,void 0);return{experimental:this.useExperimentalBlocks,resolveWebViewUrl:i=>this.disableAssetSandbox?i:no(this.webViewUrlTemplate,i,this.bundle?.hostname??"",n),onAction:i=>p(this,z).queueRenderPost(h0.RENDER_USER_ACTION,i.id,i.data??{}),stackDirection:I.UNRECOGNIZED,disableAssetSandbox:this.disableAssetSandbox}});M(this,jt,(n,i)=>{t3(i)||console.error(i),C(this,n0,T3).call(this,"devvit-ui-error",{err:i,type:n})});M(this,e6,(n,i,a,r,o)=>{i===m3.fullName&&a===m3.methods.send.name&&((devvit?.debug.surface||devvit?.debug.realtime)&&console.debug("[realtime][custom] realtime plugin call",r),C(this,n0,T3).call(this,"devvit-realtime-send",{event:r}))});M(this,t6,(n,i)=>{var a,r;this.renderResponse=i,this.renderResponse?.blocks?.ui&&(this._rootBlock=this.renderResponse.blocks.ui,p(this,a3)?((a=this._rootBlock).config??(a.config={}),(r=this._rootBlock.config).rootConfig??(r.rootConfig={children:[],height:0}),this._rootBlock.config.rootConfig.height=p(this,a3)):D(this,a3,this._rootBlock.config?.rootConfig?.height||y7))});M(this,n6,n=>{devvit?.debug.surface&&console.debug("[custom] effect",n),C(this,n0,T3).call(this,"devvit-ui-effect",{effect:n,onEvent:i=>p(this,z).queueEvent(i),metadata:this.metadata})});devvit?.debug.surface&&console.debug("[custom] constructed"),p(this,z).onError=p(this,jt),p(this,z).onPluginCall=p(this,e6),p(this,z).onRenderPost=p(this,t6),p(this,z).onUserAction=p(this,n6)}static get styles(){return[et]}async connectedCallback(){super.connectedCallback(),devvit?.debug.surface&&console.debug("[custom] connected"),D(this,R3,new ResizeObserver(Z8(n=>{n.length!==0&&(this.dimensions=C8(n[0],window,document.body),devvit?.debug.surface&&console.debug("[custom] resized",this.dimensions))},600))),p(this,R3).observe(this,{box:"content-box"}),D(this,O3,new IntersectionObserver(n=>{n.forEach(i=>{devvit?.debug.surface&&console.debug(`[custom] ${i.isIntersecting?"":"not "}intersecting`),p(this,z).togglePause(!i.isIntersecting)})})),p(this,O3).observe(this)}disconnectedCallback(){devvit?.debug.surface&&console.debug("[custom] disconnected"),p(this,z).unload(),p(this,R3)?.unobserve(this),p(this,O3)?.unobserve(this),super.disconnectedCallback()}render(){return this.renderResponse?U1`<div class="relative">
|
|
635
635
|
<devvit-blocks-renderer
|
|
636
636
|
class="${this.scheme??""}"
|
|
637
637
|
.block="${this._rootBlock}"
|