@tixyel/streamelements 2.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(R,O){typeof exports=="object"&&typeof module<"u"?O(exports):typeof define=="function"&&define.amd?define(["exports"],O):(R=typeof globalThis<"u"?globalThis:R||self,O(R["@tixyel/streamelements"]={}))})(this,(function(R){"use strict";class O{constructor(){this.registeredEvents={}}emit(e,...n){return(this.registeredEvents[e]||[]).map(t=>t.apply(this,n))}on(e,n){if(typeof n!="function")throw new TypeError("Callback must be a function");return this.registeredEvents[e]||(this.registeredEvents[e]=[]),this.registeredEvents[e].push(n),this}off(e,n){const a=this.registeredEvents[e]||[];return n?(this.registeredEvents[e]=a.filter(t=>t!==n),this):(this.registeredEvents[e]=[],this)}once(e,n){const a=(...t)=>{this.off(e,a),n.apply(this,t)};return this.on(e,a),this}removeAllListeners(e){return this.registeredEvents[e]=[],this}}class H extends O{constructor(e){if(super(),this.id="default",this.loaded=!1,this.id=e.id||this.id,this.data=e.data??{},!SE_API||!SE_API.store)throw new Error("SE_API.store is not available");SE_API.store.get(this.id).then(n=>{this.data=n??this.data,this.loaded=!0,this.emit("load",this.data)}).catch(()=>{this.loaded=!0,this.emit("load",null)})}save(e=this.data){this.loaded&&(this.data=e,SE_API.store.set(this.id,this.data),this.emit("save",this.data))}add(e,n){this.loaded&&(this.setByPath(this.data,e,n),this.save(this.data))}setByPath(e,n,a){const t=n.split(".");let d=e;for(let c=0;c<t.length-1;c++)(typeof d[t[c]]!="object"||d[t[c]]==null)&&(d[t[c]]={}),d=d[t[c]];d[t[t.length-1]]=a}on(e,n){return e==="load"&&this.loaded?(n.apply(this,[this.data]),this):(super.on(e,n),this)}}class E extends O{constructor(e){super(),this.id="default",this.fields={},this.loaded=!1,this.actions={commands:[],buttons:[]},this.cache={avatar:30,pronoun:30,emote:30},this.id=e.id||this.id,window.client=this,this.storage=new H({id:this.id,data:{user:{},avatar:{},pronoun:{},emote:{}}})}on(e,n){return e==="load"&&this.loaded?(n.apply(this,[{channel:this.details.user,currency:this.details.currency,fieldData:this.fields,recents:[],session:{data:this.session,settings:{autoReset:!1,calendar:!1,resetOnStart:!1}},overlay:this.details.overlay,emulated:!1}]),this):(super.on(e,n),this)}}var U=(u=>(u.hehim="He/Him",u.sheher="She/Her",u.theythem="They/Them",u.shethem="She/They",u.hethem="He/They",u.heshe="He/She",u.xexem="Xe/Xem",u.faefaer="Fae/Faer",u.vever="Ve/Ver",u.aeaer="Ae/Aer",u.ziehir="Zie/Hir",u.perper="Per/Per",u.eem="E/Em",u.itits="It/Its",u))(U||{});function N(u,e=L.data.emotes){const n=[];return e.forEach(a=>{const t=a.name;let d=0,c=0;for(;d<u.length;){const i=u.indexOf(t,c);if(i===-1)break;const l=i>0?u[i-1]:" ",y=i+t.length<u.length?u[i+t.length]:" ";/\s/.test(l)&&/\s/.test(y)&&n.push({...a,start:i,end:i+t.length}),c=i+1}}),n.sort((a,t)=>a.start-t.start)}function z(u,e){if(!e.length)return u;let n="",a=0;return e.forEach(t=>{n+=u.substring(a,t.start);const d=t.urls[4]||t.urls[2]||t.urls[1];n+=`<img src="${d}" alt="${t.name}" class="emote" style="width: auto; height: 1em; vertical-align: middle;" />`,a=t.end}),n+=u.substring(a),n}async function B(u=[],e="twitch"){if(!Array.isArray(u)&&typeof u=="string"&&(u=u.split(",").map(c=>c.trim())),!u||!u.length){var n=L.rand.number(1,3);for await(const c of Array.from({length:n},()=>"")){var a=L.rand.array(Object.keys(L.data.badges))[0];!u.includes(a)&&Array.isArray(u)?u.push(a):u=[a]}}var t;switch(e){case"twitch":{t={keys:Array.from(u).filter(c=>c in L.data.badges),badges:Array.from(u).slice(0,3).map(c=>L.data.badges[c]).filter(Boolean)};break}case"youtube":{var d={verified:{isVerified:!1},broadcaster:{isChatOwner:!1},host:{isChatOwner:!1},sponsor:{isChatSponsor:!1},subscriber:{isChatSponsor:!1},moderator:{isChatModerator:!1}};t=Object.entries(u).reduce((c,[i])=>(i in d&&Object.assign(c,d[i]),c),{isVerified:!1,isChatOwner:!1,isChatSponsor:!1,isChatModerator:!1});break}}return t}const r=class r{static fields(e){const n={from:"main",endsWith:[],ignore:[],replace:{},subgroup:!1,template:"• {key}",subgroupTemplate:"★ {key}",settings:{types:[[["size","width","number","gap","duration"],"number"],[["options","dropdown","weight"],"dropdown"],[["range","radius"],"slider"],[["color","background"],"colorpicker"],[["font-family","font","family"],"googleFont"]],addons:[[["slider","radius"],{step:1,min:0,max:"inherit"}],[["options","dropdown"],{options:{}}],[["weight"],{options:{100:"Thin",200:"Extra Light",300:"Light",400:"Regular",500:"Medium",600:"Semi Bold",700:"Bold",800:"Extra Bold",900:"Black"}}]],transforms:[[["size","width","number","gap","duration"],m=>parseFloat(String(m))],[["font-family","font","family"],m=>m],[["range","radius"],m=>parseFloat(String(m))],[["options","dropdown"],m=>m],[["weight"],m=>m],[["color","background"],m=>m]],labels:[[["font-size"]," • In pixels"],[["font-radius"]," • In pixels"]]}};function a(m){return{...n,...m,endsWith:Array.isArray(m.endsWith)?m.endsWith:n.endsWith,ignore:Array.isArray(m.ignore)?m.ignore:n.ignore,replace:{...n.replace,...m.replace??{}},settings:{types:Array.isArray(m.settings?.types)?m.settings.types:n.settings.types,addons:Array.isArray(m.settings?.addons)?m.settings.addons:n.settings.addons,transforms:Array.isArray(m.settings?.transforms)?m.settings.transforms:n.settings.transforms,labels:Array.isArray(m.settings?.labels)?m.settings.labels:n.settings.labels},subgroup:m.subgroup??n.subgroup,template:m.template??n.template,subgroupTemplate:m.subgroupTemplate??n.subgroupTemplate,from:m.from??n.from}}const t=a(e),c=Array.from(document.styleSheets).filter(({href:m})=>!m||m.startsWith(window.location.origin)).reduce((m,{cssRules:v})=>(v&&Array.from(v).forEach(b=>{b instanceof CSSStyleRule&&b.selectorText===t.from&&Array.from(b.style).some(s=>s.startsWith("--"))&&Array.from(b.style).filter(s=>s.startsWith("--")).forEach(s=>{m[s]=b.style.getPropertyValue(s).trim()})}),m),{}),i=Object.entries(c).filter(([m])=>t.endsWith.some(v=>m.toLowerCase().endsWith(v.toLowerCase())&&!m.includes("-options-"))).filter(([m])=>!t.ignore.some(v=>m.toLowerCase()===v.toLowerCase())).reduce((m,[v,b])=>(m[v.replace("--","")]=String(t.replace?.[v]??b),m),{});let l=[];const y=Object.entries(i).reduce((m,[v,b])=>{let s=t.settings.types.find(([w])=>w.some(g=>v.toLowerCase().includes(g)))?.[1]||"text",o=t.settings.transforms.find(([w])=>w.some(g=>v.toLowerCase().includes(g)))?.[1]||(w=>w),h={type:"text",label:t.settings.labels.find(([w])=>w.some(g=>v.toLowerCase().includes(g)))?.[1]||"",...t.settings.addons.find(([w])=>w.some(g=>v.toLowerCase().includes(g)))?.[1]||{}};["min","max","step","label","type"].forEach(w=>{const g=c[`--${v}-${w}`];g&&g.length&&(h[w]=isNaN(parseFloat(g))?String(g).replace(/^['"]|['"]$/g,""):String(parseFloat(g)))});let k=v.replace(/-(size|color|weight|width|height|gap|duration|radius|amount)$/g,"").replace(/-([a-z])/g,(w,g)=>g.toUpperCase()).replace(/[A-Z]/g," $&").toLowerCase().trim(),x=Object.keys(i).filter(w=>w.startsWith(k.replace(/[A-Z]/g,"-$&").replaceAll(" ","-").toLowerCase().slice(1)));t.subgroup&&!m[`${k.replace(/[A-Z]/g,"-$&").replaceAll(" ","-").toLowerCase().slice(1)}-subgroup`]&&x.length>1&&!l.includes(v)&&(l.push(...x),m[`${k.replace(/[A-Z]/g,"-$&").replaceAll(" ","-").toLowerCase().slice(1)}-subgroup`]={type:"hidden",label:t.subgroupTemplate.replaceAll("{key}",r.string.capitalize(k))});let S=r.string.capitalize(v.replace(/-([a-z])/g,(w,g)=>g.toUpperCase()).replace(/[A-Z]/g," $&").toLowerCase());b=o(b)??b;const j=(()=>{const w=Object.entries(c).filter(([g])=>g.startsWith(`--${v}-options-`)).reduce((g,[C,M])=>{const I=C.replace(`--${v}-options-`,"");return I&&(g[String(M)]=r.string.capitalize(I.replace(/-([a-z])/g,(V,W)=>W.toUpperCase()).replace(/[A-Z]/g," $&").toLowerCase())),g},{});return Object.keys(w).length?w:null})();return j&&(s="dropdown",h.options=j,b=String(b)),Object.entries(h).forEach(([w,g])=>{[!1,"inherit","auto",null].includes(g)&&(h[w]=b)}),m[v]={type:h.type||s,label:t.template.toString().replaceAll("{key}",r.string.capitalize(S)+h.label),value:b,min:h.min,max:h.max,step:h.step,options:h.options},m},{}),f=Object.entries(y).reduce((m,[v,b])=>{const s=b?.label?.includes("undefined"),o=!["hidden","button"].includes(b.type)&&b.value===void 0;return(s||o)&&(m[v]=b),m},{});if(Object.keys(f).length)throw $.logger.error("Simulation.fields: Detected errors in generated fields:",f),new Error("Error while processing fields");return y}static async start(){const e={fields:["fields.json","cf.json","field.json","customfields.json"].find(a=>{try{return new URL("./"+a,window.location.href),!0}catch{return!1}}),data:["data.json","fielddata.json","fd.json","DATA.json"].find(a=>{try{return new URL("./"+a,window.location.href),!0}catch{return!1}})},n=await fetch("./"+(e.data??"data.json"),{cache:"no-store"}).then(a=>a.json()).catch(()=>({}));await fetch("./"+(e.fields??"fields.json"),{cache:"no-store"}).then(a=>a.json()).then(async a=>{const t=Object.entries(a).filter(([c,{value:i}])=>i!=null).reduce((c,[i,{value:l}])=>(n&&n[i]!==void 0&&(l=n[i]),c[i]=l,c),{}),d=await r.generate.event.onWidgetLoad(t,await r.generate.session.get());window.dispatchEvent(new CustomEvent("onWidgetLoad",{detail:d}))})}};r.data={names:["local","tixyel","urie_s2","itzzcatt","beniarts","cupidiko","shy_madeit"],messages:["Hello!","How are you?","Goodbye!","Have fun!"],tiers:["1000","2000","3000","prime"],avatars:["https://static-cdn.jtvnw.net/user-default-pictures-uv/13e5fa74-defa-11e9-809c-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/dbdc9198-def8-11e9-8681-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/998f01ae-def8-11e9-b95c-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/de130ab0-def7-11e9-b668-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/ebe4cd89-b4f4-4cd9-adac-2f30151b4209-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/215b7342-def9-11e9-9a66-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/ead5c8b2-a4c9-4724-b1dd-9f00b46cbd3d-profile_image-300x300.png"],items:[],emotes:[{type:"twitch",name:"DinoDance",id:"emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7",gif:!0,animated:!0,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7/animated/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7/animated/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7/animated/dark/3.0"},start:46,end:55},{type:"twitch",name:"PopNemo",id:"emotesv2_5d523adb8bbb4786821cd7091e47da21",gif:!0,animated:!0,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_5d523adb8bbb4786821cd7091e47da21/animated/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_5d523adb8bbb4786821cd7091e47da21/animated/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_5d523adb8bbb4786821cd7091e47da21/animated/dark/3.0"},start:56,end:63},{type:"twitch",name:"TransgenderPride",id:"307827377",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827377/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827377/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827377/default/dark/3.0"},start:0,end:15},{type:"twitch",name:"PansexualPride",id:"307827370",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827370/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827370/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827370/default/dark/3.0"},start:17,end:30},{type:"twitch",name:"NonbinaryPride",id:"307827356",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827356/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827356/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827356/default/dark/3.0"},start:32,end:45},{type:"twitch",name:"LesbianPride",id:"307827340",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827340/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827340/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827340/default/dark/3.0"},start:47,end:58},{type:"twitch",name:"IntersexPride",id:"307827332",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827332/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827332/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827332/default/dark/3.0"},start:60,end:72},{type:"twitch",name:"GenderFluidPride",id:"307827326",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827326/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827326/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827326/default/dark/3.0"},start:74,end:89},{type:"twitch",name:"GayPride",id:"307827321",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827321/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827321/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827321/default/dark/3.0"},start:91,end:98},{type:"twitch",name:"BisexualPride",id:"307827313",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827313/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827313/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827313/default/dark/3.0"},start:100,end:112},{type:"twitch",name:"AsexualPride",id:"307827267",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827267/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827267/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827267/default/dark/3.0"},start:114,end:125},{type:"twitch",name:"PogChamp",id:"305954156",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/305954156/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/305954156/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/305954156/default/dark/3.0"},start:127,end:134},{type:"twitch",name:"GlitchCat",id:"304486301",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/304486301/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/304486301/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/304486301/default/dark/3.0"},start:136,end:144},{type:"twitch",name:"DarkMode",id:"461298",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/461298/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/461298/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/461298/default/dark/3.0"},start:146,end:153},{type:"twitch",name:"LUL",id:"425618",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/425618/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/425618/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/425618/default/dark/3.0"},start:155,end:157},{type:"twitch",name:"TheIlluminati",id:"145315",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/145315/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/145315/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/145315/default/dark/3.0"},start:159,end:171},{type:"twitch",name:"imGlitch",id:"112290",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/112290/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/112290/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/112290/default/dark/3.0"},start:173,end:180},{type:"twitch",name:"DoritosChip",id:"102242",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/102242/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/102242/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/102242/default/dark/3.0"},start:182,end:192},{type:"twitch",name:"SSSsss",id:"46",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/46/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/46/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/46/default/dark/3.0"},start:194,end:199},{type:"twitch",name:"PunchTrees",id:"47",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/47/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/47/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/47/default/dark/3.0"},start:201,end:210},{type:"twitch",name:"BloodTrail",id:"69",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/69/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/69/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/69/default/dark/3.0"},start:223,end:232},{type:"7tv",name:"CookieTime",id:"635b0184ea9ce7391cbf77d6",gif:!0,animated:!0,urls:{1:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/1x.webp",2:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/2x.webp",3:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/3x.webp",4:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/4x.webp"},start:0,end:10,coords:{x:0,y:0}},{type:"bttv",name:"catJAM",id:"5f1b0186cf6d2144653d2970",gif:!0,animated:!0,urls:{1:"https://cdn.betterttv.net/emote/5f1b0186cf6d2144653d2970/1x",2:"https://cdn.betterttv.net/emote/5f1b0186cf6d2144653d2970/2x",4:"https://cdn.betterttv.net/emote/5f1b0186cf6d2144653d2970/3x"},start:0,end:6,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:":tf:",id:"54fa8f1401e468494b85b537",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fa8f1401e468494b85b537/1x",2:"https://cdn.betterttv.net/emote/54fa8f1401e468494b85b537/2x",4:"https://cdn.betterttv.net/emote/54fa8f1401e468494b85b537/3x"},start:7,end:11,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"AngelThump",id:"566ca1a365dbbdab32ec055b",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/566ca1a365dbbdab32ec055b/1x",2:"https://cdn.betterttv.net/emote/566ca1a365dbbdab32ec055b/2x",4:"https://cdn.betterttv.net/emote/566ca1a365dbbdab32ec055b/3x"},start:12,end:22,coords:{x:0,y:0,width:334,height:112}},{type:"bttv",name:"ariW",id:"56fa09f18eff3b595e93ac26",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/56fa09f18eff3b595e93ac26/1x",2:"https://cdn.betterttv.net/emote/56fa09f18eff3b595e93ac26/2x",4:"https://cdn.betterttv.net/emote/56fa09f18eff3b595e93ac26/3x"},start:23,end:27,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"BroBalt",id:"54fbf00a01abde735115de5c",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fbf00a01abde735115de5c/1x",2:"https://cdn.betterttv.net/emote/54fbf00a01abde735115de5c/2x",4:"https://cdn.betterttv.net/emote/54fbf00a01abde735115de5c/3x"},start:28,end:35,coords:{x:0,y:0,width:184,height:120}},{type:"bttv",name:"bttvNice",id:"54fab7d2633595ca4c713abf",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fab7d2633595ca4c713abf/1x",2:"https://cdn.betterttv.net/emote/54fab7d2633595ca4c713abf/2x",4:"https://cdn.betterttv.net/emote/54fab7d2633595ca4c713abf/3x"},start:36,end:44,coords:{x:0,y:0,width:168,height:112}},{type:"bttv",name:"bUrself",id:"566c9f3b65dbbdab32ec052e",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/566c9f3b65dbbdab32ec052e/1x",2:"https://cdn.betterttv.net/emote/566c9f3b65dbbdab32ec052e/2x",4:"https://cdn.betterttv.net/emote/566c9f3b65dbbdab32ec052e/3x"},start:45,end:52,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"c!",id:"6468f7acaee1f7f47567708e",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/6468f7acaee1f7f47567708e/1x",2:"https://cdn.betterttv.net/emote/6468f7acaee1f7f47567708e/2x",4:"https://cdn.betterttv.net/emote/6468f7acaee1f7f47567708e/3x"},start:53,end:55,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"CandianRage",id:"54fbf09c01abde735115de61",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fbf09c01abde735115de61/1x",2:"https://cdn.betterttv.net/emote/54fbf09c01abde735115de61/2x",4:"https://cdn.betterttv.net/emote/54fbf09c01abde735115de61/3x"},start:56,end:67,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"CiGrip",id:"54fa8fce01e468494b85b53c",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fa8fce01e468494b85b53c/1x",2:"https://cdn.betterttv.net/emote/54fa8fce01e468494b85b53c/2x",4:"https://cdn.betterttv.net/emote/54fa8fce01e468494b85b53c/3x"},start:68,end:74,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"ConcernDoge",id:"566c9f6365dbbdab32ec0532",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/566c9f6365dbbdab32ec0532/1x",2:"https://cdn.betterttv.net/emote/566c9f6365dbbdab32ec0532/2x",4:"https://cdn.betterttv.net/emote/566c9f6365dbbdab32ec0532/3x"},start:75,end:86,coords:{x:0,y:0,width:101,height:112}},{type:"bttv",name:"CruW",id:"55471c2789d53f2d12781713",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/55471c2789d53f2d12781713/1x",2:"https://cdn.betterttv.net/emote/55471c2789d53f2d12781713/2x",4:"https://cdn.betterttv.net/emote/55471c2789d53f2d12781713/3x"},start:87,end:91,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"cvHazmat",id:"5e76d338d6581c3724c0f0b2",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/5e76d338d6581c3724c0f0b2/1x",2:"https://cdn.betterttv.net/emote/5e76d338d6581c3724c0f0b2/2x",4:"https://cdn.betterttv.net/emote/5e76d338d6581c3724c0f0b2/3x"},start:92,end:100,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"D:",id:"55028cd2135896936880fdd7",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/55028cd2135896936880fdd7/1x",2:"https://cdn.betterttv.net/emote/55028cd2135896936880fdd7/2x",4:"https://cdn.betterttv.net/emote/55028cd2135896936880fdd7/3x"},start:101,end:103,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"haHAA",id:"555981336ba1901877765555",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/555981336ba1901877765555/1x",2:"https://cdn.betterttv.net/emote/555981336ba1901877765555/2x",4:"https://cdn.betterttv.net/emote/555981336ba1901877765555/3x"},start:104,end:109,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"LuL",id:"567b00c61ddbe1786688a633",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/567b00c61ddbe1786688a633/1x",2:"https://cdn.betterttv.net/emote/567b00c61ddbe1786688a633/2x",4:"https://cdn.betterttv.net/emote/567b00c61ddbe1786688a633/3x"},start:110,end:113,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"DuckerZ",id:"573d38b50ffbf6cc5cc38dc9",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/573d38b50ffbf6cc5cc38dc9/1x",2:"https://cdn.betterttv.net/emote/573d38b50ffbf6cc5cc38dc9/2x",4:"https://cdn.betterttv.net/emote/573d38b50ffbf6cc5cc38dc9/3x"},start:114,end:121,coords:{x:0,y:0,width:149,height:112}},{type:"ffz",name:"CatBag",id:"25927",gif:!1,animated:!1,urls:{1:"https://cdn.frankerfacez.com/emote/25927/1",2:"https://cdn.frankerfacez.com/emote/25927/2",4:"https://cdn.frankerfacez.com/emote/25927/4"},start:122,end:128,coords:{x:0,y:0,width:143,height:128}}],badges:{"100 bits":{type:"100 bits",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/09d93036-e7ce-431c-9a9e-7044297133f2/3",description:"100 bits badge"},"no audio":{type:"no audio",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/aef2cd08-f29b-45a1-8c12-d44d7fd5e6f0/3",description:"Individuals with unreliable or no sound can select this badge"},"no video":{type:"no video",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/199a0dba-58f3-494e-a7fc-1fa0a1001fb8/3",description:"Individuals with unreliable or no video can select this badge"},bot:{type:"bot",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/df9095f6-a8a0-4cc2-bb33-d908c0adffb8/3",description:"Twitch bot"},"twitch staff":{type:"twitch staff",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/d97c37bd-a6f5-4c38-8f57-4e4bef88af34/3",description:"Twitch Staff"},admins:{type:"admins",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/9ef7e029-4cdf-4d4d-a0d5-e2b3fb2583fe/3",description:"Admins"},artist:{type:"artist",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/4300a897-03dc-4e83-8c0e-c332fee7057f/3",description:"Artist"},"game developer":{type:"game developer",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/85856a4a-eb7d-4e26-a43e-d204a977ade4/3",description:"Game Developer"},prime:{type:"prime",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/a1dd5073-19c3-4911-8cb4-c464a7bc1510/3",description:"Prime"},turbo:{type:"turbo",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/bd444ec6-8f34-4bf9-91f4-af1e3428d80f/3",description:"Turbo"},subscriber:{type:"subscriber",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/5d9f2208-5dd8-11e7-8513-2ff4adfae661/3",description:"Subscriber"},broadcaster:{type:"broadcaster",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/5527c58c-fb7d-422d-b71b-f309dcb85cc1/3",description:"Broadcaster"},verified:{type:"verified",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/d12a2e27-16f6-41d0-ab77-b780518f00a3/3",description:"Verified"},moderator:{type:"moderator",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/3267646d-33f0-4b17-b3df-f923a41db1d0/3",description:"Moderator"},vip:{type:"vip",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/b817aba4-fad8-49e2-b88a-7cc744dfa6ec/3",description:"VIP"}},pronouns:U,tts:["Filiz","Astrid","Tatyana","Maxim","Carmen","Ines","Cristiano","Vitoria","Ricardo","Maja","Jan","Jacek","Ewa","Ruben","Lotte","Liv","Seoyeon","Takumi","Mizuki","Giorgio","Carla","Bianca","Karl","Dora","Mathieu","Celine","Chantal","Penelope","Miguel","Mia","Enrique","Conchita","Geraint","Salli","Matthew","Kimberly","Kendra","Justin","Joey","Joanna","Ivy","Raveena","Aditi","Emma","Brian","Amy","Russell","Nicole","Vicki","Marlene","Hans","Naja","Mads","Gwyneth","Zhiyu","Tracy","Danny","Huihui","Yaoyao","Kangkang","HanHan","Zhiwei","Asaf","An","Stefanos","Filip","Ivan","Heidi","Herena","Kalpana","Hemant","Matej","Andika","Rizwan","Lado","Valluvar","Linda","Heather","Sean","Michael","Karsten","Guillaume","Pattara","Jakub","Szabolcs","Hoda","Naayf"]},r.color={opacity(e=100,n){n=n.length>7?n.substring(0,6):n,e=e>1?e/100:e;let a=Math.round(Math.min(Math.max(e,0),1)*255).toString(16).toLowerCase();return a=a.padStart(2,"0"),n+a},getOpacity(e){if(!e.startsWith("#")||e.length<=7)return{opacity:100,hex:e};var n=e.slice(-2),a=parseInt(n,16)/255,t=Math.round(a*100),d=e.length>7?e.slice(0,7):e;return{opacity:t,color:d}},validate(e){if(typeof e!="string"||!e.length)return!1;const n=e.trim();return/^#([A-Fa-f0-9]{3}){1,2}$/.test(n)||/^#([A-Fa-f0-9]{4}|[A-Fa-f0-9]{8})$/.test(n)?"hex":/^rgb\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*\)$/.test(n)?"rgb":/^rgba\(\s*(?:\d{1,3}\s*,\s*){3}(?:0|1|0?\.\d+)\s*\)$/.test(n)?"rgba":/^hsl\(\s*\d{1,3}\s*,\s*\d{1,3}%\s*,\s*\d{1,3}%\s*\)$/.test(n)?"hsl":/^hsla\(\s*\d{1,3}\s*,\s*\d{1,3}%\s*,\s*\d{1,3}%\s*,\s*(?:0|1|0?\.\d+)\s*\)$/.test(n)?"hsla":["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","transparent"].includes(n.toLowerCase())?"css-color-name":!1}},r.rand={color(e="hex"){switch(e){default:case"hex":return`#${Math.floor(Math.random()*16777215).toString(16).padStart(6,"0")}`;case"hexa":{const a=`#${Math.floor(Math.random()*16777215).toString(16).padStart(6,"0")}`,t=Math.floor(Math.random()*256).toString(16).padStart(2,"0");return a+t}case"rgb":{const a=Math.floor(Math.random()*256),t=Math.floor(Math.random()*256),d=Math.floor(Math.random()*256);return`rgb(${a}, ${t}, ${d})`}case"rgba":{const a=Math.floor(Math.random()*256),t=Math.floor(Math.random()*256),d=Math.floor(Math.random()*256),c=Math.random().toFixed(2);return`rgba(${a}, ${t}, ${d}, ${c})`}case"hsl":{const a=Math.floor(Math.random()*361),t=Math.floor(Math.random()*101),d=Math.floor(Math.random()*101);return`hsl(${a}, ${t}%, ${d}%)`}case"hsla":{const a=Math.floor(Math.random()*361),t=Math.floor(Math.random()*101),d=Math.floor(Math.random()*101),c=Math.random().toFixed(2);return`hsla(${a}, ${t}%, ${d}%, ${c})`}case"css-color-name":{var n=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","transparent"];return this.array(n)[0]}}},number(e,n,a=0){e>n&&([e,n]=[n,e]);const t=Math.random()*(n-e)+e;return a?Number(t.toFixed(a)):Math.round(t)},boolean(e=.5){return Math.random()>e},string(e,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"){let a="";for(let t=0;t<e;t++)a+=n.charAt(Math.floor(Math.random()*n.length));return a},array(e){const n=this.number(0,e.length-1);return[e[n],n]},date(e=365){const a=Date.now()-this.number(0,e*24*60*60*1e3);return new Date(a).toISOString()},uuid(){return window.crypto&&typeof crypto?.randomUUID=="function"?crypto.randomUUID():"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(+e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+e/4).toString(16))}},r.string={async replace(e,n,a){const t=[];e.replace(n,(c,...i)=>{const l=typeof a=="function"?a(c,...i):c;return t.push(Promise.resolve(l)),c});const d=await Promise.all(t);return e.replace(n,()=>d.shift()??"")},capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)},compose(e,n,a={method:"index",modifiers:{}}){const{mergeSpanStyles:t}=r.element,d=Object.entries(r.object.flatten(n)).reduce((s,[o,p])=>{if(s[o]=String(p),["username","name","nick","nickname","sender"].some(h=>o===h)){const h=s?.username||s?.name||s?.nick||s?.nickname||s?.sender;s.username=s.username||h,s.usernameAt=`@${s.username}`,s.name=s.name||h,s.nick=s.nick||h,s.nickname=s.nickname||h,s.sender=s.sender||h,s.senderAt=`@${s.sender}`}return["amount","count"].some(h=>o===h)&&(s.amount=String(i),s.count=String(s?.count||i)),s.currency=s.currency||window.client?.details.currency.symbol||"$",s.currencyCode=s.currencyCode||window.client?.details.currency.code||"USD",s.skip="<br/>",s.newline="<br/>",s},{}),c={PLACEHOLDERS:/{([^}]+)}/g,MODIFIERS:/\[(\w+)(:[^=]+)?=([^\]]+)\]/g};var i=parseFloat(d?.amount??d?.count??0);const l={BT1:s=>i>1?s:"",BT0:s=>i>0?s:"",ST1:s=>i<1?s:"",ST0:s=>i<0?s:"",UPC:s=>s.toUpperCase(),LOW:s=>s.toLowerCase(),REV:s=>s.split("").reverse().join(""),CAP:s=>s.charAt(0).toUpperCase()+s.slice(1).toLowerCase(),FALLBACK:(s,o)=>s.length?s:o??s,COLOR:(s,o)=>t(o&&r.color.validate(o)?`color: ${o}`:"",s),WEIGHT:(s,o)=>t(o&&!isNaN(parseInt(o))?`font-weight: ${o}`:"",s),BOLD:s=>t("font-weight: bold",s),LIGHT:s=>t("font-weight: lighter",s),STRONG:s=>t("font-weight: bolder",s),ITALIC:s=>t("font-style: italic",s),UNDERLINE:s=>t("text-decoration: underline",s),STRIKETHROUGH:s=>t("text-decoration: line-through",s),SUB:s=>t("vertical-align: sub",s),SUP:s=>t("vertical-align: super",s),LARGER:s=>t("font-size: larger",s),SMALL:s=>t("font-size: smaller",s),SHADOW:(s,o)=>t(`text-shadow: ${o}`,s),SIZE:(s,o)=>t(o?`font-size: ${o}`:"",s),...a.modifiers??{}},y={UPC:["UPPERCASE","UPPER","UPP"],LOW:["LOWERCASE","LOWER","LWC"],REV:["REVERSE","RVS"],CAP:["CAPITALIZE","CAPITAL"],BT1:["BIGGER_THAN_1","GREATER_THAN_1","GT1"],BT0:["BIGGER_THAN_0","GREATER_THAN_0","GT0"],ST1:["SMALLER_THAN_1","LESS_THAN_1","LT1"],ST0:["SMALLER_THAN_0","LESS_THAN_0","LT0"],COLOR:["COLOUR","CLR","HIGHLIGHT"],BOLD:["BOLDEN","B"],STRONG:["STRONGEN","STRONG"],ITALIC:["ITALICIZE","ITALIC","I"],UNDERLINE:["U","INS","INSET","I"],STRIKETHROUGH:["STRIKE","S","DELETE","D"],SUB:["SUBSCRIPT","SUBS"],SUP:["SUPERSCRIPT","SUPS"],LARGER:["LARGER","LG"],SMALL:["SMALLER","SM"],SHADOW:["SHADOW","SHD"],FALLBACK:["FALLBACK","FB"]};function f(s,o,p){const h=Object.entries(y).find(([x,S])=>S.some(A=>A.toUpperCase()===o.toUpperCase())?!0:x.toUpperCase()===o.toUpperCase()),k=h?h[0]:o.toUpperCase();return l[k]?l[k](s,typeof p=="string"?p.trim():null,d):s}function m(s){let o=s,p;for(;(p=c.MODIFIERS.exec(o))!==null;){const[h,k,x,S]=p,A=f(m(S),k,x);o=o.replace(h,A??""),c.MODIFIERS.lastIndex=0}return o}function v(s){let o=0;const p=s.length;function h(x){let S="";for(;o<p;)if(s[o]==="\\")o+1<p?(S+=s[o+1],o+=2):o++;else if(s[o]==="["&&(!x||x!=="["))S+=k();else if(x&&s[o]===x){o++;break}else S+=s[o++];return S}function k(){o++;let x="";for(;o<p&&/[A-Za-z0-9]/.test(s[o]);)x+=s[o++];let S=null;if(s[o]===":"){o++;const j=o;for(;o<p&&s[o]!=="=";)o++;S=s.slice(j,o)}s[o]==="="&&o++;const A=h("]");return f(A,x,S)}return h()}let b=e.replace(c.PLACEHOLDERS,(s,o)=>typeof d[o]=="string"||typeof d[o]=="number"?String(d[o]):o??o);return b=a.method==="loop"?m(b):v(b),b}},r.element={mergeSpanStyles(e,n){const a=n.match(/^<span style="([^"]*)">(.*)<\/span>$/s);if(a){const t=a[1],d=a[2];return`<span style="${[t,e].filter(Boolean).join("; ").replace(/\s*;\s*/g,"; ").trim()}">${d}</span>`}else return`<span style="${e}">${n}</span>`}},r.object={flatten(e,n=""){const a={};for(const t in e){if(!Object.prototype.hasOwnProperty.call(e,t))continue;const d=e[t],c=n?`${n}.${t}`:t;if(d==null){a[c]=String(d);continue}if(d instanceof Date){a[c]=d.toISOString();continue}if(d instanceof Map){d.forEach((i,l)=>{a[`${c}.${l}`]=JSON.stringify(i)});continue}if(Array.isArray(d)){d.forEach((i,l)=>{const y=`${c}:${l}`;typeof i=="object"?Object.assign(a,this.flatten(i,y)):a[y]=String(i)});continue}if(typeof d=="object"){Object.assign(a,this.flatten(d,c));continue}a[c]=String(d)}return a}},r.generate={session:{types:{name:{type:"string",options:r.data.names.filter(e=>e.length)},tier:{type:"string",options:r.data.tiers.filter(e=>e.length)},message:{type:"string",options:r.data.messages.filter(e=>e.length)},item:{type:"array",options:r.data.items},avatar:{type:"string",options:r.data.avatars.filter(e=>e.length)}},available(){const e=this.types;return{follower:{latest:{name:e.name},session:{count:{type:"int",min:50,max:200}},week:{count:{type:"int",min:200,max:1e3}},month:{count:{type:"int",min:1e3,max:3e3}},goal:{amount:{type:"int",min:3e3,max:7e3}},total:{count:{type:"int",min:7e3,max:1e4}},recent:{type:"recent",amount:25,value:{name:e.name,createdAt:{type:"date",range:400}}}},subscriber:{latest:{name:e.name,amount:{type:"int",min:10,max:30},tier:e.tier,message:e.message},"new-latest":{name:e.name,amount:{type:"int",min:10,max:30},message:e.message},"resub-latest":{name:e.name,amount:{type:"int",min:10,max:30},message:e.message},"gifted-latest":{name:e.name,amount:{type:"int",min:10,max:30},message:e.message,tier:e.tier,sender:e.name},session:{count:{type:"int",min:10,max:40}},"new-session":{count:{type:"int",min:10,max:40}},"resub-session":{count:{type:"int",min:10,max:40}},"gifted-session":{count:{type:"int",min:10,max:40}},week:{count:{type:"int",min:40,max:100}},month:{count:{type:"int",min:100,max:200}},goal:{amount:{type:"int",min:200,max:300}},total:{count:{type:"int",min:300,max:400}},points:{amount:{type:"int",min:100,max:400}},"alltime-gifter":{name:e.name,amount:{type:"int",min:300,max:400}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:10,max:30},tier:e.tier,createdAt:{type:"date",range:400}}}},host:{latest:{name:e.name,amount:{type:"int",min:1,max:10}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:1,max:10},createdAt:{type:"date",range:400}}}},raid:{latest:{name:e.name,amount:{type:"int",min:0,max:100}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:0,max:100},createdAt:{type:"date",range:400}}}},charityCampaignDonation:{latest:{name:e.name,amount:{type:"int",min:50,max:150}},"session-top-donation":{name:e.name,amount:{type:"int",min:50,max:200}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:200,max:500}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:500,max:800}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:800,max:1e3}},"session-top-donator":{name:e.name,amount:{type:"int",min:50,max:200}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:200,max:500}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:500,max:800}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:800,max:1e3}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:50,max:150},createdAt:{type:"date",range:400}}}},cheer:{latest:{name:e.name,amount:{type:"int",min:200,max:800},message:e.message},"session-top-donation":{name:e.name,amount:{type:"int",min:200,max:1e3}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:1e3,max:5e3}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:5e3,max:12e3}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:12e3,max:2e4}},"session-top-donator":{name:e.name,amount:{type:"int",min:200,max:1e3}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:1e3,max:5e3}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:5e3,max:12e3}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:12e3,max:2e4}},session:{amount:{type:"int",min:200,max:1e3}},week:{amount:{type:"int",min:1e3,max:5e3}},month:{amount:{type:"int",min:5e3,max:12e3}},goal:{amount:{type:"int",min:12e3,max:18e3}},total:{amount:{type:"int",min:18e3,max:2e4}},count:{count:{type:"int",min:200,max:1e3}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:200,max:800},createdAt:{type:"date",range:400}}}},cheerPurchase:{latest:{name:e.name,amount:{type:"int",min:200,max:400}},"session-top-donation":{name:e.name,amount:{type:"int",min:200,max:400}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:400,max:800}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:800,max:1500}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:1500,max:2e3}},"session-top-donator":{name:e.name,amount:{type:"int",min:200,max:400}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:400,max:800}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:800,max:1500}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:1500,max:2e3}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:200,max:400},createdAt:{type:"date",range:400}}}},superchat:{latest:{name:e.name,amount:{type:"int",min:100,max:400}},"session-top-donation":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:2e3,max:2500}},"session-top-donator":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:2e3,max:2500}},session:{amount:{type:"int",min:100,max:500}},week:{amount:{type:"int",min:500,max:1e3}},month:{amount:{type:"int",min:1e3,max:2e3}},goal:{amount:{type:"int",min:2e3,max:2300}},total:{amount:{type:"int",min:2300,max:2500}},count:{count:{type:"int",min:100,max:500}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:100,max:400},createdAt:{type:"date",range:400}}}},hypetrain:{latest:{name:e.name,amount:{type:"int",min:0,max:100},active:{type:"int",min:0,max:1},level:{type:"int",min:5,max:10},levelChanged:{type:"int",min:0,max:5},_type:{type:"array",options:["follower","subscriber","cheer","donation"]}},"level-goal":{amount:{type:"int",min:0,max:100}},"level-progress":{amount:{type:"int",min:0,max:100},percent:{type:"int",min:0,max:100}},total:{amount:{type:"int",min:0,max:100}},"latest-top-contributors":{type:"recent",amount:25,value:{name:e.name}}},"channel-points":{latest:{name:e.name,amount:{type:"int",min:0,max:100},message:e.message,redemption:{type:"array",options:["Reward 1","Reward 2","Reward 3"]}}},tip:{latest:{name:e.name,amount:{type:"int",min:100,max:400}},"session-top-donation":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:2e3,max:2500}},"session-top-donator":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:2e3,max:2500}},session:{amount:{type:"int",min:100,max:500}},week:{amount:{type:"int",min:500,max:1e3}},month:{amount:{type:"int",min:1e3,max:2e3}},goal:{amount:{type:"int",min:2e3,max:2300}},total:{amount:{type:"int",min:2300,max:2500}},count:{count:{type:"int",min:100,max:500}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:100,max:400},createdAt:{type:"date",range:400}}}},merch:{latest:{name:e.name,amount:{type:"int",min:0,max:100},items:e.item},"goal-orders":{amount:{type:"int",min:0,max:100}},"goal-items":{amount:{type:"int",min:0,max:100}},"goal-total":{amount:{type:"int",min:0,max:100}},recent:{type:"recent",amount:25,value:{name:e.name}}},purchase:{latest:{name:e.name,amount:{type:"int",min:0,max:100},items:e.item,avatar:e.avatar,message:e.message}}}},async get(){const e=this.available(),n=t=>{const d=l=>{if(!l||!("amount"in l))return[];const y=[];for(let f=0;f<l.amount;f++)y.push(n(l.value));return y.sort((f,m)=>new Date(m.createdAt).getTime()-new Date(f.createdAt).getTime())},c=l=>{const y={};for(const f in l){const m=f.replace("_type","type");y[m]=n(l[f])}return y},i=l=>{if(!l)return l;switch(l.type){case"int":return r.rand.number(l.min,l.max);case"string":return r.rand.array(l.options)[0];case"date":return r.rand.date(l.range);case"array":return r.rand.array(l.options)[0];case"recent":return d(l);default:return l}};return typeof t!="object"||t===null?t:"type"in t&&typeof t.type=="string"?i(t):c(t)};var a=Object.entries(n(e)).reduce((t,[d,c])=>(Object.entries(c).forEach(([i,l])=>t[`${d}-${i}`]=l),t),{});return a}},event:{async onWidgetLoad(e,n,a="USD"){const t={BRL:{code:"BRL",name:"Brazilian Real",symbol:"R$"},USD:{code:"USD",name:"US Dollar",symbol:"$"},EUR:{code:"EUR",name:"Euro",symbol:"€"}};return{channel:{username:"local",apiToken:"",id:"",providerId:"",avatar:""},currency:t[a]??t.USD,fieldData:e,recents:[],session:{data:n,settings:{autoReset:!1,calendar:!1,resetOnStart:!1}},overlay:{isEditorMode:!0,muted:!1},emulated:!0}},async onSessionUpdate(e){return e??=await r.generate.session.get(),{session:e}},async onEventReceived(e="random",n="random",a={}){const t={twitch:["message","follower-latest","cheer-latest","raid-latest","subscriber-latest"],streamelements:["tip-latest"],youtube:["message","superchat-latest","subscriber-latest","sponsor-latest"],kick:[],facebook:[]};switch(e){default:case"random":{var d=r.rand.array(Object.keys(t).filter(j=>t[j].length))[0],c=r.rand.array(t[d])[0];return this.onEventReceived(d,c)}case"twitch":switch(n){default:case"random":{var c=r.rand.array(t[e])[0];return this.onEventReceived(e,c)}case"message":{var i=a?.name??r.rand.array(r.data.names.filter(w=>w.length))[0],l=a?.message??r.rand.array(r.data.messages.filter(w=>w.length))[0],y=await B(a?.badges??[],e),f=N(l),m=z(l,f),v=a?.color??r.rand.color("hex"),b=a?.userId??r.rand.number(1e7,99999999).toString(),s=Date.now();return{listener:"message",event:{service:e,data:{time:s,tags:{"badge-info":`${y.keys.map(w=>`${w}/${r.rand.number(1,5)}`).join(",")}`,badges:y.keys.join("/1,"),mod:y.keys.includes("moderator")?"1":"0",subscriber:y.keys.includes("subscriber")?"1":"0",turbo:y.keys.includes("turbo")?"1":"0","tmi-sent-ts":s.toString(),"user-id":b,"user-type":"",color:v,"display-name":i,emotes:"","client-nonce":r.rand.string(16),flags:"",id:r.rand.uuid(),"first-msg":"0","returning-chatter":"0"},nick:i.toLowerCase(),displayName:i,displayColor:v,channel:"local",text:l,isAction:!1,userId:b,msgId:r.rand.uuid(),badges:y.badges,emotes:f},renderedText:m}}}case"cheer":case"cheer-latest":{var o=a?.amount??r.rand.number(100,1e4),p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(C=>C.length))[0],l=a?.message??r.rand.array(r.data.messages.filter(C=>C.length))[0];return{listener:"cheer-latest",event:{amount:o,avatar:p,name:i.toLowerCase(),displayName:i,message:l,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"cheer",originalEventName:"cheer-latest"}}}case"follower":case"follower-latest":{var p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(C=>C.length))[0];return{listener:"follower-latest",event:{avatar:p,name:i.toLowerCase(),displayName:i,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"follower",originalEventName:"follower-latest"}}}case"raid":case"raid-latest":{var o=a?.amount??r.rand.number(1,100),p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(M=>M.length))[0];return{listener:"raid-latest",event:{amount:o,avatar:p,name:i.toLowerCase(),displayName:i,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"raid",originalEventName:"raid-latest"}}}case"subscriber":case"subscriber-latest":{var h=a?.tier??r.rand.array(["1000","2000","3000"])[0],o=a?.amount??r.rand.number(1,24),p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(I=>I.length))[0],k=a?.sender??r.rand.array(r.data.names.filter(I=>I.length&&I!==i))[0],l=a?.message??r.rand.array(r.data.messages.filter(I=>I.length))[0],x={default:{avatar:p,tier:h,playedAsCommunityGift:!1},gift:{sender:k,gifted:!0},community:{message:l,sender:k,bulkGifted:!0},spam:{sender:k,gifted:!0,isCommunityGift:!0}},S=["default","gift","community","spam"],A=a?.subType??r.rand.array(S)[0];return A=S.includes(A)?A:"default",{listener:"subscriber-latest",event:{amount:o,name:i.toLowerCase(),displayName:i,providerId:"",...x.default,...x[A],_id:r.rand.uuid(),sessionTop:!1,type:"subscriber",originalEventName:"subscriber-latest"}}}case"delete-message":return{listener:"delete-message",event:{msgId:a?.id??r.rand.uuid()}};case"delete-messages":return{listener:"delete-messages",event:{userId:a?.id??r.rand.number(1e7,99999999).toString()}}}case"streamelements":switch(n){default:case"random":{var c=r.rand.array(t[e])[0];return this.onEventReceived(e,c)}case"tip":case"tip-latest":{var o=a?.amount??r.rand.number(100,4e3),p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(M=>M.length))[0];return{listener:"tip-latest",event:{amount:o,avatar:p,name:i.toLowerCase(),displayName:i,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"tip",originalEventName:"tip-latest"}}}case"kvstore:update":return{listener:"kvstore:update",event:{data:{key:`customWidget.${a?.key??"sampleKey"}`,value:a?.value??"sampleValue"}}};case"bot:counter":return{listener:"bot:counter",event:{counter:a?.counter??"sampleCounter",value:a?.value??r.rand.number(0,100)}};case"mute":case"unmute":case"alertService:toggleSound":return{listener:"alertService:toggleSound",event:{}};case"skip":case"event:skip":return{listener:"event:skip",event:{}}}case"youtube":switch(n){default:case"random":{var c=r.rand.array(t[e])[0];return this.onEventReceived(e,c)}case"message":{var i=a?.name??r.rand.array(r.data.names.filter(T=>T.length))[0],l=a?.message??r.rand.array(r.data.messages.filter(T=>T.length))[0];const g=await B(a?.badges??[],e);var f=N(l),m=z(l,f),v=a?.color??r.rand.color("hex"),b=a?.userId??r.rand.number(1e7,99999999).toString(),s=Date.now(),p=a?.avatar??r.rand.array(r.data.avatars)[0];return{listener:"message",event:{service:"youtube",data:{kind:"",etag:"",id:"",snippet:{type:"",liveChatId:"",authorChannelId:"local",publishedAt:new Date().toISOString(),hasDisplayContent:!0,displayMessage:l,textMessageDetails:{messageText:l}},authorDetails:{channelId:"local",channelUrl:"",displayName:i,profileImageUrl:p,...g},msgId:r.rand.uuid(),userId:r.rand.uuid(),nick:i.toLowerCase(),badges:[],displayName:i,isAction:!1,time:Date.now(),tags:[],displayColor:r.rand.color("hex"),channel:"local",text:l,avatar:p,emotes:[]},renderedText:l}}}case"subscriber":case"subscriber-latest":{var p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(C=>C.length))[0];return{listener:"subscriber-latest",event:{avatar:p,displayName:i,name:i.toLowerCase(),providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"subscriber",originalEventName:"subscriber-latest"}}}case"superchat":case"superchat-latest":{var o=a?.amount??r.rand.number(100,4e3),p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(M=>M.length))[0];return{listener:"superchat-latest",event:{amount:o,avatar:p,name:i.toLowerCase(),displayName:i,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"superchat",originalEventName:"superchat-latest"}}}case"sponsor":case"sponsor-latest":{var h=a?.tier??r.rand.array(["1000","2000","3000"])[0],o=a?.amount??r.rand.number(1,24),p=a?.avatar??r.rand.array(r.data.avatars)[0],i=a?.name??r.rand.array(r.data.names.filter(T=>T.length))[0],k=a?.sender??r.rand.array(r.data.names.filter(T=>T.length&&T!==i))[0],l=a?.message??r.rand.array(r.data.messages.filter(T=>T.length))[0],x={default:{avatar:p,tier:h,playedAsCommunityGift:!1},gift:{sender:k,gifted:!0},community:{message:l,sender:k,bulkGifted:!0},spam:{sender:k,gifted:!0,isCommunityGift:!0}},S=["default","gift","community","spam"],A=a?.subType??r.rand.array(S)[0];return A=S.includes(A)?A:"default",{listener:"sponsor-latest",event:{amount:o,name:i.toLowerCase(),displayName:i,providerId:"",...x.default,...x[A],_id:r.rand.uuid(),sessionTop:!1,type:"sponsor",originalEventName:"sponsor-latest"}}}}}}}};let L=r;class P{constructor(){this.themes=[{name:"error",color:"#721c24",background:"#f8d7da",bold:!0,italic:!1,fontSize:18,template:{before:" ✖ ",after:" "}},{name:"success",color:"#155724",background:"#d4edda",bold:!0,italic:!1,fontSize:18,template:{before:" ✔ ",after:" "}},{name:"alert",color:"#856404",background:"#fff3cd",bold:!0,italic:!1,fontSize:20,template:{before:" ⚠ ",after:" "}},{name:"warn",color:"#856404",background:"#fff3cd",bold:!0,italic:!1,fontSize:20,template:{before:" ⚠ ",after:" "}},{name:"status",color:"#0c5460",background:"#d1ecf1",bold:!0,italic:!1,fontSize:12,template:{before:" · ",after:""}},{name:"received",color:"#E6BBFF",background:"transparent",bold:!1,italic:!1,fontSize:14,template:{before:" ⬇ ",after:""}},{name:"simple",color:"#f5c6cb",background:"transparent",bold:!1,italic:!1,fontSize:14,template:{before:"",after:""}},{name:"info",color:"#f6c6cb",background:"transparent",bold:!1,italic:!1,fontSize:14,template:{before:" ℹ ",after:""}}],this.error=()=>{},this.success=()=>{},this.alert=()=>{},this.warn=()=>{},this.status=()=>{},this.received=()=>{},this.simple=()=>{},this.info=()=>{},this.themes.forEach(e=>{const n=[];e.background&&e.background!=="transparent"&&n.push(`background-color: ${e.background}`),e.color&&n.push(`color: ${e.color}`),e.bold&&n.push("font-weight: bold"),e.italic&&n.push("font-style: italic"),e.underline&&n.push("text-decoration: underline"),e.fontSize&&n.push(`font-size: ${e.fontSize}px`);const a="%c",t=(...d)=>{const c=Array.from(d).filter(f=>typeof f=="string"||typeof f=="number"),i=Array.from(d).filter(f=>typeof f!="string"&&typeof f!="number"),l=c.length>0?n.join("; "):null,y=[c.length>0?a+(e.template?.before??"")+c.join(" ")+(e.template?.after??""):null,l,...i].filter(Boolean);return console.log(...y)};this[e.name]=t})}}class D{constructor(e){this.field="button",this.template="button",window.client instanceof E&&(this.field=e.field??this.field,this.template=e.template??this.template,this.run=e.run,window.client.actions.buttons.push(this))}parse(e,n){var a=e.replace(typeof this.field=="string"?this.field:this.template.replace(/\{[^}]*\}/g,"")??"","").trim();try{this.run.apply(window.client,[a.length?a:e??e,n])}catch(t){throw new Error(`Error running button "${this.field}": ${t instanceof Error?t.message:t}`)}return this}static execute(e,n){try{if(!(window.client instanceof E))return!1;if(window.client.actions.buttons.length){const a=window.client.actions.buttons.find(t=>typeof t.field=="string"?t.field===e:typeof t.field=="function"?t.field(e,n):!1);if(a&&a instanceof D)return a.parse(e,n),$.logger.received(`Button executed: ${e} with value: ${n}`),!0}}catch{return!1}finally{return!1}}}class G{constructor(e){this.prefix="!",this.arguments=!1,this.test=`${this.prefix}${this.name} arg1 arg2`,this.aliases=[],this.permissions=void 0,this.admins=[],window.client instanceof E&&(this.prefix=e.prefix??this.prefix,this.name=e.name,this.description=e.description??this.description,this.arguments=e.arguments??this.arguments,this.run=e.run,this.test=e.test??this.test,this.aliases=e.aliases??this.aliases,this.permissions=e.permissions??this.permissions,this.admins=e.admins??this.admins,window.client.actions.commands.push(this))}run(e,n){}verify(e,n,a){return this.arguments===!0&&(!a||!a.length)?!1:this.admins.some(t=>e.toLocaleLowerCase()===t.toLocaleLowerCase())?!0:this.permissions===!0||typeof this.permissions>"u"||Array.isArray(this.permissions)&&!this.permissions.length?!1:!!(Array.isArray(this.permissions)&&this.permissions.some(t=>n.map(d=>d.toLowerCase()).includes(t.toLowerCase())))}parse(e,n){if(!(window.client instanceof E))return!1;const a=e.replace(this.prefix,"").split(" ").slice(1).map(l=>l.trim());var t="",d=[];const c={bits:"cheer",premium:"prime"};switch(n.provider){case"twitch":{const l=n.data;t=l.event.data.nick||l.event.data.displayName,l.event.data.tags?.badges&&(d=l.event.data.tags.badges.toString().replace(/\/\d+/g,"").split(",").map(f=>f in c?c[f]:f));break}case"youtube":{const l=n.data,y={isVerified:"verified",isChatOwner:"owner",isChatSponsor:"sponsor",isChatModerator:"moderator"};t=l.event.data.nick||l.event.data.displayName,d=Object.entries(l.event.data.authorDetails).filter(([f,m])=>f.startsWith("is")&&m).map(([f])=>y[f]).filter(Boolean);break}case"kick":return!1}const i=this.verify(t,d,a);return i===!0&&this.run.apply(window.client,[a,n]),i}static execute(e){if(!(window.client instanceof E))return!1;const n=e.data;try{if(window.client.actions.commands.length&&window.client.actions.commands.some(a=>n.event.data.text.startsWith(a.prefix))){const a=window.client.actions.commands.find(t=>n.event.data.text.replace(t.prefix,"").split(" ")[0]===t.name);if(a&&a instanceof G)return a.parse(n.event.data.text,e),$.logger.received(`Command executed: ${n.event.data.text} by ${n.event.data.nick||n.event.data.displayName}`,n),!0}}catch{return!1}finally{return!1}}}window.addEventListener("load",()=>{window.client instanceof E&&L.start()}),window.addEventListener("onWidgetLoad",async u=>{const{detail:e}=u;if(window.client instanceof E){const n=window.client;n.fields=e.fieldData,n.session=e.session.data,n.details={...n.details,user:e.channel,currency:e.currency,overlay:e.overlay},e.channel.id&&!e.emulated?await fetch(`https://api.streamelements.com/kappa/v2/channels/${e.channel.id}/`).then(a=>a.json()).then(a=>{if(a.provider)return n.details.provider=a.provider,a.provider;n.details.provider="local"}).catch(()=>{n.details.provider="local"}):n.details.provider="local",n.emit("load",e),n.loaded=!0,n.storage.on("load",()=>{n.storage.add(`avatar.${e.channel.providerId.toLowerCase()}`,{value:e.channel.avatar,timestamp:Date.now(),expire:Date.now()+n.cache.avatar*60*60*1e3})})}}),window.addEventListener("onSessionUpdate",u=>{const{detail:e}=u;if(window.client instanceof E){const n=window.client;n.session=e.session,n.emit("session",e.session)}}),window.addEventListener("onEventReceived",({detail:u})=>{if(window.client instanceof E){var e=u.event?.provider||u.event?.service||u.event?.data?.provider||window.client.details.provider;["kvstore:update","bot:counter","alertService:toggleSound","event:skip","tip-latest","event:test"].some(t=>t===u.listener)&&(e="streamelements");const a={provider:e,data:u};switch(a.provider){case"streamelements":{const t=a.data;switch(t.listener){case"tip-latest":{t.event;break}case"event:skip":{t.event;break}case"event:test":{switch(t.event.listener){case"widget-button":{const d=t.event;D.execute(d.field,d.value);break}case"subscriber-latest":{t.event;break}}break}case"kvstore:update":{t.event;break}case"bot:counter":{t.event;break}case"alertService:toggleSound":{t.event;break}}break}case"twitch":{const t=a.data;switch(t.listener){case"delete-message":{t.event;break}case"delete-messages":{t.event;break}case"message":{t.event;break}case"follower-latest":{t.event;break}case"cheer-latest":{t.event;break}case"subscriber-latest":{(!t.event.gifted&&!t.event.bulkGifted&&!t.event.isCommunityGift||t.event.gifted&&!t.event.bulkGifted&&!t.event.isCommunityGift||t.event.gifted&&!t.event.bulkGifted&&t.event.isCommunityGift||!t.event.gifted&&t.event.bulkGifted&&!t.event.isCommunityGift)&&t.event;break}case"raid-latest":{t.event;break}}break}case"youtube":{const t=a.data;switch(t.listener){case"message":{t.event,G.execute({provider:"youtube",data:t});break}case"subscriber-latest":{t.event;break}case"sponsor-latest":{t.event,(!t.event.gifted&&!t.event.bulkGifted&&!t.event.isCommunityGift||t.event.gifted&&!t.event.bulkGifted&&!t.event.isCommunityGift||t.event.gifted&&!t.event.bulkGifted&&t.event.isCommunityGift||!t.event.gifted&&t.event.bulkGifted&&!t.event.isCommunityGift)&&t.event;break}case"superchat-latest":{t.event;break}}break}}}});const $={Client:E,Simulation:L,logger:new P};typeof window<"u"&&(window.Tixyel=$),R.Tixyel=$,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(O,I){typeof exports=="object"&&typeof module<"u"?I(exports):typeof define=="function"&&define.amd?define(["exports"],I):(O=typeof globalThis<"u"?globalThis:O||self,I(O["@tixyel/streamelements"]={}))})(this,(function(O){"use strict";class I{constructor(){this.registeredEvents={}}emit(e,...a){return(this.registeredEvents[e]||[]).map(n=>n.apply(this,a))}on(e,a){if(typeof a!="function")throw new TypeError("Callback must be a function");return this.registeredEvents[e]||(this.registeredEvents[e]=[]),this.registeredEvents[e].push(a),this}off(e,a){const t=this.registeredEvents[e]||[];return a?(this.registeredEvents[e]=t.filter(n=>n!==a),this):(this.registeredEvents[e]=[],this)}once(e,a){const t=(...n)=>{this.off(e,t),a.apply(this,n)};return this.on(e,t),this}removeAllListeners(e){return this.registeredEvents[e]=[],this}}var N=[];class $ extends I{constructor(e){if(super(),this.id="default",this.loaded=!1,this.id=e.id||this.id,this.data=e.data??{},!SE_API||!SE_API.store)throw new Error("SE_API.store is not available");SE_API.store.get(this.id).then(a=>{this.data=a??this.data,this.loaded=!0,this.emit("load",this.data),JSON.stringify(this.data)!==JSON.stringify(a)&&this.emit("update",this.data)}).catch(()=>{this.loaded=!0,this.emit("load",null)}),N.push(this)}save(e=this.data){this.loaded&&(this.data=e,SE_API.store.set(this.id,this.data),this.emit("save",this.data))}update(e=this.data){this.loaded&&JSON.stringify(this.data)!==JSON.stringify(e)&&(this.data={...this.data,...e},this.emit("update",this.data))}add(e,a){this.loaded&&($.setByPath(this.data,e,a),this.save(this.data))}static setByPath(e,a,t){const n=a.split(".");let s=e;for(let d=0;d<n.length-1;d++)(typeof s[n[d]]!="object"||s[n[d]]==null)&&(s[n[d]]={}),s=s[n[d]];return s[n[n.length-1]]=t,s}on(e,a){return e==="load"&&this.loaded?(a.apply(this,[this.data]),this):(super.on(e,a),this)}}class E extends I{constructor(e){super(),this.id="default",this.fields={},this.loaded=!1,this.actions={commands:[],buttons:[]},this.cache={avatar:30,pronoun:30,emote:30},this.id=e.id||this.id,this.storage=new $({id:this.id,data:{user:{},avatar:{},pronoun:{},emote:{}}}),window.client=this}on(e,a){return e==="load"&&this.loaded?(a.apply(this,[{channel:this.details.user,currency:this.details.currency,fieldData:this.fields,recents:[],session:{data:this.session,settings:{autoReset:!1,calendar:!1,resetOnStart:!1}},overlay:this.details.overlay,emulated:!1}]),this):(super.on(e,a),this)}}var H=(u=>(u.hehim="He/Him",u.sheher="She/Her",u.theythem="They/Them",u.shethem="She/They",u.hethem="He/They",u.heshe="He/She",u.xexem="Xe/Xem",u.faefaer="Fae/Faer",u.vever="Ve/Ver",u.aeaer="Ae/Aer",u.ziehir="Zie/Hir",u.perper="Per/Per",u.eem="E/Em",u.itits="It/Its",u))(H||{});function B(u,e=j.data.emotes){const a=[];return e.forEach(t=>{const n=t.name;let s=0,d=0;for(;s<u.length;){const o=u.indexOf(n,d);if(o===-1)break;const c=o>0?u[o-1]:" ",w=o+n.length<u.length?u[o+n.length]:" ";/\s/.test(c)&&/\s/.test(w)&&a.push({...t,start:o,end:o+n.length}),d=o+1}}),a.sort((t,n)=>t.start-n.start)}function z(u,e){if(!e.length)return u;let a="",t=0;return e.forEach(n=>{a+=u.substring(t,n.start);const s=n.urls[4]||n.urls[2]||n.urls[1];a+=`<img src="${s}" alt="${n.name}" class="emote" style="width: auto; height: 1em; vertical-align: middle;" />`,t=n.end}),a+=u.substring(t),a}async function W(u=[],e="twitch"){if(!Array.isArray(u)&&typeof u=="string"&&(u=u.split(",").map(d=>d.trim())),!u||!u.length){var a=j.rand.number(1,3);for await(const d of Array.from({length:a},()=>"")){var t=j.rand.array(Object.keys(j.data.badges))[0];!u.includes(t)&&Array.isArray(u)?u.push(t):u=[t]}}var n;switch(e){case"twitch":{n={keys:Array.from(u).filter(d=>d in j.data.badges),badges:Array.from(u).slice(0,3).map(d=>j.data.badges[d]).filter(Boolean)};break}case"youtube":{var s={verified:{isVerified:!1},broadcaster:{isChatOwner:!1},host:{isChatOwner:!1},sponsor:{isChatSponsor:!1},subscriber:{isChatSponsor:!1},moderator:{isChatModerator:!1}};n=Object.entries(u).reduce((d,[o])=>(o in s&&Object.assign(d,s[o]),d),{isVerified:!1,isChatOwner:!1,isChatSponsor:!1,isChatModerator:!1});break}}return n}const r=class r{static fields(e){const a={from:"main",endsWith:[],ignore:[],replace:{},subgroup:!1,template:"• {key}",subgroupTemplate:"★ {key}",settings:{types:[[["size","width","number","gap","duration"],"number"],[["options","dropdown","weight"],"dropdown"],[["range","radius"],"slider"],[["color","background"],"colorpicker"],[["font-family","font","family"],"googleFont"]],addons:[[["slider","radius"],{step:1,min:0,max:"inherit"}],[["options","dropdown"],{options:{}}],[["weight"],{options:{100:"Thin",200:"Extra Light",300:"Light",400:"Regular",500:"Medium",600:"Semi Bold",700:"Bold",800:"Extra Bold",900:"Black"}}]],transforms:[[["size","width","number","gap","duration"],m=>parseFloat(String(m))],[["font-family","font","family"],m=>m],[["range","radius"],m=>parseFloat(String(m))],[["options","dropdown"],m=>m],[["weight"],m=>m],[["color","background"],m=>m]],labels:[[["font-size"]," • In pixels"],[["font-radius"]," • In pixels"]]}};function t(m){return{...a,...m,endsWith:Array.isArray(m.endsWith)?m.endsWith:a.endsWith,ignore:Array.isArray(m.ignore)?m.ignore:a.ignore,replace:{...a.replace,...m.replace??{}},settings:{types:Array.isArray(m.settings?.types)?m.settings.types:a.settings.types,addons:Array.isArray(m.settings?.addons)?m.settings.addons:a.settings.addons,transforms:Array.isArray(m.settings?.transforms)?m.settings.transforms:a.settings.transforms,labels:Array.isArray(m.settings?.labels)?m.settings.labels:a.settings.labels},subgroup:m.subgroup??a.subgroup,template:m.template??a.template,subgroupTemplate:m.subgroupTemplate??a.subgroupTemplate,from:m.from??a.from}}const n=t(e),d=Array.from(document.styleSheets).filter(({href:m})=>!m||m.startsWith(window.location.origin)).reduce((m,{cssRules:b})=>(b&&Array.from(b).forEach(y=>{y instanceof CSSStyleRule&&y.selectorText===n.from&&Array.from(y.style).some(i=>i.startsWith("--"))&&Array.from(y.style).filter(i=>i.startsWith("--")).forEach(i=>{m[i]=y.style.getPropertyValue(i).trim()})}),m),{}),o=Object.entries(d).filter(([m])=>n.endsWith.some(b=>m.toLowerCase().endsWith(b.toLowerCase())&&!m.includes("-options-"))).filter(([m])=>!n.ignore.some(b=>m.toLowerCase()===b.toLowerCase())).reduce((m,[b,y])=>(m[b.replace("--","")]=String(n.replace?.[b]??y),m),{});let c=[];const w=Object.entries(o).reduce((m,[b,y])=>{let i=n.settings.types.find(([v])=>v.some(g=>b.toLowerCase().includes(g)))?.[1]||"text",l=n.settings.transforms.find(([v])=>v.some(g=>b.toLowerCase().includes(g)))?.[1]||(v=>v),p={type:"text",label:n.settings.labels.find(([v])=>v.some(g=>b.toLowerCase().includes(g)))?.[1]||"",...n.settings.addons.find(([v])=>v.some(g=>b.toLowerCase().includes(g)))?.[1]||{}};["min","max","step","label","type"].forEach(v=>{const g=d[`--${b}-${v}`];g&&g.length&&(p[v]=isNaN(parseFloat(g))?String(g).replace(/^['"]|['"]$/g,""):String(parseFloat(g)))});let k=b.replace(/-(size|color|weight|width|height|gap|duration|radius|amount)$/g,"").replace(/-([a-z])/g,(v,g)=>g.toUpperCase()).replace(/[A-Z]/g," $&").toLowerCase().trim(),x=Object.keys(o).filter(v=>v.startsWith(k.replace(/[A-Z]/g,"-$&").replaceAll(" ","-").toLowerCase().slice(1)));n.subgroup&&!m[`${k.replace(/[A-Z]/g,"-$&").replaceAll(" ","-").toLowerCase().slice(1)}-subgroup`]&&x.length>1&&!c.includes(b)&&(c.push(...x),m[`${k.replace(/[A-Z]/g,"-$&").replaceAll(" ","-").toLowerCase().slice(1)}-subgroup`]={type:"hidden",label:n.subgroupTemplate.replaceAll("{key}",r.string.capitalize(k))});let S=r.string.capitalize(b.replace(/-([a-z])/g,(v,g)=>g.toUpperCase()).replace(/[A-Z]/g," $&").toLowerCase());y=l(y)??y;const D=(()=>{const v=Object.entries(d).filter(([g])=>g.startsWith(`--${b}-options-`)).reduce((g,[G,A])=>{const T=G.replace(`--${b}-options-`,"");return T&&(g[String(A)]=r.string.capitalize(T.replace(/-([a-z])/g,(R,V)=>V.toUpperCase()).replace(/[A-Z]/g," $&").toLowerCase())),g},{});return Object.keys(v).length?v:null})();return D&&(i="dropdown",p.options=D,y=String(y)),Object.entries(p).forEach(([v,g])=>{[!1,"inherit","auto",null].includes(g)&&(p[v]=y)}),m[b]={type:p.type||i,label:n.template.toString().replaceAll("{key}",r.string.capitalize(S)+p.label),value:y,min:p.min,max:p.max,step:p.step,options:p.options},m},{}),f=Object.entries(w).reduce((m,[b,y])=>{const i=y?.label?.includes("undefined"),l=!["hidden","button"].includes(y.type)&&y.value===void 0;return(i||l)&&(m[b]=y),m},{});if(Object.keys(f).length)throw M.logger.error("Simulation.fields: Detected errors in generated fields:",f),new Error("Error while processing fields");return w}static async start(){const e={fields:["fields.json","cf.json","field.json","customfields.json"].find(t=>{try{return new URL("./"+t,window.location.href),!0}catch{return!1}}),data:["data.json","fielddata.json","fd.json","DATA.json"].find(t=>{try{return new URL("./"+t,window.location.href),!0}catch{return!1}})},a=await fetch("./"+(e.data??"data.json"),{cache:"no-store"}).then(t=>t.json()).catch(()=>({}));await fetch("./"+(e.fields??"fields.json"),{cache:"no-store"}).then(t=>t.json()).then(async t=>{const n=Object.entries(t).filter(([d,{value:o}])=>o!=null).reduce((d,[o,{value:c}])=>(a&&a[o]!==void 0&&(c=a[o]),d[o]=c,d),{...a}),s=await r.generate.event.onWidgetLoad(n,await r.generate.session.get());window.dispatchEvent(new CustomEvent("onWidgetLoad",{detail:s}))})}};r.data={names:["Local","Tixyel","Urie_s2","itzzcatt","BeniArts","Cupidiko","shy_madeit"],messages:["Hello everyone!","PogChamp","This stream is amazing!","catJAM catJAM catJAM","LUL that was funny","GG!","First time here, loving it!","DinoDance","Can we get some hype in chat?","TransgenderPride PansexualPride NonbinaryPride","POGGERS","I just followed! PogChamp","Great gameplay btw","LUL LUL LUL","This is so wholesome AngelThump","catJAM vibing","haHAA","Wait what just happened? D:","GlitchCat GlitchCat","Best stream on Twitch right now!","DarkMode gang where you at?","PogChamp PogChamp PogChamp PogChamp","Anyone else eating? DoritosChip","I love this community!","TheIlluminati confirmed","bUrself be yourself!","CookieTime nom nom","imGlitch technical difficulties","This music is fire catJAM","bttvNice","LesbianPride GayPride BisexualPride","SSSsss Minecraft time","PopNemo","Going to bed, good night everyone!","Just got here, what did I miss?",":tf: trollface","ariW wave","BroBalt nice one","AsexualPride IntersexPride GenderFluidPride","This chat is moving so fast!","CandianRage","PunchTrees PunchTrees","CiGrip","ConcernDoge hmm","CruW salute","cvHazmat stay safe","DuckerZ quack","BloodTrail hunting time","CatBag kitty!","c! poggers"],tiers:["1000","2000","3000","prime"],avatars:["https://static-cdn.jtvnw.net/user-default-pictures-uv/13e5fa74-defa-11e9-809c-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/dbdc9198-def8-11e9-8681-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/998f01ae-def8-11e9-b95c-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/de130ab0-def7-11e9-b668-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/ebe4cd89-b4f4-4cd9-adac-2f30151b4209-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/215b7342-def9-11e9-9a66-784f43822e80-profile_image-300x300.png","https://static-cdn.jtvnw.net/user-default-pictures-uv/ead5c8b2-a4c9-4724-b1dd-9f00b46cbd3d-profile_image-300x300.png"],items:[],emotes:[{type:"twitch",name:"DinoDance",id:"emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7",gif:!0,animated:!0,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7/animated/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7/animated/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dcd06b30a5c24f6eb871e8f5edbd44f7/animated/dark/3.0"},start:46,end:55},{type:"twitch",name:"PopNemo",id:"emotesv2_5d523adb8bbb4786821cd7091e47da21",gif:!0,animated:!0,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_5d523adb8bbb4786821cd7091e47da21/animated/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_5d523adb8bbb4786821cd7091e47da21/animated/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_5d523adb8bbb4786821cd7091e47da21/animated/dark/3.0"},start:56,end:63},{type:"twitch",name:"TransgenderPride",id:"307827377",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827377/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827377/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827377/default/dark/3.0"},start:0,end:15},{type:"twitch",name:"PansexualPride",id:"307827370",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827370/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827370/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827370/default/dark/3.0"},start:17,end:30},{type:"twitch",name:"NonbinaryPride",id:"307827356",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827356/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827356/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827356/default/dark/3.0"},start:32,end:45},{type:"twitch",name:"LesbianPride",id:"307827340",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827340/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827340/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827340/default/dark/3.0"},start:47,end:58},{type:"twitch",name:"IntersexPride",id:"307827332",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827332/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827332/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827332/default/dark/3.0"},start:60,end:72},{type:"twitch",name:"GenderFluidPride",id:"307827326",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827326/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827326/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827326/default/dark/3.0"},start:74,end:89},{type:"twitch",name:"GayPride",id:"307827321",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827321/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827321/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827321/default/dark/3.0"},start:91,end:98},{type:"twitch",name:"BisexualPride",id:"307827313",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827313/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827313/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827313/default/dark/3.0"},start:100,end:112},{type:"twitch",name:"AsexualPride",id:"307827267",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/307827267/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/307827267/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/307827267/default/dark/3.0"},start:114,end:125},{type:"twitch",name:"PogChamp",id:"305954156",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/305954156/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/305954156/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/305954156/default/dark/3.0"},start:127,end:134},{type:"twitch",name:"GlitchCat",id:"304486301",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/304486301/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/304486301/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/304486301/default/dark/3.0"},start:136,end:144},{type:"twitch",name:"DarkMode",id:"461298",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/461298/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/461298/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/461298/default/dark/3.0"},start:146,end:153},{type:"twitch",name:"LUL",id:"425618",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/425618/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/425618/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/425618/default/dark/3.0"},start:155,end:157},{type:"twitch",name:"TheIlluminati",id:"145315",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/145315/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/145315/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/145315/default/dark/3.0"},start:159,end:171},{type:"twitch",name:"imGlitch",id:"112290",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/112290/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/112290/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/112290/default/dark/3.0"},start:173,end:180},{type:"twitch",name:"DoritosChip",id:"102242",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/102242/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/102242/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/102242/default/dark/3.0"},start:182,end:192},{type:"twitch",name:"SSSsss",id:"46",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/46/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/46/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/46/default/dark/3.0"},start:194,end:199},{type:"twitch",name:"PunchTrees",id:"47",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/47/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/47/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/47/default/dark/3.0"},start:201,end:210},{type:"twitch",name:"BloodTrail",id:"69",gif:!1,urls:{1:"https://static-cdn.jtvnw.net/emoticons/v2/69/default/dark/1.0",2:"https://static-cdn.jtvnw.net/emoticons/v2/69/default/dark/2.0",4:"https://static-cdn.jtvnw.net/emoticons/v2/69/default/dark/3.0"},start:223,end:232},{type:"7tv",name:"CookieTime",id:"635b0184ea9ce7391cbf77d6",gif:!0,animated:!0,urls:{1:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/1x.webp",2:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/2x.webp",3:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/3x.webp",4:"https://cdn.7tv.app/emote/635b0184ea9ce7391cbf77d6/4x.webp"},start:0,end:10,coords:{x:0,y:0}},{type:"bttv",name:"catJAM",id:"5f1b0186cf6d2144653d2970",gif:!0,animated:!0,urls:{1:"https://cdn.betterttv.net/emote/5f1b0186cf6d2144653d2970/1x",2:"https://cdn.betterttv.net/emote/5f1b0186cf6d2144653d2970/2x",4:"https://cdn.betterttv.net/emote/5f1b0186cf6d2144653d2970/3x"},start:0,end:6,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:":tf:",id:"54fa8f1401e468494b85b537",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fa8f1401e468494b85b537/1x",2:"https://cdn.betterttv.net/emote/54fa8f1401e468494b85b537/2x",4:"https://cdn.betterttv.net/emote/54fa8f1401e468494b85b537/3x"},start:7,end:11,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"AngelThump",id:"566ca1a365dbbdab32ec055b",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/566ca1a365dbbdab32ec055b/1x",2:"https://cdn.betterttv.net/emote/566ca1a365dbbdab32ec055b/2x",4:"https://cdn.betterttv.net/emote/566ca1a365dbbdab32ec055b/3x"},start:12,end:22,coords:{x:0,y:0,width:334,height:112}},{type:"bttv",name:"ariW",id:"56fa09f18eff3b595e93ac26",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/56fa09f18eff3b595e93ac26/1x",2:"https://cdn.betterttv.net/emote/56fa09f18eff3b595e93ac26/2x",4:"https://cdn.betterttv.net/emote/56fa09f18eff3b595e93ac26/3x"},start:23,end:27,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"BroBalt",id:"54fbf00a01abde735115de5c",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fbf00a01abde735115de5c/1x",2:"https://cdn.betterttv.net/emote/54fbf00a01abde735115de5c/2x",4:"https://cdn.betterttv.net/emote/54fbf00a01abde735115de5c/3x"},start:28,end:35,coords:{x:0,y:0,width:184,height:120}},{type:"bttv",name:"bttvNice",id:"54fab7d2633595ca4c713abf",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fab7d2633595ca4c713abf/1x",2:"https://cdn.betterttv.net/emote/54fab7d2633595ca4c713abf/2x",4:"https://cdn.betterttv.net/emote/54fab7d2633595ca4c713abf/3x"},start:36,end:44,coords:{x:0,y:0,width:168,height:112}},{type:"bttv",name:"bUrself",id:"566c9f3b65dbbdab32ec052e",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/566c9f3b65dbbdab32ec052e/1x",2:"https://cdn.betterttv.net/emote/566c9f3b65dbbdab32ec052e/2x",4:"https://cdn.betterttv.net/emote/566c9f3b65dbbdab32ec052e/3x"},start:45,end:52,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"c!",id:"6468f7acaee1f7f47567708e",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/6468f7acaee1f7f47567708e/1x",2:"https://cdn.betterttv.net/emote/6468f7acaee1f7f47567708e/2x",4:"https://cdn.betterttv.net/emote/6468f7acaee1f7f47567708e/3x"},start:53,end:55,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"CandianRage",id:"54fbf09c01abde735115de61",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fbf09c01abde735115de61/1x",2:"https://cdn.betterttv.net/emote/54fbf09c01abde735115de61/2x",4:"https://cdn.betterttv.net/emote/54fbf09c01abde735115de61/3x"},start:56,end:67,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"CiGrip",id:"54fa8fce01e468494b85b53c",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/54fa8fce01e468494b85b53c/1x",2:"https://cdn.betterttv.net/emote/54fa8fce01e468494b85b53c/2x",4:"https://cdn.betterttv.net/emote/54fa8fce01e468494b85b53c/3x"},start:68,end:74,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"ConcernDoge",id:"566c9f6365dbbdab32ec0532",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/566c9f6365dbbdab32ec0532/1x",2:"https://cdn.betterttv.net/emote/566c9f6365dbbdab32ec0532/2x",4:"https://cdn.betterttv.net/emote/566c9f6365dbbdab32ec0532/3x"},start:75,end:86,coords:{x:0,y:0,width:101,height:112}},{type:"bttv",name:"CruW",id:"55471c2789d53f2d12781713",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/55471c2789d53f2d12781713/1x",2:"https://cdn.betterttv.net/emote/55471c2789d53f2d12781713/2x",4:"https://cdn.betterttv.net/emote/55471c2789d53f2d12781713/3x"},start:87,end:91,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"cvHazmat",id:"5e76d338d6581c3724c0f0b2",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/5e76d338d6581c3724c0f0b2/1x",2:"https://cdn.betterttv.net/emote/5e76d338d6581c3724c0f0b2/2x",4:"https://cdn.betterttv.net/emote/5e76d338d6581c3724c0f0b2/3x"},start:92,end:100,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"D:",id:"55028cd2135896936880fdd7",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/55028cd2135896936880fdd7/1x",2:"https://cdn.betterttv.net/emote/55028cd2135896936880fdd7/2x",4:"https://cdn.betterttv.net/emote/55028cd2135896936880fdd7/3x"},start:101,end:103,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"haHAA",id:"555981336ba1901877765555",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/555981336ba1901877765555/1x",2:"https://cdn.betterttv.net/emote/555981336ba1901877765555/2x",4:"https://cdn.betterttv.net/emote/555981336ba1901877765555/3x"},start:104,end:109,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"LuL",id:"567b00c61ddbe1786688a633",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/567b00c61ddbe1786688a633/1x",2:"https://cdn.betterttv.net/emote/567b00c61ddbe1786688a633/2x",4:"https://cdn.betterttv.net/emote/567b00c61ddbe1786688a633/3x"},start:110,end:113,coords:{x:0,y:0,width:112,height:112}},{type:"bttv",name:"DuckerZ",id:"573d38b50ffbf6cc5cc38dc9",gif:!1,animated:!1,urls:{1:"https://cdn.betterttv.net/emote/573d38b50ffbf6cc5cc38dc9/1x",2:"https://cdn.betterttv.net/emote/573d38b50ffbf6cc5cc38dc9/2x",4:"https://cdn.betterttv.net/emote/573d38b50ffbf6cc5cc38dc9/3x"},start:114,end:121,coords:{x:0,y:0,width:149,height:112}},{type:"ffz",name:"CatBag",id:"25927",gif:!1,animated:!1,urls:{1:"https://cdn.frankerfacez.com/emote/25927/1",2:"https://cdn.frankerfacez.com/emote/25927/2",4:"https://cdn.frankerfacez.com/emote/25927/4"},start:122,end:128,coords:{x:0,y:0,width:143,height:128}}],badges:{"100 bits":{type:"100 bits",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/09d93036-e7ce-431c-9a9e-7044297133f2/3",description:"100 bits badge"},"no audio":{type:"no audio",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/aef2cd08-f29b-45a1-8c12-d44d7fd5e6f0/3",description:"Individuals with unreliable or no sound can select this badge"},"no video":{type:"no video",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/199a0dba-58f3-494e-a7fc-1fa0a1001fb8/3",description:"Individuals with unreliable or no video can select this badge"},bot:{type:"bot",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/df9095f6-a8a0-4cc2-bb33-d908c0adffb8/3",description:"Twitch bot"},"twitch staff":{type:"twitch staff",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/d97c37bd-a6f5-4c38-8f57-4e4bef88af34/3",description:"Twitch Staff"},admins:{type:"admins",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/9ef7e029-4cdf-4d4d-a0d5-e2b3fb2583fe/3",description:"Admins"},artist:{type:"artist",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/4300a897-03dc-4e83-8c0e-c332fee7057f/3",description:"Artist"},"game developer":{type:"game developer",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/85856a4a-eb7d-4e26-a43e-d204a977ade4/3",description:"Game Developer"},prime:{type:"prime",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/a1dd5073-19c3-4911-8cb4-c464a7bc1510/3",description:"Prime"},turbo:{type:"turbo",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/bd444ec6-8f34-4bf9-91f4-af1e3428d80f/3",description:"Turbo"},subscriber:{type:"subscriber",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/5d9f2208-5dd8-11e7-8513-2ff4adfae661/3",description:"Subscriber"},broadcaster:{type:"broadcaster",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/5527c58c-fb7d-422d-b71b-f309dcb85cc1/3",description:"Broadcaster"},verified:{type:"verified",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/d12a2e27-16f6-41d0-ab77-b780518f00a3/3",description:"Verified"},moderator:{type:"moderator",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/3267646d-33f0-4b17-b3df-f923a41db1d0/3",description:"Moderator"},vip:{type:"vip",version:"1",url:"https://static-cdn.jtvnw.net/badges/v1/b817aba4-fad8-49e2-b88a-7cc744dfa6ec/3",description:"VIP"}},pronouns:H,tts:["Filiz","Astrid","Tatyana","Maxim","Carmen","Ines","Cristiano","Vitoria","Ricardo","Maja","Jan","Jacek","Ewa","Ruben","Lotte","Liv","Seoyeon","Takumi","Mizuki","Giorgio","Carla","Bianca","Karl","Dora","Mathieu","Celine","Chantal","Penelope","Miguel","Mia","Enrique","Conchita","Geraint","Salli","Matthew","Kimberly","Kendra","Justin","Joey","Joanna","Ivy","Raveena","Aditi","Emma","Brian","Amy","Russell","Nicole","Vicki","Marlene","Hans","Naja","Mads","Gwyneth","Zhiyu","Tracy","Danny","Huihui","Yaoyao","Kangkang","HanHan","Zhiwei","Asaf","An","Stefanos","Filip","Ivan","Heidi","Herena","Kalpana","Hemant","Matej","Andika","Rizwan","Lado","Valluvar","Linda","Heather","Sean","Michael","Karsten","Guillaume","Pattara","Jakub","Szabolcs","Hoda","Naayf"]},r.color={opacity(e=100,a){a=a.length>7?a.substring(0,6):a,e=e>1?e/100:e;let t=Math.round(Math.min(Math.max(e,0),1)*255).toString(16).toLowerCase();return t=t.padStart(2,"0"),a+t},getOpacity(e){if(!e.startsWith("#")||e.length<=7)return{opacity:100,hex:e};var a=e.slice(-2),t=parseInt(a,16)/255,n=Math.round(t*100),s=e.length>7?e.slice(0,7):e;return{opacity:n,color:s}},validate(e){if(typeof e!="string"||!e.length)return!1;const a=e.trim();return/^#([A-Fa-f0-9]{3}){1,2}$/.test(a)||/^#([A-Fa-f0-9]{4}|[A-Fa-f0-9]{8})$/.test(a)?"hex":/^rgb\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*\)$/.test(a)?"rgb":/^rgba\(\s*(?:\d{1,3}\s*,\s*){3}(?:0|1|0?\.\d+)\s*\)$/.test(a)?"rgba":/^hsl\(\s*\d{1,3}\s*,\s*\d{1,3}%\s*,\s*\d{1,3}%\s*\)$/.test(a)?"hsl":/^hsla\(\s*\d{1,3}\s*,\s*\d{1,3}%\s*,\s*\d{1,3}%\s*,\s*(?:0|1|0?\.\d+)\s*\)$/.test(a)?"hsla":["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","transparent"].includes(a.toLowerCase())?"css-color-name":!1}},r.rand={color(e="hex"){switch(e){default:case"hex":return`#${Math.floor(Math.random()*16777215).toString(16).padStart(6,"0")}`;case"hexa":{const t=`#${Math.floor(Math.random()*16777215).toString(16).padStart(6,"0")}`,n=Math.floor(Math.random()*256).toString(16).padStart(2,"0");return t+n}case"rgb":{const t=Math.floor(Math.random()*256),n=Math.floor(Math.random()*256),s=Math.floor(Math.random()*256);return`rgb(${t}, ${n}, ${s})`}case"rgba":{const t=Math.floor(Math.random()*256),n=Math.floor(Math.random()*256),s=Math.floor(Math.random()*256),d=Math.random().toFixed(2);return`rgba(${t}, ${n}, ${s}, ${d})`}case"hsl":{const t=Math.floor(Math.random()*361),n=Math.floor(Math.random()*101),s=Math.floor(Math.random()*101);return`hsl(${t}, ${n}%, ${s}%)`}case"hsla":{const t=Math.floor(Math.random()*361),n=Math.floor(Math.random()*101),s=Math.floor(Math.random()*101),d=Math.random().toFixed(2);return`hsla(${t}, ${n}%, ${s}%, ${d})`}case"css-color-name":{var a=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","transparent"];return this.array(a)[0]}}},number(e,a,t=0){e>a&&([e,a]=[a,e]);const n=Math.random()*(a-e)+e;return t?Number(n.toFixed(t)):Math.round(n)},boolean(e=.5){return Math.random()>e},string(e,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"){let t="";for(let n=0;n<e;n++)t+=a.charAt(Math.floor(Math.random()*a.length));return t},array(e){const a=this.number(0,e.length-1);return[e[a],a]},date(e=365){const t=Date.now()-this.number(0,e*24*60*60*1e3);return new Date(t).toISOString()},uuid(){return window.crypto&&typeof crypto?.randomUUID=="function"?crypto.randomUUID():"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(+e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+e/4).toString(16))}},r.string={async replace(e,a,t){const n=[];e.replace(a,(d,...o)=>{const c=typeof t=="function"?t(d,...o):d;return n.push(Promise.resolve(c)),d});const s=await Promise.all(n);return e.replace(a,()=>s.shift()??"")},capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)},compose(e,a,t={method:"index",modifiers:{}}){const{mergeSpanStyles:n}=r.element,s=Object.entries(r.object.flatten(a)).reduce((i,[l,h])=>{if(i[l]=String(h),["username","name","nick","nickname","sender"].some(p=>l===p)){const p=i?.username||i?.name||i?.nick||i?.nickname||i?.sender;i.username=i.username||p,i.usernameAt=`@${i.username}`,i.name=i.name||p,i.nick=i.nick||p,i.nickname=i.nickname||p,i.sender=i.sender||p,i.senderAt=`@${i.sender}`}return["amount","count"].some(p=>l===p)&&(i.amount=String(o),i.count=String(i?.count||o)),i.currency=i.currency||window.client?.details.currency.symbol||"$",i.currencyCode=i.currencyCode||window.client?.details.currency.code||"USD",i.skip="<br/>",i.newline="<br/>",i},{}),d={PLACEHOLDERS:/{([^}]+)}/g,MODIFIERS:/\[(\w+)(:[^=]+)?=([^\]]+)\]/g};var o=parseFloat(s?.amount??s?.count??0);const c={BT1:i=>o>1?i:"",BT0:i=>o>0?i:"",ST1:i=>o<1?i:"",ST0:i=>o<0?i:"",UPC:i=>i.toUpperCase(),LOW:i=>i.toLowerCase(),REV:i=>i.split("").reverse().join(""),CAP:i=>i.charAt(0).toUpperCase()+i.slice(1).toLowerCase(),FALLBACK:(i,l)=>i.length?i:l??i,COLOR:(i,l)=>n(l&&r.color.validate(l)?`color: ${l}`:"",i),WEIGHT:(i,l)=>n(l&&!isNaN(parseInt(l))?`font-weight: ${l}`:"",i),BOLD:i=>n("font-weight: bold",i),LIGHT:i=>n("font-weight: lighter",i),STRONG:i=>n("font-weight: bolder",i),ITALIC:i=>n("font-style: italic",i),UNDERLINE:i=>n("text-decoration: underline",i),STRIKETHROUGH:i=>n("text-decoration: line-through",i),SUB:i=>n("vertical-align: sub",i),SUP:i=>n("vertical-align: super",i),LARGER:i=>n("font-size: larger",i),SMALL:i=>n("font-size: smaller",i),SHADOW:(i,l)=>n(`text-shadow: ${l}`,i),SIZE:(i,l)=>n(l?`font-size: ${l}`:"",i),...t.modifiers??{}},w={UPC:["UPPERCASE","UPPER","UPP"],LOW:["LOWERCASE","LOWER","LWC"],REV:["REVERSE","RVS"],CAP:["CAPITALIZE","CAPITAL"],BT1:["BIGGER_THAN_1","GREATER_THAN_1","GT1"],BT0:["BIGGER_THAN_0","GREATER_THAN_0","GT0"],ST1:["SMALLER_THAN_1","LESS_THAN_1","LT1"],ST0:["SMALLER_THAN_0","LESS_THAN_0","LT0"],COLOR:["COLOUR","CLR","HIGHLIGHT"],BOLD:["BOLDEN","B"],STRONG:["STRONGEN","STRONG"],ITALIC:["ITALICIZE","ITALIC","I"],UNDERLINE:["U","INS","INSET","I"],STRIKETHROUGH:["STRIKE","S","DELETE","D"],SUB:["SUBSCRIPT","SUBS"],SUP:["SUPERSCRIPT","SUPS"],LARGER:["LARGER","LG"],SMALL:["SMALLER","SM"],SHADOW:["SHADOW","SHD"],FALLBACK:["FALLBACK","FB"]};function f(i,l,h){const p=Object.entries(w).find(([x,S])=>S.some(C=>C.toUpperCase()===l.toUpperCase())?!0:x.toUpperCase()===l.toUpperCase()),k=p?p[0]:l.toUpperCase();return c[k]?c[k](i,typeof h=="string"?h.trim():null,s):i}function m(i){let l=i,h;for(;(h=d.MODIFIERS.exec(l))!==null;){const[p,k,x,S]=h,C=f(m(S),k,x);l=l.replace(p,C??""),d.MODIFIERS.lastIndex=0}return l}function b(i){let l=0;const h=i.length;function p(x){let S="";for(;l<h;)if(i[l]==="\\")l+1<h?(S+=i[l+1],l+=2):l++;else if(i[l]==="["&&(!x||x!=="["))S+=k();else if(x&&i[l]===x){l++;break}else S+=i[l++];return S}function k(){l++;let x="";for(;l<h&&/[A-Za-z0-9]/.test(i[l]);)x+=i[l++];let S=null;if(i[l]===":"){l++;const D=l;for(;l<h&&i[l]!=="=";)l++;S=i.slice(D,l)}i[l]==="="&&l++;const C=p("]");return f(C,x,S)}return p()}let y=e.replace(d.PLACEHOLDERS,(i,l)=>typeof s[l]=="string"||typeof s[l]=="number"?String(s[l]):l??l);return y=t.method==="loop"?m(y):b(y),y}},r.element={mergeSpanStyles(e,a){const t=a.match(/^<span style="([^"]*)">(.*)<\/span>$/s);if(t){const n=t[1],s=t[2];return`<span style="${[n,e].filter(Boolean).join("; ").replace(/\s*;\s*/g,"; ").trim()}">${s}</span>`}else return`<span style="${e}">${a}</span>`}},r.object={flatten(e,a=""){const t={};for(const n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;const s=e[n],d=a?`${a}.${n}`:n;if(s==null){t[d]=String(s);continue}if(s instanceof Date){t[d]=s.toISOString();continue}if(s instanceof Map){s.forEach((o,c)=>{t[`${d}.${c}`]=JSON.stringify(o)});continue}if(Array.isArray(s)){s.forEach((o,c)=>{const w=`${d}:${c}`;typeof o=="object"?Object.assign(t,this.flatten(o,w)):t[w]=String(o)});continue}if(typeof s=="object"){Object.assign(t,this.flatten(s,d));continue}t[d]=String(s)}return t}},r.generate={session:{types:{name:{type:"string",options:r.data.names.filter(e=>e.length)},tier:{type:"string",options:r.data.tiers.filter(e=>e.length)},message:{type:"string",options:r.data.messages.filter(e=>e.length)},item:{type:"array",options:r.data.items},avatar:{type:"string",options:r.data.avatars.filter(e=>e.length)}},available(){const e=this.types;return{follower:{latest:{name:e.name},session:{count:{type:"int",min:50,max:200}},week:{count:{type:"int",min:200,max:1e3}},month:{count:{type:"int",min:1e3,max:3e3}},goal:{amount:{type:"int",min:3e3,max:7e3}},total:{count:{type:"int",min:7e3,max:1e4}},recent:{type:"recent",amount:25,value:{name:e.name,createdAt:{type:"date",range:400}}}},subscriber:{latest:{name:e.name,amount:{type:"int",min:10,max:30},tier:e.tier,message:e.message},"new-latest":{name:e.name,amount:{type:"int",min:10,max:30},message:e.message},"resub-latest":{name:e.name,amount:{type:"int",min:10,max:30},message:e.message},"gifted-latest":{name:e.name,amount:{type:"int",min:10,max:30},message:e.message,tier:e.tier,sender:e.name},session:{count:{type:"int",min:10,max:40}},"new-session":{count:{type:"int",min:10,max:40}},"resub-session":{count:{type:"int",min:10,max:40}},"gifted-session":{count:{type:"int",min:10,max:40}},week:{count:{type:"int",min:40,max:100}},month:{count:{type:"int",min:100,max:200}},goal:{amount:{type:"int",min:200,max:300}},total:{count:{type:"int",min:300,max:400}},points:{amount:{type:"int",min:100,max:400}},"alltime-gifter":{name:e.name,amount:{type:"int",min:300,max:400}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:10,max:30},tier:e.tier,createdAt:{type:"date",range:400}}}},host:{latest:{name:e.name,amount:{type:"int",min:1,max:10}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:1,max:10},createdAt:{type:"date",range:400}}}},raid:{latest:{name:e.name,amount:{type:"int",min:0,max:100}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:0,max:100},createdAt:{type:"date",range:400}}}},charityCampaignDonation:{latest:{name:e.name,amount:{type:"int",min:50,max:150}},"session-top-donation":{name:e.name,amount:{type:"int",min:50,max:200}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:200,max:500}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:500,max:800}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:800,max:1e3}},"session-top-donator":{name:e.name,amount:{type:"int",min:50,max:200}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:200,max:500}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:500,max:800}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:800,max:1e3}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:50,max:150},createdAt:{type:"date",range:400}}}},cheer:{latest:{name:e.name,amount:{type:"int",min:200,max:800},message:e.message},"session-top-donation":{name:e.name,amount:{type:"int",min:200,max:1e3}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:1e3,max:5e3}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:5e3,max:12e3}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:12e3,max:2e4}},"session-top-donator":{name:e.name,amount:{type:"int",min:200,max:1e3}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:1e3,max:5e3}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:5e3,max:12e3}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:12e3,max:2e4}},session:{amount:{type:"int",min:200,max:1e3}},week:{amount:{type:"int",min:1e3,max:5e3}},month:{amount:{type:"int",min:5e3,max:12e3}},goal:{amount:{type:"int",min:12e3,max:18e3}},total:{amount:{type:"int",min:18e3,max:2e4}},count:{count:{type:"int",min:200,max:1e3}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:200,max:800},createdAt:{type:"date",range:400}}}},cheerPurchase:{latest:{name:e.name,amount:{type:"int",min:200,max:400}},"session-top-donation":{name:e.name,amount:{type:"int",min:200,max:400}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:400,max:800}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:800,max:1500}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:1500,max:2e3}},"session-top-donator":{name:e.name,amount:{type:"int",min:200,max:400}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:400,max:800}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:800,max:1500}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:1500,max:2e3}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:200,max:400},createdAt:{type:"date",range:400}}}},superchat:{latest:{name:e.name,amount:{type:"int",min:100,max:400}},"session-top-donation":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:2e3,max:2500}},"session-top-donator":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:2e3,max:2500}},session:{amount:{type:"int",min:100,max:500}},week:{amount:{type:"int",min:500,max:1e3}},month:{amount:{type:"int",min:1e3,max:2e3}},goal:{amount:{type:"int",min:2e3,max:2300}},total:{amount:{type:"int",min:2300,max:2500}},count:{count:{type:"int",min:100,max:500}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:100,max:400},createdAt:{type:"date",range:400}}}},hypetrain:{latest:{name:e.name,amount:{type:"int",min:0,max:100},active:{type:"int",min:0,max:1},level:{type:"int",min:5,max:10},levelChanged:{type:"int",min:0,max:5},_type:{type:"array",options:["follower","subscriber","cheer","donation"]}},"level-goal":{amount:{type:"int",min:0,max:100}},"level-progress":{amount:{type:"int",min:0,max:100},percent:{type:"int",min:0,max:100}},total:{amount:{type:"int",min:0,max:100}},"latest-top-contributors":{type:"recent",amount:25,value:{name:e.name}}},"channel-points":{latest:{name:e.name,amount:{type:"int",min:0,max:100},message:e.message,redemption:{type:"array",options:["Reward 1","Reward 2","Reward 3"]}}},tip:{latest:{name:e.name,amount:{type:"int",min:100,max:400}},"session-top-donation":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donation":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donation":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donation":{name:e.name,amount:{type:"int",min:2e3,max:2500}},"session-top-donator":{name:e.name,amount:{type:"int",min:100,max:500}},"weekly-top-donator":{name:e.name,amount:{type:"int",min:500,max:1e3}},"monthly-top-donator":{name:e.name,amount:{type:"int",min:1e3,max:2e3}},"alltime-top-donator":{name:e.name,amount:{type:"int",min:2e3,max:2500}},session:{amount:{type:"int",min:100,max:500}},week:{amount:{type:"int",min:500,max:1e3}},month:{amount:{type:"int",min:1e3,max:2e3}},goal:{amount:{type:"int",min:2e3,max:2300}},total:{amount:{type:"int",min:2300,max:2500}},count:{count:{type:"int",min:100,max:500}},recent:{type:"recent",amount:25,value:{name:e.name,amount:{type:"int",min:100,max:400},createdAt:{type:"date",range:400}}}},merch:{latest:{name:e.name,amount:{type:"int",min:0,max:100},items:e.item},"goal-orders":{amount:{type:"int",min:0,max:100}},"goal-items":{amount:{type:"int",min:0,max:100}},"goal-total":{amount:{type:"int",min:0,max:100}},recent:{type:"recent",amount:25,value:{name:e.name}}},purchase:{latest:{name:e.name,amount:{type:"int",min:0,max:100},items:e.item,avatar:e.avatar,message:e.message}}}},async get(){const e=this.available(),a=n=>{const s=c=>{if(!c||!("amount"in c))return[];const w=[];for(let f=0;f<c.amount;f++)w.push(a(c.value));return w.sort((f,m)=>new Date(m.createdAt).getTime()-new Date(f.createdAt).getTime())},d=c=>{const w={};for(const f in c){const m=f.replace("_type","type");w[m]=a(c[f])}return w},o=c=>{if(!c)return c;switch(c.type){case"int":return r.rand.number(c.min,c.max);case"string":return r.rand.array(c.options)[0];case"date":return r.rand.date(c.range);case"array":return r.rand.array(c.options)[0];case"recent":return s(c);default:return c}};return typeof n!="object"||n===null?n:"type"in n&&typeof n.type=="string"?o(n):d(n)};var t=Object.entries(a(e)).reduce((n,[s,d])=>(Object.entries(d).forEach(([o,c])=>n[`${s}-${o}`]=c),n),{});return t}},event:{async onWidgetLoad(e,a,t="USD"){const n={BRL:{code:"BRL",name:"Brazilian Real",symbol:"R$"},USD:{code:"USD",name:"US Dollar",symbol:"$"},EUR:{code:"EUR",name:"Euro",symbol:"€"}};return{channel:{username:"local",apiToken:"",id:"",providerId:"",avatar:""},currency:n[t]??n.USD,fieldData:e,recents:[],session:{data:a,settings:{autoReset:!1,calendar:!1,resetOnStart:!1}},overlay:{isEditorMode:!0,muted:!1},emulated:!0}},async onSessionUpdate(e){return e??=await r.generate.session.get(),{session:e}},async onEventReceived(e="random",a="random",t={}){const n={twitch:["message","follower-latest","cheer-latest","raid-latest","subscriber-latest"],streamelements:["tip-latest"],youtube:["message","superchat-latest","subscriber-latest","sponsor-latest"],kick:[],facebook:[]};switch(e){default:case"random":{var s=r.rand.array(Object.keys(n).filter(v=>n[v].length))[0],d=r.rand.array(n[s])[0];return this.onEventReceived(s,d)}case"twitch":switch(a){default:case"random":{var d=r.rand.array(n[e])[0];return this.onEventReceived(e,d)}case"message":{var o=t?.name??r.rand.array(r.data.names.filter(g=>g.length))[0],c=t?.message??r.rand.array(r.data.messages.filter(g=>g.length))[0],w=await W(t?.badges??[],e),f=B(c),m=z(c,f),b=t?.color??r.rand.color("hex"),y=t?.userId??r.rand.number(1e7,99999999).toString(),i=Date.now();return{listener:"message",event:{service:e,data:{time:i,tags:{"badge-info":`${w.keys.map(g=>`${g}/${r.rand.number(1,5)}`).join(",")}`,badges:w.keys.join("/1,"),mod:w.keys.includes("moderator")?"1":"0",subscriber:w.keys.includes("subscriber")?"1":"0",turbo:w.keys.includes("turbo")?"1":"0","tmi-sent-ts":i.toString(),"user-id":y,"user-type":"",color:b,"display-name":o,emotes:"","client-nonce":r.rand.string(16),flags:"",id:r.rand.uuid(),"first-msg":"0","returning-chatter":"0"},nick:o.toLowerCase(),displayName:o,displayColor:b,channel:"local",text:c,isAction:!1,userId:y,msgId:r.rand.uuid(),badges:w.badges,emotes:f},renderedText:m}}}case"cheer":case"cheer-latest":{var l=t?.amount??r.rand.number(100,1e4),h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(A=>A.length))[0],c=t?.message??r.rand.array(r.data.messages.filter(A=>A.length))[0];return{listener:"cheer-latest",event:{amount:l,avatar:h,name:o.toLowerCase(),displayName:o,message:c,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"cheer",originalEventName:"cheer-latest"}}}case"follower":case"follower-latest":{var h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(A=>A.length))[0];return{listener:"follower-latest",event:{avatar:h,name:o.toLowerCase(),displayName:o,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"follower",originalEventName:"follower-latest"}}}case"raid":case"raid-latest":{var l=t?.amount??r.rand.number(1,100),h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(T=>T.length))[0];return{listener:"raid-latest",event:{amount:l,avatar:h,name:o.toLowerCase(),displayName:o,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"raid",originalEventName:"raid-latest"}}}case"subscriber":case"subscriber-latest":{var p=t?.tier??r.rand.array(["1000","2000","3000"])[0],l=t?.amount??r.rand.number(1,24),h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(R=>R.length))[0],k=t?.sender??r.rand.array(r.data.names.filter(R=>R.length&&R!==o))[0],c=t?.message??r.rand.array(r.data.messages.filter(R=>R.length))[0],x={default:{avatar:h,tier:p,playedAsCommunityGift:!1},gift:{sender:k,gifted:!0},community:{message:c,sender:k,bulkGifted:!0},spam:{sender:k,gifted:!0,isCommunityGift:!0}},S=["default","gift","community","spam"],C=t?.subType??r.rand.array(S)[0];return C=S.includes(C)?C:"default",{listener:"subscriber-latest",event:{amount:l,name:o.toLowerCase(),displayName:o,providerId:"",...x.default,...x[C],_id:r.rand.uuid(),sessionTop:!1,type:"subscriber",originalEventName:"subscriber-latest"}}}case"delete-message":return{listener:"delete-message",event:{msgId:t?.id??r.rand.uuid()}};case"delete-messages":return{listener:"delete-messages",event:{userId:t?.id??r.rand.number(1e7,99999999).toString()}}}case"streamelements":switch(a){default:case"random":{var d=r.rand.array(n[e])[0];return this.onEventReceived(e,d)}case"tip":case"tip-latest":{var l=t?.amount??r.rand.number(100,4e3),h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(T=>T.length))[0];return{listener:"tip-latest",event:{amount:l,avatar:h,name:o.toLowerCase(),displayName:o,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"tip",originalEventName:"tip-latest"}}}case"kvstore:update":return{listener:"kvstore:update",event:{data:{key:`customWidget.${t?.key??"sampleKey"}`,value:t?.value??"sampleValue"}}};case"bot:counter":return{listener:"bot:counter",event:{counter:t?.counter??"sampleCounter",value:t?.value??r.rand.number(0,100)}};case"mute":case"unmute":case"alertService:toggleSound":{var D=t?.muted??!client.details.overlay.muted;return{listener:"alertService:toggleSound",event:{muted:D}}}case"skip":case"event:skip":return{listener:"event:skip",event:{}}}case"youtube":switch(a){default:case"random":{var d=r.rand.array(n[e])[0];return this.onEventReceived(e,d)}case"message":{var o=t?.name??r.rand.array(r.data.names.filter(L=>L.length))[0],c=t?.message??r.rand.array(r.data.messages.filter(L=>L.length))[0];const G=await W(t?.badges??[],e);var f=B(c),m=z(c,f),b=t?.color??r.rand.color("hex"),y=t?.userId??r.rand.number(1e7,99999999).toString(),i=Date.now(),h=t?.avatar??r.rand.array(r.data.avatars)[0];return{listener:"message",event:{service:"youtube",data:{kind:"",etag:"",id:"",snippet:{type:"",liveChatId:"",authorChannelId:"local",publishedAt:new Date().toISOString(),hasDisplayContent:!0,displayMessage:c,textMessageDetails:{messageText:c}},authorDetails:{channelId:"local",channelUrl:"",displayName:o,profileImageUrl:h,...G},msgId:r.rand.uuid(),userId:r.rand.uuid(),nick:o.toLowerCase(),badges:[],displayName:o,isAction:!1,time:Date.now(),tags:[],displayColor:r.rand.color("hex"),channel:"local",text:c,avatar:h,emotes:[]},renderedText:c}}}case"subscriber":case"subscriber-latest":{var h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(A=>A.length))[0];return{listener:"subscriber-latest",event:{avatar:h,displayName:o,name:o.toLowerCase(),providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"subscriber",originalEventName:"subscriber-latest"}}}case"superchat":case"superchat-latest":{var l=t?.amount??r.rand.number(100,4e3),h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(T=>T.length))[0];return{listener:"superchat-latest",event:{amount:l,avatar:h,name:o.toLowerCase(),displayName:o,providerId:"",_id:r.rand.uuid(),sessionTop:!1,type:"superchat",originalEventName:"superchat-latest"}}}case"sponsor":case"sponsor-latest":{var p=t?.tier??r.rand.array(["1000","2000","3000"])[0],l=t?.amount??r.rand.number(1,24),h=t?.avatar??r.rand.array(r.data.avatars)[0],o=t?.name??r.rand.array(r.data.names.filter(L=>L.length))[0],k=t?.sender??r.rand.array(r.data.names.filter(L=>L.length&&L!==o))[0],c=t?.message??r.rand.array(r.data.messages.filter(L=>L.length))[0],x={default:{avatar:h,tier:p,playedAsCommunityGift:!1},gift:{sender:k,gifted:!0},community:{message:c,sender:k,bulkGifted:!0},spam:{sender:k,gifted:!0,isCommunityGift:!0}},S=["default","gift","community","spam"],C=t?.subType??r.rand.array(S)[0];return C=S.includes(C)?C:"default",{listener:"sponsor-latest",event:{amount:l,name:o.toLowerCase(),displayName:o,providerId:"",...x.default,...x[C],_id:r.rand.uuid(),sessionTop:!1,type:"sponsor",originalEventName:"sponsor-latest"}}}}}}}};let j=r;class F{constructor(){this.themes=[{name:"error",color:"#721c24",background:"#f8d7da",bold:!0,italic:!1,fontSize:18,template:{before:" ✖ ",after:" "}},{name:"success",color:"#155724",background:"#d4edda",bold:!0,italic:!1,fontSize:18,template:{before:" ✔ ",after:" "}},{name:"alert",color:"#856404",background:"#fff3cd",bold:!0,italic:!1,fontSize:20,template:{before:" ⚠ ",after:" "}},{name:"warn",color:"#856404",background:"#fff3cd",bold:!0,italic:!1,fontSize:20,template:{before:" ⚠ ",after:" "}},{name:"status",color:"#0c5460",background:"#d1ecf1",bold:!0,italic:!1,fontSize:12,template:{before:" · ",after:""}},{name:"received",color:"#E6BBFF",background:"transparent",bold:!1,italic:!1,fontSize:14,template:{before:" ⬇ ",after:""}},{name:"simple",color:"#f5c6cb",background:"transparent",bold:!1,italic:!1,fontSize:14,template:{before:"",after:""}},{name:"info",color:"#f6c6cb",background:"transparent",bold:!1,italic:!1,fontSize:14,template:{before:" ℹ ",after:""}}],this.error=()=>{},this.success=()=>{},this.alert=()=>{},this.warn=()=>{},this.status=()=>{},this.received=()=>{},this.simple=()=>{},this.info=()=>{},this.themes.forEach(e=>{const a=[];e.background&&e.background!=="transparent"&&a.push(`background-color: ${e.background}`),e.color&&a.push(`color: ${e.color}`),e.bold&&a.push("font-weight: bold"),e.italic&&a.push("font-style: italic"),e.underline&&a.push("text-decoration: underline"),e.fontSize&&a.push(`font-size: ${e.fontSize}px`);const t="%c",n=(...s)=>{const d=Array.from(s).filter(f=>typeof f=="string"||typeof f=="number"),o=Array.from(s).filter(f=>typeof f!="string"&&typeof f!="number"),c=d.length>0?a.join("; "):null,w=[d.length>0?t+(e.template?.before??"")+d.join(" ")+(e.template?.after??""):null,c,...o].filter(Boolean);return console.log(...w)};this[e.name]=n})}}class P{constructor(e){this.field="button",this.template="button",window.client instanceof E&&(this.field=e.field??this.field,this.template=e.template??this.template,this.run=e.run,window.client.actions.buttons.push(this),window.client.emit("action",this,"created"))}parse(e,a){var t=e.replace(typeof this.field=="string"?this.field:this.template.replace(/\{[^}]*\}/g,"")??"","").trim();try{this.run.apply(window.client,[t.length?t:e??e,a])}catch(n){throw new Error(`Error running button "${this.field}": ${n instanceof Error?n.message:n}`)}return this}static execute(e,a){try{if(!(window.client instanceof E))return!1;if(window.client.actions.buttons.length){const t=window.client.actions.buttons.find(n=>typeof n.field=="string"?n.field===e:typeof n.field=="function"?n.field(e,a):!1);if(t&&t instanceof P){try{t.parse(e,a),window.client.emit("action",t,"executed"),M.logger.received(`Button executed: ${e} with value: ${a}`)}catch(n){M.logger.error(`Error executing button "${e}": ${n instanceof Error?n.message:n}`)}return!0}}}catch{return!1}finally{return!1}}}class U{constructor(e){this.prefix="!",this.arguments=!1,this.test=`${this.prefix}${this.name} arg1 arg2`,this.aliases=[],this.permissions=void 0,this.admins=[],window.client instanceof E&&(this.prefix=e.prefix??this.prefix,this.name=e.name,this.description=e.description??this.description,this.arguments=e.arguments??this.arguments,this.run=e.run,this.test=e.test??this.test,this.aliases=e.aliases??this.aliases,this.permissions=e.permissions??this.permissions,this.admins=e.admins??this.admins,window.client.actions.commands.push(this),window.client.emit("action",this,"created"))}run(e,a){}verify(e,a,t){return this.arguments===!0&&(!t||!t.length)?!1:this.admins.some(n=>e.toLocaleLowerCase()===n.toLocaleLowerCase())?!0:this.permissions===!0||typeof this.permissions>"u"||Array.isArray(this.permissions)&&!this.permissions.length?!1:!!(Array.isArray(this.permissions)&&this.permissions.some(n=>a.map(s=>s.toLowerCase()).includes(n.toLowerCase())))}parse(e,a){if(!(window.client instanceof E))return!1;const t=e.replace(this.prefix,"").split(" ").slice(1).map(c=>c.trim());var n="",s=[];const d={bits:"cheer",premium:"prime"};switch(a.provider){case"twitch":{const c=a.data;n=c.event.data.nick||c.event.data.displayName,c.event.data.tags?.badges&&(s=c.event.data.tags.badges.toString().replace(/\/\d+/g,"").split(",").map(f=>f in d?d[f]:f));break}case"youtube":{const c=a.data,w={isVerified:"verified",isChatOwner:"owner",isChatSponsor:"sponsor",isChatModerator:"moderator"};n=c.event.data.nick||c.event.data.displayName,s=Object.entries(c.event.data.authorDetails).filter(([f,m])=>f.startsWith("is")&&m).map(([f])=>w[f]).filter(Boolean);break}case"kick":return!1}const o=this.verify(n,s,t);return o===!0&&this.run.apply(window.client,[t,a]),o}static execute(e){if(!(window.client instanceof E))return!1;const a=e.data;try{if(window.client.actions.commands.length&&window.client.actions.commands.some(t=>a.event.data.text.startsWith(t.prefix))){const t=window.client.actions.commands.find(n=>a.event.data.text.replace(n.prefix,"").split(" ")[0]===n.name);if(t&&t instanceof U)return t.parse(a.event.data.text,e),window.client.emit("action",t,"executed"),M.logger.received(`Command executed: ${a.event.data.text} by ${a.event.data.nick||a.event.data.displayName}`,a),!0}}catch{return!1}finally{return!1}}}window.addEventListener("load",()=>{window.client instanceof E&&j.start()}),window.addEventListener("onWidgetLoad",async u=>{const{detail:e}=u;if(window.client instanceof E){const a=window.client;a.fields=e.fieldData,a.session=e.session.data,a.details={...a.details,user:e.channel,currency:e.currency,overlay:e.overlay},e.channel.id&&!e.emulated?await fetch(`https://api.streamelements.com/kappa/v2/channels/${e.channel.id}/`).then(t=>t.json()).then(t=>{if(t.provider)return a.details.provider=t.provider,t.provider;a.details.provider="local"}).catch(()=>{a.details.provider="local"}):a.details.provider="local",a.emit("load",e),a.loaded=!0,a.storage.on("load",()=>{a.storage.add(`avatar.${e.channel.providerId.toLowerCase()}`,{value:e.channel.avatar,timestamp:Date.now(),expire:Date.now()+a.cache.avatar*60*60*1e3})})}}),window.addEventListener("onSessionUpdate",u=>{const{detail:e}=u;if(window.client instanceof E){const a=window.client;a.session=e.session,a.emit("session",e.session)}}),window.addEventListener("onEventReceived",({detail:u})=>{if(window.client instanceof E){var e=u.event?.provider||u.event?.service||u.event?.data?.provider||window.client.details.provider;["kvstore:update","bot:counter","alertService:toggleSound","event:skip","tip-latest","event:test"].some(s=>s===u.listener)&&(e="streamelements");const n={provider:e,data:u};switch(n.provider){case"streamelements":{const s=n.data;switch(s.listener){case"tip-latest":{s.event;break}case"event:skip":{s.event;break}case"event:test":{switch(s.event.listener){case"widget-button":{const d=s.event;P.execute(d.field,d.value);break}case"subscriber-latest":{s.event;break}}break}case"kvstore:update":{const d=s.event;if(N.length){var a=N.find(o=>o.id===d.data.key.replace("customWidget.",""));a&&a.update(d.data.value)}break}case"bot:counter":{s.event;break}case"alertService:toggleSound":{const d=s.event;client.details.overlay.muted=!!d.muted;break}}break}case"twitch":{const s=n.data;switch(s.listener){case"delete-message":{s.event;break}case"delete-messages":{s.event;break}case"message":{s.event;break}case"follower-latest":{s.event;break}case"cheer-latest":{s.event;break}case"subscriber-latest":{(!s.event.gifted&&!s.event.bulkGifted&&!s.event.isCommunityGift||s.event.gifted&&!s.event.bulkGifted&&!s.event.isCommunityGift||s.event.gifted&&!s.event.bulkGifted&&s.event.isCommunityGift||!s.event.gifted&&s.event.bulkGifted&&!s.event.isCommunityGift)&&s.event;break}case"raid-latest":{s.event;break}}break}case"youtube":{const s=n.data;switch(s.listener){case"message":{s.event,U.execute({provider:"youtube",data:s});break}case"subscriber-latest":{s.event;break}case"sponsor-latest":{s.event,(!s.event.gifted&&!s.event.bulkGifted&&!s.event.isCommunityGift||s.event.gifted&&!s.event.bulkGifted&&!s.event.isCommunityGift||s.event.gifted&&!s.event.bulkGifted&&s.event.isCommunityGift||!s.event.gifted&&s.event.bulkGifted&&!s.event.isCommunityGift)&&s.event;break}case"superchat-latest":{s.event;break}}break}case"kick":{n.data;break}case"facebook":{n.data;break}}window.client.emit("event",n)}});class q extends I{constructor(e){window.client instanceof E&&(super(),this.queue=[],this.priorityQueue=[],this.history=[],this.timeouts=[],this.running=!1,this.duration=void 0,this.loaded=!1,this.duration=e.duration,this.processor=e.processor,window.client.on("load",()=>{this.emit("load"),this.loaded=!0}))}enqueue(e,a={}){const t={isoDate:new Date().toISOString(),isLoop:a?.isLoop??!1,isPriority:a?.isPriority??!1,isImmediate:a?.isImmediate??!1,value:e},n=this.hasItems();return t.isPriority&&t.isImmediate?(this.cancel(),this.priorityQueue.unshift(t)):(t.isPriority?this.priorityQueue:this.queue).push(t),this.running===!1&&n===!1&&this.run(),this.emit("update",this.queue,this.priorityQueue,this.history,this.timeouts),this}async run(){if(!this.hasItems()){this.running=!1;return}this.running=!0,await this.next(),typeof this.duration=="number"&&this.duration>0?this.timeouts.push(setTimeout(()=>this.run(),this.duration)):(this.duration===0||this.duration===!1)&&this.run()}async next(){const e=this.priorityQueue.length>0?this.priorityQueue.shift():this.queue.shift();if(!e){this.running=!1;return}try{await this.processor.apply(this,[e.value,this]),this.emit("process",e,this)}catch(t){M.logger.error(`Error during item processing: ${t instanceof Error?t.message:String(t)}`)}this.history.push(e);const a=e.isPriority?this.priorityQueue:this.queue;e.isLoop&&a.push(e)}resume(){return this.cancel(),this.hasItems()&&this.run(),this}update(e){return this.queue=e.queue??this.queue,this.priorityQueue=e.priorityQueue??this.priorityQueue,this.history=e.history??this.history,this.hasItems()&&this.running===!1&&window.client?.on("load",()=>this.run()),this}cancel(){this.timeouts.forEach(e=>clearTimeout(e)),this.timeouts=[],this.running=!1,this.emit("cancel")}hasItems(){return this.queue.length>0||this.priorityQueue.length>0}}const M={Client:E,Simulation:j,logger:new F,utils:{findEmotesInText:B,replaceEmotesWithHTML:z},modules:{Button:P,Command:U,EventProvider:I,useStorage:$,useQueue:q}};typeof window<"u"&&(window.Tixyel=M),O.Tixyel=M,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=index.umd.js.map