@scratch/scratch-vm 13.4.0-test.4 → 13.4.0-test.7

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.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VirtualMachine=t():e.VirtualMachine=t()}(global,()=>(()=>{var e={2589(e,t,r){const n=r(3707);e.exports=class{constructor(){this.callbacks=[],this.nextResponseId=0}call(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),s=2;s<r;s++)n[s-2]=arguments[s];return this.transferCall(e,t,null,...n)}transferCall(e,t,r){try{const{provider:i,isRemote:a}=this._getServiceProvider(e);if(i){for(var n=arguments.length,s=new Array(n>3?n-3:0),o=3;o<n;o++)s[o-3]=arguments[o];if(a)return this._remoteTransferCall(i,e,t,r,...s);const l=i[t].apply(i,s);return Promise.resolve(l)}return Promise.reject(new Error("Service not found: ".concat(e)))}catch(e){return Promise.reject(e)}}_isRemoteService(e){return this._getServiceProvider(e).isRemote}_remoteCall(e,t,r){for(var n=arguments.length,s=new Array(n>3?n-3:0),o=3;o<n;o++)s[o-3]=arguments[o];return this._remoteTransferCall(e,t,r,null,...s)}_remoteTransferCall(e,t,r,n){for(var s=arguments.length,o=new Array(s>4?s-4:0),i=4;i<s;i++)o[i-4]=arguments[i];return new Promise((s,i)=>{const a=this._storeCallbacks(s,i);o.length>0&&"function"==typeof o[o.length-1].yield&&o.pop(),n?e.postMessage({service:t,method:r,responseId:a,args:o},n):e.postMessage({service:t,method:r,responseId:a,args:o})})}_storeCallbacks(e,t){const r=this.nextResponseId++;return this.callbacks[r]=[e,t],r}_deliverResponse(e,t){try{const[r,n]=this.callbacks[e];delete this.callbacks[e],t.error?n(t.error):r(t.result)}catch(e){n.error("Dispatch callback failed: ".concat(JSON.stringify(e)))}}_onMessage(e,t){const r=t.data;let s;r.args=r.args||[],r.service?s="dispatch"===r.service?this._onDispatchMessage(e,r):this.call(r.service,r.method,...r.args):void 0===r.responseId?n.error("Dispatch caught malformed message from a worker: ".concat(JSON.stringify(t))):this._deliverResponse(r.responseId,r),s&&(void 0===r.responseId?n.error("Dispatch message missing required response ID: ".concat(JSON.stringify(t))):s.then(t=>e.postMessage({responseId:r.responseId,result:t}),t=>e.postMessage({responseId:r.responseId,error:t})))}_getServiceProvider(e){throw new Error("Could not get provider for ".concat(e,": _getServiceProvider not implemented"))}_onDispatchMessage(e,t){throw new Error("Unimplemented dispatch message handler cannot handle ".concat(t.method," method"))}}},3260(e,t,r){const n=r(2589),s=r(3707);e.exports=new class extends n{constructor(){super(),this._connectionPromise=new Promise(e=>{this._onConnect=e}),this.services={},this._onMessage=this._onMessage.bind(this,self),"undefined"!=typeof self&&(self.onmessage=this._onMessage)}get waitForConnection(){return this._connectionPromise}setService(e,t){return Object.prototype.hasOwnProperty.call(this.services,e)&&s.warn("Worker dispatch replacing existing service provider for ".concat(e)),this.services[e]=t,this.waitForConnection.then(()=>this._remoteCall(self,"dispatch","setService",e))}_getServiceProvider(e){const t=this.services[e];return{provider:t||self,isRemote:!t}}_onDispatchMessage(e,t){let r;switch(t.method){case"handshake":r=this._onConnect();break;case"terminate":setTimeout(()=>self.close(),0),r=Promise.resolve();break;default:s.error("Worker dispatch received message for unknown method: ".concat(t.method))}return r}}},6342(e){e.exports={ANGLE:"angle",BOOLEAN:"Boolean",COLOR:"color",NUMBER:"number",STRING:"string",MATRIX:"matrix",NOTE:"note",IMAGE:"image"}},9274(e){e.exports={BOOLEAN:"Boolean",BUTTON:"button",COMMAND:"command",CONDITIONAL:"conditional",EVENT:"event",HAT:"hat",LOOP:"loop",REPORTER:"reporter"}},9432(e){e.exports={SPRITE:"sprite",STAGE:"stage"}},3707(e,t,r){const{Logger:n}=r(7039);e.exports=new n({name:"scratch-vm"})},181(e){"use strict";e.exports=require("buffer")},6386(e,t,r){"use strict";var n=r(181).Buffer,s=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||s(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseLogger=t.loggerEnvironment=void 0,t.createLoggerEnvironment=p;const i=r(9634),a=r(8799),l=r(8078),c=r(6710),u=r(6198),g=r(5456),h=r(2400),f=r(6008);function p(){const e=function(){if((0,h.isBrowserEnvironment)()){const e=globalThis.navigator;return{name:"browser",userAgent:e?.userAgent}}const e=globalThis;if("function"==typeof e.importScripts)return{name:"worker",userAgent:e.navigator?.userAgent};const t=globalThis;if(null!=t.Bun){const e=t.Bun.version;return{name:"bun",version:null!=e?`bun/${e}`:void 0,hostname:L(t.process,t.Deno,t.Bun,t.location)}}if(null!=t.Deno){const e=function(e){try{if("function"==typeof e?.hostname){const t=e.hostname();if(null!=t&&t.length>0)return t}}catch{}const t=globalThis.location?.hostname;if(null!=t&&t.length>0)return t;return}(t.Deno),r=t.Deno?.version?.deno;return{name:"deno",version:null!=r?`deno/${r}`:void 0,hostname:e??L(t.process,t.Deno,t.Bun,t.location)}}if(null!=t.process?.versions?.node||null!=t.process?.version)return{name:"node",version:t.process?.versions?.node??t.process?.version,hostname:L(t.process,t.Deno,t.Bun,t.location)};if(null!=t.process)return{name:"node",version:"unknown",hostname:L(t.process,t.Deno,t.Bun,t.location)};return{name:"unknown"}}(),t=function(t){if("browser"===t.name||"worker"===t.name)return{runtime:t.name,browser:t.userAgent};const r={runtime:t.name};"node"!==e.name&&"deno"!==e.name&&"bun"!==e.name||(r.runtimeVersion=t.version??"unknown");"node"!==e.name&&"deno"!==e.name&&"bun"!==e.name||(r.hostname=t.hostname??"unknown");return r}(e),r="browser"===e.name||"worker"===e.name,s=r?[...(0,g.getDefaultIgnorePatterns)(),/node_modules[\\/].*tslog/i]:[...(0,g.getDefaultIgnorePatterns)(),/node:(?:internal|vm)/i,/\binternal[\\/]/i];let o;const i={getMeta:(e,r,n,s,o,a)=>Object.assign({},t,{name:o,parentNames:a,date:new Date,logLevelId:e,logLevelName:r,path:s?void 0:i.getCallerStackFrame(n)}),getCallerStackFrame(e,t=new Error){const r=(0,g.buildStackTrace)(t,e=>p(e));if(0===r.length)return{};const n=(0,g.findFirstExternalFrameIndex)(r,s);return r[Number.isFinite(e)&&e>=0?(0,g.clampIndex)(e,r.length):(0,g.clampIndex)(n,r.length)]??{}},getErrorTrace:e=>(0,g.buildStackTrace)(e,e=>p(e)),isError:e=>function(e){if(e instanceof Error)return!0;if(null!=e&&"object"==typeof e){const t=Object.prototype.toString.call(e);if(/\[object .*Error\]/.test(t))return!0;const r=e.name;if("string"==typeof r&&r.endsWith("Error"))return!0}return!1}(e),isBuffer:e=>void 0!==n&&"function"==typeof n.isBuffer&&n.isBuffer(e),prettyFormatLogObj:(e,t)=>e.reduce((e,r)=>(i.isError(r)?e.errors.push(i.prettyFormatErrorObj(r,t)):e.args.push(r),e),{args:[],errors:[]}),prettyFormatErrorObj(e,t){const r=v(i.getErrorTrace(e),t),n=(0,l.collectErrorCauses)(e).map((e,r)=>[`Caused by (${r+1}): ${e.name??"Error"}${e.message?`: ${e.message}`:""}`,...v((0,g.buildStackTrace)(e,e=>p(e)),t)].join("\n")),s={errorName:` ${e.name} `,errorMessage:O(e),errorStack:[...r,...n].join("\n")};return(0,c.formatTemplate)(t,t.prettyErrorTemplate,s)},transportFormatted(t,r,n,s,o){const i=!1!==o.stylePrettyLogs,l=(n.length>0&&r.length>0?"\n":"")+n.join("\n"),c=t.replace(d,"");const u=i?t:c;if(function(t){return t&&("browser"===e.name||"worker"===e.name)&&(0,h.consoleSupportsCssStyling)()}(i)){o.prettyInspectOptions.colors=!1;const e=j(o.prettyInspectOptions,r),t=null!=s?function(e,t){if(null==t)return{text:"",styles:[]};const{template:r,placeholders:n}=(0,a.buildPrettyMeta)(e,t),s=[],o=[];let i=0;const l=/{{(.+?)}}/g;let c;for(;null!=(c=l.exec(r));){c.index>i&&s.push(r.slice(i,c.index));const t=c[1],a=null!=n[t]?String(n[t]):"",u=S(w(e.prettyLogStyles?.[t],a));u.length>0?(s.push(`%c${a}%c`),o.push(u,"")):s.push(a),i=l.lastIndex}i<r.length&&s.push(r.slice(i));return{text:s.join(""),styles:o}}(o,s):{text:c,styles:[]},n=t.text.length>0&&t.styles.length>0,i=(n?t.text:c)+e+l;return void(n?console.log(i,...t.styles):console.log(i))}o.prettyInspectOptions.colors=i;const g=j(o.prettyInspectOptions,r);console.log(u+g+l)},transportJSON(e){console.log((0,f.jsonStringifyRecursive)(e))}};return"test"===function(){const e=globalThis?.process;return e?.env?.NODE_ENV}()&&(i.__resetWorkingDirectoryCacheForTests=()=>{o=void 0}),i;function p(e){return r?function(e){const t=globalThis.location?.origin;if(null==e)return;const r=e.match(b);if(!r)return;const n=r[1]?.replace(/\?.*$/,"");if(null==n)return;const s=n.split("/"),o=r[2],i=r[3],a=s[s.length-1];return{fullFilePath:t?`${t}${n}`:n,fileName:a,fileNameWithLine:a&&o?`${a}:${o}`:void 0,fileColumn:i,fileLine:o,filePath:n,filePathWithLine:o?`${n}:${o}`:void 0,method:void 0}}(e):function(e){if("string"!=typeof e||0===e.length)return;const t=e.trim();if(!t.includes(" at ")&&!t.startsWith("at "))return;const r=t.replace(/^at\s+/,"");let n,s=r;const i=r.match(/^(.*?)\s+\((.*)\)$/);i&&(n=i[1],s=i[2]);const a=s.replace(/^\(/,"").replace(/\)$/,""),l=a.replace(/\?.*$/,"");let c,u,g=l;const f=l.split(":");f.length>=3&&/^\d+$/.test(f[f.length-1]??"")?(u=f.pop(),c=f.pop(),g=f.join(":")):f.length>=2&&/^\d+$/.test(f[f.length-1]??"")&&(c=f.pop(),g=f.join(":"));let p=g.replace(/^file:\/\//,"");const d=function(){void 0===o&&(o=(0,h.safeGetCwd)()??null);return o??void 0}();null!=d&&p.startsWith(d)&&(p=p.slice(d.length),p=p.replace(/^[\\/]/,""));0===p.length&&(p=g);const m=function(e){if("string"!=typeof e||0===e.length)return e;const t=e.replace(/\\+/g,"\\").replace(/\\/g,"/"),r=t.startsWith("//"),n=t.startsWith("/")&&!r,s=t.match(/^[A-Za-z]:/),o=s?s[0]:"",i=(o?t.slice(o.length):t).split("/"),a=[];for(const e of i)""!==e&&"."!==e&&(".."!==e?a.push(e):a.length>0&&a.pop());let l=a.join("/");r?l=`//${l}`:n?l=`/${l}`:""!==o&&(l=`${o}${l.length>0?`/${l}`:""}`);if(0===l.length)return e;return l}(p),y=m.length>0?m:p,b=y.split(/\\|\//),v=b[b.length-1],O=v&&c?`${v}:${c}`:void 0,w=y&&c?`${y}:${c}`:void 0;return{fullFilePath:a,fileName:v,fileNameWithLine:O,fileColumn:u,fileLine:c,filePath:y,filePathWithLine:w,method:n}}(e)}function v(e,t){return e.map(e=>(0,c.formatTemplate)(t,t.prettyErrorStackTemplate,{...e},!0))}function O(e){return Object.getOwnPropertyNames(e).filter(e=>"stack"!==e&&"cause"!==e).reduce((t,r)=>{const n=e[r];return"function"==typeof n||t.push(String(n)),t},[]).join(", ")}function w(e,t){if(null==e)return[];if("string"==typeof e)return[e];if(Array.isArray(e))return e.flatMap(e=>w(e,t));if("object"==typeof e){const r=e[t.trim()]??e["*"];return null==r?[]:w(r,t)}return[]}function S(e){const t=new Set,r=[];for(const n of e){const e=k(n);null!=e&&e.length>0&&!t.has(e)&&(t.add(e),r.push(e))}return r.join("; ")}function k(e){const t=m[e];if(null!=t)return`color: ${t}`;const r=y[e];if(null!=r)return`background-color: ${r}`;switch(e){case"bold":return"font-weight: bold";case"dim":return"opacity: 0.75";case"italic":return"font-style: italic";case"underline":return"text-decoration: underline";case"overline":return"text-decoration: overline";case"inverse":return"filter: invert(1)";case"hidden":return"visibility: hidden";case"strikethrough":return"text-decoration: line-through";default:return}}function j(e,t){try{return(0,u.formatWithOptions)(e,...t)}catch{return t.map(P).join(" ")}}function P(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}function L(e,t,r,n){const s=e?.env?.HOSTNAME??e?.env?.HOST??e?.env?.COMPUTERNAME;if(null!=s&&s.length>0)return s;const o=r?.env?.HOSTNAME??r?.env?.HOST??r?.env?.COMPUTERNAME;if(null!=o&&o.length>0)return o;try{const e=t?.env?.get;if("function"==typeof e){const t=e("HOSTNAME");if(null!=t&&t.length>0)return t}}catch{}return null!=n?.hostname&&n.hostname.length>0?n.hostname:void 0}}const d=/\u001b\[[0-9;]*m/g,m={black:"#000000",red:"#ef5350",green:"#66bb6a",yellow:"#fdd835",blue:"#42a5f5",magenta:"#ab47bc",cyan:"#26c6da",white:"#fafafa",blackBright:"#424242",redBright:"#ff7043",greenBright:"#81c784",yellowBright:"#ffe082",blueBright:"#64b5f6",magentaBright:"#ce93d8",cyanBright:"#4dd0e1",whiteBright:"#ffffff"},y={bgBlack:"#000000",bgRed:"#ef5350",bgGreen:"#66bb6a",bgYellow:"#fdd835",bgBlue:"#42a5f5",bgMagenta:"#ab47bc",bgCyan:"#26c6da",bgWhite:"#fafafa",bgBlackBright:"#424242",bgRedBright:"#ff7043",bgGreenBright:"#81c784",bgYellowBright:"#ffe082",bgBlueBright:"#64b5f6",bgMagentaBright:"#ce93d8",bgCyanBright:"#4dd0e1",bgWhiteBright:"#ffffff"},b=/(?:(?:file|https?|global code|[^@]+)@)?(?:file:)?((?:\/[^:/]+){2,})(?::(\d+))?(?::(\d+))?/,v=p();t.loggerEnvironment=v,o(r(299),t);t.BaseLogger=class{constructor(e,t,r=Number.NaN){this.logObj=t,this.stackDepthLevel=r,this.runtime=v,this.maxErrorCauseDepth=5,this.settings={type:e?.type??"pretty",name:e?.name,parentNames:e?.parentNames,minLevel:e?.minLevel??0,argumentsArrayName:e?.argumentsArrayName,hideLogPositionForProduction:e?.hideLogPositionForProduction??!1,prettyLogTemplate:e?.prettyLogTemplate??"{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}\t{{logLevelName}}\t{{filePathWithLine}}{{nameWithDelimiterPrefix}}\t",prettyErrorTemplate:e?.prettyErrorTemplate??"\n{{errorName}} {{errorMessage}}\nerror stack:\n{{errorStack}}",prettyErrorStackTemplate:e?.prettyErrorStackTemplate??" • {{fileName}}\t{{method}}\n\t{{filePathWithLine}}",prettyErrorParentNamesSeparator:e?.prettyErrorParentNamesSeparator??":",prettyErrorLoggerNameDelimiter:e?.prettyErrorLoggerNameDelimiter??"\t",stylePrettyLogs:e?.stylePrettyLogs??!0,prettyLogTimeZone:e?.prettyLogTimeZone??"UTC",prettyLogStyles:e?.prettyLogStyles??{logLevelName:{"*":["bold","black","bgWhiteBright","dim"],SILLY:["bold","white"],TRACE:["bold","whiteBright"],DEBUG:["bold","green"],INFO:["bold","blue"],WARN:["bold","yellow"],ERROR:["bold","red"],FATAL:["bold","redBright"]},dateIsoStr:"white",filePathWithLine:"white",name:["white","bold"],nameWithDelimiterPrefix:["white","bold"],nameWithDelimiterSuffix:["white","bold"],errorName:["bold","bgRedBright","whiteBright"],fileName:["yellow"],fileNameWithLine:"white"},prettyInspectOptions:e?.prettyInspectOptions??{colors:!0,compact:!1,depth:1/0},metaProperty:e?.metaProperty??"_meta",maskPlaceholder:e?.maskPlaceholder??"[***]",maskValuesOfKeys:e?.maskValuesOfKeys??["password"],maskValuesOfKeysCaseInsensitive:e?.maskValuesOfKeysCaseInsensitive??!1,maskValuesRegEx:e?.maskValuesRegEx,prefix:[...e?.prefix??[]],attachedTransports:[...e?.attachedTransports??[]],overwrite:{mask:e?.overwrite?.mask,toLogObj:e?.overwrite?.toLogObj,addMeta:e?.overwrite?.addMeta,addPlaceholders:e?.overwrite?.addPlaceholders,formatMeta:e?.overwrite?.formatMeta,formatLogObj:e?.overwrite?.formatLogObj,transportFormatted:e?.overwrite?.transportFormatted,transportJSON:e?.overwrite?.transportJSON}},this.captureStackForMeta=this._shouldCaptureStack()}log(e,t,...r){if(e<this.settings.minLevel)return;const n=this._resolveLogArguments(r),s=[...this.settings.prefix,...n],o=null!=this.settings.overwrite?.mask?this.settings.overwrite?.mask(s):null!=this.settings.maskValuesOfKeys&&this.settings.maskValuesOfKeys.length>0?this._mask(s):s,i=null!=this.logObj?this._recursiveCloneAndExecuteFunctions(this.logObj):void 0,a=null!=this.settings.overwrite?.toLogObj?this.settings.overwrite?.toLogObj(o,i):this._toLogObj(o,i),l=null!=this.settings.overwrite?.addMeta?this.settings.overwrite?.addMeta(a,e,t):this._addMetaToLogObj(a,e,t),c=l?.[this.settings.metaProperty];let u,g;if(null!=this.settings.overwrite?.formatMeta&&(u=this.settings.overwrite?.formatMeta(l?.[this.settings.metaProperty])),null!=this.settings.overwrite?.formatLogObj&&(g=this.settings.overwrite?.formatLogObj(o,this.settings)),"pretty"===this.settings.type&&(u=u??this._prettyFormatLogObjMeta(l?.[this.settings.metaProperty]),g=g??v.prettyFormatLogObj(o,this.settings)),null!=u&&null!=g)if(null!=this.settings.overwrite?.transportFormatted){const e=this.settings.overwrite.transportFormatted,t=e.length;t<4?e(u,g.args,g.errors):4===t?e(u,g.args,g.errors,c):e(u,g.args,g.errors,c,this.settings)}else v.transportFormatted(u,g.args,g.errors,c,this.settings);else null!=this.settings.overwrite?.transportJSON?this.settings.overwrite.transportJSON(l):"hidden"!==this.settings.type&&v.transportJSON(l);return null!=this.settings.attachedTransports&&this.settings.attachedTransports.length>0&&this.settings.attachedTransports.forEach(e=>{e(l)}),l}attachTransport(e){this.settings.attachedTransports.push(e)}getSubLogger(e,t){const r={...this.settings,...e,parentNames:null!=this.settings?.parentNames&&null!=this.settings?.name?[...this.settings.parentNames,this.settings.name]:null!=this.settings?.name?[this.settings.name]:void 0,prefix:[...this.settings.prefix,...e?.prefix??[]]};return new this.constructor(r,t??this.logObj,this.stackDepthLevel)}_mask(e){const t=this._getMaskKeys();return e?.map(e=>this._recursiveCloneAndMaskValuesOfKeys(e,t))}_getMaskKeys(){const e=this.settings.maskValuesOfKeys??[],t=e.map(String).join("|");if(!0===this.settings.maskValuesOfKeysCaseInsensitive){if(this.maskKeysCache?.source===e&&!0===this.maskKeysCache.caseInsensitive&&this.maskKeysCache.signature===t)return this.maskKeysCache.normalized;const r=e.map(e=>"string"==typeof e?e.toLowerCase():String(e).toLowerCase());return this.maskKeysCache={source:e,caseInsensitive:!0,normalized:r,signature:t},r}return this.maskKeysCache={source:e,caseInsensitive:!1,normalized:e,signature:t},e}_resolveLogArguments(e){if(1===e.length&&"function"==typeof e[0]){const t=e[0];if(0===t.length){const e=t();return Array.isArray(e)?e:[e]}}return e}_recursiveCloneAndMaskValuesOfKeys(e,t,r=[]){if(r.includes(e))return{...e};if("object"==typeof e&&null!==e&&r.push(e),v.isError(e)||v.isBuffer(e))return e;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return e.map(e=>this._recursiveCloneAndMaskValuesOfKeys(e,t,r));if(e instanceof Date)return new Date(e.getTime());if(e instanceof URL)return(0,i.urlToObject)(e);if(null!==e&&"object"==typeof e){const n=v.isError(e)?this._cloneError(e):Object.create(Object.getPrototypeOf(e));return Object.getOwnPropertyNames(e).reduce((n,s)=>{const o=!0!==this.settings?.maskValuesOfKeysCaseInsensitive?s:"string"==typeof s?s.toLowerCase():String(s).toLowerCase();return n[s]=t.includes(o)?this.settings.maskPlaceholder:(()=>{try{return this._recursiveCloneAndMaskValuesOfKeys(e[s],t,r)}catch{return null}})(),n},n)}if("string"==typeof e){let t=e;for(const e of this.settings?.maskValuesRegEx||[])t=t.replace(e,this.settings?.maskPlaceholder||"");return t}return e}_recursiveCloneAndExecuteFunctions(e,t=[]){return this.isObjectOrArray(e)&&t.includes(e)?this.shallowCopy(e):(this.isObjectOrArray(e)&&t.push(e),Array.isArray(e)?e.map(e=>this._recursiveCloneAndExecuteFunctions(e,t)):e instanceof Date?new Date(e.getTime()):this.isObject(e)?Object.getOwnPropertyNames(e).reduce((r,n)=>{const s=Object.getOwnPropertyDescriptor(e,n);if(s){Object.defineProperty(r,n,s);const o=e[n];r[n]="function"==typeof o?o():this._recursiveCloneAndExecuteFunctions(o,t)}return r},Object.create(Object.getPrototypeOf(e))):e)}isObjectOrArray(e){return"object"==typeof e&&null!==e}isObject(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}shallowCopy(e){return Array.isArray(e)?[...e]:{...e}}_toLogObj(e,t={}){return e=e?.map(e=>v.isError(e)?this._toErrorObject(e):e),t=null==this.settings.argumentsArrayName?1!==e.length||Array.isArray(e[0])||!0===v.isBuffer(e[0])||e[0]instanceof Date?{...t,...e}:"object"==typeof e[0]&&null!=e[0]?{...e[0],...t}:{0:e[0],...t}:{...t,[this.settings.argumentsArrayName]:e}}_cloneError(e){const t=new e.constructor;return Object.getOwnPropertyNames(e).forEach(r=>{t[r]=e[r]}),t}_toErrorObject(e,t=0,r=new Set){r.has(e)||r.add(e);const n={nativeError:e,name:e.name??"Error",message:e.message,stack:v.getErrorTrace(e)};if(t>=this.maxErrorCauseDepth)return n;const s=e.cause;if(null!=s){const e=(0,l.toError)(s);r.has(e)||(n.cause=this._toErrorObject(e,t+1,r))}return n}_addMetaToLogObj(e,t,r){return{...e,[this.settings.metaProperty]:v.getMeta(t,r,this.stackDepthLevel,!this.captureStackForMeta,this.settings.name,this.settings.parentNames)}}_shouldCaptureStack(){if(this.settings.hideLogPositionForProduction)return!1;if("json"===this.settings.type)return!0;const e=this.settings.prettyLogTemplate??"";return!!/{{\s*(file(Name|Path|Line|PathWithLine|NameWithLine)|fullFilePath)\s*}}/.test(e)}_prettyFormatLogObjMeta(e){return(0,a.buildPrettyMeta)(this.settings,e).text}}},6447(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatNumberAddZeros=function(e,t=2,r=0){if(null!=e&&isNaN(e))return"";return e=null!=e?e+r:e,2===t?null==e?"--":e<10?"0"+e:e.toString():null==e?"---":e<10?"00"+e:e<100?"0"+e:e.toString()}},6710(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatTemplate=function(e,t,r,s=!1){const o=String(t),i=(e,t)=>`[${t[0]}m${e}[${t[1]}m`,a=(e,t)=>null!=t&&"string"==typeof t?i(e,n.prettyLogStyles[t]):null!=t&&Array.isArray(t)?t.reduce((e,t)=>a(e,t),e):null!=t&&null!=t[e.trim()]?a(e,t[e.trim()]):null!=t&&null!=t["*"]?a(e,t["*"]):e;return o.replace(/{{(.+?)}}/g,(t,o)=>{const l=null!=r[o]?String(r[o]):s?"":t;return e.stylePrettyLogs?a(l,e?.prettyLogStyles?.[o]??null)+i("",n.prettyLogStyles.reset):l})};const n=r(1135)},7039(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const o=r(6386);s(r(299),t),s(r(6386),t);class i extends o.BaseLogger{constructor(e,t){const r={...e??{}};"undefined"!=typeof window&&"undefined"!=typeof document&&(r.stylePrettyLogs=e?.stylePrettyLogs??!0),super(r,t,Number.NaN)}log(e,t,...r){return super.log(e,t,...r)}silly(...e){return super.log(0,"SILLY",...e)}trace(...e){return super.log(1,"TRACE",...e)}debug(...e){return super.log(2,"DEBUG",...e)}info(...e){return super.log(3,"INFO",...e)}warn(...e){return super.log(4,"WARN",...e)}error(...e){return super.log(5,"ERROR",...e)}fatal(...e){return super.log(6,"FATAL",...e)}getSubLogger(e,t){return super.getSubLogger(e,t)}}t.Logger=i},299(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2400(e,t){"use strict";function r(){return"undefined"!=typeof window&&"undefined"!=typeof document}Object.defineProperty(t,"__esModule",{value:!0}),t.safeGetCwd=function(){try{const e=globalThis?.process;if("function"==typeof e?.cwd)return e.cwd()}catch{}try{const e=globalThis?.Deno;if("function"==typeof e?.cwd)return e.cwd()}catch{}return},t.isBrowserEnvironment=r,t.consoleSupportsCssStyling=function(){if(!r())return!1;const e=globalThis?.navigator,t=e?.userAgent??"";if(/firefox/i.test(t))return!0;const n=globalThis;if(n?.CSS?.supports?.("color","#000"))return!0;return/safari/i.test(t)&&!/chrome/i.test(t)}},8078(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.collectErrorCauses=function(e,t={}){const r=t.maxDepth??5,n=[],o=new Set;let i=e,a=0;for(;null!=i&&a<r;){const e=i?.cause;if(null==e||o.has(e))break;o.add(e),n.push(s(e)),i=e,a+=1}return n},t.toError=s,t.toErrorObject=function(e,t){return{nativeError:e,name:e.name??"Error",message:e.message??"",stack:(0,n.buildStackTrace)(e,t)}};const n=r(5456);function s(e){if(e instanceof Error)return e;const t=new Error("string"==typeof e?e:JSON.stringify(e));return"object"==typeof e&&null!=e&&Object.assign(t,e),t}},6008(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jsonStringifyRecursive=function(e){const t=new Set;return JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return"bigint"==typeof r?`${r}`:void 0===r?"[undefined]":r})}},8799(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.buildPrettyMeta=function(e,t){if(null==t)return{text:"",template:e.prettyLogTemplate,placeholders:{}};let r=e.prettyLogTemplate;const o={};r.includes("{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}")?r=r.replace("{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}","{{dateIsoStr}}"):"UTC"===e.prettyLogTimeZone?(o.yyyy=t.date?.getUTCFullYear()??"----",o.mm=(0,s.formatNumberAddZeros)(t.date?.getUTCMonth(),2,1),o.dd=(0,s.formatNumberAddZeros)(t.date?.getUTCDate(),2),o.hh=(0,s.formatNumberAddZeros)(t.date?.getUTCHours(),2),o.MM=(0,s.formatNumberAddZeros)(t.date?.getUTCMinutes(),2),o.ss=(0,s.formatNumberAddZeros)(t.date?.getUTCSeconds(),2),o.ms=(0,s.formatNumberAddZeros)(t.date?.getUTCMilliseconds(),3)):(o.yyyy=t.date?.getFullYear()??"----",o.mm=(0,s.formatNumberAddZeros)(t.date?.getMonth(),2,1),o.dd=(0,s.formatNumberAddZeros)(t.date?.getDate(),2),o.hh=(0,s.formatNumberAddZeros)(t.date?.getHours(),2),o.MM=(0,s.formatNumberAddZeros)(t.date?.getMinutes(),2),o.ss=(0,s.formatNumberAddZeros)(t.date?.getSeconds(),2),o.ms=(0,s.formatNumberAddZeros)(t.date?.getMilliseconds(),3));const i="UTC"===e.prettyLogTimeZone?t.date:null!=t.date?new Date(t.date.getTime()-6e4*t.date.getTimezoneOffset()):void 0;o.rawIsoStr=i?.toISOString()??"",o.dateIsoStr=i?.toISOString().replace("T"," ").replace("Z","")??"",o.logLevelName=t.logLevelName,o.fileNameWithLine=t.path?.fileNameWithLine??"",o.filePathWithLine=t.path?.filePathWithLine??"",o.fullFilePath=t.path?.fullFilePath??"";let a=e.parentNames?.join(e.prettyErrorParentNamesSeparator);a=null!=a&&null!=t.name?a+e.prettyErrorParentNamesSeparator:void 0;const l=null!=t.name||null!=a?`${a??""}${t.name??""}`:"";o.name=l,o.nameWithDelimiterPrefix=l.length>0?e.prettyErrorLoggerNameDelimiter+l:"",o.nameWithDelimiterSuffix=l.length>0?l+e.prettyErrorLoggerNameDelimiter:"",null!=e.overwrite?.addPlaceholders&&e.overwrite.addPlaceholders(t,o);return{text:(0,n.formatTemplate)(e,r,o),template:r,placeholders:o}};const n=r(6710),s=r(6447)},5456(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.splitStackLines=n,t.sanitizeStackLines=s,t.toStackFrames=o,t.findFirstExternalFrameIndex=i,t.getFrameAt=a,t.getCleanStackLines=l,t.buildStackTrace=function(e,t){return o(l(e),t)},t.isIgnorableFrame=function(e,t){const r=e.filePath??"",n=e.fullFilePath??"";return t.some(e=>e.test(r)||e.test(n))},t.clampIndex=c,t.pickCallerStackFrame=function(e,t,n={}){const s=o(l(e),t);if(0===s.length)return;const u=n.ignorePatterns??r,g=i(s,u),h=null!=n.stackDepthLevel?n.stackDepthLevel:g;return a(s,c(h,s.length))},t.getDefaultIgnorePatterns=function(){return[...r]};const r=[/(?:^|[\\/])node_modules[\\/].*tslog/i,/(?:^|[\\/])deps[\\/].*tslog/i,/tslog[\\/]+src[\\/]+internal[\\/]/i,/tslog[\\/]+src[\\/]BaseLogger/i,/tslog[\\/]+src[\\/]index/i];function n(e){const t="string"==typeof e?.stack?e.stack:void 0;return null==t||0===t.length?[]:t.split("\n").map(e=>e.trimEnd())}function s(e){return e.filter(e=>e.length>0&&!/^\s*Error\b/.test(e))}function o(e,t){const r=[];for(const n of e){const e=t(n);null!=e&&r.push(e)}return r}function i(e,t=r){for(let r=0;r<e.length;r+=1){const n=e[r],s=n.filePath??"",o=n.fullFilePath??"";if(!t.some(e=>e.test(s)||e.test(o)))return r}return 0}function a(e,t){if(!(t<0||t>=e.length))return e[t]}function l(e){return s(n(e))}function c(e,t){return e<0?0:e>=t?Math.max(0,t-1):e}},6198(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.inspect=o,t.formatValue=v,t.formatWithOptions=function(e,...t){const r={seen:[],stylize:a};null!=e&&S(r,e);const n=t[0];let i=0,l="",c="";if("string"==typeof n){if(1===t.length)return n;let a,u=0;for(let c=0;c<n.length-1;c++)if(37===n.charCodeAt(c)){const g=n.charCodeAt(++c);if(i+1!==t.length){switch(g){case 115:{const n=t[++i];a="number"==typeof n||"bigint"==typeof n?w(r,n):"object"!=typeof n||null===n?String(n):o(n,{...e,compact:3,colors:!1,depth:0});break}case 106:a=(0,s.jsonStringifyRecursive)(t[++i]);break;case 100:{const e=t[++i];a="bigint"==typeof e?w(r,e):"symbol"==typeof e?"NaN":w(r,e);break}case 79:a=o(t[++i],e);break;case 111:a=o(t[++i],{...e,showHidden:!0,showProxy:!0,depth:4});break;case 105:{const e=t[++i];a="bigint"==typeof e?w(r,e):"symbol"==typeof e?"NaN":w(r,parseInt(a));break}case 102:{const e=t[++i];a="symbol"==typeof e?"NaN":w(r,parseInt(e));break}case 99:i+=1,a="";break;case 37:l+=n.slice(u,c),u=c+1;continue;default:continue}u!==c-1&&(l+=n.slice(u,c-1)),l+=a,u=c+1}else 37===g&&(l+=n.slice(u,c),u=c+1)}0!==u&&(i++,c=" ",u<n.length&&(l+=n.slice(u)))}for(;i<t.length;){const r=t[i];l+=c,l+="string"!=typeof r?o(r,e):r,c=" ",i++}return l};const n=r(1135),s=r(6008);function o(e,t){const r={seen:[],stylize:a};return null!=t&&S(r,t),i(r.showHidden)&&(r.showHidden=!1),i(r.depth)&&(r.depth=2),i(r.colors)&&(r.colors=!0),i(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),v(r,e,r.depth)}function i(e){return void 0===e}function a(e){return e}function l(e,t){const r=o.styles[t];return null!=r&&null!=o?.colors?.[r]?.[0]&&null!=o?.colors?.[r]?.[1]?"["+o.colors[r][0]+"m"+e+"["+o.colors[r][1]+"m":e}function c(e){return"function"==typeof e}function u(e){return"string"==typeof e}function g(e){return null===e}function h(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function f(e){return p(e)&&"[object RegExp]"===y(e)}function p(e){return"object"==typeof e&&null!==e}function d(e){return p(e)&&("[object Error]"===y(e)||e instanceof Error)}function m(e){return p(e)&&"[object Date]"===y(e)}function y(e){return Object.prototype.toString.call(e)}function b(e){return"["+Error.prototype.toString.call(e)+"]"}function v(e,t,r=0){if(e.customInspect&&null!=t&&c(t)&&t?.inspect!==o&&(!t?.constructor||t?.constructor.prototype!==t)){if("function"!=typeof t.inspect&&null!=t.toString)return t.toString();let n=t?.inspect(r,e);return u(n)||(n=v(e,n,r)),n}const n=w(e,t);if(n)return n;let s=Object.keys(t);const i=function(e){const t={};return e.forEach(e=>{t[e]=!0}),t}(s);try{e.showHidden&&Object.getOwnPropertyNames&&(s=Object.getOwnPropertyNames(t))}catch{}if(d(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return b(t);if(0===s.length){if(!c(e.stylize))return t;if(c(t)){const r=t.name?": "+t.name:"";return e.stylize("[Function"+r+"]","special")}if(f(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(m(t))return e.stylize(Date.prototype.toISOString.call(t),"date");if(d(t))return b(t)}let a,l="",g=!1,p=["{\n","\n}"];if(Array.isArray(t)&&(g=!0,p=["[\n","\n]"]),c(t)){l=" [Function"+(t.name?": "+t.name:"")+"]"}return f(t)&&(l=" "+RegExp.prototype.toString.call(t)),m(t)&&(l=" "+Date.prototype.toUTCString.call(t)),d(t)&&(l=" "+b(t)),0!==s.length||g&&0!=t.length?r<0?f(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),a=g?function(e,t,r,n,s){const o=[];for(let s=0,i=t.length;s<i;++s)h(t,String(s))?o.push(O(e,t,r,n,String(s),!0)):o.push("");return s.forEach(s=>{s.match(/^\d+$/)||o.push(O(e,t,r,n,s,!0))}),o}(e,t,r,i,s):s.map(n=>O(e,t,r,i,n,g)),e.seen.pop(),function(e,t,r){return r[0]+(""===t?"":t+"\n")+" "+e.join(",\n ")+" "+r[1]}(a,l,p)):p[0]+l+p[1]}function O(e,t,r,n,s,o){let a,l,c={value:void 0};try{c.value=t[s]}catch{}try{Object.getOwnPropertyDescriptor&&(c=Object.getOwnPropertyDescriptor(t,s)||c)}catch{}if(c.get?l=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(l=e.stylize("[Setter]","special")),h(n,s)||(a="["+s+"]"),l||(e.seen.indexOf(c.value)<0?(l=g(r)?v(e,c.value,void 0):v(e,c.value,r-1),l.indexOf("\n")>-1&&(l=o?l.split("\n").map(e=>" "+e).join("\n").substr(2):"\n"+l.split("\n").map(e=>" "+e).join("\n"))):l=e.stylize("[Circular]","special")),i(a)){if(o&&s.match(/^\d+$/))return l;a=JSON.stringify(""+s),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,"\\'").replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+l}function w(e,t){if(i(t))return e.stylize("undefined","undefined");if(u(t)){const r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,"\\'")+"'";return e.stylize(r,"string")}return"number"==typeof t?e.stylize(""+t,"number"):function(e){return"boolean"==typeof e}(t)?e.stylize(""+t,"boolean"):g(t)?e.stylize("null","null"):void 0}function S(e,t){const r={...e};if(!t||!p(t))return e;const n={...t},s=Object.keys(t);let o=s.length;for(;o--;)r[s[o]]=n[s[o]];return r}o.colors=n.prettyLogStyles,o.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"}},1135(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prettyLogStyles=void 0,t.prettyLogStyles={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},9634(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.urlToObject=function(e){return{href:e.href,protocol:e.protocol,username:e.username,password:e.password,host:e.host,hostname:e.hostname,port:e.port,pathname:e.pathname,search:e.search,searchParams:[...e.searchParams].map(([e,t])=>({key:e,value:t})),hash:e.hash,origin:e.origin}}}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}const n=r(6342),s=r(9274),o=r(3260),i=r(9432);global.Scratch=global.Scratch||{},global.Scratch.ArgumentType=n,global.Scratch.BlockType=s,global.Scratch.TargetType=i;const a=new class{constructor(){this.nextExtensionId=0,this.initialRegistrations=[],o.waitForConnection.then(()=>{o.call("extensions","allocateWorker").then(e=>{const[t,r]=e;this.workerId=t;try{importScripts(r);const e=this.initialRegistrations;this.initialRegistrations=null,Promise.all(e).then(()=>o.call("extensions","onWorkerInit",t))}catch(e){o.call("extensions","onWorkerInit",t,e)}})}),this.extensions=[]}register(e){const t=this.nextExtensionId++;this.extensions.push(e);const r="extension.".concat(this.workerId,".").concat(t),n=o.setService(r,e).then(()=>o.call("extensions","registerExtensionService",r));return this.initialRegistrations&&this.initialRegistrations.push(n),n}};return global.Scratch.extensions={register:a.register.bind(a)},{}})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VirtualMachine=t():e.VirtualMachine=t()}(global,()=>(()=>{var e={92589(e,t,r){const n=r(73707);e.exports=class{constructor(){this.callbacks=[],this.nextResponseId=0}call(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),s=2;s<r;s++)n[s-2]=arguments[s];return this.transferCall(e,t,null,...n)}transferCall(e,t,r){try{const{provider:i,isRemote:a}=this._getServiceProvider(e);if(i){for(var n=arguments.length,s=new Array(n>3?n-3:0),o=3;o<n;o++)s[o-3]=arguments[o];if(a)return this._remoteTransferCall(i,e,t,r,...s);const l=i[t].apply(i,s);return Promise.resolve(l)}return Promise.reject(new Error("Service not found: ".concat(e)))}catch(e){return Promise.reject(e)}}_isRemoteService(e){return this._getServiceProvider(e).isRemote}_remoteCall(e,t,r){for(var n=arguments.length,s=new Array(n>3?n-3:0),o=3;o<n;o++)s[o-3]=arguments[o];return this._remoteTransferCall(e,t,r,null,...s)}_remoteTransferCall(e,t,r,n){for(var s=arguments.length,o=new Array(s>4?s-4:0),i=4;i<s;i++)o[i-4]=arguments[i];return new Promise((s,i)=>{const a=this._storeCallbacks(s,i);o.length>0&&"function"==typeof o[o.length-1].yield&&o.pop(),n?e.postMessage({service:t,method:r,responseId:a,args:o},n):e.postMessage({service:t,method:r,responseId:a,args:o})})}_storeCallbacks(e,t){const r=this.nextResponseId++;return this.callbacks[r]=[e,t],r}_deliverResponse(e,t){try{const[r,n]=this.callbacks[e];delete this.callbacks[e],t.error?n(t.error):r(t.result)}catch(e){n.error("Dispatch callback failed: ".concat(JSON.stringify(e)))}}_onMessage(e,t){const r=t.data;let s;r.args=r.args||[],r.service?s="dispatch"===r.service?this._onDispatchMessage(e,r):this.call(r.service,r.method,...r.args):void 0===r.responseId?n.error("Dispatch caught malformed message from a worker: ".concat(JSON.stringify(t))):this._deliverResponse(r.responseId,r),s&&(void 0===r.responseId?n.error("Dispatch message missing required response ID: ".concat(JSON.stringify(t))):s.then(t=>e.postMessage({responseId:r.responseId,result:t}),t=>e.postMessage({responseId:r.responseId,error:t})))}_getServiceProvider(e){throw new Error("Could not get provider for ".concat(e,": _getServiceProvider not implemented"))}_onDispatchMessage(e,t){throw new Error("Unimplemented dispatch message handler cannot handle ".concat(t.method," method"))}}},63260(e,t,r){const n=r(92589),s=r(73707);e.exports=new class extends n{constructor(){super(),this._connectionPromise=new Promise(e=>{this._onConnect=e}),this.services={},this._onMessage=this._onMessage.bind(this,self),"undefined"!=typeof self&&(self.onmessage=this._onMessage)}get waitForConnection(){return this._connectionPromise}setService(e,t){return Object.prototype.hasOwnProperty.call(this.services,e)&&s.warn("Worker dispatch replacing existing service provider for ".concat(e)),this.services[e]=t,this.waitForConnection.then(()=>this._remoteCall(self,"dispatch","setService",e))}_getServiceProvider(e){const t=this.services[e];return{provider:t||self,isRemote:!t}}_onDispatchMessage(e,t){let r;switch(t.method){case"handshake":r=this._onConnect();break;case"terminate":setTimeout(()=>self.close(),0),r=Promise.resolve();break;default:s.error("Worker dispatch received message for unknown method: ".concat(t.method))}return r}}},56342(e){e.exports={ANGLE:"angle",BOOLEAN:"Boolean",COLOR:"color",NUMBER:"number",STRING:"string",MATRIX:"matrix",NOTE:"note",IMAGE:"image"}},39274(e){e.exports={BOOLEAN:"Boolean",BUTTON:"button",COMMAND:"command",CONDITIONAL:"conditional",EVENT:"event",HAT:"hat",LOOP:"loop",REPORTER:"reporter"}},49432(e){e.exports={SPRITE:"sprite",STAGE:"stage"}},73707(e,t,r){const{Logger:n}=r(57039);e.exports=new n({name:"scratch-vm"})},20181(e){"use strict";e.exports=require("buffer")},16386(e,t,r){"use strict";var n=r(20181).Buffer,s=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||s(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseLogger=t.loggerEnvironment=void 0,t.createLoggerEnvironment=p;const i=r(9634),a=r(28799),l=r(38078),c=r(66710),u=r(56198),g=r(5456),h=r(62400),f=r(46008);function p(){const e=function(){if((0,h.isBrowserEnvironment)()){const e=globalThis.navigator;return{name:"browser",userAgent:e?.userAgent}}const e=globalThis;if("function"==typeof e.importScripts)return{name:"worker",userAgent:e.navigator?.userAgent};const t=globalThis;if(null!=t.Bun){const e=t.Bun.version;return{name:"bun",version:null!=e?`bun/${e}`:void 0,hostname:L(t.process,t.Deno,t.Bun,t.location)}}if(null!=t.Deno){const e=function(e){try{if("function"==typeof e?.hostname){const t=e.hostname();if(null!=t&&t.length>0)return t}}catch{}const t=globalThis.location?.hostname;if(null!=t&&t.length>0)return t;return}(t.Deno),r=t.Deno?.version?.deno;return{name:"deno",version:null!=r?`deno/${r}`:void 0,hostname:e??L(t.process,t.Deno,t.Bun,t.location)}}if(null!=t.process?.versions?.node||null!=t.process?.version)return{name:"node",version:t.process?.versions?.node??t.process?.version,hostname:L(t.process,t.Deno,t.Bun,t.location)};if(null!=t.process)return{name:"node",version:"unknown",hostname:L(t.process,t.Deno,t.Bun,t.location)};return{name:"unknown"}}(),t=function(t){if("browser"===t.name||"worker"===t.name)return{runtime:t.name,browser:t.userAgent};const r={runtime:t.name};"node"!==e.name&&"deno"!==e.name&&"bun"!==e.name||(r.runtimeVersion=t.version??"unknown");"node"!==e.name&&"deno"!==e.name&&"bun"!==e.name||(r.hostname=t.hostname??"unknown");return r}(e),r="browser"===e.name||"worker"===e.name,s=r?[...(0,g.getDefaultIgnorePatterns)(),/node_modules[\\/].*tslog/i]:[...(0,g.getDefaultIgnorePatterns)(),/node:(?:internal|vm)/i,/\binternal[\\/]/i];let o;const i={getMeta:(e,r,n,s,o,a)=>Object.assign({},t,{name:o,parentNames:a,date:new Date,logLevelId:e,logLevelName:r,path:s?void 0:i.getCallerStackFrame(n)}),getCallerStackFrame(e,t=new Error){const r=(0,g.buildStackTrace)(t,e=>p(e));if(0===r.length)return{};const n=(0,g.findFirstExternalFrameIndex)(r,s);return r[Number.isFinite(e)&&e>=0?(0,g.clampIndex)(e,r.length):(0,g.clampIndex)(n,r.length)]??{}},getErrorTrace:e=>(0,g.buildStackTrace)(e,e=>p(e)),isError:e=>function(e){if(e instanceof Error)return!0;if(null!=e&&"object"==typeof e){const t=Object.prototype.toString.call(e);if(/\[object .*Error\]/.test(t))return!0;const r=e.name;if("string"==typeof r&&r.endsWith("Error"))return!0}return!1}(e),isBuffer:e=>void 0!==n&&"function"==typeof n.isBuffer&&n.isBuffer(e),prettyFormatLogObj:(e,t)=>e.reduce((e,r)=>(i.isError(r)?e.errors.push(i.prettyFormatErrorObj(r,t)):e.args.push(r),e),{args:[],errors:[]}),prettyFormatErrorObj(e,t){const r=v(i.getErrorTrace(e),t),n=(0,l.collectErrorCauses)(e).map((e,r)=>[`Caused by (${r+1}): ${e.name??"Error"}${e.message?`: ${e.message}`:""}`,...v((0,g.buildStackTrace)(e,e=>p(e)),t)].join("\n")),s={errorName:` ${e.name} `,errorMessage:O(e),errorStack:[...r,...n].join("\n")};return(0,c.formatTemplate)(t,t.prettyErrorTemplate,s)},transportFormatted(t,r,n,s,o){const i=!1!==o.stylePrettyLogs,l=(n.length>0&&r.length>0?"\n":"")+n.join("\n"),c=t.replace(d,"");const u=i?t:c;if(function(t){return t&&("browser"===e.name||"worker"===e.name)&&(0,h.consoleSupportsCssStyling)()}(i)){o.prettyInspectOptions.colors=!1;const e=j(o.prettyInspectOptions,r),t=null!=s?function(e,t){if(null==t)return{text:"",styles:[]};const{template:r,placeholders:n}=(0,a.buildPrettyMeta)(e,t),s=[],o=[];let i=0;const l=/{{(.+?)}}/g;let c;for(;null!=(c=l.exec(r));){c.index>i&&s.push(r.slice(i,c.index));const t=c[1],a=null!=n[t]?String(n[t]):"",u=S(w(e.prettyLogStyles?.[t],a));u.length>0?(s.push(`%c${a}%c`),o.push(u,"")):s.push(a),i=l.lastIndex}i<r.length&&s.push(r.slice(i));return{text:s.join(""),styles:o}}(o,s):{text:c,styles:[]},n=t.text.length>0&&t.styles.length>0,i=(n?t.text:c)+e+l;return void(n?console.log(i,...t.styles):console.log(i))}o.prettyInspectOptions.colors=i;const g=j(o.prettyInspectOptions,r);console.log(u+g+l)},transportJSON(e){console.log((0,f.jsonStringifyRecursive)(e))}};return"test"===function(){const e=globalThis?.process;return e?.env?.NODE_ENV}()&&(i.__resetWorkingDirectoryCacheForTests=()=>{o=void 0}),i;function p(e){return r?function(e){const t=globalThis.location?.origin;if(null==e)return;const r=e.match(b);if(!r)return;const n=r[1]?.replace(/\?.*$/,"");if(null==n)return;const s=n.split("/"),o=r[2],i=r[3],a=s[s.length-1];return{fullFilePath:t?`${t}${n}`:n,fileName:a,fileNameWithLine:a&&o?`${a}:${o}`:void 0,fileColumn:i,fileLine:o,filePath:n,filePathWithLine:o?`${n}:${o}`:void 0,method:void 0}}(e):function(e){if("string"!=typeof e||0===e.length)return;const t=e.trim();if(!t.includes(" at ")&&!t.startsWith("at "))return;const r=t.replace(/^at\s+/,"");let n,s=r;const i=r.match(/^(.*?)\s+\((.*)\)$/);i&&(n=i[1],s=i[2]);const a=s.replace(/^\(/,"").replace(/\)$/,""),l=a.replace(/\?.*$/,"");let c,u,g=l;const f=l.split(":");f.length>=3&&/^\d+$/.test(f[f.length-1]??"")?(u=f.pop(),c=f.pop(),g=f.join(":")):f.length>=2&&/^\d+$/.test(f[f.length-1]??"")&&(c=f.pop(),g=f.join(":"));let p=g.replace(/^file:\/\//,"");const d=function(){void 0===o&&(o=(0,h.safeGetCwd)()??null);return o??void 0}();null!=d&&p.startsWith(d)&&(p=p.slice(d.length),p=p.replace(/^[\\/]/,""));0===p.length&&(p=g);const m=function(e){if("string"!=typeof e||0===e.length)return e;const t=e.replace(/\\+/g,"\\").replace(/\\/g,"/"),r=t.startsWith("//"),n=t.startsWith("/")&&!r,s=t.match(/^[A-Za-z]:/),o=s?s[0]:"",i=(o?t.slice(o.length):t).split("/"),a=[];for(const e of i)""!==e&&"."!==e&&(".."!==e?a.push(e):a.length>0&&a.pop());let l=a.join("/");r?l=`//${l}`:n?l=`/${l}`:""!==o&&(l=`${o}${l.length>0?`/${l}`:""}`);if(0===l.length)return e;return l}(p),y=m.length>0?m:p,b=y.split(/\\|\//),v=b[b.length-1],O=v&&c?`${v}:${c}`:void 0,w=y&&c?`${y}:${c}`:void 0;return{fullFilePath:a,fileName:v,fileNameWithLine:O,fileColumn:u,fileLine:c,filePath:y,filePathWithLine:w,method:n}}(e)}function v(e,t){return e.map(e=>(0,c.formatTemplate)(t,t.prettyErrorStackTemplate,{...e},!0))}function O(e){return Object.getOwnPropertyNames(e).filter(e=>"stack"!==e&&"cause"!==e).reduce((t,r)=>{const n=e[r];return"function"==typeof n||t.push(String(n)),t},[]).join(", ")}function w(e,t){if(null==e)return[];if("string"==typeof e)return[e];if(Array.isArray(e))return e.flatMap(e=>w(e,t));if("object"==typeof e){const r=e[t.trim()]??e["*"];return null==r?[]:w(r,t)}return[]}function S(e){const t=new Set,r=[];for(const n of e){const e=k(n);null!=e&&e.length>0&&!t.has(e)&&(t.add(e),r.push(e))}return r.join("; ")}function k(e){const t=m[e];if(null!=t)return`color: ${t}`;const r=y[e];if(null!=r)return`background-color: ${r}`;switch(e){case"bold":return"font-weight: bold";case"dim":return"opacity: 0.75";case"italic":return"font-style: italic";case"underline":return"text-decoration: underline";case"overline":return"text-decoration: overline";case"inverse":return"filter: invert(1)";case"hidden":return"visibility: hidden";case"strikethrough":return"text-decoration: line-through";default:return}}function j(e,t){try{return(0,u.formatWithOptions)(e,...t)}catch{return t.map(P).join(" ")}}function P(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}function L(e,t,r,n){const s=e?.env?.HOSTNAME??e?.env?.HOST??e?.env?.COMPUTERNAME;if(null!=s&&s.length>0)return s;const o=r?.env?.HOSTNAME??r?.env?.HOST??r?.env?.COMPUTERNAME;if(null!=o&&o.length>0)return o;try{const e=t?.env?.get;if("function"==typeof e){const t=e("HOSTNAME");if(null!=t&&t.length>0)return t}}catch{}return null!=n?.hostname&&n.hostname.length>0?n.hostname:void 0}}const d=/\u001b\[[0-9;]*m/g,m={black:"#000000",red:"#ef5350",green:"#66bb6a",yellow:"#fdd835",blue:"#42a5f5",magenta:"#ab47bc",cyan:"#26c6da",white:"#fafafa",blackBright:"#424242",redBright:"#ff7043",greenBright:"#81c784",yellowBright:"#ffe082",blueBright:"#64b5f6",magentaBright:"#ce93d8",cyanBright:"#4dd0e1",whiteBright:"#ffffff"},y={bgBlack:"#000000",bgRed:"#ef5350",bgGreen:"#66bb6a",bgYellow:"#fdd835",bgBlue:"#42a5f5",bgMagenta:"#ab47bc",bgCyan:"#26c6da",bgWhite:"#fafafa",bgBlackBright:"#424242",bgRedBright:"#ff7043",bgGreenBright:"#81c784",bgYellowBright:"#ffe082",bgBlueBright:"#64b5f6",bgMagentaBright:"#ce93d8",bgCyanBright:"#4dd0e1",bgWhiteBright:"#ffffff"},b=/(?:(?:file|https?|global code|[^@]+)@)?(?:file:)?((?:\/[^:/]+){2,})(?::(\d+))?(?::(\d+))?/,v=p();t.loggerEnvironment=v,o(r(20299),t);t.BaseLogger=class{constructor(e,t,r=Number.NaN){this.logObj=t,this.stackDepthLevel=r,this.runtime=v,this.maxErrorCauseDepth=5,this.settings={type:e?.type??"pretty",name:e?.name,parentNames:e?.parentNames,minLevel:e?.minLevel??0,argumentsArrayName:e?.argumentsArrayName,hideLogPositionForProduction:e?.hideLogPositionForProduction??!1,prettyLogTemplate:e?.prettyLogTemplate??"{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}\t{{logLevelName}}\t{{filePathWithLine}}{{nameWithDelimiterPrefix}}\t",prettyErrorTemplate:e?.prettyErrorTemplate??"\n{{errorName}} {{errorMessage}}\nerror stack:\n{{errorStack}}",prettyErrorStackTemplate:e?.prettyErrorStackTemplate??" • {{fileName}}\t{{method}}\n\t{{filePathWithLine}}",prettyErrorParentNamesSeparator:e?.prettyErrorParentNamesSeparator??":",prettyErrorLoggerNameDelimiter:e?.prettyErrorLoggerNameDelimiter??"\t",stylePrettyLogs:e?.stylePrettyLogs??!0,prettyLogTimeZone:e?.prettyLogTimeZone??"UTC",prettyLogStyles:e?.prettyLogStyles??{logLevelName:{"*":["bold","black","bgWhiteBright","dim"],SILLY:["bold","white"],TRACE:["bold","whiteBright"],DEBUG:["bold","green"],INFO:["bold","blue"],WARN:["bold","yellow"],ERROR:["bold","red"],FATAL:["bold","redBright"]},dateIsoStr:"white",filePathWithLine:"white",name:["white","bold"],nameWithDelimiterPrefix:["white","bold"],nameWithDelimiterSuffix:["white","bold"],errorName:["bold","bgRedBright","whiteBright"],fileName:["yellow"],fileNameWithLine:"white"},prettyInspectOptions:e?.prettyInspectOptions??{colors:!0,compact:!1,depth:1/0},metaProperty:e?.metaProperty??"_meta",maskPlaceholder:e?.maskPlaceholder??"[***]",maskValuesOfKeys:e?.maskValuesOfKeys??["password"],maskValuesOfKeysCaseInsensitive:e?.maskValuesOfKeysCaseInsensitive??!1,maskValuesRegEx:e?.maskValuesRegEx,prefix:[...e?.prefix??[]],attachedTransports:[...e?.attachedTransports??[]],overwrite:{mask:e?.overwrite?.mask,toLogObj:e?.overwrite?.toLogObj,addMeta:e?.overwrite?.addMeta,addPlaceholders:e?.overwrite?.addPlaceholders,formatMeta:e?.overwrite?.formatMeta,formatLogObj:e?.overwrite?.formatLogObj,transportFormatted:e?.overwrite?.transportFormatted,transportJSON:e?.overwrite?.transportJSON}},this.captureStackForMeta=this._shouldCaptureStack()}log(e,t,...r){if(e<this.settings.minLevel)return;const n=this._resolveLogArguments(r),s=[...this.settings.prefix,...n],o=null!=this.settings.overwrite?.mask?this.settings.overwrite?.mask(s):null!=this.settings.maskValuesOfKeys&&this.settings.maskValuesOfKeys.length>0?this._mask(s):s,i=null!=this.logObj?this._recursiveCloneAndExecuteFunctions(this.logObj):void 0,a=null!=this.settings.overwrite?.toLogObj?this.settings.overwrite?.toLogObj(o,i):this._toLogObj(o,i),l=null!=this.settings.overwrite?.addMeta?this.settings.overwrite?.addMeta(a,e,t):this._addMetaToLogObj(a,e,t),c=l?.[this.settings.metaProperty];let u,g;if(null!=this.settings.overwrite?.formatMeta&&(u=this.settings.overwrite?.formatMeta(l?.[this.settings.metaProperty])),null!=this.settings.overwrite?.formatLogObj&&(g=this.settings.overwrite?.formatLogObj(o,this.settings)),"pretty"===this.settings.type&&(u=u??this._prettyFormatLogObjMeta(l?.[this.settings.metaProperty]),g=g??v.prettyFormatLogObj(o,this.settings)),null!=u&&null!=g)if(null!=this.settings.overwrite?.transportFormatted){const e=this.settings.overwrite.transportFormatted,t=e.length;t<4?e(u,g.args,g.errors):4===t?e(u,g.args,g.errors,c):e(u,g.args,g.errors,c,this.settings)}else v.transportFormatted(u,g.args,g.errors,c,this.settings);else null!=this.settings.overwrite?.transportJSON?this.settings.overwrite.transportJSON(l):"hidden"!==this.settings.type&&v.transportJSON(l);return null!=this.settings.attachedTransports&&this.settings.attachedTransports.length>0&&this.settings.attachedTransports.forEach(e=>{e(l)}),l}attachTransport(e){this.settings.attachedTransports.push(e)}getSubLogger(e,t){const r={...this.settings,...e,parentNames:null!=this.settings?.parentNames&&null!=this.settings?.name?[...this.settings.parentNames,this.settings.name]:null!=this.settings?.name?[this.settings.name]:void 0,prefix:[...this.settings.prefix,...e?.prefix??[]]};return new this.constructor(r,t??this.logObj,this.stackDepthLevel)}_mask(e){const t=this._getMaskKeys();return e?.map(e=>this._recursiveCloneAndMaskValuesOfKeys(e,t))}_getMaskKeys(){const e=this.settings.maskValuesOfKeys??[],t=e.map(String).join("|");if(!0===this.settings.maskValuesOfKeysCaseInsensitive){if(this.maskKeysCache?.source===e&&!0===this.maskKeysCache.caseInsensitive&&this.maskKeysCache.signature===t)return this.maskKeysCache.normalized;const r=e.map(e=>"string"==typeof e?e.toLowerCase():String(e).toLowerCase());return this.maskKeysCache={source:e,caseInsensitive:!0,normalized:r,signature:t},r}return this.maskKeysCache={source:e,caseInsensitive:!1,normalized:e,signature:t},e}_resolveLogArguments(e){if(1===e.length&&"function"==typeof e[0]){const t=e[0];if(0===t.length){const e=t();return Array.isArray(e)?e:[e]}}return e}_recursiveCloneAndMaskValuesOfKeys(e,t,r=[]){if(r.includes(e))return{...e};if("object"==typeof e&&null!==e&&r.push(e),v.isError(e)||v.isBuffer(e))return e;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return e.map(e=>this._recursiveCloneAndMaskValuesOfKeys(e,t,r));if(e instanceof Date)return new Date(e.getTime());if(e instanceof URL)return(0,i.urlToObject)(e);if(null!==e&&"object"==typeof e){const n=v.isError(e)?this._cloneError(e):Object.create(Object.getPrototypeOf(e));return Object.getOwnPropertyNames(e).reduce((n,s)=>{const o=!0!==this.settings?.maskValuesOfKeysCaseInsensitive?s:"string"==typeof s?s.toLowerCase():String(s).toLowerCase();return n[s]=t.includes(o)?this.settings.maskPlaceholder:(()=>{try{return this._recursiveCloneAndMaskValuesOfKeys(e[s],t,r)}catch{return null}})(),n},n)}if("string"==typeof e){let t=e;for(const e of this.settings?.maskValuesRegEx||[])t=t.replace(e,this.settings?.maskPlaceholder||"");return t}return e}_recursiveCloneAndExecuteFunctions(e,t=[]){return this.isObjectOrArray(e)&&t.includes(e)?this.shallowCopy(e):(this.isObjectOrArray(e)&&t.push(e),Array.isArray(e)?e.map(e=>this._recursiveCloneAndExecuteFunctions(e,t)):e instanceof Date?new Date(e.getTime()):this.isObject(e)?Object.getOwnPropertyNames(e).reduce((r,n)=>{const s=Object.getOwnPropertyDescriptor(e,n);if(s){Object.defineProperty(r,n,s);const o=e[n];r[n]="function"==typeof o?o():this._recursiveCloneAndExecuteFunctions(o,t)}return r},Object.create(Object.getPrototypeOf(e))):e)}isObjectOrArray(e){return"object"==typeof e&&null!==e}isObject(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}shallowCopy(e){return Array.isArray(e)?[...e]:{...e}}_toLogObj(e,t={}){return e=e?.map(e=>v.isError(e)?this._toErrorObject(e):e),t=null==this.settings.argumentsArrayName?1!==e.length||Array.isArray(e[0])||!0===v.isBuffer(e[0])||e[0]instanceof Date?{...t,...e}:"object"==typeof e[0]&&null!=e[0]?{...e[0],...t}:{0:e[0],...t}:{...t,[this.settings.argumentsArrayName]:e}}_cloneError(e){const t=new e.constructor;return Object.getOwnPropertyNames(e).forEach(r=>{t[r]=e[r]}),t}_toErrorObject(e,t=0,r=new Set){r.has(e)||r.add(e);const n={nativeError:e,name:e.name??"Error",message:e.message,stack:v.getErrorTrace(e)};if(t>=this.maxErrorCauseDepth)return n;const s=e.cause;if(null!=s){const e=(0,l.toError)(s);r.has(e)||(n.cause=this._toErrorObject(e,t+1,r))}return n}_addMetaToLogObj(e,t,r){return{...e,[this.settings.metaProperty]:v.getMeta(t,r,this.stackDepthLevel,!this.captureStackForMeta,this.settings.name,this.settings.parentNames)}}_shouldCaptureStack(){if(this.settings.hideLogPositionForProduction)return!1;if("json"===this.settings.type)return!0;const e=this.settings.prettyLogTemplate??"";return!!/{{\s*(file(Name|Path|Line|PathWithLine|NameWithLine)|fullFilePath)\s*}}/.test(e)}_prettyFormatLogObjMeta(e){return(0,a.buildPrettyMeta)(this.settings,e).text}}},46447(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatNumberAddZeros=function(e,t=2,r=0){if(null!=e&&isNaN(e))return"";return e=null!=e?e+r:e,2===t?null==e?"--":e<10?"0"+e:e.toString():null==e?"---":e<10?"00"+e:e<100?"0"+e:e.toString()}},66710(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatTemplate=function(e,t,r,s=!1){const o=String(t),i=(e,t)=>`[${t[0]}m${e}[${t[1]}m`,a=(e,t)=>null!=t&&"string"==typeof t?i(e,n.prettyLogStyles[t]):null!=t&&Array.isArray(t)?t.reduce((e,t)=>a(e,t),e):null!=t&&null!=t[e.trim()]?a(e,t[e.trim()]):null!=t&&null!=t["*"]?a(e,t["*"]):e;return o.replace(/{{(.+?)}}/g,(t,o)=>{const l=null!=r[o]?String(r[o]):s?"":t;return e.stylePrettyLogs?a(l,e?.prettyLogStyles?.[o]??null)+i("",n.prettyLogStyles.reset):l})};const n=r(81135)},57039(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const o=r(16386);s(r(20299),t),s(r(16386),t);class i extends o.BaseLogger{constructor(e,t){const r={...e??{}};"undefined"!=typeof window&&"undefined"!=typeof document&&(r.stylePrettyLogs=e?.stylePrettyLogs??!0),super(r,t,Number.NaN)}log(e,t,...r){return super.log(e,t,...r)}silly(...e){return super.log(0,"SILLY",...e)}trace(...e){return super.log(1,"TRACE",...e)}debug(...e){return super.log(2,"DEBUG",...e)}info(...e){return super.log(3,"INFO",...e)}warn(...e){return super.log(4,"WARN",...e)}error(...e){return super.log(5,"ERROR",...e)}fatal(...e){return super.log(6,"FATAL",...e)}getSubLogger(e,t){return super.getSubLogger(e,t)}}t.Logger=i},20299(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},62400(e,t){"use strict";function r(){return"undefined"!=typeof window&&"undefined"!=typeof document}Object.defineProperty(t,"__esModule",{value:!0}),t.safeGetCwd=function(){try{const e=globalThis?.process;if("function"==typeof e?.cwd)return e.cwd()}catch{}try{const e=globalThis?.Deno;if("function"==typeof e?.cwd)return e.cwd()}catch{}return},t.isBrowserEnvironment=r,t.consoleSupportsCssStyling=function(){if(!r())return!1;const e=globalThis?.navigator,t=e?.userAgent??"";if(/firefox/i.test(t))return!0;const n=globalThis;if(n?.CSS?.supports?.("color","#000"))return!0;return/safari/i.test(t)&&!/chrome/i.test(t)}},38078(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.collectErrorCauses=function(e,t={}){const r=t.maxDepth??5,n=[],o=new Set;let i=e,a=0;for(;null!=i&&a<r;){const e=i?.cause;if(null==e||o.has(e))break;o.add(e),n.push(s(e)),i=e,a+=1}return n},t.toError=s,t.toErrorObject=function(e,t){return{nativeError:e,name:e.name??"Error",message:e.message??"",stack:(0,n.buildStackTrace)(e,t)}};const n=r(5456);function s(e){if(e instanceof Error)return e;const t=new Error("string"==typeof e?e:JSON.stringify(e));return"object"==typeof e&&null!=e&&Object.assign(t,e),t}},46008(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jsonStringifyRecursive=function(e){const t=new Set;return JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return"bigint"==typeof r?`${r}`:void 0===r?"[undefined]":r})}},28799(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.buildPrettyMeta=function(e,t){if(null==t)return{text:"",template:e.prettyLogTemplate,placeholders:{}};let r=e.prettyLogTemplate;const o={};r.includes("{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}")?r=r.replace("{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}","{{dateIsoStr}}"):"UTC"===e.prettyLogTimeZone?(o.yyyy=t.date?.getUTCFullYear()??"----",o.mm=(0,s.formatNumberAddZeros)(t.date?.getUTCMonth(),2,1),o.dd=(0,s.formatNumberAddZeros)(t.date?.getUTCDate(),2),o.hh=(0,s.formatNumberAddZeros)(t.date?.getUTCHours(),2),o.MM=(0,s.formatNumberAddZeros)(t.date?.getUTCMinutes(),2),o.ss=(0,s.formatNumberAddZeros)(t.date?.getUTCSeconds(),2),o.ms=(0,s.formatNumberAddZeros)(t.date?.getUTCMilliseconds(),3)):(o.yyyy=t.date?.getFullYear()??"----",o.mm=(0,s.formatNumberAddZeros)(t.date?.getMonth(),2,1),o.dd=(0,s.formatNumberAddZeros)(t.date?.getDate(),2),o.hh=(0,s.formatNumberAddZeros)(t.date?.getHours(),2),o.MM=(0,s.formatNumberAddZeros)(t.date?.getMinutes(),2),o.ss=(0,s.formatNumberAddZeros)(t.date?.getSeconds(),2),o.ms=(0,s.formatNumberAddZeros)(t.date?.getMilliseconds(),3));const i="UTC"===e.prettyLogTimeZone?t.date:null!=t.date?new Date(t.date.getTime()-6e4*t.date.getTimezoneOffset()):void 0;o.rawIsoStr=i?.toISOString()??"",o.dateIsoStr=i?.toISOString().replace("T"," ").replace("Z","")??"",o.logLevelName=t.logLevelName,o.fileNameWithLine=t.path?.fileNameWithLine??"",o.filePathWithLine=t.path?.filePathWithLine??"",o.fullFilePath=t.path?.fullFilePath??"";let a=e.parentNames?.join(e.prettyErrorParentNamesSeparator);a=null!=a&&null!=t.name?a+e.prettyErrorParentNamesSeparator:void 0;const l=null!=t.name||null!=a?`${a??""}${t.name??""}`:"";o.name=l,o.nameWithDelimiterPrefix=l.length>0?e.prettyErrorLoggerNameDelimiter+l:"",o.nameWithDelimiterSuffix=l.length>0?l+e.prettyErrorLoggerNameDelimiter:"",null!=e.overwrite?.addPlaceholders&&e.overwrite.addPlaceholders(t,o);return{text:(0,n.formatTemplate)(e,r,o),template:r,placeholders:o}};const n=r(66710),s=r(46447)},5456(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.splitStackLines=n,t.sanitizeStackLines=s,t.toStackFrames=o,t.findFirstExternalFrameIndex=i,t.getFrameAt=a,t.getCleanStackLines=l,t.buildStackTrace=function(e,t){return o(l(e),t)},t.isIgnorableFrame=function(e,t){const r=e.filePath??"",n=e.fullFilePath??"";return t.some(e=>e.test(r)||e.test(n))},t.clampIndex=c,t.pickCallerStackFrame=function(e,t,n={}){const s=o(l(e),t);if(0===s.length)return;const u=n.ignorePatterns??r,g=i(s,u),h=null!=n.stackDepthLevel?n.stackDepthLevel:g;return a(s,c(h,s.length))},t.getDefaultIgnorePatterns=function(){return[...r]};const r=[/(?:^|[\\/])node_modules[\\/].*tslog/i,/(?:^|[\\/])deps[\\/].*tslog/i,/tslog[\\/]+src[\\/]+internal[\\/]/i,/tslog[\\/]+src[\\/]BaseLogger/i,/tslog[\\/]+src[\\/]index/i];function n(e){const t="string"==typeof e?.stack?e.stack:void 0;return null==t||0===t.length?[]:t.split("\n").map(e=>e.trimEnd())}function s(e){return e.filter(e=>e.length>0&&!/^\s*Error\b/.test(e))}function o(e,t){const r=[];for(const n of e){const e=t(n);null!=e&&r.push(e)}return r}function i(e,t=r){for(let r=0;r<e.length;r+=1){const n=e[r],s=n.filePath??"",o=n.fullFilePath??"";if(!t.some(e=>e.test(s)||e.test(o)))return r}return 0}function a(e,t){if(!(t<0||t>=e.length))return e[t]}function l(e){return s(n(e))}function c(e,t){return e<0?0:e>=t?Math.max(0,t-1):e}},56198(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.inspect=o,t.formatValue=v,t.formatWithOptions=function(e,...t){const r={seen:[],stylize:a};null!=e&&S(r,e);const n=t[0];let i=0,l="",c="";if("string"==typeof n){if(1===t.length)return n;let a,u=0;for(let c=0;c<n.length-1;c++)if(37===n.charCodeAt(c)){const g=n.charCodeAt(++c);if(i+1!==t.length){switch(g){case 115:{const n=t[++i];a="number"==typeof n||"bigint"==typeof n?w(r,n):"object"!=typeof n||null===n?String(n):o(n,{...e,compact:3,colors:!1,depth:0});break}case 106:a=(0,s.jsonStringifyRecursive)(t[++i]);break;case 100:{const e=t[++i];a="bigint"==typeof e?w(r,e):"symbol"==typeof e?"NaN":w(r,e);break}case 79:a=o(t[++i],e);break;case 111:a=o(t[++i],{...e,showHidden:!0,showProxy:!0,depth:4});break;case 105:{const e=t[++i];a="bigint"==typeof e?w(r,e):"symbol"==typeof e?"NaN":w(r,parseInt(a));break}case 102:{const e=t[++i];a="symbol"==typeof e?"NaN":w(r,parseInt(e));break}case 99:i+=1,a="";break;case 37:l+=n.slice(u,c),u=c+1;continue;default:continue}u!==c-1&&(l+=n.slice(u,c-1)),l+=a,u=c+1}else 37===g&&(l+=n.slice(u,c),u=c+1)}0!==u&&(i++,c=" ",u<n.length&&(l+=n.slice(u)))}for(;i<t.length;){const r=t[i];l+=c,l+="string"!=typeof r?o(r,e):r,c=" ",i++}return l};const n=r(81135),s=r(46008);function o(e,t){const r={seen:[],stylize:a};return null!=t&&S(r,t),i(r.showHidden)&&(r.showHidden=!1),i(r.depth)&&(r.depth=2),i(r.colors)&&(r.colors=!0),i(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),v(r,e,r.depth)}function i(e){return void 0===e}function a(e){return e}function l(e,t){const r=o.styles[t];return null!=r&&null!=o?.colors?.[r]?.[0]&&null!=o?.colors?.[r]?.[1]?"["+o.colors[r][0]+"m"+e+"["+o.colors[r][1]+"m":e}function c(e){return"function"==typeof e}function u(e){return"string"==typeof e}function g(e){return null===e}function h(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function f(e){return p(e)&&"[object RegExp]"===y(e)}function p(e){return"object"==typeof e&&null!==e}function d(e){return p(e)&&("[object Error]"===y(e)||e instanceof Error)}function m(e){return p(e)&&"[object Date]"===y(e)}function y(e){return Object.prototype.toString.call(e)}function b(e){return"["+Error.prototype.toString.call(e)+"]"}function v(e,t,r=0){if(e.customInspect&&null!=t&&c(t)&&t?.inspect!==o&&(!t?.constructor||t?.constructor.prototype!==t)){if("function"!=typeof t.inspect&&null!=t.toString)return t.toString();let n=t?.inspect(r,e);return u(n)||(n=v(e,n,r)),n}const n=w(e,t);if(n)return n;let s=Object.keys(t);const i=function(e){const t={};return e.forEach(e=>{t[e]=!0}),t}(s);try{e.showHidden&&Object.getOwnPropertyNames&&(s=Object.getOwnPropertyNames(t))}catch{}if(d(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return b(t);if(0===s.length){if(!c(e.stylize))return t;if(c(t)){const r=t.name?": "+t.name:"";return e.stylize("[Function"+r+"]","special")}if(f(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(m(t))return e.stylize(Date.prototype.toISOString.call(t),"date");if(d(t))return b(t)}let a,l="",g=!1,p=["{\n","\n}"];if(Array.isArray(t)&&(g=!0,p=["[\n","\n]"]),c(t)){l=" [Function"+(t.name?": "+t.name:"")+"]"}return f(t)&&(l=" "+RegExp.prototype.toString.call(t)),m(t)&&(l=" "+Date.prototype.toUTCString.call(t)),d(t)&&(l=" "+b(t)),0!==s.length||g&&0!=t.length?r<0?f(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),a=g?function(e,t,r,n,s){const o=[];for(let s=0,i=t.length;s<i;++s)h(t,String(s))?o.push(O(e,t,r,n,String(s),!0)):o.push("");return s.forEach(s=>{s.match(/^\d+$/)||o.push(O(e,t,r,n,s,!0))}),o}(e,t,r,i,s):s.map(n=>O(e,t,r,i,n,g)),e.seen.pop(),function(e,t,r){return r[0]+(""===t?"":t+"\n")+" "+e.join(",\n ")+" "+r[1]}(a,l,p)):p[0]+l+p[1]}function O(e,t,r,n,s,o){let a,l,c={value:void 0};try{c.value=t[s]}catch{}try{Object.getOwnPropertyDescriptor&&(c=Object.getOwnPropertyDescriptor(t,s)||c)}catch{}if(c.get?l=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(l=e.stylize("[Setter]","special")),h(n,s)||(a="["+s+"]"),l||(e.seen.indexOf(c.value)<0?(l=g(r)?v(e,c.value,void 0):v(e,c.value,r-1),l.indexOf("\n")>-1&&(l=o?l.split("\n").map(e=>" "+e).join("\n").substr(2):"\n"+l.split("\n").map(e=>" "+e).join("\n"))):l=e.stylize("[Circular]","special")),i(a)){if(o&&s.match(/^\d+$/))return l;a=JSON.stringify(""+s),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,"\\'").replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+l}function w(e,t){if(i(t))return e.stylize("undefined","undefined");if(u(t)){const r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,"\\'")+"'";return e.stylize(r,"string")}return"number"==typeof t?e.stylize(""+t,"number"):function(e){return"boolean"==typeof e}(t)?e.stylize(""+t,"boolean"):g(t)?e.stylize("null","null"):void 0}function S(e,t){const r={...e};if(!t||!p(t))return e;const n={...t},s=Object.keys(t);let o=s.length;for(;o--;)r[s[o]]=n[s[o]];return r}o.colors=n.prettyLogStyles,o.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"}},81135(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prettyLogStyles=void 0,t.prettyLogStyles={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},9634(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.urlToObject=function(e){return{href:e.href,protocol:e.protocol,username:e.username,password:e.password,host:e.host,hostname:e.hostname,port:e.port,pathname:e.pathname,search:e.search,searchParams:[...e.searchParams].map(([e,t])=>({key:e,value:t})),hash:e.hash,origin:e.origin}}}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}const n=r(56342),s=r(39274),o=r(63260),i=r(49432);global.Scratch=global.Scratch||{},global.Scratch.ArgumentType=n,global.Scratch.BlockType=s,global.Scratch.TargetType=i;const a=new class{constructor(){this.nextExtensionId=0,this.initialRegistrations=[],o.waitForConnection.then(()=>{o.call("extensions","allocateWorker").then(e=>{const[t,r]=e;this.workerId=t;try{importScripts(r);const e=this.initialRegistrations;this.initialRegistrations=null,Promise.all(e).then(()=>o.call("extensions","onWorkerInit",t))}catch(e){o.call("extensions","onWorkerInit",t,e)}})}),this.extensions=[]}register(e){const t=this.nextExtensionId++;this.extensions.push(e);const r="extension.".concat(this.workerId,".").concat(t),n=o.setService(r,e).then(()=>o.call("extensions","registerExtensionService",r));return this.initialRegistrations&&this.initialRegistrations.push(n),n}};return global.Scratch.extensions={register:a.register.bind(a)},{}})());
2
2
  //# sourceMappingURL=extension-worker.js.map