factoriomod-debug 2.0.4 → 2.0.5

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/fmtk.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Xp=Object.create;var Mn=Object.defineProperty;var Yp=Object.getOwnPropertyDescriptor;var Qp=Object.getOwnPropertyNames;var Jp=Object.getPrototypeOf,Zp=Object.prototype.hasOwnProperty;var Q=(a,e)=>()=>(a&&(e=a(a=0)),e);var F=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),Z=(a,e)=>{for(var t in e)Mn(a,t,{get:e[t],enumerable:!0})},El=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Qp(e))!Zp.call(a,o)&&o!==t&&Mn(a,o,{get:()=>e[o],enumerable:!(n=Yp(e,o))||n.enumerable});return a};var le=(a,e,t)=>(t=a!=null?Xp(Jp(a)):{},El(e||!a||!a.__esModule?Mn(t,"default",{value:a,enumerable:!0}):t,a)),eh=a=>El(Mn({},"__esModule",{value:!0}),a);var Un=a=>new Uint8Array(Buffer.from(a,"base64"));var gi={};Z(gi,{default:()=>nh});var nh,xl=Q(()=>{nh=`
1
+ "use strict";var Xp=Object.create;var Mn=Object.defineProperty;var Yp=Object.getOwnPropertyDescriptor;var Qp=Object.getOwnPropertyNames;var Jp=Object.getPrototypeOf,Zp=Object.prototype.hasOwnProperty;var Q=(a,e)=>()=>(a&&(e=a(a=0)),e);var F=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),Z=(a,e)=>{for(var t in e)Mn(a,t,{get:e[t],enumerable:!0})},El=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Qp(e))!Zp.call(a,o)&&o!==t&&Mn(a,o,{get:()=>e[o],enumerable:!(n=Yp(e,o))||n.enumerable});return a};var le=(a,e,t)=>(t=a!=null?Xp(Jp(a)):{},El(e||!a||!a.__esModule?Mn(t,"default",{value:a,enumerable:!0}):t,a)),eh=a=>El(Mn({},"__esModule",{value:!0}),a);var Nn=a=>new Uint8Array(Buffer.from(a,"base64"));var gi={};Z(gi,{default:()=>nh});var nh,xl=Q(()=>{nh=`
2
2
  --[[
3
3
  Arg parser from: https://github.com/JanSharp/LuaArgParser
4
4
 
@@ -700,7 +700,7 @@ end
700
700
  return {
701
701
  replace = replace,
702
702
  }
703
- `});var vi={};Z(vi,{default:()=>ph});var ph,Il=Q(()=>{ph=`--##
703
+ `});var vi={};Z(vi,{default:()=>ph});var ph,Cl=Q(()=>{ph=`--##
704
704
 
705
705
  local util = require("factorio-plugin.util")
706
706
  local storage_module_flag = util.module_flags.storage
@@ -819,7 +819,7 @@ end
819
819
  return {
820
820
  replace = replace,
821
821
  }
822
- `});var Si={};Z(Si,{default:()=>mh});var mh,Cl=Q(()=>{mh=`--##
822
+ `});var Si={};Z(Si,{default:()=>mh});var mh,Il=Q(()=>{mh=`--##
823
823
 
824
824
  local floor_div = __plugin_dev
825
825
  and function(left, right) return math.floor(left / right) end
@@ -1557,7 +1557,7 @@ function mod_gui.get_button_flow(player) end\r
1557
1557
  ---@return LuaGuiElement #The mod_gui frame flow\r
1558
1558
  function mod_gui.get_frame_flow(player) end\r
1559
1559
  \r
1560
- return mod_gui`});var xi={};Z(xi,{default:()=>Rh});var Rh,Bl=Q(()=>{Rh=`---@meta\r
1560
+ return mod_gui`});var xi={};Z(xi,{default:()=>Rh});var Rh,Ol=Q(()=>{Rh=`---@meta\r
1561
1561
  \r
1562
1562
  ---@class util\r
1563
1563
  util = {\r
@@ -1899,7 +1899,7 @@ meter = 1\r
1899
1899
  kilometer = 1000\r
1900
1900
  \r
1901
1901
  return util\r
1902
- `});var Li={};Z(Li,{default:()=>Eh});var Eh,Ol=Q(()=>{Eh=`---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#The_setting_type_property)
1902
+ `});var Li={};Z(Li,{default:()=>Eh});var Eh,Bl=Q(()=>{Eh=`---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#The_setting_type_property)
1903
1903
  ---@alias data.ModSettingSettingType ("startup")|("runtime-global")|("double-setting")|("runtime-per-user")
1904
1904
 
1905
1905
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings)
@@ -2002,7 +2002,7 @@ mods = {}\r
2002
2002
  ---64 bit signed integer.\r
2003
2003
  ---@alias int64 integer\r
2004
2004
  ---64 bit unsigned integer.\r
2005
- ---@alias uint64 integer`});var Ti={};Z(Ti,{default:()=>Ih});var Ih,Ul=Q(()=>{Ih=`---@meta _
2005
+ ---@alias uint64 integer`});var Ti={};Z(Ti,{default:()=>Ch});var Ch,Nl=Q(()=>{Ch=`---@meta _
2006
2006
 
2007
2007
  ---
2008
2008
  ---
@@ -2246,7 +2246,7 @@ function debug.upvalueid(f, n) end
2246
2246
  function debug.upvaluejoin(f1, n1, f2, n2) end
2247
2247
 
2248
2248
  return debug
2249
- `});var Ii={};Z(Ii,{default:()=>Dh});var Dh,Nl=Q(()=>{Dh=`---@meta _\r
2249
+ `});var Ci={};Z(Ci,{default:()=>Dh});var Dh,Ul=Q(()=>{Dh=`---@meta _\r
2250
2250
  \r
2251
2251
  ---\r
2252
2252
  ---\r
@@ -2609,7 +2609,7 @@ function math.random(m, n) end\r
2609
2609
  function math.randomseed(x) end\r
2610
2610
  \r
2611
2611
  return math\r
2612
- `});var Ci={};Z(Ci,{default:()=>Fh});var Fh,jl=Q(()=>{Fh=`---@meta _\r
2612
+ `});var Ii={};Z(Ii,{default:()=>Fh});var Fh,jl=Q(()=>{Fh=`---@meta _\r
2613
2613
  \r
2614
2614
  ---Due to the changes to \`package\`, the functionality of \`require()\` changes. When using absolute paths, the path starts at the mod root. Additionally, \`..\` is disabled as a path variable. This means that it is not possible to load arbitrary files from outside the mod directory.\r
2615
2615
  ---\r
@@ -2627,7 +2627,7 @@ function require(modname) end\r
2627
2627
  ---@field loaded table\r
2628
2628
  package = {}\r
2629
2629
  \r
2630
- return package`});var Di={};Z(Di,{default:()=>Oh});var Oh,zl=Q(()=>{Oh=`---@meta _\r
2630
+ return package`});var Di={};Z(Di,{default:()=>Bh});var Bh,Wl=Q(()=>{Bh=`---@meta _\r
2631
2631
  ---Lua serializer and pretty printer.\\\r
2632
2632
  ---Author: [Paul Kulchenko](mailto:paul@kulchenko.com)\\\r
2633
2633
  ---https://github.com/pkulchenko/serpent\r
@@ -2810,7 +2810,7 @@ function string.packsize(fmt) end\r
2810
2810
  ---@return integer offset\r
2811
2811
  ---@nodiscard\r
2812
2812
  function string.unpack(fmt, s, pos) end\r
2813
- `});var Fi={};Z(Fi,{default:()=>Nh});var Nh,Wl=Q(()=>{Nh=`---@meta _\r
2813
+ `});var Fi={};Z(Fi,{default:()=>Uh});var Uh,zl=Q(()=>{Uh=`---@meta _\r
2814
2814
  \r
2815
2815
  ---@param object LuaObject\r
2816
2816
  ---@return LuaObject.object_name object_name\r
@@ -2820,7 +2820,7 @@ function __object_name(object) end\r
2820
2820
  ---@class LuaObject\r
2821
2821
  ---@field valid boolean\r
2822
2822
  ---@field object_name LuaObject.object_name\r
2823
- `});var Bi={};Z(Bi,{default:()=>zh});var zh,Hl=Q(()=>{zh=`---@meta _\r
2823
+ `});var Oi={};Z(Oi,{default:()=>Wh});var Wh,Hl=Q(()=>{Wh=`---@meta _\r
2824
2824
  \r
2825
2825
  ---@class BlueprintCircuitConnection\r
2826
2826
  \r
@@ -2861,7 +2861,7 @@ function __object_name(object) end\r
2861
2861
  ---@field circuit_open_gate? boolean\r
2862
2862
  ---@field circuit_read_sensor? boolean\r
2863
2863
  ---@field circuit_parameters? ProgrammableSpeakerCircuitParameters\r
2864
- `});var Oi={};Z(Oi,{default:()=>Wh});var Wh,Kl=Q(()=>{Wh=`---@meta _\r
2864
+ `});var Bi={};Z(Bi,{default:()=>zh});var zh,Kl=Q(()=>{zh=`---@meta _\r
2865
2865
  \r
2866
2866
  ---@see storage\r
2867
2867
  ---@deprecated use \`storage\`\r
@@ -3264,7 +3264,7 @@ function OnSetText(uri, text)
3264
3264
  diffs.count = nil
3265
3265
  return diffs
3266
3266
  end
3267
- `});var Yl={};Z(Yl,{default:()=>Qh,filenames:()=>Jh});var Yh,Qh,Jh,Ql=Q(()=>{"use strict";xl();Ll();Al();kl();Tl();Il();Cl();Dl();$l();Fl();Bl();Ol();ql();Ml();Ul();Nl();jl();zl();Vl();Wl();Hl();Kl();Gl();Xl();Yh=[gi,_i,bi,yi,wi,vi,Si,Ri,Pi,Ei,xi,Li,Ai,ki,Ti,Ii,Ci,Di,$i,Fi,Bi,Oi,qi,Mi],Qh=Yh,Jh=["../luals-addon/factorio/factorio-plugin/arg-parser.lua","../luals-addon/factorio/factorio-plugin/command-line.lua","../luals-addon/factorio/factorio-plugin/object-name.lua","../luals-addon/factorio/factorio-plugin/remote.lua","../luals-addon/factorio/factorio-plugin/require.lua","../luals-addon/factorio/factorio-plugin/storage.lua","../luals-addon/factorio/factorio-plugin/util.lua","../luals-addon/factorio/library/core/lualib/event_handler.lua","../luals-addon/factorio/library/core/lualib/meld.lua","../luals-addon/factorio/library/core/lualib/mod-gui.lua","../luals-addon/factorio/library/core/lualib/util.lua","../luals-addon/factorio/library/data/mod-settings.lua","../luals-addon/factorio/library/data/mods.lua","../luals-addon/factorio/library/lua/builtins.lua","../luals-addon/factorio/library/lua/debug.lua","../luals-addon/factorio/library/lua/math.lua","../luals-addon/factorio/library/lua/package.lua","../luals-addon/factorio/library/lua/serpent.lua","../luals-addon/factorio/library/lua/string.lua","../luals-addon/factorio/library/runtime/LuaObject.lua","../luals-addon/factorio/library/runtime/blueprint.lua","../luals-addon/factorio/library/runtime/deprecated_2.0.lua","../luals-addon/factorio/library/runtime/storage.lua","../luals-addon/factorio/plugin.lua"]});var Jl=F((Mb,Zh)=>{Zh.exports={name:"Factorio",files:["control%.lua","data%.lua","data%-updates%.lua","data%-final%-fixes%.lua","settings%.lua","settings%-updates%.lua","settings%-final%-fixes%.lua"],settings:{"Lua.runtime.version":"Lua 5.2","Lua.runtime.path":["?.lua"],"Lua.runtime.special":{__object_name:"type"},"Lua.runtime.builtin":{io:"disable",os:"disable",coroutine:"disable",package:"disable",math:"disable",debug:"disable"},"Lua.diagnostics.globals":["__DebugAdapter","__Profiler"],"Lua.diagnostics.disable":["lowercase-global"]}}});var tu=F((Vn,eu)=>{"use strict";(function(a,e){typeof Vn=="object"&&typeof eu<"u"?e(Vn):typeof define=="function"&&define.amd?define(["exports"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.WebStreamsPolyfill={}))})(Vn,function(a){"use strict";function e(){}function t(r){return typeof r=="object"&&r!==null||typeof r=="function"}let n=e;function o(r,i){try{Object.defineProperty(r,"name",{value:i,configurable:!0})}catch{}}let s=Promise,u=Promise.prototype.then,f=Promise.reject.bind(s);function d(r){return new s(r)}function c(r){return d(i=>i(r))}function p(r){return f(r)}function m(r,i,l){return u.call(r,i,l)}function y(r,i,l){m(m(r,i,l),void 0,n)}function g(r,i){y(r,i)}function w(r,i){y(r,void 0,i)}function R(r,i,l){return m(r,i,l)}function k(r){m(r,void 0,n)}let I=r=>{if(typeof queueMicrotask=="function")I=queueMicrotask;else{let i=c(void 0);I=l=>m(i,l)}return I(r)};function E(r,i,l){if(typeof r!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(r,i,l)}function re(r,i,l){try{return c(E(r,i,l))}catch(h){return p(h)}}let G=16384;class X{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(i){let l=this._back,h=l;l._elements.length===G-1&&(h={_elements:[],_next:void 0}),l._elements.push(i),h!==l&&(this._back=h,l._next=h),++this._size}shift(){let i=this._front,l=i,h=this._cursor,b=h+1,v=i._elements,S=v[h];return b===G&&(l=i._next,b=0),--this._size,this._cursor=b,i!==l&&(this._front=l),v[h]=void 0,S}forEach(i){let l=this._cursor,h=this._front,b=h._elements;for(;(l!==b.length||h._next!==void 0)&&!(l===b.length&&(h=h._next,b=h._elements,l=0,b.length===0));)i(b[l]),++l}peek(){let i=this._front,l=this._cursor;return i._elements[l]}}let J=Symbol("[[AbortSteps]]"),We=Symbol("[[ErrorSteps]]"),He=Symbol("[[CancelSteps]]"),wt=Symbol("[[PullSteps]]"),Mt=Symbol("[[ReleaseSteps]]");function C(r,i){r._ownerReadableStream=i,i._reader=r,i._state==="readable"?Y(r):i._state==="closed"?V(r):H(r,i._storedError)}function P(r,i){let l=r._ownerReadableStream;return Ge(l,i)}function D(r){let i=r._ownerReadableStream;i._state==="readable"?we(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):ve(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),i._readableStreamController[Mt](),i._reader=void 0,r._ownerReadableStream=void 0}function $(r){return new TypeError("Cannot "+r+" a stream using a released reader")}function Y(r){r._closedPromise=d((i,l)=>{r._closedPromise_resolve=i,r._closedPromise_reject=l})}function H(r,i){Y(r),we(r,i)}function V(r){Y(r),ue(r)}function we(r,i){r._closedPromise_reject!==void 0&&(k(r._closedPromise),r._closedPromise_reject(i),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}function ve(r,i){H(r,i)}function ue(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}let Ut=Number.isFinite||function(r){return typeof r=="number"&&isFinite(r)},sf=Math.trunc||function(r){return r<0?Math.ceil(r):Math.floor(r)};function lf(r){return typeof r=="object"||typeof r=="function"}function Ze(r,i){if(r!==void 0&&!lf(r))throw new TypeError(`${i} is not an object.`)}function qe(r,i){if(typeof r!="function")throw new TypeError(`${i} is not a function.`)}function uf(r){return typeof r=="object"&&r!==null||typeof r=="function"}function ps(r,i){if(!uf(r))throw new TypeError(`${i} is not an object.`)}function it(r,i,l){if(r===void 0)throw new TypeError(`Parameter ${i} is required in '${l}'.`)}function Co(r,i,l){if(r===void 0)throw new TypeError(`${i} is required in '${l}'.`)}function Do(r){return Number(r)}function hs(r){return r===0?0:r}function cf(r){return hs(sf(r))}function $o(r,i){let h=Number.MAX_SAFE_INTEGER,b=Number(r);if(b=hs(b),!Ut(b))throw new TypeError(`${i} is not a finite number`);if(b=cf(b),b<0||b>h)throw new TypeError(`${i} is outside the accepted range of 0 to ${h}, inclusive`);return!Ut(b)||b===0?0:b}function Fo(r,i){if(!Lt(r))throw new TypeError(`${i} is not a ReadableStream.`)}function ar(r){return new vt(r)}function ms(r,i){r._reader._readRequests.push(i)}function Bo(r,i,l){let b=r._reader._readRequests.shift();l?b._closeSteps():b._chunkSteps(i)}function cn(r){return r._reader._readRequests.length}function gs(r){let i=r._reader;return!(i===void 0||!St(i))}class vt{constructor(i){if(it(i,1,"ReadableStreamDefaultReader"),Fo(i,"First parameter"),At(i))throw new TypeError("This stream has already been locked for exclusive reading by another reader");C(this,i),this._readRequests=new X}get closed(){return St(this)?this._closedPromise:p(dn("closed"))}cancel(i=void 0){return St(this)?this._ownerReadableStream===void 0?p($("cancel")):P(this,i):p(dn("cancel"))}read(){if(!St(this))return p(dn("read"));if(this._ownerReadableStream===void 0)return p($("read from"));let i,l,h=d((v,S)=>{i=v,l=S});return Ir(this,{_chunkSteps:v=>i({value:v,done:!1}),_closeSteps:()=>i({value:void 0,done:!0}),_errorSteps:v=>l(v)}),h}releaseLock(){if(!St(this))throw dn("releaseLock");this._ownerReadableStream!==void 0&&df(this)}}Object.defineProperties(vt.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(vt.prototype.cancel,"cancel"),o(vt.prototype.read,"read"),o(vt.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(vt.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function St(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readRequests")?!1:r instanceof vt}function Ir(r,i){let l=r._ownerReadableStream;l._disturbed=!0,l._state==="closed"?i._closeSteps():l._state==="errored"?i._errorSteps(l._storedError):l._readableStreamController[wt](i)}function df(r){D(r);let i=new TypeError("Reader was released");_s(r,i)}function _s(r,i){let l=r._readRequests;r._readRequests=new X,l.forEach(h=>{h._errorSteps(i)})}function dn(r){return new TypeError(`ReadableStreamDefaultReader.prototype.${r} can only be used on a ReadableStreamDefaultReader`)}let ff=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class bs{constructor(i,l){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=i,this._preventCancel=l}next(){let i=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?R(this._ongoingPromise,i,i):i(),this._ongoingPromise}return(i){let l=()=>this._returnSteps(i);return this._ongoingPromise?R(this._ongoingPromise,l,l):l()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let i=this._reader,l,h,b=d((S,x)=>{l=S,h=x});return Ir(i,{_chunkSteps:S=>{this._ongoingPromise=void 0,I(()=>l({value:S,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,D(i),l({value:void 0,done:!0})},_errorSteps:S=>{this._ongoingPromise=void 0,this._isFinished=!0,D(i),h(S)}}),b}_returnSteps(i){if(this._isFinished)return Promise.resolve({value:i,done:!0});this._isFinished=!0;let l=this._reader;if(!this._preventCancel){let h=P(l,i);return D(l),R(h,()=>({value:i,done:!0}))}return D(l),c({value:i,done:!0})}}let ys={next(){return ws(this)?this._asyncIteratorImpl.next():p(vs("next"))},return(r){return ws(this)?this._asyncIteratorImpl.return(r):p(vs("return"))}};Object.setPrototypeOf(ys,ff);function pf(r,i){let l=ar(r),h=new bs(l,i),b=Object.create(ys);return b._asyncIteratorImpl=h,b}function ws(r){if(!t(r)||!Object.prototype.hasOwnProperty.call(r,"_asyncIteratorImpl"))return!1;try{return r._asyncIteratorImpl instanceof bs}catch{return!1}}function vs(r){return new TypeError(`ReadableStreamAsyncIterator.${r} can only be used on a ReadableSteamAsyncIterator`)}let Ss=Number.isNaN||function(r){return r!==r};var Oo,qo,Mo;function Cr(r){return r.slice()}function Rs(r,i,l,h,b){new Uint8Array(r).set(new Uint8Array(l,h,b),i)}let at=r=>(typeof r.transfer=="function"?at=i=>i.transfer():typeof structuredClone=="function"?at=i=>structuredClone(i,{transfer:[i]}):at=i=>i,at(r)),Rt=r=>(typeof r.detached=="boolean"?Rt=i=>i.detached:Rt=i=>i.byteLength===0,Rt(r));function Ps(r,i,l){if(r.slice)return r.slice(i,l);let h=l-i,b=new ArrayBuffer(h);return Rs(b,0,r,i,h),b}function fn(r,i){let l=r[i];if(l!=null){if(typeof l!="function")throw new TypeError(`${String(i)} is not a function`);return l}}function hf(r){let i={[Symbol.iterator]:()=>r.iterator},l=async function*(){return yield*i}(),h=l.next;return{iterator:l,nextMethod:h,done:!1}}let Uo=(Mo=(Oo=Symbol.asyncIterator)!==null&&Oo!==void 0?Oo:(qo=Symbol.for)===null||qo===void 0?void 0:qo.call(Symbol,"Symbol.asyncIterator"))!==null&&Mo!==void 0?Mo:"@@asyncIterator";function Es(r,i="sync",l){if(l===void 0)if(i==="async"){if(l=fn(r,Uo),l===void 0){let v=fn(r,Symbol.iterator),S=Es(r,"sync",v);return hf(S)}}else l=fn(r,Symbol.iterator);if(l===void 0)throw new TypeError("The object is not iterable");let h=E(l,r,[]);if(!t(h))throw new TypeError("The iterator method must return an object");let b=h.next;return{iterator:h,nextMethod:b,done:!1}}function mf(r){let i=E(r.nextMethod,r.iterator,[]);if(!t(i))throw new TypeError("The iterator.next() method must return an object");return i}function gf(r){return!!r.done}function _f(r){return r.value}function bf(r){return!(typeof r!="number"||Ss(r)||r<0)}function xs(r){let i=Ps(r.buffer,r.byteOffset,r.byteOffset+r.byteLength);return new Uint8Array(i)}function No(r){let i=r._queue.shift();return r._queueTotalSize-=i.size,r._queueTotalSize<0&&(r._queueTotalSize=0),i.value}function jo(r,i,l){if(!bf(l)||l===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");r._queue.push({value:i,size:l}),r._queueTotalSize+=l}function yf(r){return r._queue.peek().value}function Pt(r){r._queue=new X,r._queueTotalSize=0}function Ls(r){return r===DataView}function wf(r){return Ls(r.constructor)}function vf(r){return Ls(r)?1:r.BYTES_PER_ELEMENT}class Nt{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!zo(this))throw Go("view");return this._view}respond(i){if(!zo(this))throw Go("respond");if(it(i,1,"respond"),i=$o(i,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");gn(this._associatedReadableByteStreamController,i)}respondWithNewView(i){if(!zo(this))throw Go("respondWithNewView");if(it(i,1,"respondWithNewView"),!ArrayBuffer.isView(i))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(i.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");_n(this._associatedReadableByteStreamController,i)}}Object.defineProperties(Nt.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),o(Nt.prototype.respond,"respond"),o(Nt.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Nt.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class st{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!jt(this))throw $r("byobRequest");return Ko(this)}get desiredSize(){if(!jt(this))throw $r("desiredSize");return Os(this)}close(){if(!jt(this))throw $r("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let i=this._controlledReadableByteStream._state;if(i!=="readable")throw new TypeError(`The stream (in ${i} state) is not in the readable state and cannot be closed`);Dr(this)}enqueue(i){if(!jt(this))throw $r("enqueue");if(it(i,1,"enqueue"),!ArrayBuffer.isView(i))throw new TypeError("chunk must be an array buffer view");if(i.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(i.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let l=this._controlledReadableByteStream._state;if(l!=="readable")throw new TypeError(`The stream (in ${l} state) is not in the readable state and cannot be enqueued to`);mn(this,i)}error(i=void 0){if(!jt(this))throw $r("error");Me(this,i)}[He](i){As(this),Pt(this);let l=this._cancelAlgorithm(i);return hn(this),l}[wt](i){let l=this._controlledReadableByteStream;if(this._queueTotalSize>0){Bs(this,i);return}let h=this._autoAllocateChunkSize;if(h!==void 0){let b;try{b=new ArrayBuffer(h)}catch(S){i._errorSteps(S);return}let v={buffer:b,bufferByteLength:h,byteOffset:0,byteLength:h,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(v)}ms(l,i),_(this)}[Mt](){if(this._pendingPullIntos.length>0){let i=this._pendingPullIntos.peek();i.readerType="none",this._pendingPullIntos=new X,this._pendingPullIntos.push(i)}}}Object.defineProperties(st.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),o(st.prototype.close,"close"),o(st.prototype.enqueue,"enqueue"),o(st.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(st.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function jt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableByteStream")?!1:r instanceof st}function zo(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_associatedReadableByteStreamController")?!1:r instanceof Nt}function _(r){if(!xf(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();y(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,_(r)),null),h=>(Me(r,h),null))}function As(r){Wo(r),r._pendingPullIntos=new X}function Vo(r,i){let l=!1;r._state==="closed"&&(l=!0);let h=ks(i);i.readerType==="default"?Bo(r,h,l):Cf(r,h,l)}function ks(r){let i=r.bytesFilled,l=r.elementSize;return new r.viewConstructor(r.buffer,r.byteOffset,i/l)}function pn(r,i,l,h){r._queue.push({buffer:i,byteOffset:l,byteLength:h}),r._queueTotalSize+=h}function Ts(r,i,l,h){let b;try{b=Ps(i,l,l+h)}catch(v){throw Me(r,v),v}pn(r,b,0,h)}function Is(r,i){i.bytesFilled>0&&Ts(r,i.buffer,i.byteOffset,i.bytesFilled),sr(r)}function Cs(r,i){let l=Math.min(r._queueTotalSize,i.byteLength-i.bytesFilled),h=i.bytesFilled+l,b=l,v=!1,S=h%i.elementSize,x=h-S;x>=i.minimumFill&&(b=x-i.bytesFilled,v=!0);let N=r._queue;for(;b>0;){let O=N.peek(),j=Math.min(b,O.byteLength),W=i.byteOffset+i.bytesFilled;Rs(i.buffer,W,O.buffer,O.byteOffset,j),O.byteLength===j?N.shift():(O.byteOffset+=j,O.byteLength-=j),r._queueTotalSize-=j,Ds(r,j,i),b-=j}return v}function Ds(r,i,l){l.bytesFilled+=i}function $s(r){r._queueTotalSize===0&&r._closeRequested?(hn(r),Ur(r._controlledReadableByteStream)):_(r)}function Wo(r){r._byobRequest!==null&&(r._byobRequest._associatedReadableByteStreamController=void 0,r._byobRequest._view=null,r._byobRequest=null)}function Ho(r){for(;r._pendingPullIntos.length>0;){if(r._queueTotalSize===0)return;let i=r._pendingPullIntos.peek();Cs(r,i)&&(sr(r),Vo(r._controlledReadableByteStream,i))}}function Sf(r){let i=r._controlledReadableByteStream._reader;for(;i._readRequests.length>0;){if(r._queueTotalSize===0)return;let l=i._readRequests.shift();Bs(r,l)}}function Rf(r,i,l,h){let b=r._controlledReadableByteStream,v=i.constructor,S=vf(v),{byteOffset:x,byteLength:N}=i,O=l*S,j;try{j=at(i.buffer)}catch(ne){h._errorSteps(ne);return}let W={buffer:j,bufferByteLength:j.byteLength,byteOffset:x,byteLength:N,bytesFilled:0,minimumFill:O,elementSize:S,viewConstructor:v,readerType:"byob"};if(r._pendingPullIntos.length>0){r._pendingPullIntos.push(W),Us(b,h);return}if(b._state==="closed"){let ne=new v(W.buffer,W.byteOffset,0);h._closeSteps(ne);return}if(r._queueTotalSize>0){if(Cs(r,W)){let ne=ks(W);$s(r),h._chunkSteps(ne);return}if(r._closeRequested){let ne=new TypeError("Insufficient bytes to fill elements in the given buffer");Me(r,ne),h._errorSteps(ne);return}}r._pendingPullIntos.push(W),Us(b,h),_(r)}function Pf(r,i){i.readerType==="none"&&sr(r);let l=r._controlledReadableByteStream;if(Xo(l))for(;Ns(l)>0;){let h=sr(r);Vo(l,h)}}function Ef(r,i,l){if(Ds(r,i,l),l.readerType==="none"){Is(r,l),Ho(r);return}if(l.bytesFilled<l.minimumFill)return;sr(r);let h=l.bytesFilled%l.elementSize;if(h>0){let b=l.byteOffset+l.bytesFilled;Ts(r,l.buffer,b-h,h)}l.bytesFilled-=h,Vo(r._controlledReadableByteStream,l),Ho(r)}function Fs(r,i){let l=r._pendingPullIntos.peek();Wo(r),r._controlledReadableByteStream._state==="closed"?Pf(r,l):Ef(r,i,l),_(r)}function sr(r){return r._pendingPullIntos.shift()}function xf(r){let i=r._controlledReadableByteStream;return i._state!=="readable"||r._closeRequested||!r._started?!1:!!(gs(i)&&cn(i)>0||Xo(i)&&Ns(i)>0||Os(r)>0)}function hn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0}function Dr(r){let i=r._controlledReadableByteStream;if(!(r._closeRequested||i._state!=="readable")){if(r._queueTotalSize>0){r._closeRequested=!0;return}if(r._pendingPullIntos.length>0){let l=r._pendingPullIntos.peek();if(l.bytesFilled%l.elementSize!==0){let h=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Me(r,h),h}}hn(r),Ur(i)}}function mn(r,i){let l=r._controlledReadableByteStream;if(r._closeRequested||l._state!=="readable")return;let{buffer:h,byteOffset:b,byteLength:v}=i;if(Rt(h))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let S=at(h);if(r._pendingPullIntos.length>0){let x=r._pendingPullIntos.peek();if(Rt(x.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");Wo(r),x.buffer=at(x.buffer),x.readerType==="none"&&Is(r,x)}if(gs(l))if(Sf(r),cn(l)===0)pn(r,S,b,v);else{r._pendingPullIntos.length>0&&sr(r);let x=new Uint8Array(S,b,v);Bo(l,x,!1)}else Xo(l)?(pn(r,S,b,v),Ho(r)):pn(r,S,b,v);_(r)}function Me(r,i){let l=r._controlledReadableByteStream;l._state==="readable"&&(As(r),Pt(r),hn(r),dl(l,i))}function Bs(r,i){let l=r._queue.shift();r._queueTotalSize-=l.byteLength,$s(r);let h=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);i._chunkSteps(h)}function Ko(r){if(r._byobRequest===null&&r._pendingPullIntos.length>0){let i=r._pendingPullIntos.peek(),l=new Uint8Array(i.buffer,i.byteOffset+i.bytesFilled,i.byteLength-i.bytesFilled),h=Object.create(Nt.prototype);Af(h,r,l),r._byobRequest=h}return r._byobRequest}function Os(r){let i=r._controlledReadableByteStream._state;return i==="errored"?null:i==="closed"?0:r._strategyHWM-r._queueTotalSize}function gn(r,i){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(i!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(i===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(l.bytesFilled+i>l.byteLength)throw new RangeError("bytesWritten out of range")}l.buffer=at(l.buffer),Fs(r,i)}function _n(r,i){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(i.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(i.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(l.byteOffset+l.bytesFilled!==i.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(l.bufferByteLength!==i.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(l.bytesFilled+i.byteLength>l.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let b=i.byteLength;l.buffer=at(i.buffer),Fs(r,b)}function qs(r,i,l,h,b,v,S){i._controlledReadableByteStream=r,i._pullAgain=!1,i._pulling=!1,i._byobRequest=null,i._queue=i._queueTotalSize=void 0,Pt(i),i._closeRequested=!1,i._started=!1,i._strategyHWM=v,i._pullAlgorithm=h,i._cancelAlgorithm=b,i._autoAllocateChunkSize=S,i._pendingPullIntos=new X,r._readableStreamController=i;let x=l();y(c(x),()=>(i._started=!0,_(i),null),N=>(Me(i,N),null))}function Lf(r,i,l){let h=Object.create(st.prototype),b,v,S;i.start!==void 0?b=()=>i.start(h):b=()=>{},i.pull!==void 0?v=()=>i.pull(h):v=()=>c(void 0),i.cancel!==void 0?S=N=>i.cancel(N):S=()=>c(void 0);let x=i.autoAllocateChunkSize;if(x===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");qs(r,h,b,v,S,l,x)}function Af(r,i,l){r._associatedReadableByteStreamController=i,r._view=l}function Go(r){return new TypeError(`ReadableStreamBYOBRequest.prototype.${r} can only be used on a ReadableStreamBYOBRequest`)}function $r(r){return new TypeError(`ReadableByteStreamController.prototype.${r} can only be used on a ReadableByteStreamController`)}function kf(r,i){Ze(r,i);let l=r?.mode;return{mode:l===void 0?void 0:Tf(l,`${i} has member 'mode' that`)}}function Tf(r,i){if(r=`${r}`,r!=="byob")throw new TypeError(`${i} '${r}' is not a valid enumeration value for ReadableStreamReaderMode`);return r}function If(r,i){var l;Ze(r,i);let h=(l=r?.min)!==null&&l!==void 0?l:1;return{min:$o(h,`${i} has member 'min' that`)}}function Ms(r){return new Et(r)}function Us(r,i){r._reader._readIntoRequests.push(i)}function Cf(r,i,l){let b=r._reader._readIntoRequests.shift();l?b._closeSteps(i):b._chunkSteps(i)}function Ns(r){return r._reader._readIntoRequests.length}function Xo(r){let i=r._reader;return!(i===void 0||!zt(i))}class Et{constructor(i){if(it(i,1,"ReadableStreamBYOBReader"),Fo(i,"First parameter"),At(i))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!jt(i._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");C(this,i),this._readIntoRequests=new X}get closed(){return zt(this)?this._closedPromise:p(bn("closed"))}cancel(i=void 0){return zt(this)?this._ownerReadableStream===void 0?p($("cancel")):P(this,i):p(bn("cancel"))}read(i,l={}){if(!zt(this))return p(bn("read"));if(!ArrayBuffer.isView(i))return p(new TypeError("view must be an array buffer view"));if(i.byteLength===0)return p(new TypeError("view must have non-zero byteLength"));if(i.buffer.byteLength===0)return p(new TypeError("view's buffer must have non-zero byteLength"));if(Rt(i.buffer))return p(new TypeError("view's buffer has been detached"));let h;try{h=If(l,"options")}catch(O){return p(O)}let b=h.min;if(b===0)return p(new TypeError("options.min must be greater than 0"));if(wf(i)){if(b>i.byteLength)return p(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(b>i.length)return p(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return p($("read from"));let v,S,x=d((O,j)=>{v=O,S=j});return js(this,i,b,{_chunkSteps:O=>v({value:O,done:!1}),_closeSteps:O=>v({value:O,done:!0}),_errorSteps:O=>S(O)}),x}releaseLock(){if(!zt(this))throw bn("releaseLock");this._ownerReadableStream!==void 0&&Df(this)}}Object.defineProperties(Et.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(Et.prototype.cancel,"cancel"),o(Et.prototype.read,"read"),o(Et.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Et.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function zt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readIntoRequests")?!1:r instanceof Et}function js(r,i,l,h){let b=r._ownerReadableStream;b._disturbed=!0,b._state==="errored"?h._errorSteps(b._storedError):Rf(b._readableStreamController,i,l,h)}function Df(r){D(r);let i=new TypeError("Reader was released");zs(r,i)}function zs(r,i){let l=r._readIntoRequests;r._readIntoRequests=new X,l.forEach(h=>{h._errorSteps(i)})}function bn(r){return new TypeError(`ReadableStreamBYOBReader.prototype.${r} can only be used on a ReadableStreamBYOBReader`)}function Fr(r,i){let{highWaterMark:l}=r;if(l===void 0)return i;if(Ss(l)||l<0)throw new RangeError("Invalid highWaterMark");return l}function yn(r){let{size:i}=r;return i||(()=>1)}function wn(r,i){Ze(r,i);let l=r?.highWaterMark,h=r?.size;return{highWaterMark:l===void 0?void 0:Do(l),size:h===void 0?void 0:$f(h,`${i} has member 'size' that`)}}function $f(r,i){return qe(r,i),l=>Do(r(l))}function Ff(r,i){Ze(r,i);let l=r?.abort,h=r?.close,b=r?.start,v=r?.type,S=r?.write;return{abort:l===void 0?void 0:Bf(l,r,`${i} has member 'abort' that`),close:h===void 0?void 0:Of(h,r,`${i} has member 'close' that`),start:b===void 0?void 0:qf(b,r,`${i} has member 'start' that`),write:S===void 0?void 0:Mf(S,r,`${i} has member 'write' that`),type:v}}function Bf(r,i,l){return qe(r,l),h=>re(r,i,[h])}function Of(r,i,l){return qe(r,l),()=>re(r,i,[])}function qf(r,i,l){return qe(r,l),h=>E(r,i,[h])}function Mf(r,i,l){return qe(r,l),(h,b)=>re(r,i,[h,b])}function Vs(r,i){if(!lr(r))throw new TypeError(`${i} is not a WritableStream.`)}function Uf(r){if(typeof r!="object"||r===null)return!1;try{return typeof r.aborted=="boolean"}catch{return!1}}let Nf=typeof AbortController=="function";function jf(){if(Nf)return new AbortController}class xt{constructor(i={},l={}){i===void 0?i=null:ps(i,"First parameter");let h=wn(l,"Second parameter"),b=Ff(i,"First parameter");if(Hs(this),b.type!==void 0)throw new RangeError("Invalid type is specified");let S=yn(h),x=Fr(h,1);rp(this,b,x,S)}get locked(){if(!lr(this))throw En("locked");return ur(this)}abort(i=void 0){return lr(this)?ur(this)?p(new TypeError("Cannot abort a stream that already has a writer")):vn(this,i):p(En("abort"))}close(){return lr(this)?ur(this)?p(new TypeError("Cannot close a stream that already has a writer")):et(this)?p(new TypeError("Cannot close an already-closing stream")):Ks(this):p(En("close"))}getWriter(){if(!lr(this))throw En("getWriter");return Ws(this)}}Object.defineProperties(xt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),o(xt.prototype.abort,"abort"),o(xt.prototype.close,"close"),o(xt.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(xt.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function Ws(r){return new lt(r)}function zf(r,i,l,h,b=1,v=()=>1){let S=Object.create(xt.prototype);Hs(S);let x=Object.create(cr.prototype);return Zs(S,x,r,i,l,h,b,v),S}function Hs(r){r._state="writable",r._storedError=void 0,r._writer=void 0,r._writableStreamController=void 0,r._writeRequests=new X,r._inFlightWriteRequest=void 0,r._closeRequest=void 0,r._inFlightCloseRequest=void 0,r._pendingAbortRequest=void 0,r._backpressure=!1}function lr(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_writableStreamController")?!1:r instanceof xt}function ur(r){return r._writer!==void 0}function vn(r,i){var l;if(r._state==="closed"||r._state==="errored")return c(void 0);r._writableStreamController._abortReason=i,(l=r._writableStreamController._abortController)===null||l===void 0||l.abort(i);let h=r._state;if(h==="closed"||h==="errored")return c(void 0);if(r._pendingAbortRequest!==void 0)return r._pendingAbortRequest._promise;let b=!1;h==="erroring"&&(b=!0,i=void 0);let v=d((S,x)=>{r._pendingAbortRequest={_promise:void 0,_resolve:S,_reject:x,_reason:i,_wasAlreadyErroring:b}});return r._pendingAbortRequest._promise=v,b||Qo(r,i),v}function Ks(r){let i=r._state;if(i==="closed"||i==="errored")return p(new TypeError(`The stream (in ${i} state) is not in the writable state and cannot be closed`));let l=d((b,v)=>{let S={_resolve:b,_reject:v};r._closeRequest=S}),h=r._writer;return h!==void 0&&r._backpressure&&i==="writable"&&ii(h),np(r._writableStreamController),l}function Vf(r){return d((l,h)=>{let b={_resolve:l,_reject:h};r._writeRequests.push(b)})}function Yo(r,i){if(r._state==="writable"){Qo(r,i);return}Jo(r)}function Qo(r,i){let l=r._writableStreamController;r._state="erroring",r._storedError=i;let h=r._writer;h!==void 0&&Xs(h,i),!Xf(r)&&l._started&&Jo(r)}function Jo(r){r._state="errored",r._writableStreamController[We]();let i=r._storedError;if(r._writeRequests.forEach(b=>{b._reject(i)}),r._writeRequests=new X,r._pendingAbortRequest===void 0){Sn(r);return}let l=r._pendingAbortRequest;if(r._pendingAbortRequest=void 0,l._wasAlreadyErroring){l._reject(i),Sn(r);return}let h=r._writableStreamController[J](l._reason);y(h,()=>(l._resolve(),Sn(r),null),b=>(l._reject(b),Sn(r),null))}function Wf(r){r._inFlightWriteRequest._resolve(void 0),r._inFlightWriteRequest=void 0}function Hf(r,i){r._inFlightWriteRequest._reject(i),r._inFlightWriteRequest=void 0,Yo(r,i)}function Kf(r){r._inFlightCloseRequest._resolve(void 0),r._inFlightCloseRequest=void 0,r._state==="erroring"&&(r._storedError=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._resolve(),r._pendingAbortRequest=void 0)),r._state="closed";let l=r._writer;l!==void 0&&nl(l)}function Gf(r,i){r._inFlightCloseRequest._reject(i),r._inFlightCloseRequest=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._reject(i),r._pendingAbortRequest=void 0),Yo(r,i)}function et(r){return!(r._closeRequest===void 0&&r._inFlightCloseRequest===void 0)}function Xf(r){return!(r._inFlightWriteRequest===void 0&&r._inFlightCloseRequest===void 0)}function Yf(r){r._inFlightCloseRequest=r._closeRequest,r._closeRequest=void 0}function Qf(r){r._inFlightWriteRequest=r._writeRequests.shift()}function Sn(r){r._closeRequest!==void 0&&(r._closeRequest._reject(r._storedError),r._closeRequest=void 0);let i=r._writer;i!==void 0&&ni(i,r._storedError)}function Zo(r,i){let l=r._writer;l!==void 0&&i!==r._backpressure&&(i?cp(l):ii(l)),r._backpressure=i}class lt{constructor(i){if(it(i,1,"WritableStreamDefaultWriter"),Vs(i,"First parameter"),ur(i))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=i,i._writer=this;let l=i._state;if(l==="writable")!et(i)&&i._backpressure?Ln(this):ol(this),xn(this);else if(l==="erroring")oi(this,i._storedError),xn(this);else if(l==="closed")ol(this),lp(this);else{let h=i._storedError;oi(this,h),rl(this,h)}}get closed(){return Vt(this)?this._closedPromise:p(Wt("closed"))}get desiredSize(){if(!Vt(this))throw Wt("desiredSize");if(this._ownerWritableStream===void 0)throw Or("desiredSize");return tp(this)}get ready(){return Vt(this)?this._readyPromise:p(Wt("ready"))}abort(i=void 0){return Vt(this)?this._ownerWritableStream===void 0?p(Or("abort")):Jf(this,i):p(Wt("abort"))}close(){if(!Vt(this))return p(Wt("close"));let i=this._ownerWritableStream;return i===void 0?p(Or("close")):et(i)?p(new TypeError("Cannot close an already-closing stream")):Gs(this)}releaseLock(){if(!Vt(this))throw Wt("releaseLock");this._ownerWritableStream!==void 0&&Ys(this)}write(i=void 0){return Vt(this)?this._ownerWritableStream===void 0?p(Or("write to")):Qs(this,i):p(Wt("write"))}}Object.defineProperties(lt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),o(lt.prototype.abort,"abort"),o(lt.prototype.close,"close"),o(lt.prototype.releaseLock,"releaseLock"),o(lt.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(lt.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function Vt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_ownerWritableStream")?!1:r instanceof lt}function Jf(r,i){let l=r._ownerWritableStream;return vn(l,i)}function Gs(r){let i=r._ownerWritableStream;return Ks(i)}function Zf(r){let i=r._ownerWritableStream,l=i._state;return et(i)||l==="closed"?c(void 0):l==="errored"?p(i._storedError):Gs(r)}function ep(r,i){r._closedPromiseState==="pending"?ni(r,i):up(r,i)}function Xs(r,i){r._readyPromiseState==="pending"?il(r,i):dp(r,i)}function tp(r){let i=r._ownerWritableStream,l=i._state;return l==="errored"||l==="erroring"?null:l==="closed"?0:el(i._writableStreamController)}function Ys(r){let i=r._ownerWritableStream,l=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Xs(r,l),ep(r,l),i._writer=void 0,r._ownerWritableStream=void 0}function Qs(r,i){let l=r._ownerWritableStream,h=l._writableStreamController,b=op(h,i);if(l!==r._ownerWritableStream)return p(Or("write to"));let v=l._state;if(v==="errored")return p(l._storedError);if(et(l)||v==="closed")return p(new TypeError("The stream is closing or closed and cannot be written to"));if(v==="erroring")return p(l._storedError);let S=Vf(l);return ip(h,i,b),S}let Js={};class cr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!ei(this))throw ri("abortReason");return this._abortReason}get signal(){if(!ei(this))throw ri("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(i=void 0){if(!ei(this))throw ri("error");this._controlledWritableStream._state==="writable"&&tl(this,i)}[J](i){let l=this._abortAlgorithm(i);return Rn(this),l}[We](){Pt(this)}}Object.defineProperties(cr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(cr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function ei(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledWritableStream")?!1:r instanceof cr}function Zs(r,i,l,h,b,v,S,x){i._controlledWritableStream=r,r._writableStreamController=i,i._queue=void 0,i._queueTotalSize=void 0,Pt(i),i._abortReason=void 0,i._abortController=jf(),i._started=!1,i._strategySizeAlgorithm=x,i._strategyHWM=S,i._writeAlgorithm=h,i._closeAlgorithm=b,i._abortAlgorithm=v;let N=ti(i);Zo(r,N);let O=l(),j=c(O);y(j,()=>(i._started=!0,Pn(i),null),W=>(i._started=!0,Yo(r,W),null))}function rp(r,i,l,h){let b=Object.create(cr.prototype),v,S,x,N;i.start!==void 0?v=()=>i.start(b):v=()=>{},i.write!==void 0?S=O=>i.write(O,b):S=()=>c(void 0),i.close!==void 0?x=()=>i.close():x=()=>c(void 0),i.abort!==void 0?N=O=>i.abort(O):N=()=>c(void 0),Zs(r,b,v,S,x,N,l,h)}function Rn(r){r._writeAlgorithm=void 0,r._closeAlgorithm=void 0,r._abortAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function np(r){jo(r,Js,0),Pn(r)}function op(r,i){try{return r._strategySizeAlgorithm(i)}catch(l){return Br(r,l),1}}function el(r){return r._strategyHWM-r._queueTotalSize}function ip(r,i,l){try{jo(r,i,l)}catch(b){Br(r,b);return}let h=r._controlledWritableStream;if(!et(h)&&h._state==="writable"){let b=ti(r);Zo(h,b)}Pn(r)}function Pn(r){let i=r._controlledWritableStream;if(!r._started||i._inFlightWriteRequest!==void 0)return;if(i._state==="erroring"){Jo(i);return}if(r._queue.length===0)return;let h=yf(r);h===Js?ap(r):sp(r,h)}function Br(r,i){r._controlledWritableStream._state==="writable"&&tl(r,i)}function ap(r){let i=r._controlledWritableStream;Yf(i),No(r);let l=r._closeAlgorithm();Rn(r),y(l,()=>(Kf(i),null),h=>(Gf(i,h),null))}function sp(r,i){let l=r._controlledWritableStream;Qf(l);let h=r._writeAlgorithm(i);y(h,()=>{Wf(l);let b=l._state;if(No(r),!et(l)&&b==="writable"){let v=ti(r);Zo(l,v)}return Pn(r),null},b=>(l._state==="writable"&&Rn(r),Hf(l,b),null))}function ti(r){return el(r)<=0}function tl(r,i){let l=r._controlledWritableStream;Rn(r),Qo(l,i)}function En(r){return new TypeError(`WritableStream.prototype.${r} can only be used on a WritableStream`)}function ri(r){return new TypeError(`WritableStreamDefaultController.prototype.${r} can only be used on a WritableStreamDefaultController`)}function Wt(r){return new TypeError(`WritableStreamDefaultWriter.prototype.${r} can only be used on a WritableStreamDefaultWriter`)}function Or(r){return new TypeError("Cannot "+r+" a stream using a released writer")}function xn(r){r._closedPromise=d((i,l)=>{r._closedPromise_resolve=i,r._closedPromise_reject=l,r._closedPromiseState="pending"})}function rl(r,i){xn(r),ni(r,i)}function lp(r){xn(r),nl(r)}function ni(r,i){r._closedPromise_reject!==void 0&&(k(r._closedPromise),r._closedPromise_reject(i),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="rejected")}function up(r,i){rl(r,i)}function nl(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="resolved")}function Ln(r){r._readyPromise=d((i,l)=>{r._readyPromise_resolve=i,r._readyPromise_reject=l}),r._readyPromiseState="pending"}function oi(r,i){Ln(r),il(r,i)}function ol(r){Ln(r),ii(r)}function il(r,i){r._readyPromise_reject!==void 0&&(k(r._readyPromise),r._readyPromise_reject(i),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="rejected")}function cp(r){Ln(r)}function dp(r,i){oi(r,i)}function ii(r){r._readyPromise_resolve!==void 0&&(r._readyPromise_resolve(void 0),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="fulfilled")}function fp(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let ai=fp();function pp(r){if(!(typeof r=="function"||typeof r=="object")||r.name!=="DOMException")return!1;try{return new r,!0}catch{return!1}}function hp(){let r=ai?.DOMException;return pp(r)?r:void 0}function mp(){let r=function(l,h){this.message=l||"",this.name=h||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return o(r,"DOMException"),r.prototype=Object.create(Error.prototype),Object.defineProperty(r.prototype,"constructor",{value:r,writable:!0,configurable:!0}),r}let gp=hp()||mp();function al(r,i,l,h,b,v){let S=ar(r),x=Ws(i);r._disturbed=!0;let N=!1,O=c(void 0);return d((j,W)=>{let ne;if(v!==void 0){if(ne=()=>{let M=v.reason!==void 0?v.reason:new gp("Aborted","AbortError"),K=[];h||K.push(()=>i._state==="writable"?vn(i,M):c(void 0)),b||K.push(()=>r._state==="readable"?Ge(r,M):c(void 0)),Se(()=>Promise.all(K.map(oe=>oe())),!0,M)},v.aborted){ne();return}v.addEventListener("abort",ne)}function Xe(){return d((M,K)=>{function oe(ke){ke?M():m(hr(),oe,K)}oe(!1)})}function hr(){return N?c(!0):m(x._readyPromise,()=>d((M,K)=>{Ir(S,{_chunkSteps:oe=>{O=m(Qs(x,oe),void 0,e),M(!1)},_closeSteps:()=>M(!0),_errorSteps:K})}))}if(ct(r,S._closedPromise,M=>(h?Ue(!0,M):Se(()=>vn(i,M),!0,M),null)),ct(i,x._closedPromise,M=>(b?Ue(!0,M):Se(()=>Ge(r,M),!0,M),null)),_e(r,S._closedPromise,()=>(l?Ue():Se(()=>Zf(x)),null)),et(i)||i._state==="closed"){let M=new TypeError("the destination writable stream closed before all data could be piped to it");b?Ue(!0,M):Se(()=>Ge(r,M),!0,M)}k(Xe());function Tt(){let M=O;return m(O,()=>M!==O?Tt():void 0)}function ct(M,K,oe){M._state==="errored"?oe(M._storedError):w(K,oe)}function _e(M,K,oe){M._state==="closed"?oe():g(K,oe)}function Se(M,K,oe){if(N)return;N=!0,i._state==="writable"&&!et(i)?g(Tt(),ke):ke();function ke(){return y(M(),()=>dt(K,oe),mr=>dt(!0,mr)),null}}function Ue(M,K){N||(N=!0,i._state==="writable"&&!et(i)?g(Tt(),()=>dt(M,K)):dt(M,K))}function dt(M,K){return Ys(x),D(S),v!==void 0&&v.removeEventListener("abort",ne),M?W(K):j(void 0),null}})}class ut{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!An(this))throw Tn("desiredSize");return si(this)}close(){if(!An(this))throw Tn("close");if(!fr(this))throw new TypeError("The stream is not in a state that permits close");Ht(this)}enqueue(i=void 0){if(!An(this))throw Tn("enqueue");if(!fr(this))throw new TypeError("The stream is not in a state that permits enqueue");return dr(this,i)}error(i=void 0){if(!An(this))throw Tn("error");Ke(this,i)}[He](i){Pt(this);let l=this._cancelAlgorithm(i);return kn(this),l}[wt](i){let l=this._controlledReadableStream;if(this._queue.length>0){let h=No(this);this._closeRequested&&this._queue.length===0?(kn(this),Ur(l)):qr(this),i._chunkSteps(h)}else ms(l,i),qr(this)}[Mt](){}}Object.defineProperties(ut.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),o(ut.prototype.close,"close"),o(ut.prototype.enqueue,"enqueue"),o(ut.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ut.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function An(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableStream")?!1:r instanceof ut}function qr(r){if(!sl(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();y(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,qr(r)),null),h=>(Ke(r,h),null))}function sl(r){let i=r._controlledReadableStream;return!fr(r)||!r._started?!1:!!(At(i)&&cn(i)>0||si(r)>0)}function kn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Ht(r){if(!fr(r))return;let i=r._controlledReadableStream;r._closeRequested=!0,r._queue.length===0&&(kn(r),Ur(i))}function dr(r,i){if(!fr(r))return;let l=r._controlledReadableStream;if(At(l)&&cn(l)>0)Bo(l,i,!1);else{let h;try{h=r._strategySizeAlgorithm(i)}catch(b){throw Ke(r,b),b}try{jo(r,i,h)}catch(b){throw Ke(r,b),b}}qr(r)}function Ke(r,i){let l=r._controlledReadableStream;l._state==="readable"&&(Pt(r),kn(r),dl(l,i))}function si(r){let i=r._controlledReadableStream._state;return i==="errored"?null:i==="closed"?0:r._strategyHWM-r._queueTotalSize}function _p(r){return!sl(r)}function fr(r){let i=r._controlledReadableStream._state;return!r._closeRequested&&i==="readable"}function ll(r,i,l,h,b,v,S){i._controlledReadableStream=r,i._queue=void 0,i._queueTotalSize=void 0,Pt(i),i._started=!1,i._closeRequested=!1,i._pullAgain=!1,i._pulling=!1,i._strategySizeAlgorithm=S,i._strategyHWM=v,i._pullAlgorithm=h,i._cancelAlgorithm=b,r._readableStreamController=i;let x=l();y(c(x),()=>(i._started=!0,qr(i),null),N=>(Ke(i,N),null))}function bp(r,i,l,h){let b=Object.create(ut.prototype),v,S,x;i.start!==void 0?v=()=>i.start(b):v=()=>{},i.pull!==void 0?S=()=>i.pull(b):S=()=>c(void 0),i.cancel!==void 0?x=N=>i.cancel(N):x=()=>c(void 0),ll(r,b,v,S,x,l,h)}function Tn(r){return new TypeError(`ReadableStreamDefaultController.prototype.${r} can only be used on a ReadableStreamDefaultController`)}function yp(r,i){return jt(r._readableStreamController)?vp(r):wp(r)}function wp(r,i){let l=ar(r),h=!1,b=!1,v=!1,S=!1,x,N,O,j,W,ne=d(_e=>{W=_e});function Xe(){return h?(b=!0,c(void 0)):(h=!0,Ir(l,{_chunkSteps:Se=>{I(()=>{b=!1;let Ue=Se,dt=Se;v||dr(O._readableStreamController,Ue),S||dr(j._readableStreamController,dt),h=!1,b&&Xe()})},_closeSteps:()=>{h=!1,v||Ht(O._readableStreamController),S||Ht(j._readableStreamController),(!v||!S)&&W(void 0)},_errorSteps:()=>{h=!1}}),c(void 0))}function hr(_e){if(v=!0,x=_e,S){let Se=Cr([x,N]),Ue=Ge(r,Se);W(Ue)}return ne}function Tt(_e){if(S=!0,N=_e,v){let Se=Cr([x,N]),Ue=Ge(r,Se);W(Ue)}return ne}function ct(){}return O=Mr(ct,Xe,hr),j=Mr(ct,Xe,Tt),w(l._closedPromise,_e=>(Ke(O._readableStreamController,_e),Ke(j._readableStreamController,_e),(!v||!S)&&W(void 0),null)),[O,j]}function vp(r){let i=ar(r),l=!1,h=!1,b=!1,v=!1,S=!1,x,N,O,j,W,ne=d(M=>{W=M});function Xe(M){w(M._closedPromise,K=>(M!==i||(Me(O._readableStreamController,K),Me(j._readableStreamController,K),(!v||!S)&&W(void 0)),null))}function hr(){zt(i)&&(D(i),i=ar(r),Xe(i)),Ir(i,{_chunkSteps:K=>{I(()=>{h=!1,b=!1;let oe=K,ke=K;if(!v&&!S)try{ke=xs(K)}catch(mr){Me(O._readableStreamController,mr),Me(j._readableStreamController,mr),W(Ge(r,mr));return}v||mn(O._readableStreamController,oe),S||mn(j._readableStreamController,ke),l=!1,h?ct():b&&_e()})},_closeSteps:()=>{l=!1,v||Dr(O._readableStreamController),S||Dr(j._readableStreamController),O._readableStreamController._pendingPullIntos.length>0&&gn(O._readableStreamController,0),j._readableStreamController._pendingPullIntos.length>0&&gn(j._readableStreamController,0),(!v||!S)&&W(void 0)},_errorSteps:()=>{l=!1}})}function Tt(M,K){St(i)&&(D(i),i=Ms(r),Xe(i));let oe=K?j:O,ke=K?O:j;js(i,M,1,{_chunkSteps:gr=>{I(()=>{h=!1,b=!1;let _r=K?S:v;if(K?v:S)_r||_n(oe._readableStreamController,gr);else{let Pl;try{Pl=xs(gr)}catch(fi){Me(oe._readableStreamController,fi),Me(ke._readableStreamController,fi),W(Ge(r,fi));return}_r||_n(oe._readableStreamController,gr),mn(ke._readableStreamController,Pl)}l=!1,h?ct():b&&_e()})},_closeSteps:gr=>{l=!1;let _r=K?S:v,qn=K?v:S;_r||Dr(oe._readableStreamController),qn||Dr(ke._readableStreamController),gr!==void 0&&(_r||_n(oe._readableStreamController,gr),!qn&&ke._readableStreamController._pendingPullIntos.length>0&&gn(ke._readableStreamController,0)),(!_r||!qn)&&W(void 0)},_errorSteps:()=>{l=!1}})}function ct(){if(l)return h=!0,c(void 0);l=!0;let M=Ko(O._readableStreamController);return M===null?hr():Tt(M._view,!1),c(void 0)}function _e(){if(l)return b=!0,c(void 0);l=!0;let M=Ko(j._readableStreamController);return M===null?hr():Tt(M._view,!0),c(void 0)}function Se(M){if(v=!0,x=M,S){let K=Cr([x,N]),oe=Ge(r,K);W(oe)}return ne}function Ue(M){if(S=!0,N=M,v){let K=Cr([x,N]),oe=Ge(r,K);W(oe)}return ne}function dt(){}return O=cl(dt,ct,Se),j=cl(dt,_e,Ue),Xe(i),[O,j]}function Sp(r){return t(r)&&typeof r.getReader<"u"}function Rp(r){return Sp(r)?Ep(r.getReader()):Pp(r)}function Pp(r){let i,l=Es(r,"async"),h=e;function b(){let S;try{S=mf(l)}catch(N){return p(N)}let x=c(S);return R(x,N=>{if(!t(N))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(gf(N))Ht(i._readableStreamController);else{let j=_f(N);dr(i._readableStreamController,j)}})}function v(S){let x=l.iterator,N;try{N=fn(x,"return")}catch(W){return p(W)}if(N===void 0)return c(void 0);let O;try{O=E(N,x,[S])}catch(W){return p(W)}let j=c(O);return R(j,W=>{if(!t(W))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return i=Mr(h,b,v,0),i}function Ep(r){let i,l=e;function h(){let v;try{v=r.read()}catch(S){return p(S)}return R(v,S=>{if(!t(S))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(S.done)Ht(i._readableStreamController);else{let x=S.value;dr(i._readableStreamController,x)}})}function b(v){try{return c(r.cancel(v))}catch(S){return p(S)}}return i=Mr(l,h,b,0),i}function xp(r,i){Ze(r,i);let l=r,h=l?.autoAllocateChunkSize,b=l?.cancel,v=l?.pull,S=l?.start,x=l?.type;return{autoAllocateChunkSize:h===void 0?void 0:$o(h,`${i} has member 'autoAllocateChunkSize' that`),cancel:b===void 0?void 0:Lp(b,l,`${i} has member 'cancel' that`),pull:v===void 0?void 0:Ap(v,l,`${i} has member 'pull' that`),start:S===void 0?void 0:kp(S,l,`${i} has member 'start' that`),type:x===void 0?void 0:Tp(x,`${i} has member 'type' that`)}}function Lp(r,i,l){return qe(r,l),h=>re(r,i,[h])}function Ap(r,i,l){return qe(r,l),h=>re(r,i,[h])}function kp(r,i,l){return qe(r,l),h=>E(r,i,[h])}function Tp(r,i){if(r=`${r}`,r!=="bytes")throw new TypeError(`${i} '${r}' is not a valid enumeration value for ReadableStreamType`);return r}function Ip(r,i){return Ze(r,i),{preventCancel:!!r?.preventCancel}}function ul(r,i){Ze(r,i);let l=r?.preventAbort,h=r?.preventCancel,b=r?.preventClose,v=r?.signal;return v!==void 0&&Cp(v,`${i} has member 'signal' that`),{preventAbort:!!l,preventCancel:!!h,preventClose:!!b,signal:v}}function Cp(r,i){if(!Uf(r))throw new TypeError(`${i} is not an AbortSignal.`)}function Dp(r,i){Ze(r,i);let l=r?.readable;Co(l,"readable","ReadableWritablePair"),Fo(l,`${i} has member 'readable' that`);let h=r?.writable;return Co(h,"writable","ReadableWritablePair"),Vs(h,`${i} has member 'writable' that`),{readable:l,writable:h}}class me{constructor(i={},l={}){i===void 0?i=null:ps(i,"First parameter");let h=wn(l,"Second parameter"),b=xp(i,"First parameter");if(li(this),b.type==="bytes"){if(h.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let v=Fr(h,0);Lf(this,b,v)}else{let v=yn(h),S=Fr(h,1);bp(this,b,S,v)}}get locked(){if(!Lt(this))throw Kt("locked");return At(this)}cancel(i=void 0){return Lt(this)?At(this)?p(new TypeError("Cannot cancel a stream that already has a reader")):Ge(this,i):p(Kt("cancel"))}getReader(i=void 0){if(!Lt(this))throw Kt("getReader");return kf(i,"First parameter").mode===void 0?ar(this):Ms(this)}pipeThrough(i,l={}){if(!Lt(this))throw Kt("pipeThrough");it(i,1,"pipeThrough");let h=Dp(i,"First parameter"),b=ul(l,"Second parameter");if(At(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(ur(h.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let v=al(this,h.writable,b.preventClose,b.preventAbort,b.preventCancel,b.signal);return k(v),h.readable}pipeTo(i,l={}){if(!Lt(this))return p(Kt("pipeTo"));if(i===void 0)return p("Parameter 1 is required in 'pipeTo'.");if(!lr(i))return p(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let h;try{h=ul(l,"Second parameter")}catch(b){return p(b)}return At(this)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):ur(i)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):al(this,i,h.preventClose,h.preventAbort,h.preventCancel,h.signal)}tee(){if(!Lt(this))throw Kt("tee");let i=yp(this);return Cr(i)}values(i=void 0){if(!Lt(this))throw Kt("values");let l=Ip(i,"First parameter");return pf(this,l.preventCancel)}[Uo](i){return this.values(i)}static from(i){return Rp(i)}}Object.defineProperties(me,{from:{enumerable:!0}}),Object.defineProperties(me.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),o(me.from,"from"),o(me.prototype.cancel,"cancel"),o(me.prototype.getReader,"getReader"),o(me.prototype.pipeThrough,"pipeThrough"),o(me.prototype.pipeTo,"pipeTo"),o(me.prototype.tee,"tee"),o(me.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(me.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(me.prototype,Uo,{value:me.prototype.values,writable:!0,configurable:!0});function Mr(r,i,l,h=1,b=()=>1){let v=Object.create(me.prototype);li(v);let S=Object.create(ut.prototype);return ll(v,S,r,i,l,h,b),v}function cl(r,i,l){let h=Object.create(me.prototype);li(h);let b=Object.create(st.prototype);return qs(h,b,r,i,l,0,void 0),h}function li(r){r._state="readable",r._reader=void 0,r._storedError=void 0,r._disturbed=!1}function Lt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readableStreamController")?!1:r instanceof me}function At(r){return r._reader!==void 0}function Ge(r,i){if(r._disturbed=!0,r._state==="closed")return c(void 0);if(r._state==="errored")return p(r._storedError);Ur(r);let l=r._reader;if(l!==void 0&&zt(l)){let b=l._readIntoRequests;l._readIntoRequests=new X,b.forEach(v=>{v._closeSteps(void 0)})}let h=r._readableStreamController[He](i);return R(h,e)}function Ur(r){r._state="closed";let i=r._reader;if(i!==void 0&&(ue(i),St(i))){let l=i._readRequests;i._readRequests=new X,l.forEach(h=>{h._closeSteps()})}}function dl(r,i){r._state="errored",r._storedError=i;let l=r._reader;l!==void 0&&(we(l,i),St(l)?_s(l,i):zs(l,i))}function Kt(r){return new TypeError(`ReadableStream.prototype.${r} can only be used on a ReadableStream`)}function fl(r,i){Ze(r,i);let l=r?.highWaterMark;return Co(l,"highWaterMark","QueuingStrategyInit"),{highWaterMark:Do(l)}}let pl=r=>r.byteLength;o(pl,"size");class In{constructor(i){it(i,1,"ByteLengthQueuingStrategy"),i=fl(i,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=i.highWaterMark}get highWaterMark(){if(!ml(this))throw hl("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!ml(this))throw hl("size");return pl}}Object.defineProperties(In.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(In.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function hl(r){return new TypeError(`ByteLengthQueuingStrategy.prototype.${r} can only be used on a ByteLengthQueuingStrategy`)}function ml(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_byteLengthQueuingStrategyHighWaterMark")?!1:r instanceof In}let gl=()=>1;o(gl,"size");class Cn{constructor(i){it(i,1,"CountQueuingStrategy"),i=fl(i,"First parameter"),this._countQueuingStrategyHighWaterMark=i.highWaterMark}get highWaterMark(){if(!bl(this))throw _l("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!bl(this))throw _l("size");return gl}}Object.defineProperties(Cn.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Cn.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function _l(r){return new TypeError(`CountQueuingStrategy.prototype.${r} can only be used on a CountQueuingStrategy`)}function bl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_countQueuingStrategyHighWaterMark")?!1:r instanceof Cn}function $p(r,i){Ze(r,i);let l=r?.cancel,h=r?.flush,b=r?.readableType,v=r?.start,S=r?.transform,x=r?.writableType;return{cancel:l===void 0?void 0:qp(l,r,`${i} has member 'cancel' that`),flush:h===void 0?void 0:Fp(h,r,`${i} has member 'flush' that`),readableType:b,start:v===void 0?void 0:Bp(v,r,`${i} has member 'start' that`),transform:S===void 0?void 0:Op(S,r,`${i} has member 'transform' that`),writableType:x}}function Fp(r,i,l){return qe(r,l),h=>re(r,i,[h])}function Bp(r,i,l){return qe(r,l),h=>E(r,i,[h])}function Op(r,i,l){return qe(r,l),(h,b)=>re(r,i,[h,b])}function qp(r,i,l){return qe(r,l),h=>re(r,i,[h])}class Dn{constructor(i={},l={},h={}){i===void 0&&(i=null);let b=wn(l,"Second parameter"),v=wn(h,"Third parameter"),S=$p(i,"First parameter");if(S.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(S.writableType!==void 0)throw new RangeError("Invalid writableType specified");let x=Fr(v,0),N=yn(v),O=Fr(b,1),j=yn(b),W,ne=d(Xe=>{W=Xe});Mp(this,ne,O,j,x,N),Np(this,S),S.start!==void 0?W(S.start(this._transformStreamController)):W(void 0)}get readable(){if(!yl(this))throw Rl("readable");return this._readable}get writable(){if(!yl(this))throw Rl("writable");return this._writable}}Object.defineProperties(Dn.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Dn.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function Mp(r,i,l,h,b,v){function S(){return i}function x(ne){return Vp(r,ne)}function N(ne){return Wp(r,ne)}function O(){return Hp(r)}r._writable=zf(S,x,O,N,l,h);function j(){return Kp(r)}function W(ne){return Gp(r,ne)}r._readable=Mr(S,j,W,b,v),r._backpressure=void 0,r._backpressureChangePromise=void 0,r._backpressureChangePromise_resolve=void 0,$n(r,!0),r._transformStreamController=void 0}function yl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_transformStreamController")?!1:r instanceof Dn}function wl(r,i){Ke(r._readable._readableStreamController,i),ui(r,i)}function ui(r,i){Bn(r._transformStreamController),Br(r._writable._writableStreamController,i),ci(r)}function ci(r){r._backpressure&&$n(r,!1)}function $n(r,i){r._backpressureChangePromise!==void 0&&r._backpressureChangePromise_resolve(),r._backpressureChangePromise=d(l=>{r._backpressureChangePromise_resolve=l}),r._backpressure=i}class kt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Fn(this))throw On("desiredSize");let i=this._controlledTransformStream._readable._readableStreamController;return si(i)}enqueue(i=void 0){if(!Fn(this))throw On("enqueue");vl(this,i)}error(i=void 0){if(!Fn(this))throw On("error");jp(this,i)}terminate(){if(!Fn(this))throw On("terminate");zp(this)}}Object.defineProperties(kt.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),o(kt.prototype.enqueue,"enqueue"),o(kt.prototype.error,"error"),o(kt.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(kt.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function Fn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledTransformStream")?!1:r instanceof kt}function Up(r,i,l,h,b){i._controlledTransformStream=r,r._transformStreamController=i,i._transformAlgorithm=l,i._flushAlgorithm=h,i._cancelAlgorithm=b,i._finishPromise=void 0,i._finishPromise_resolve=void 0,i._finishPromise_reject=void 0}function Np(r,i){let l=Object.create(kt.prototype),h,b,v;i.transform!==void 0?h=S=>i.transform(S,l):h=S=>{try{return vl(l,S),c(void 0)}catch(x){return p(x)}},i.flush!==void 0?b=()=>i.flush(l):b=()=>c(void 0),i.cancel!==void 0?v=S=>i.cancel(S):v=()=>c(void 0),Up(r,l,h,b,v)}function Bn(r){r._transformAlgorithm=void 0,r._flushAlgorithm=void 0,r._cancelAlgorithm=void 0}function vl(r,i){let l=r._controlledTransformStream,h=l._readable._readableStreamController;if(!fr(h))throw new TypeError("Readable side is not in a state that permits enqueue");try{dr(h,i)}catch(v){throw ui(l,v),l._readable._storedError}_p(h)!==l._backpressure&&$n(l,!0)}function jp(r,i){wl(r._controlledTransformStream,i)}function Sl(r,i){let l=r._transformAlgorithm(i);return R(l,void 0,h=>{throw wl(r._controlledTransformStream,h),h})}function zp(r){let i=r._controlledTransformStream,l=i._readable._readableStreamController;Ht(l);let h=new TypeError("TransformStream terminated");ui(i,h)}function Vp(r,i){let l=r._transformStreamController;if(r._backpressure){let h=r._backpressureChangePromise;return R(h,()=>{let b=r._writable;if(b._state==="erroring")throw b._storedError;return Sl(l,i)})}return Sl(l,i)}function Wp(r,i){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._readable;l._finishPromise=d((v,S)=>{l._finishPromise_resolve=v,l._finishPromise_reject=S});let b=l._cancelAlgorithm(i);return Bn(l),y(b,()=>(h._state==="errored"?pr(l,h._storedError):(Ke(h._readableStreamController,i),di(l)),null),v=>(Ke(h._readableStreamController,v),pr(l,v),null)),l._finishPromise}function Hp(r){let i=r._transformStreamController;if(i._finishPromise!==void 0)return i._finishPromise;let l=r._readable;i._finishPromise=d((b,v)=>{i._finishPromise_resolve=b,i._finishPromise_reject=v});let h=i._flushAlgorithm();return Bn(i),y(h,()=>(l._state==="errored"?pr(i,l._storedError):(Ht(l._readableStreamController),di(i)),null),b=>(Ke(l._readableStreamController,b),pr(i,b),null)),i._finishPromise}function Kp(r){return $n(r,!1),r._backpressureChangePromise}function Gp(r,i){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._writable;l._finishPromise=d((v,S)=>{l._finishPromise_resolve=v,l._finishPromise_reject=S});let b=l._cancelAlgorithm(i);return Bn(l),y(b,()=>(h._state==="errored"?pr(l,h._storedError):(Br(h._writableStreamController,i),ci(r),di(l)),null),v=>(Br(h._writableStreamController,v),ci(r),pr(l,v),null)),l._finishPromise}function On(r){return new TypeError(`TransformStreamDefaultController.prototype.${r} can only be used on a TransformStreamDefaultController`)}function di(r){r._finishPromise_resolve!==void 0&&(r._finishPromise_resolve(),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function pr(r,i){r._finishPromise_reject!==void 0&&(k(r._finishPromise),r._finishPromise_reject(i),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function Rl(r){return new TypeError(`TransformStream.prototype.${r} can only be used on a TransformStream`)}a.ByteLengthQueuingStrategy=In,a.CountQueuingStrategy=Cn,a.ReadableByteStreamController=st,a.ReadableStream=me,a.ReadableStreamBYOBReader=Et,a.ReadableStreamBYOBRequest=Nt,a.ReadableStreamDefaultController=ut,a.ReadableStreamDefaultReader=vt,a.TransformStream=Dn,a.TransformStreamDefaultController=kt,a.WritableStream=xt,a.WritableStreamDefaultController=cr,a.WritableStreamDefaultWriter=lt})});var ru=F(()=>{"use strict";if(!globalThis.ReadableStream)try{let a=require("node:process"),{emitWarning:e}=a;try{a.emitWarning=()=>{},Object.assign(globalThis,require("node:stream/web")),a.emitWarning=e}catch(t){throw a.emitWarning=e,t}}catch{Object.assign(globalThis,tu())}try{let{Blob:a}=require("buffer");a&&!a.prototype.stream&&(a.prototype.stream=function(t){let n=0,o=this;return new ReadableStream({type:"bytes",async pull(s){let f=await o.slice(n,Math.min(o.size,n+65536)).arrayBuffer();n+=f.byteLength,s.enqueue(new Uint8Array(f)),n===o.size&&s.close()}})})}catch{}});async function*Ni(a,e=!0){for(let t of a)if("stream"in t)yield*t.stream();else if(ArrayBuffer.isView(t))if(e){let n=t.byteOffset,o=t.byteOffset+t.byteLength;for(;n!==o;){let s=Math.min(o-n,nu),u=t.buffer.slice(n,n+s);n+=u.byteLength,yield new Uint8Array(u)}}else yield t;else{let n=0,o=t;for(;n!==o.size;){let u=await o.slice(n,Math.min(o.size,n+nu)).arrayBuffer();n+=u.byteLength,yield new Uint8Array(u)}}}var Vb,nu,ou,nm,ft,jr=Q(()=>{"use strict";Vb=le(ru(),1);nu=65536;ou=class ji{#e=[];#t="";#r=0;#n="transparent";constructor(e=[],t={}){if(typeof e!="object"||e===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(typeof e[Symbol.iterator]!="function")throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof t!="object"&&typeof t!="function")throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");t===null&&(t={});let n=new TextEncoder;for(let s of e){let u;ArrayBuffer.isView(s)?u=new Uint8Array(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength)):s instanceof ArrayBuffer?u=new Uint8Array(s.slice(0)):s instanceof ji?u=s:u=n.encode(`${s}`),this.#r+=ArrayBuffer.isView(u)?u.byteLength:u.size,this.#e.push(u)}this.#n=`${t.endings===void 0?"transparent":t.endings}`;let o=t.type===void 0?"":String(t.type);this.#t=/^[\x20-\x7E]*$/.test(o)?o:""}get size(){return this.#r}get type(){return this.#t}async text(){let e=new TextDecoder,t="";for await(let n of Ni(this.#e,!1))t+=e.decode(n,{stream:!0});return t+=e.decode(),t}async arrayBuffer(){let e=new Uint8Array(this.size),t=0;for await(let n of Ni(this.#e,!1))e.set(n,t),t+=n.length;return e.buffer}stream(){let e=Ni(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(t){let n=await e.next();n.done?t.close():t.enqueue(n.value)},async cancel(){await e.return()}})}slice(e=0,t=this.size,n=""){let{size:o}=this,s=e<0?Math.max(o+e,0):Math.min(e,o),u=t<0?Math.max(o+t,0):Math.min(t,o),f=Math.max(u-s,0),d=this.#e,c=[],p=0;for(let y of d){if(p>=f)break;let g=ArrayBuffer.isView(y)?y.byteLength:y.size;if(s&&g<=s)s-=g,u-=g;else{let w;ArrayBuffer.isView(y)?(w=y.subarray(s,Math.min(g,u)),p+=w.byteLength):(w=y.slice(s,Math.min(g,u)),p+=w.size),u-=g,c.push(w),s=0}}let m=new ji([],{type:String(n).toLowerCase()});return m.#r=f,m.#e=c,m}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](e){return e&&typeof e=="object"&&typeof e.constructor=="function"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}};Object.defineProperties(ou.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});nm=ou,ft=nm});var om,im,br,zi=Q(()=>{"use strict";jr();om=class extends ft{#e=0;#t="";constructor(e,t,n={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(e,n),n===null&&(n={});let o=n.lastModified===void 0?Date.now():Number(n.lastModified);Number.isNaN(o)||(this.#e=o),this.#t=String(t)}get name(){return this.#t}get lastModified(){return this.#e}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](e){return!!e&&e instanceof ft&&/^(File)$/.test(e[Symbol.toStringTag])}},im=om,br=im});function su(a,e=ft){var t=`${iu()}${iu()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),n=[],o=`--${t}\r
3267
+ `});var Yl={};Z(Yl,{default:()=>Qh,filenames:()=>Jh});var Yh,Qh,Jh,Ql=Q(()=>{"use strict";xl();Ll();Al();kl();Tl();Cl();Il();Dl();$l();Fl();Ol();Bl();ql();Ml();Nl();Ul();jl();Wl();Vl();zl();Hl();Kl();Gl();Xl();Yh=[gi,_i,bi,yi,wi,vi,Si,Ri,Pi,Ei,xi,Li,Ai,ki,Ti,Ci,Ii,Di,$i,Fi,Oi,Bi,qi,Mi],Qh=Yh,Jh=["../luals-addon/factorio/factorio-plugin/arg-parser.lua","../luals-addon/factorio/factorio-plugin/command-line.lua","../luals-addon/factorio/factorio-plugin/object-name.lua","../luals-addon/factorio/factorio-plugin/remote.lua","../luals-addon/factorio/factorio-plugin/require.lua","../luals-addon/factorio/factorio-plugin/storage.lua","../luals-addon/factorio/factorio-plugin/util.lua","../luals-addon/factorio/library/core/lualib/event_handler.lua","../luals-addon/factorio/library/core/lualib/meld.lua","../luals-addon/factorio/library/core/lualib/mod-gui.lua","../luals-addon/factorio/library/core/lualib/util.lua","../luals-addon/factorio/library/data/mod-settings.lua","../luals-addon/factorio/library/data/mods.lua","../luals-addon/factorio/library/lua/builtins.lua","../luals-addon/factorio/library/lua/debug.lua","../luals-addon/factorio/library/lua/math.lua","../luals-addon/factorio/library/lua/package.lua","../luals-addon/factorio/library/lua/serpent.lua","../luals-addon/factorio/library/lua/string.lua","../luals-addon/factorio/library/runtime/LuaObject.lua","../luals-addon/factorio/library/runtime/blueprint.lua","../luals-addon/factorio/library/runtime/deprecated_2.0.lua","../luals-addon/factorio/library/runtime/storage.lua","../luals-addon/factorio/plugin.lua"]});var Jl=F((Mb,Zh)=>{Zh.exports={name:"Factorio",files:["control%.lua","data%.lua","data%-updates%.lua","data%-final%-fixes%.lua","settings%.lua","settings%-updates%.lua","settings%-final%-fixes%.lua"],settings:{"Lua.runtime.version":"Lua 5.2","Lua.runtime.path":["?.lua"],"Lua.runtime.special":{__object_name:"type"},"Lua.runtime.builtin":{io:"disable",os:"disable",coroutine:"disable",package:"disable",math:"disable",debug:"disable"},"Lua.diagnostics.globals":["__DebugAdapter","__Profiler"],"Lua.diagnostics.disable":["lowercase-global"]}}});var tu=F((Vn,eu)=>{"use strict";(function(a,e){typeof Vn=="object"&&typeof eu<"u"?e(Vn):typeof define=="function"&&define.amd?define(["exports"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.WebStreamsPolyfill={}))})(Vn,function(a){"use strict";function e(){}function t(r){return typeof r=="object"&&r!==null||typeof r=="function"}let n=e;function o(r,i){try{Object.defineProperty(r,"name",{value:i,configurable:!0})}catch{}}let s=Promise,u=Promise.prototype.then,f=Promise.reject.bind(s);function d(r){return new s(r)}function c(r){return d(i=>i(r))}function p(r){return f(r)}function m(r,i,l){return u.call(r,i,l)}function y(r,i,l){m(m(r,i,l),void 0,n)}function g(r,i){y(r,i)}function w(r,i){y(r,void 0,i)}function R(r,i,l){return m(r,i,l)}function k(r){m(r,void 0,n)}let C=r=>{if(typeof queueMicrotask=="function")C=queueMicrotask;else{let i=c(void 0);C=l=>m(i,l)}return C(r)};function E(r,i,l){if(typeof r!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(r,i,l)}function re(r,i,l){try{return c(E(r,i,l))}catch(h){return p(h)}}let G=16384;class X{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(i){let l=this._back,h=l;l._elements.length===G-1&&(h={_elements:[],_next:void 0}),l._elements.push(i),h!==l&&(this._back=h,l._next=h),++this._size}shift(){let i=this._front,l=i,h=this._cursor,b=h+1,v=i._elements,S=v[h];return b===G&&(l=i._next,b=0),--this._size,this._cursor=b,i!==l&&(this._front=l),v[h]=void 0,S}forEach(i){let l=this._cursor,h=this._front,b=h._elements;for(;(l!==b.length||h._next!==void 0)&&!(l===b.length&&(h=h._next,b=h._elements,l=0,b.length===0));)i(b[l]),++l}peek(){let i=this._front,l=this._cursor;return i._elements[l]}}let J=Symbol("[[AbortSteps]]"),ze=Symbol("[[ErrorSteps]]"),He=Symbol("[[CancelSteps]]"),wt=Symbol("[[PullSteps]]"),Mt=Symbol("[[ReleaseSteps]]");function I(r,i){r._ownerReadableStream=i,i._reader=r,i._state==="readable"?Y(r):i._state==="closed"?V(r):H(r,i._storedError)}function P(r,i){let l=r._ownerReadableStream;return Ge(l,i)}function D(r){let i=r._ownerReadableStream;i._state==="readable"?we(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):ve(r,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),i._readableStreamController[Mt](),i._reader=void 0,r._ownerReadableStream=void 0}function $(r){return new TypeError("Cannot "+r+" a stream using a released reader")}function Y(r){r._closedPromise=d((i,l)=>{r._closedPromise_resolve=i,r._closedPromise_reject=l})}function H(r,i){Y(r),we(r,i)}function V(r){Y(r),ue(r)}function we(r,i){r._closedPromise_reject!==void 0&&(k(r._closedPromise),r._closedPromise_reject(i),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}function ve(r,i){H(r,i)}function ue(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}let Nt=Number.isFinite||function(r){return typeof r=="number"&&isFinite(r)},sf=Math.trunc||function(r){return r<0?Math.ceil(r):Math.floor(r)};function lf(r){return typeof r=="object"||typeof r=="function"}function Ze(r,i){if(r!==void 0&&!lf(r))throw new TypeError(`${i} is not an object.`)}function qe(r,i){if(typeof r!="function")throw new TypeError(`${i} is not a function.`)}function uf(r){return typeof r=="object"&&r!==null||typeof r=="function"}function ps(r,i){if(!uf(r))throw new TypeError(`${i} is not an object.`)}function it(r,i,l){if(r===void 0)throw new TypeError(`Parameter ${i} is required in '${l}'.`)}function Io(r,i,l){if(r===void 0)throw new TypeError(`${i} is required in '${l}'.`)}function Do(r){return Number(r)}function hs(r){return r===0?0:r}function cf(r){return hs(sf(r))}function $o(r,i){let h=Number.MAX_SAFE_INTEGER,b=Number(r);if(b=hs(b),!Nt(b))throw new TypeError(`${i} is not a finite number`);if(b=cf(b),b<0||b>h)throw new TypeError(`${i} is outside the accepted range of 0 to ${h}, inclusive`);return!Nt(b)||b===0?0:b}function Fo(r,i){if(!Lt(r))throw new TypeError(`${i} is not a ReadableStream.`)}function ar(r){return new vt(r)}function ms(r,i){r._reader._readRequests.push(i)}function Oo(r,i,l){let b=r._reader._readRequests.shift();l?b._closeSteps():b._chunkSteps(i)}function cn(r){return r._reader._readRequests.length}function gs(r){let i=r._reader;return!(i===void 0||!St(i))}class vt{constructor(i){if(it(i,1,"ReadableStreamDefaultReader"),Fo(i,"First parameter"),At(i))throw new TypeError("This stream has already been locked for exclusive reading by another reader");I(this,i),this._readRequests=new X}get closed(){return St(this)?this._closedPromise:p(dn("closed"))}cancel(i=void 0){return St(this)?this._ownerReadableStream===void 0?p($("cancel")):P(this,i):p(dn("cancel"))}read(){if(!St(this))return p(dn("read"));if(this._ownerReadableStream===void 0)return p($("read from"));let i,l,h=d((v,S)=>{i=v,l=S});return Cr(this,{_chunkSteps:v=>i({value:v,done:!1}),_closeSteps:()=>i({value:void 0,done:!0}),_errorSteps:v=>l(v)}),h}releaseLock(){if(!St(this))throw dn("releaseLock");this._ownerReadableStream!==void 0&&df(this)}}Object.defineProperties(vt.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(vt.prototype.cancel,"cancel"),o(vt.prototype.read,"read"),o(vt.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(vt.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function St(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readRequests")?!1:r instanceof vt}function Cr(r,i){let l=r._ownerReadableStream;l._disturbed=!0,l._state==="closed"?i._closeSteps():l._state==="errored"?i._errorSteps(l._storedError):l._readableStreamController[wt](i)}function df(r){D(r);let i=new TypeError("Reader was released");_s(r,i)}function _s(r,i){let l=r._readRequests;r._readRequests=new X,l.forEach(h=>{h._errorSteps(i)})}function dn(r){return new TypeError(`ReadableStreamDefaultReader.prototype.${r} can only be used on a ReadableStreamDefaultReader`)}let ff=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class bs{constructor(i,l){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=i,this._preventCancel=l}next(){let i=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?R(this._ongoingPromise,i,i):i(),this._ongoingPromise}return(i){let l=()=>this._returnSteps(i);return this._ongoingPromise?R(this._ongoingPromise,l,l):l()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let i=this._reader,l,h,b=d((S,x)=>{l=S,h=x});return Cr(i,{_chunkSteps:S=>{this._ongoingPromise=void 0,C(()=>l({value:S,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,D(i),l({value:void 0,done:!0})},_errorSteps:S=>{this._ongoingPromise=void 0,this._isFinished=!0,D(i),h(S)}}),b}_returnSteps(i){if(this._isFinished)return Promise.resolve({value:i,done:!0});this._isFinished=!0;let l=this._reader;if(!this._preventCancel){let h=P(l,i);return D(l),R(h,()=>({value:i,done:!0}))}return D(l),c({value:i,done:!0})}}let ys={next(){return ws(this)?this._asyncIteratorImpl.next():p(vs("next"))},return(r){return ws(this)?this._asyncIteratorImpl.return(r):p(vs("return"))}};Object.setPrototypeOf(ys,ff);function pf(r,i){let l=ar(r),h=new bs(l,i),b=Object.create(ys);return b._asyncIteratorImpl=h,b}function ws(r){if(!t(r)||!Object.prototype.hasOwnProperty.call(r,"_asyncIteratorImpl"))return!1;try{return r._asyncIteratorImpl instanceof bs}catch{return!1}}function vs(r){return new TypeError(`ReadableStreamAsyncIterator.${r} can only be used on a ReadableSteamAsyncIterator`)}let Ss=Number.isNaN||function(r){return r!==r};var Bo,qo,Mo;function Ir(r){return r.slice()}function Rs(r,i,l,h,b){new Uint8Array(r).set(new Uint8Array(l,h,b),i)}let at=r=>(typeof r.transfer=="function"?at=i=>i.transfer():typeof structuredClone=="function"?at=i=>structuredClone(i,{transfer:[i]}):at=i=>i,at(r)),Rt=r=>(typeof r.detached=="boolean"?Rt=i=>i.detached:Rt=i=>i.byteLength===0,Rt(r));function Ps(r,i,l){if(r.slice)return r.slice(i,l);let h=l-i,b=new ArrayBuffer(h);return Rs(b,0,r,i,h),b}function fn(r,i){let l=r[i];if(l!=null){if(typeof l!="function")throw new TypeError(`${String(i)} is not a function`);return l}}function hf(r){let i={[Symbol.iterator]:()=>r.iterator},l=async function*(){return yield*i}(),h=l.next;return{iterator:l,nextMethod:h,done:!1}}let No=(Mo=(Bo=Symbol.asyncIterator)!==null&&Bo!==void 0?Bo:(qo=Symbol.for)===null||qo===void 0?void 0:qo.call(Symbol,"Symbol.asyncIterator"))!==null&&Mo!==void 0?Mo:"@@asyncIterator";function Es(r,i="sync",l){if(l===void 0)if(i==="async"){if(l=fn(r,No),l===void 0){let v=fn(r,Symbol.iterator),S=Es(r,"sync",v);return hf(S)}}else l=fn(r,Symbol.iterator);if(l===void 0)throw new TypeError("The object is not iterable");let h=E(l,r,[]);if(!t(h))throw new TypeError("The iterator method must return an object");let b=h.next;return{iterator:h,nextMethod:b,done:!1}}function mf(r){let i=E(r.nextMethod,r.iterator,[]);if(!t(i))throw new TypeError("The iterator.next() method must return an object");return i}function gf(r){return!!r.done}function _f(r){return r.value}function bf(r){return!(typeof r!="number"||Ss(r)||r<0)}function xs(r){let i=Ps(r.buffer,r.byteOffset,r.byteOffset+r.byteLength);return new Uint8Array(i)}function Uo(r){let i=r._queue.shift();return r._queueTotalSize-=i.size,r._queueTotalSize<0&&(r._queueTotalSize=0),i.value}function jo(r,i,l){if(!bf(l)||l===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");r._queue.push({value:i,size:l}),r._queueTotalSize+=l}function yf(r){return r._queue.peek().value}function Pt(r){r._queue=new X,r._queueTotalSize=0}function Ls(r){return r===DataView}function wf(r){return Ls(r.constructor)}function vf(r){return Ls(r)?1:r.BYTES_PER_ELEMENT}class Ut{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Wo(this))throw Go("view");return this._view}respond(i){if(!Wo(this))throw Go("respond");if(it(i,1,"respond"),i=$o(i,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");gn(this._associatedReadableByteStreamController,i)}respondWithNewView(i){if(!Wo(this))throw Go("respondWithNewView");if(it(i,1,"respondWithNewView"),!ArrayBuffer.isView(i))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Rt(i.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");_n(this._associatedReadableByteStreamController,i)}}Object.defineProperties(Ut.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),o(Ut.prototype.respond,"respond"),o(Ut.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Ut.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class st{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!jt(this))throw $r("byobRequest");return Ko(this)}get desiredSize(){if(!jt(this))throw $r("desiredSize");return Bs(this)}close(){if(!jt(this))throw $r("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let i=this._controlledReadableByteStream._state;if(i!=="readable")throw new TypeError(`The stream (in ${i} state) is not in the readable state and cannot be closed`);Dr(this)}enqueue(i){if(!jt(this))throw $r("enqueue");if(it(i,1,"enqueue"),!ArrayBuffer.isView(i))throw new TypeError("chunk must be an array buffer view");if(i.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(i.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let l=this._controlledReadableByteStream._state;if(l!=="readable")throw new TypeError(`The stream (in ${l} state) is not in the readable state and cannot be enqueued to`);mn(this,i)}error(i=void 0){if(!jt(this))throw $r("error");Me(this,i)}[He](i){As(this),Pt(this);let l=this._cancelAlgorithm(i);return hn(this),l}[wt](i){let l=this._controlledReadableByteStream;if(this._queueTotalSize>0){Os(this,i);return}let h=this._autoAllocateChunkSize;if(h!==void 0){let b;try{b=new ArrayBuffer(h)}catch(S){i._errorSteps(S);return}let v={buffer:b,bufferByteLength:h,byteOffset:0,byteLength:h,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(v)}ms(l,i),_(this)}[Mt](){if(this._pendingPullIntos.length>0){let i=this._pendingPullIntos.peek();i.readerType="none",this._pendingPullIntos=new X,this._pendingPullIntos.push(i)}}}Object.defineProperties(st.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),o(st.prototype.close,"close"),o(st.prototype.enqueue,"enqueue"),o(st.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(st.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function jt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableByteStream")?!1:r instanceof st}function Wo(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_associatedReadableByteStreamController")?!1:r instanceof Ut}function _(r){if(!xf(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();y(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,_(r)),null),h=>(Me(r,h),null))}function As(r){zo(r),r._pendingPullIntos=new X}function Vo(r,i){let l=!1;r._state==="closed"&&(l=!0);let h=ks(i);i.readerType==="default"?Oo(r,h,l):If(r,h,l)}function ks(r){let i=r.bytesFilled,l=r.elementSize;return new r.viewConstructor(r.buffer,r.byteOffset,i/l)}function pn(r,i,l,h){r._queue.push({buffer:i,byteOffset:l,byteLength:h}),r._queueTotalSize+=h}function Ts(r,i,l,h){let b;try{b=Ps(i,l,l+h)}catch(v){throw Me(r,v),v}pn(r,b,0,h)}function Cs(r,i){i.bytesFilled>0&&Ts(r,i.buffer,i.byteOffset,i.bytesFilled),sr(r)}function Is(r,i){let l=Math.min(r._queueTotalSize,i.byteLength-i.bytesFilled),h=i.bytesFilled+l,b=l,v=!1,S=h%i.elementSize,x=h-S;x>=i.minimumFill&&(b=x-i.bytesFilled,v=!0);let U=r._queue;for(;b>0;){let B=U.peek(),j=Math.min(b,B.byteLength),z=i.byteOffset+i.bytesFilled;Rs(i.buffer,z,B.buffer,B.byteOffset,j),B.byteLength===j?U.shift():(B.byteOffset+=j,B.byteLength-=j),r._queueTotalSize-=j,Ds(r,j,i),b-=j}return v}function Ds(r,i,l){l.bytesFilled+=i}function $s(r){r._queueTotalSize===0&&r._closeRequested?(hn(r),Nr(r._controlledReadableByteStream)):_(r)}function zo(r){r._byobRequest!==null&&(r._byobRequest._associatedReadableByteStreamController=void 0,r._byobRequest._view=null,r._byobRequest=null)}function Ho(r){for(;r._pendingPullIntos.length>0;){if(r._queueTotalSize===0)return;let i=r._pendingPullIntos.peek();Is(r,i)&&(sr(r),Vo(r._controlledReadableByteStream,i))}}function Sf(r){let i=r._controlledReadableByteStream._reader;for(;i._readRequests.length>0;){if(r._queueTotalSize===0)return;let l=i._readRequests.shift();Os(r,l)}}function Rf(r,i,l,h){let b=r._controlledReadableByteStream,v=i.constructor,S=vf(v),{byteOffset:x,byteLength:U}=i,B=l*S,j;try{j=at(i.buffer)}catch(ne){h._errorSteps(ne);return}let z={buffer:j,bufferByteLength:j.byteLength,byteOffset:x,byteLength:U,bytesFilled:0,minimumFill:B,elementSize:S,viewConstructor:v,readerType:"byob"};if(r._pendingPullIntos.length>0){r._pendingPullIntos.push(z),Ns(b,h);return}if(b._state==="closed"){let ne=new v(z.buffer,z.byteOffset,0);h._closeSteps(ne);return}if(r._queueTotalSize>0){if(Is(r,z)){let ne=ks(z);$s(r),h._chunkSteps(ne);return}if(r._closeRequested){let ne=new TypeError("Insufficient bytes to fill elements in the given buffer");Me(r,ne),h._errorSteps(ne);return}}r._pendingPullIntos.push(z),Ns(b,h),_(r)}function Pf(r,i){i.readerType==="none"&&sr(r);let l=r._controlledReadableByteStream;if(Xo(l))for(;Us(l)>0;){let h=sr(r);Vo(l,h)}}function Ef(r,i,l){if(Ds(r,i,l),l.readerType==="none"){Cs(r,l),Ho(r);return}if(l.bytesFilled<l.minimumFill)return;sr(r);let h=l.bytesFilled%l.elementSize;if(h>0){let b=l.byteOffset+l.bytesFilled;Ts(r,l.buffer,b-h,h)}l.bytesFilled-=h,Vo(r._controlledReadableByteStream,l),Ho(r)}function Fs(r,i){let l=r._pendingPullIntos.peek();zo(r),r._controlledReadableByteStream._state==="closed"?Pf(r,l):Ef(r,i,l),_(r)}function sr(r){return r._pendingPullIntos.shift()}function xf(r){let i=r._controlledReadableByteStream;return i._state!=="readable"||r._closeRequested||!r._started?!1:!!(gs(i)&&cn(i)>0||Xo(i)&&Us(i)>0||Bs(r)>0)}function hn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0}function Dr(r){let i=r._controlledReadableByteStream;if(!(r._closeRequested||i._state!=="readable")){if(r._queueTotalSize>0){r._closeRequested=!0;return}if(r._pendingPullIntos.length>0){let l=r._pendingPullIntos.peek();if(l.bytesFilled%l.elementSize!==0){let h=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Me(r,h),h}}hn(r),Nr(i)}}function mn(r,i){let l=r._controlledReadableByteStream;if(r._closeRequested||l._state!=="readable")return;let{buffer:h,byteOffset:b,byteLength:v}=i;if(Rt(h))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let S=at(h);if(r._pendingPullIntos.length>0){let x=r._pendingPullIntos.peek();if(Rt(x.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");zo(r),x.buffer=at(x.buffer),x.readerType==="none"&&Cs(r,x)}if(gs(l))if(Sf(r),cn(l)===0)pn(r,S,b,v);else{r._pendingPullIntos.length>0&&sr(r);let x=new Uint8Array(S,b,v);Oo(l,x,!1)}else Xo(l)?(pn(r,S,b,v),Ho(r)):pn(r,S,b,v);_(r)}function Me(r,i){let l=r._controlledReadableByteStream;l._state==="readable"&&(As(r),Pt(r),hn(r),dl(l,i))}function Os(r,i){let l=r._queue.shift();r._queueTotalSize-=l.byteLength,$s(r);let h=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);i._chunkSteps(h)}function Ko(r){if(r._byobRequest===null&&r._pendingPullIntos.length>0){let i=r._pendingPullIntos.peek(),l=new Uint8Array(i.buffer,i.byteOffset+i.bytesFilled,i.byteLength-i.bytesFilled),h=Object.create(Ut.prototype);Af(h,r,l),r._byobRequest=h}return r._byobRequest}function Bs(r){let i=r._controlledReadableByteStream._state;return i==="errored"?null:i==="closed"?0:r._strategyHWM-r._queueTotalSize}function gn(r,i){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(i!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(i===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(l.bytesFilled+i>l.byteLength)throw new RangeError("bytesWritten out of range")}l.buffer=at(l.buffer),Fs(r,i)}function _n(r,i){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(i.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(i.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(l.byteOffset+l.bytesFilled!==i.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(l.bufferByteLength!==i.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(l.bytesFilled+i.byteLength>l.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let b=i.byteLength;l.buffer=at(i.buffer),Fs(r,b)}function qs(r,i,l,h,b,v,S){i._controlledReadableByteStream=r,i._pullAgain=!1,i._pulling=!1,i._byobRequest=null,i._queue=i._queueTotalSize=void 0,Pt(i),i._closeRequested=!1,i._started=!1,i._strategyHWM=v,i._pullAlgorithm=h,i._cancelAlgorithm=b,i._autoAllocateChunkSize=S,i._pendingPullIntos=new X,r._readableStreamController=i;let x=l();y(c(x),()=>(i._started=!0,_(i),null),U=>(Me(i,U),null))}function Lf(r,i,l){let h=Object.create(st.prototype),b,v,S;i.start!==void 0?b=()=>i.start(h):b=()=>{},i.pull!==void 0?v=()=>i.pull(h):v=()=>c(void 0),i.cancel!==void 0?S=U=>i.cancel(U):S=()=>c(void 0);let x=i.autoAllocateChunkSize;if(x===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");qs(r,h,b,v,S,l,x)}function Af(r,i,l){r._associatedReadableByteStreamController=i,r._view=l}function Go(r){return new TypeError(`ReadableStreamBYOBRequest.prototype.${r} can only be used on a ReadableStreamBYOBRequest`)}function $r(r){return new TypeError(`ReadableByteStreamController.prototype.${r} can only be used on a ReadableByteStreamController`)}function kf(r,i){Ze(r,i);let l=r?.mode;return{mode:l===void 0?void 0:Tf(l,`${i} has member 'mode' that`)}}function Tf(r,i){if(r=`${r}`,r!=="byob")throw new TypeError(`${i} '${r}' is not a valid enumeration value for ReadableStreamReaderMode`);return r}function Cf(r,i){var l;Ze(r,i);let h=(l=r?.min)!==null&&l!==void 0?l:1;return{min:$o(h,`${i} has member 'min' that`)}}function Ms(r){return new Et(r)}function Ns(r,i){r._reader._readIntoRequests.push(i)}function If(r,i,l){let b=r._reader._readIntoRequests.shift();l?b._closeSteps(i):b._chunkSteps(i)}function Us(r){return r._reader._readIntoRequests.length}function Xo(r){let i=r._reader;return!(i===void 0||!Wt(i))}class Et{constructor(i){if(it(i,1,"ReadableStreamBYOBReader"),Fo(i,"First parameter"),At(i))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!jt(i._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");I(this,i),this._readIntoRequests=new X}get closed(){return Wt(this)?this._closedPromise:p(bn("closed"))}cancel(i=void 0){return Wt(this)?this._ownerReadableStream===void 0?p($("cancel")):P(this,i):p(bn("cancel"))}read(i,l={}){if(!Wt(this))return p(bn("read"));if(!ArrayBuffer.isView(i))return p(new TypeError("view must be an array buffer view"));if(i.byteLength===0)return p(new TypeError("view must have non-zero byteLength"));if(i.buffer.byteLength===0)return p(new TypeError("view's buffer must have non-zero byteLength"));if(Rt(i.buffer))return p(new TypeError("view's buffer has been detached"));let h;try{h=Cf(l,"options")}catch(B){return p(B)}let b=h.min;if(b===0)return p(new TypeError("options.min must be greater than 0"));if(wf(i)){if(b>i.byteLength)return p(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(b>i.length)return p(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return p($("read from"));let v,S,x=d((B,j)=>{v=B,S=j});return js(this,i,b,{_chunkSteps:B=>v({value:B,done:!1}),_closeSteps:B=>v({value:B,done:!0}),_errorSteps:B=>S(B)}),x}releaseLock(){if(!Wt(this))throw bn("releaseLock");this._ownerReadableStream!==void 0&&Df(this)}}Object.defineProperties(Et.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(Et.prototype.cancel,"cancel"),o(Et.prototype.read,"read"),o(Et.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Et.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function Wt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readIntoRequests")?!1:r instanceof Et}function js(r,i,l,h){let b=r._ownerReadableStream;b._disturbed=!0,b._state==="errored"?h._errorSteps(b._storedError):Rf(b._readableStreamController,i,l,h)}function Df(r){D(r);let i=new TypeError("Reader was released");Ws(r,i)}function Ws(r,i){let l=r._readIntoRequests;r._readIntoRequests=new X,l.forEach(h=>{h._errorSteps(i)})}function bn(r){return new TypeError(`ReadableStreamBYOBReader.prototype.${r} can only be used on a ReadableStreamBYOBReader`)}function Fr(r,i){let{highWaterMark:l}=r;if(l===void 0)return i;if(Ss(l)||l<0)throw new RangeError("Invalid highWaterMark");return l}function yn(r){let{size:i}=r;return i||(()=>1)}function wn(r,i){Ze(r,i);let l=r?.highWaterMark,h=r?.size;return{highWaterMark:l===void 0?void 0:Do(l),size:h===void 0?void 0:$f(h,`${i} has member 'size' that`)}}function $f(r,i){return qe(r,i),l=>Do(r(l))}function Ff(r,i){Ze(r,i);let l=r?.abort,h=r?.close,b=r?.start,v=r?.type,S=r?.write;return{abort:l===void 0?void 0:Of(l,r,`${i} has member 'abort' that`),close:h===void 0?void 0:Bf(h,r,`${i} has member 'close' that`),start:b===void 0?void 0:qf(b,r,`${i} has member 'start' that`),write:S===void 0?void 0:Mf(S,r,`${i} has member 'write' that`),type:v}}function Of(r,i,l){return qe(r,l),h=>re(r,i,[h])}function Bf(r,i,l){return qe(r,l),()=>re(r,i,[])}function qf(r,i,l){return qe(r,l),h=>E(r,i,[h])}function Mf(r,i,l){return qe(r,l),(h,b)=>re(r,i,[h,b])}function Vs(r,i){if(!lr(r))throw new TypeError(`${i} is not a WritableStream.`)}function Nf(r){if(typeof r!="object"||r===null)return!1;try{return typeof r.aborted=="boolean"}catch{return!1}}let Uf=typeof AbortController=="function";function jf(){if(Uf)return new AbortController}class xt{constructor(i={},l={}){i===void 0?i=null:ps(i,"First parameter");let h=wn(l,"Second parameter"),b=Ff(i,"First parameter");if(Hs(this),b.type!==void 0)throw new RangeError("Invalid type is specified");let S=yn(h),x=Fr(h,1);rp(this,b,x,S)}get locked(){if(!lr(this))throw En("locked");return ur(this)}abort(i=void 0){return lr(this)?ur(this)?p(new TypeError("Cannot abort a stream that already has a writer")):vn(this,i):p(En("abort"))}close(){return lr(this)?ur(this)?p(new TypeError("Cannot close a stream that already has a writer")):et(this)?p(new TypeError("Cannot close an already-closing stream")):Ks(this):p(En("close"))}getWriter(){if(!lr(this))throw En("getWriter");return zs(this)}}Object.defineProperties(xt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),o(xt.prototype.abort,"abort"),o(xt.prototype.close,"close"),o(xt.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(xt.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function zs(r){return new lt(r)}function Wf(r,i,l,h,b=1,v=()=>1){let S=Object.create(xt.prototype);Hs(S);let x=Object.create(cr.prototype);return Zs(S,x,r,i,l,h,b,v),S}function Hs(r){r._state="writable",r._storedError=void 0,r._writer=void 0,r._writableStreamController=void 0,r._writeRequests=new X,r._inFlightWriteRequest=void 0,r._closeRequest=void 0,r._inFlightCloseRequest=void 0,r._pendingAbortRequest=void 0,r._backpressure=!1}function lr(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_writableStreamController")?!1:r instanceof xt}function ur(r){return r._writer!==void 0}function vn(r,i){var l;if(r._state==="closed"||r._state==="errored")return c(void 0);r._writableStreamController._abortReason=i,(l=r._writableStreamController._abortController)===null||l===void 0||l.abort(i);let h=r._state;if(h==="closed"||h==="errored")return c(void 0);if(r._pendingAbortRequest!==void 0)return r._pendingAbortRequest._promise;let b=!1;h==="erroring"&&(b=!0,i=void 0);let v=d((S,x)=>{r._pendingAbortRequest={_promise:void 0,_resolve:S,_reject:x,_reason:i,_wasAlreadyErroring:b}});return r._pendingAbortRequest._promise=v,b||Qo(r,i),v}function Ks(r){let i=r._state;if(i==="closed"||i==="errored")return p(new TypeError(`The stream (in ${i} state) is not in the writable state and cannot be closed`));let l=d((b,v)=>{let S={_resolve:b,_reject:v};r._closeRequest=S}),h=r._writer;return h!==void 0&&r._backpressure&&i==="writable"&&ii(h),np(r._writableStreamController),l}function Vf(r){return d((l,h)=>{let b={_resolve:l,_reject:h};r._writeRequests.push(b)})}function Yo(r,i){if(r._state==="writable"){Qo(r,i);return}Jo(r)}function Qo(r,i){let l=r._writableStreamController;r._state="erroring",r._storedError=i;let h=r._writer;h!==void 0&&Xs(h,i),!Xf(r)&&l._started&&Jo(r)}function Jo(r){r._state="errored",r._writableStreamController[ze]();let i=r._storedError;if(r._writeRequests.forEach(b=>{b._reject(i)}),r._writeRequests=new X,r._pendingAbortRequest===void 0){Sn(r);return}let l=r._pendingAbortRequest;if(r._pendingAbortRequest=void 0,l._wasAlreadyErroring){l._reject(i),Sn(r);return}let h=r._writableStreamController[J](l._reason);y(h,()=>(l._resolve(),Sn(r),null),b=>(l._reject(b),Sn(r),null))}function zf(r){r._inFlightWriteRequest._resolve(void 0),r._inFlightWriteRequest=void 0}function Hf(r,i){r._inFlightWriteRequest._reject(i),r._inFlightWriteRequest=void 0,Yo(r,i)}function Kf(r){r._inFlightCloseRequest._resolve(void 0),r._inFlightCloseRequest=void 0,r._state==="erroring"&&(r._storedError=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._resolve(),r._pendingAbortRequest=void 0)),r._state="closed";let l=r._writer;l!==void 0&&nl(l)}function Gf(r,i){r._inFlightCloseRequest._reject(i),r._inFlightCloseRequest=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._reject(i),r._pendingAbortRequest=void 0),Yo(r,i)}function et(r){return!(r._closeRequest===void 0&&r._inFlightCloseRequest===void 0)}function Xf(r){return!(r._inFlightWriteRequest===void 0&&r._inFlightCloseRequest===void 0)}function Yf(r){r._inFlightCloseRequest=r._closeRequest,r._closeRequest=void 0}function Qf(r){r._inFlightWriteRequest=r._writeRequests.shift()}function Sn(r){r._closeRequest!==void 0&&(r._closeRequest._reject(r._storedError),r._closeRequest=void 0);let i=r._writer;i!==void 0&&ni(i,r._storedError)}function Zo(r,i){let l=r._writer;l!==void 0&&i!==r._backpressure&&(i?cp(l):ii(l)),r._backpressure=i}class lt{constructor(i){if(it(i,1,"WritableStreamDefaultWriter"),Vs(i,"First parameter"),ur(i))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=i,i._writer=this;let l=i._state;if(l==="writable")!et(i)&&i._backpressure?Ln(this):ol(this),xn(this);else if(l==="erroring")oi(this,i._storedError),xn(this);else if(l==="closed")ol(this),lp(this);else{let h=i._storedError;oi(this,h),rl(this,h)}}get closed(){return Vt(this)?this._closedPromise:p(zt("closed"))}get desiredSize(){if(!Vt(this))throw zt("desiredSize");if(this._ownerWritableStream===void 0)throw Br("desiredSize");return tp(this)}get ready(){return Vt(this)?this._readyPromise:p(zt("ready"))}abort(i=void 0){return Vt(this)?this._ownerWritableStream===void 0?p(Br("abort")):Jf(this,i):p(zt("abort"))}close(){if(!Vt(this))return p(zt("close"));let i=this._ownerWritableStream;return i===void 0?p(Br("close")):et(i)?p(new TypeError("Cannot close an already-closing stream")):Gs(this)}releaseLock(){if(!Vt(this))throw zt("releaseLock");this._ownerWritableStream!==void 0&&Ys(this)}write(i=void 0){return Vt(this)?this._ownerWritableStream===void 0?p(Br("write to")):Qs(this,i):p(zt("write"))}}Object.defineProperties(lt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),o(lt.prototype.abort,"abort"),o(lt.prototype.close,"close"),o(lt.prototype.releaseLock,"releaseLock"),o(lt.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(lt.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function Vt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_ownerWritableStream")?!1:r instanceof lt}function Jf(r,i){let l=r._ownerWritableStream;return vn(l,i)}function Gs(r){let i=r._ownerWritableStream;return Ks(i)}function Zf(r){let i=r._ownerWritableStream,l=i._state;return et(i)||l==="closed"?c(void 0):l==="errored"?p(i._storedError):Gs(r)}function ep(r,i){r._closedPromiseState==="pending"?ni(r,i):up(r,i)}function Xs(r,i){r._readyPromiseState==="pending"?il(r,i):dp(r,i)}function tp(r){let i=r._ownerWritableStream,l=i._state;return l==="errored"||l==="erroring"?null:l==="closed"?0:el(i._writableStreamController)}function Ys(r){let i=r._ownerWritableStream,l=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Xs(r,l),ep(r,l),i._writer=void 0,r._ownerWritableStream=void 0}function Qs(r,i){let l=r._ownerWritableStream,h=l._writableStreamController,b=op(h,i);if(l!==r._ownerWritableStream)return p(Br("write to"));let v=l._state;if(v==="errored")return p(l._storedError);if(et(l)||v==="closed")return p(new TypeError("The stream is closing or closed and cannot be written to"));if(v==="erroring")return p(l._storedError);let S=Vf(l);return ip(h,i,b),S}let Js={};class cr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!ei(this))throw ri("abortReason");return this._abortReason}get signal(){if(!ei(this))throw ri("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(i=void 0){if(!ei(this))throw ri("error");this._controlledWritableStream._state==="writable"&&tl(this,i)}[J](i){let l=this._abortAlgorithm(i);return Rn(this),l}[ze](){Pt(this)}}Object.defineProperties(cr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(cr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function ei(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledWritableStream")?!1:r instanceof cr}function Zs(r,i,l,h,b,v,S,x){i._controlledWritableStream=r,r._writableStreamController=i,i._queue=void 0,i._queueTotalSize=void 0,Pt(i),i._abortReason=void 0,i._abortController=jf(),i._started=!1,i._strategySizeAlgorithm=x,i._strategyHWM=S,i._writeAlgorithm=h,i._closeAlgorithm=b,i._abortAlgorithm=v;let U=ti(i);Zo(r,U);let B=l(),j=c(B);y(j,()=>(i._started=!0,Pn(i),null),z=>(i._started=!0,Yo(r,z),null))}function rp(r,i,l,h){let b=Object.create(cr.prototype),v,S,x,U;i.start!==void 0?v=()=>i.start(b):v=()=>{},i.write!==void 0?S=B=>i.write(B,b):S=()=>c(void 0),i.close!==void 0?x=()=>i.close():x=()=>c(void 0),i.abort!==void 0?U=B=>i.abort(B):U=()=>c(void 0),Zs(r,b,v,S,x,U,l,h)}function Rn(r){r._writeAlgorithm=void 0,r._closeAlgorithm=void 0,r._abortAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function np(r){jo(r,Js,0),Pn(r)}function op(r,i){try{return r._strategySizeAlgorithm(i)}catch(l){return Or(r,l),1}}function el(r){return r._strategyHWM-r._queueTotalSize}function ip(r,i,l){try{jo(r,i,l)}catch(b){Or(r,b);return}let h=r._controlledWritableStream;if(!et(h)&&h._state==="writable"){let b=ti(r);Zo(h,b)}Pn(r)}function Pn(r){let i=r._controlledWritableStream;if(!r._started||i._inFlightWriteRequest!==void 0)return;if(i._state==="erroring"){Jo(i);return}if(r._queue.length===0)return;let h=yf(r);h===Js?ap(r):sp(r,h)}function Or(r,i){r._controlledWritableStream._state==="writable"&&tl(r,i)}function ap(r){let i=r._controlledWritableStream;Yf(i),Uo(r);let l=r._closeAlgorithm();Rn(r),y(l,()=>(Kf(i),null),h=>(Gf(i,h),null))}function sp(r,i){let l=r._controlledWritableStream;Qf(l);let h=r._writeAlgorithm(i);y(h,()=>{zf(l);let b=l._state;if(Uo(r),!et(l)&&b==="writable"){let v=ti(r);Zo(l,v)}return Pn(r),null},b=>(l._state==="writable"&&Rn(r),Hf(l,b),null))}function ti(r){return el(r)<=0}function tl(r,i){let l=r._controlledWritableStream;Rn(r),Qo(l,i)}function En(r){return new TypeError(`WritableStream.prototype.${r} can only be used on a WritableStream`)}function ri(r){return new TypeError(`WritableStreamDefaultController.prototype.${r} can only be used on a WritableStreamDefaultController`)}function zt(r){return new TypeError(`WritableStreamDefaultWriter.prototype.${r} can only be used on a WritableStreamDefaultWriter`)}function Br(r){return new TypeError("Cannot "+r+" a stream using a released writer")}function xn(r){r._closedPromise=d((i,l)=>{r._closedPromise_resolve=i,r._closedPromise_reject=l,r._closedPromiseState="pending"})}function rl(r,i){xn(r),ni(r,i)}function lp(r){xn(r),nl(r)}function ni(r,i){r._closedPromise_reject!==void 0&&(k(r._closedPromise),r._closedPromise_reject(i),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="rejected")}function up(r,i){rl(r,i)}function nl(r){r._closedPromise_resolve!==void 0&&(r._closedPromise_resolve(void 0),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="resolved")}function Ln(r){r._readyPromise=d((i,l)=>{r._readyPromise_resolve=i,r._readyPromise_reject=l}),r._readyPromiseState="pending"}function oi(r,i){Ln(r),il(r,i)}function ol(r){Ln(r),ii(r)}function il(r,i){r._readyPromise_reject!==void 0&&(k(r._readyPromise),r._readyPromise_reject(i),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="rejected")}function cp(r){Ln(r)}function dp(r,i){oi(r,i)}function ii(r){r._readyPromise_resolve!==void 0&&(r._readyPromise_resolve(void 0),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="fulfilled")}function fp(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let ai=fp();function pp(r){if(!(typeof r=="function"||typeof r=="object")||r.name!=="DOMException")return!1;try{return new r,!0}catch{return!1}}function hp(){let r=ai?.DOMException;return pp(r)?r:void 0}function mp(){let r=function(l,h){this.message=l||"",this.name=h||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return o(r,"DOMException"),r.prototype=Object.create(Error.prototype),Object.defineProperty(r.prototype,"constructor",{value:r,writable:!0,configurable:!0}),r}let gp=hp()||mp();function al(r,i,l,h,b,v){let S=ar(r),x=zs(i);r._disturbed=!0;let U=!1,B=c(void 0);return d((j,z)=>{let ne;if(v!==void 0){if(ne=()=>{let M=v.reason!==void 0?v.reason:new gp("Aborted","AbortError"),K=[];h||K.push(()=>i._state==="writable"?vn(i,M):c(void 0)),b||K.push(()=>r._state==="readable"?Ge(r,M):c(void 0)),Se(()=>Promise.all(K.map(oe=>oe())),!0,M)},v.aborted){ne();return}v.addEventListener("abort",ne)}function Xe(){return d((M,K)=>{function oe(ke){ke?M():m(hr(),oe,K)}oe(!1)})}function hr(){return U?c(!0):m(x._readyPromise,()=>d((M,K)=>{Cr(S,{_chunkSteps:oe=>{B=m(Qs(x,oe),void 0,e),M(!1)},_closeSteps:()=>M(!0),_errorSteps:K})}))}if(ct(r,S._closedPromise,M=>(h?Ne(!0,M):Se(()=>vn(i,M),!0,M),null)),ct(i,x._closedPromise,M=>(b?Ne(!0,M):Se(()=>Ge(r,M),!0,M),null)),_e(r,S._closedPromise,()=>(l?Ne():Se(()=>Zf(x)),null)),et(i)||i._state==="closed"){let M=new TypeError("the destination writable stream closed before all data could be piped to it");b?Ne(!0,M):Se(()=>Ge(r,M),!0,M)}k(Xe());function Tt(){let M=B;return m(B,()=>M!==B?Tt():void 0)}function ct(M,K,oe){M._state==="errored"?oe(M._storedError):w(K,oe)}function _e(M,K,oe){M._state==="closed"?oe():g(K,oe)}function Se(M,K,oe){if(U)return;U=!0,i._state==="writable"&&!et(i)?g(Tt(),ke):ke();function ke(){return y(M(),()=>dt(K,oe),mr=>dt(!0,mr)),null}}function Ne(M,K){U||(U=!0,i._state==="writable"&&!et(i)?g(Tt(),()=>dt(M,K)):dt(M,K))}function dt(M,K){return Ys(x),D(S),v!==void 0&&v.removeEventListener("abort",ne),M?z(K):j(void 0),null}})}class ut{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!An(this))throw Tn("desiredSize");return si(this)}close(){if(!An(this))throw Tn("close");if(!fr(this))throw new TypeError("The stream is not in a state that permits close");Ht(this)}enqueue(i=void 0){if(!An(this))throw Tn("enqueue");if(!fr(this))throw new TypeError("The stream is not in a state that permits enqueue");return dr(this,i)}error(i=void 0){if(!An(this))throw Tn("error");Ke(this,i)}[He](i){Pt(this);let l=this._cancelAlgorithm(i);return kn(this),l}[wt](i){let l=this._controlledReadableStream;if(this._queue.length>0){let h=Uo(this);this._closeRequested&&this._queue.length===0?(kn(this),Nr(l)):qr(this),i._chunkSteps(h)}else ms(l,i),qr(this)}[Mt](){}}Object.defineProperties(ut.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),o(ut.prototype.close,"close"),o(ut.prototype.enqueue,"enqueue"),o(ut.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ut.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function An(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableStream")?!1:r instanceof ut}function qr(r){if(!sl(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();y(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,qr(r)),null),h=>(Ke(r,h),null))}function sl(r){let i=r._controlledReadableStream;return!fr(r)||!r._started?!1:!!(At(i)&&cn(i)>0||si(r)>0)}function kn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Ht(r){if(!fr(r))return;let i=r._controlledReadableStream;r._closeRequested=!0,r._queue.length===0&&(kn(r),Nr(i))}function dr(r,i){if(!fr(r))return;let l=r._controlledReadableStream;if(At(l)&&cn(l)>0)Oo(l,i,!1);else{let h;try{h=r._strategySizeAlgorithm(i)}catch(b){throw Ke(r,b),b}try{jo(r,i,h)}catch(b){throw Ke(r,b),b}}qr(r)}function Ke(r,i){let l=r._controlledReadableStream;l._state==="readable"&&(Pt(r),kn(r),dl(l,i))}function si(r){let i=r._controlledReadableStream._state;return i==="errored"?null:i==="closed"?0:r._strategyHWM-r._queueTotalSize}function _p(r){return!sl(r)}function fr(r){let i=r._controlledReadableStream._state;return!r._closeRequested&&i==="readable"}function ll(r,i,l,h,b,v,S){i._controlledReadableStream=r,i._queue=void 0,i._queueTotalSize=void 0,Pt(i),i._started=!1,i._closeRequested=!1,i._pullAgain=!1,i._pulling=!1,i._strategySizeAlgorithm=S,i._strategyHWM=v,i._pullAlgorithm=h,i._cancelAlgorithm=b,r._readableStreamController=i;let x=l();y(c(x),()=>(i._started=!0,qr(i),null),U=>(Ke(i,U),null))}function bp(r,i,l,h){let b=Object.create(ut.prototype),v,S,x;i.start!==void 0?v=()=>i.start(b):v=()=>{},i.pull!==void 0?S=()=>i.pull(b):S=()=>c(void 0),i.cancel!==void 0?x=U=>i.cancel(U):x=()=>c(void 0),ll(r,b,v,S,x,l,h)}function Tn(r){return new TypeError(`ReadableStreamDefaultController.prototype.${r} can only be used on a ReadableStreamDefaultController`)}function yp(r,i){return jt(r._readableStreamController)?vp(r):wp(r)}function wp(r,i){let l=ar(r),h=!1,b=!1,v=!1,S=!1,x,U,B,j,z,ne=d(_e=>{z=_e});function Xe(){return h?(b=!0,c(void 0)):(h=!0,Cr(l,{_chunkSteps:Se=>{C(()=>{b=!1;let Ne=Se,dt=Se;v||dr(B._readableStreamController,Ne),S||dr(j._readableStreamController,dt),h=!1,b&&Xe()})},_closeSteps:()=>{h=!1,v||Ht(B._readableStreamController),S||Ht(j._readableStreamController),(!v||!S)&&z(void 0)},_errorSteps:()=>{h=!1}}),c(void 0))}function hr(_e){if(v=!0,x=_e,S){let Se=Ir([x,U]),Ne=Ge(r,Se);z(Ne)}return ne}function Tt(_e){if(S=!0,U=_e,v){let Se=Ir([x,U]),Ne=Ge(r,Se);z(Ne)}return ne}function ct(){}return B=Mr(ct,Xe,hr),j=Mr(ct,Xe,Tt),w(l._closedPromise,_e=>(Ke(B._readableStreamController,_e),Ke(j._readableStreamController,_e),(!v||!S)&&z(void 0),null)),[B,j]}function vp(r){let i=ar(r),l=!1,h=!1,b=!1,v=!1,S=!1,x,U,B,j,z,ne=d(M=>{z=M});function Xe(M){w(M._closedPromise,K=>(M!==i||(Me(B._readableStreamController,K),Me(j._readableStreamController,K),(!v||!S)&&z(void 0)),null))}function hr(){Wt(i)&&(D(i),i=ar(r),Xe(i)),Cr(i,{_chunkSteps:K=>{C(()=>{h=!1,b=!1;let oe=K,ke=K;if(!v&&!S)try{ke=xs(K)}catch(mr){Me(B._readableStreamController,mr),Me(j._readableStreamController,mr),z(Ge(r,mr));return}v||mn(B._readableStreamController,oe),S||mn(j._readableStreamController,ke),l=!1,h?ct():b&&_e()})},_closeSteps:()=>{l=!1,v||Dr(B._readableStreamController),S||Dr(j._readableStreamController),B._readableStreamController._pendingPullIntos.length>0&&gn(B._readableStreamController,0),j._readableStreamController._pendingPullIntos.length>0&&gn(j._readableStreamController,0),(!v||!S)&&z(void 0)},_errorSteps:()=>{l=!1}})}function Tt(M,K){St(i)&&(D(i),i=Ms(r),Xe(i));let oe=K?j:B,ke=K?B:j;js(i,M,1,{_chunkSteps:gr=>{C(()=>{h=!1,b=!1;let _r=K?S:v;if(K?v:S)_r||_n(oe._readableStreamController,gr);else{let Pl;try{Pl=xs(gr)}catch(fi){Me(oe._readableStreamController,fi),Me(ke._readableStreamController,fi),z(Ge(r,fi));return}_r||_n(oe._readableStreamController,gr),mn(ke._readableStreamController,Pl)}l=!1,h?ct():b&&_e()})},_closeSteps:gr=>{l=!1;let _r=K?S:v,qn=K?v:S;_r||Dr(oe._readableStreamController),qn||Dr(ke._readableStreamController),gr!==void 0&&(_r||_n(oe._readableStreamController,gr),!qn&&ke._readableStreamController._pendingPullIntos.length>0&&gn(ke._readableStreamController,0)),(!_r||!qn)&&z(void 0)},_errorSteps:()=>{l=!1}})}function ct(){if(l)return h=!0,c(void 0);l=!0;let M=Ko(B._readableStreamController);return M===null?hr():Tt(M._view,!1),c(void 0)}function _e(){if(l)return b=!0,c(void 0);l=!0;let M=Ko(j._readableStreamController);return M===null?hr():Tt(M._view,!0),c(void 0)}function Se(M){if(v=!0,x=M,S){let K=Ir([x,U]),oe=Ge(r,K);z(oe)}return ne}function Ne(M){if(S=!0,U=M,v){let K=Ir([x,U]),oe=Ge(r,K);z(oe)}return ne}function dt(){}return B=cl(dt,ct,Se),j=cl(dt,_e,Ne),Xe(i),[B,j]}function Sp(r){return t(r)&&typeof r.getReader<"u"}function Rp(r){return Sp(r)?Ep(r.getReader()):Pp(r)}function Pp(r){let i,l=Es(r,"async"),h=e;function b(){let S;try{S=mf(l)}catch(U){return p(U)}let x=c(S);return R(x,U=>{if(!t(U))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(gf(U))Ht(i._readableStreamController);else{let j=_f(U);dr(i._readableStreamController,j)}})}function v(S){let x=l.iterator,U;try{U=fn(x,"return")}catch(z){return p(z)}if(U===void 0)return c(void 0);let B;try{B=E(U,x,[S])}catch(z){return p(z)}let j=c(B);return R(j,z=>{if(!t(z))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return i=Mr(h,b,v,0),i}function Ep(r){let i,l=e;function h(){let v;try{v=r.read()}catch(S){return p(S)}return R(v,S=>{if(!t(S))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(S.done)Ht(i._readableStreamController);else{let x=S.value;dr(i._readableStreamController,x)}})}function b(v){try{return c(r.cancel(v))}catch(S){return p(S)}}return i=Mr(l,h,b,0),i}function xp(r,i){Ze(r,i);let l=r,h=l?.autoAllocateChunkSize,b=l?.cancel,v=l?.pull,S=l?.start,x=l?.type;return{autoAllocateChunkSize:h===void 0?void 0:$o(h,`${i} has member 'autoAllocateChunkSize' that`),cancel:b===void 0?void 0:Lp(b,l,`${i} has member 'cancel' that`),pull:v===void 0?void 0:Ap(v,l,`${i} has member 'pull' that`),start:S===void 0?void 0:kp(S,l,`${i} has member 'start' that`),type:x===void 0?void 0:Tp(x,`${i} has member 'type' that`)}}function Lp(r,i,l){return qe(r,l),h=>re(r,i,[h])}function Ap(r,i,l){return qe(r,l),h=>re(r,i,[h])}function kp(r,i,l){return qe(r,l),h=>E(r,i,[h])}function Tp(r,i){if(r=`${r}`,r!=="bytes")throw new TypeError(`${i} '${r}' is not a valid enumeration value for ReadableStreamType`);return r}function Cp(r,i){return Ze(r,i),{preventCancel:!!r?.preventCancel}}function ul(r,i){Ze(r,i);let l=r?.preventAbort,h=r?.preventCancel,b=r?.preventClose,v=r?.signal;return v!==void 0&&Ip(v,`${i} has member 'signal' that`),{preventAbort:!!l,preventCancel:!!h,preventClose:!!b,signal:v}}function Ip(r,i){if(!Nf(r))throw new TypeError(`${i} is not an AbortSignal.`)}function Dp(r,i){Ze(r,i);let l=r?.readable;Io(l,"readable","ReadableWritablePair"),Fo(l,`${i} has member 'readable' that`);let h=r?.writable;return Io(h,"writable","ReadableWritablePair"),Vs(h,`${i} has member 'writable' that`),{readable:l,writable:h}}class me{constructor(i={},l={}){i===void 0?i=null:ps(i,"First parameter");let h=wn(l,"Second parameter"),b=xp(i,"First parameter");if(li(this),b.type==="bytes"){if(h.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let v=Fr(h,0);Lf(this,b,v)}else{let v=yn(h),S=Fr(h,1);bp(this,b,S,v)}}get locked(){if(!Lt(this))throw Kt("locked");return At(this)}cancel(i=void 0){return Lt(this)?At(this)?p(new TypeError("Cannot cancel a stream that already has a reader")):Ge(this,i):p(Kt("cancel"))}getReader(i=void 0){if(!Lt(this))throw Kt("getReader");return kf(i,"First parameter").mode===void 0?ar(this):Ms(this)}pipeThrough(i,l={}){if(!Lt(this))throw Kt("pipeThrough");it(i,1,"pipeThrough");let h=Dp(i,"First parameter"),b=ul(l,"Second parameter");if(At(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(ur(h.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let v=al(this,h.writable,b.preventClose,b.preventAbort,b.preventCancel,b.signal);return k(v),h.readable}pipeTo(i,l={}){if(!Lt(this))return p(Kt("pipeTo"));if(i===void 0)return p("Parameter 1 is required in 'pipeTo'.");if(!lr(i))return p(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let h;try{h=ul(l,"Second parameter")}catch(b){return p(b)}return At(this)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):ur(i)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):al(this,i,h.preventClose,h.preventAbort,h.preventCancel,h.signal)}tee(){if(!Lt(this))throw Kt("tee");let i=yp(this);return Ir(i)}values(i=void 0){if(!Lt(this))throw Kt("values");let l=Cp(i,"First parameter");return pf(this,l.preventCancel)}[No](i){return this.values(i)}static from(i){return Rp(i)}}Object.defineProperties(me,{from:{enumerable:!0}}),Object.defineProperties(me.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),o(me.from,"from"),o(me.prototype.cancel,"cancel"),o(me.prototype.getReader,"getReader"),o(me.prototype.pipeThrough,"pipeThrough"),o(me.prototype.pipeTo,"pipeTo"),o(me.prototype.tee,"tee"),o(me.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(me.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(me.prototype,No,{value:me.prototype.values,writable:!0,configurable:!0});function Mr(r,i,l,h=1,b=()=>1){let v=Object.create(me.prototype);li(v);let S=Object.create(ut.prototype);return ll(v,S,r,i,l,h,b),v}function cl(r,i,l){let h=Object.create(me.prototype);li(h);let b=Object.create(st.prototype);return qs(h,b,r,i,l,0,void 0),h}function li(r){r._state="readable",r._reader=void 0,r._storedError=void 0,r._disturbed=!1}function Lt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readableStreamController")?!1:r instanceof me}function At(r){return r._reader!==void 0}function Ge(r,i){if(r._disturbed=!0,r._state==="closed")return c(void 0);if(r._state==="errored")return p(r._storedError);Nr(r);let l=r._reader;if(l!==void 0&&Wt(l)){let b=l._readIntoRequests;l._readIntoRequests=new X,b.forEach(v=>{v._closeSteps(void 0)})}let h=r._readableStreamController[He](i);return R(h,e)}function Nr(r){r._state="closed";let i=r._reader;if(i!==void 0&&(ue(i),St(i))){let l=i._readRequests;i._readRequests=new X,l.forEach(h=>{h._closeSteps()})}}function dl(r,i){r._state="errored",r._storedError=i;let l=r._reader;l!==void 0&&(we(l,i),St(l)?_s(l,i):Ws(l,i))}function Kt(r){return new TypeError(`ReadableStream.prototype.${r} can only be used on a ReadableStream`)}function fl(r,i){Ze(r,i);let l=r?.highWaterMark;return Io(l,"highWaterMark","QueuingStrategyInit"),{highWaterMark:Do(l)}}let pl=r=>r.byteLength;o(pl,"size");class Cn{constructor(i){it(i,1,"ByteLengthQueuingStrategy"),i=fl(i,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=i.highWaterMark}get highWaterMark(){if(!ml(this))throw hl("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!ml(this))throw hl("size");return pl}}Object.defineProperties(Cn.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Cn.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function hl(r){return new TypeError(`ByteLengthQueuingStrategy.prototype.${r} can only be used on a ByteLengthQueuingStrategy`)}function ml(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_byteLengthQueuingStrategyHighWaterMark")?!1:r instanceof Cn}let gl=()=>1;o(gl,"size");class In{constructor(i){it(i,1,"CountQueuingStrategy"),i=fl(i,"First parameter"),this._countQueuingStrategyHighWaterMark=i.highWaterMark}get highWaterMark(){if(!bl(this))throw _l("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!bl(this))throw _l("size");return gl}}Object.defineProperties(In.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(In.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function _l(r){return new TypeError(`CountQueuingStrategy.prototype.${r} can only be used on a CountQueuingStrategy`)}function bl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_countQueuingStrategyHighWaterMark")?!1:r instanceof In}function $p(r,i){Ze(r,i);let l=r?.cancel,h=r?.flush,b=r?.readableType,v=r?.start,S=r?.transform,x=r?.writableType;return{cancel:l===void 0?void 0:qp(l,r,`${i} has member 'cancel' that`),flush:h===void 0?void 0:Fp(h,r,`${i} has member 'flush' that`),readableType:b,start:v===void 0?void 0:Op(v,r,`${i} has member 'start' that`),transform:S===void 0?void 0:Bp(S,r,`${i} has member 'transform' that`),writableType:x}}function Fp(r,i,l){return qe(r,l),h=>re(r,i,[h])}function Op(r,i,l){return qe(r,l),h=>E(r,i,[h])}function Bp(r,i,l){return qe(r,l),(h,b)=>re(r,i,[h,b])}function qp(r,i,l){return qe(r,l),h=>re(r,i,[h])}class Dn{constructor(i={},l={},h={}){i===void 0&&(i=null);let b=wn(l,"Second parameter"),v=wn(h,"Third parameter"),S=$p(i,"First parameter");if(S.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(S.writableType!==void 0)throw new RangeError("Invalid writableType specified");let x=Fr(v,0),U=yn(v),B=Fr(b,1),j=yn(b),z,ne=d(Xe=>{z=Xe});Mp(this,ne,B,j,x,U),Up(this,S),S.start!==void 0?z(S.start(this._transformStreamController)):z(void 0)}get readable(){if(!yl(this))throw Rl("readable");return this._readable}get writable(){if(!yl(this))throw Rl("writable");return this._writable}}Object.defineProperties(Dn.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Dn.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function Mp(r,i,l,h,b,v){function S(){return i}function x(ne){return Vp(r,ne)}function U(ne){return zp(r,ne)}function B(){return Hp(r)}r._writable=Wf(S,x,B,U,l,h);function j(){return Kp(r)}function z(ne){return Gp(r,ne)}r._readable=Mr(S,j,z,b,v),r._backpressure=void 0,r._backpressureChangePromise=void 0,r._backpressureChangePromise_resolve=void 0,$n(r,!0),r._transformStreamController=void 0}function yl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_transformStreamController")?!1:r instanceof Dn}function wl(r,i){Ke(r._readable._readableStreamController,i),ui(r,i)}function ui(r,i){On(r._transformStreamController),Or(r._writable._writableStreamController,i),ci(r)}function ci(r){r._backpressure&&$n(r,!1)}function $n(r,i){r._backpressureChangePromise!==void 0&&r._backpressureChangePromise_resolve(),r._backpressureChangePromise=d(l=>{r._backpressureChangePromise_resolve=l}),r._backpressure=i}class kt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Fn(this))throw Bn("desiredSize");let i=this._controlledTransformStream._readable._readableStreamController;return si(i)}enqueue(i=void 0){if(!Fn(this))throw Bn("enqueue");vl(this,i)}error(i=void 0){if(!Fn(this))throw Bn("error");jp(this,i)}terminate(){if(!Fn(this))throw Bn("terminate");Wp(this)}}Object.defineProperties(kt.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),o(kt.prototype.enqueue,"enqueue"),o(kt.prototype.error,"error"),o(kt.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(kt.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function Fn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledTransformStream")?!1:r instanceof kt}function Np(r,i,l,h,b){i._controlledTransformStream=r,r._transformStreamController=i,i._transformAlgorithm=l,i._flushAlgorithm=h,i._cancelAlgorithm=b,i._finishPromise=void 0,i._finishPromise_resolve=void 0,i._finishPromise_reject=void 0}function Up(r,i){let l=Object.create(kt.prototype),h,b,v;i.transform!==void 0?h=S=>i.transform(S,l):h=S=>{try{return vl(l,S),c(void 0)}catch(x){return p(x)}},i.flush!==void 0?b=()=>i.flush(l):b=()=>c(void 0),i.cancel!==void 0?v=S=>i.cancel(S):v=()=>c(void 0),Np(r,l,h,b,v)}function On(r){r._transformAlgorithm=void 0,r._flushAlgorithm=void 0,r._cancelAlgorithm=void 0}function vl(r,i){let l=r._controlledTransformStream,h=l._readable._readableStreamController;if(!fr(h))throw new TypeError("Readable side is not in a state that permits enqueue");try{dr(h,i)}catch(v){throw ui(l,v),l._readable._storedError}_p(h)!==l._backpressure&&$n(l,!0)}function jp(r,i){wl(r._controlledTransformStream,i)}function Sl(r,i){let l=r._transformAlgorithm(i);return R(l,void 0,h=>{throw wl(r._controlledTransformStream,h),h})}function Wp(r){let i=r._controlledTransformStream,l=i._readable._readableStreamController;Ht(l);let h=new TypeError("TransformStream terminated");ui(i,h)}function Vp(r,i){let l=r._transformStreamController;if(r._backpressure){let h=r._backpressureChangePromise;return R(h,()=>{let b=r._writable;if(b._state==="erroring")throw b._storedError;return Sl(l,i)})}return Sl(l,i)}function zp(r,i){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._readable;l._finishPromise=d((v,S)=>{l._finishPromise_resolve=v,l._finishPromise_reject=S});let b=l._cancelAlgorithm(i);return On(l),y(b,()=>(h._state==="errored"?pr(l,h._storedError):(Ke(h._readableStreamController,i),di(l)),null),v=>(Ke(h._readableStreamController,v),pr(l,v),null)),l._finishPromise}function Hp(r){let i=r._transformStreamController;if(i._finishPromise!==void 0)return i._finishPromise;let l=r._readable;i._finishPromise=d((b,v)=>{i._finishPromise_resolve=b,i._finishPromise_reject=v});let h=i._flushAlgorithm();return On(i),y(h,()=>(l._state==="errored"?pr(i,l._storedError):(Ht(l._readableStreamController),di(i)),null),b=>(Ke(l._readableStreamController,b),pr(i,b),null)),i._finishPromise}function Kp(r){return $n(r,!1),r._backpressureChangePromise}function Gp(r,i){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._writable;l._finishPromise=d((v,S)=>{l._finishPromise_resolve=v,l._finishPromise_reject=S});let b=l._cancelAlgorithm(i);return On(l),y(b,()=>(h._state==="errored"?pr(l,h._storedError):(Or(h._writableStreamController,i),ci(r),di(l)),null),v=>(Or(h._writableStreamController,v),ci(r),pr(l,v),null)),l._finishPromise}function Bn(r){return new TypeError(`TransformStreamDefaultController.prototype.${r} can only be used on a TransformStreamDefaultController`)}function di(r){r._finishPromise_resolve!==void 0&&(r._finishPromise_resolve(),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function pr(r,i){r._finishPromise_reject!==void 0&&(k(r._finishPromise),r._finishPromise_reject(i),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function Rl(r){return new TypeError(`TransformStream.prototype.${r} can only be used on a TransformStream`)}a.ByteLengthQueuingStrategy=Cn,a.CountQueuingStrategy=In,a.ReadableByteStreamController=st,a.ReadableStream=me,a.ReadableStreamBYOBReader=Et,a.ReadableStreamBYOBRequest=Ut,a.ReadableStreamDefaultController=ut,a.ReadableStreamDefaultReader=vt,a.TransformStream=Dn,a.TransformStreamDefaultController=kt,a.WritableStream=xt,a.WritableStreamDefaultController=cr,a.WritableStreamDefaultWriter=lt})});var ru=F(()=>{"use strict";if(!globalThis.ReadableStream)try{let a=require("node:process"),{emitWarning:e}=a;try{a.emitWarning=()=>{},Object.assign(globalThis,require("node:stream/web")),a.emitWarning=e}catch(t){throw a.emitWarning=e,t}}catch{Object.assign(globalThis,tu())}try{let{Blob:a}=require("buffer");a&&!a.prototype.stream&&(a.prototype.stream=function(t){let n=0,o=this;return new ReadableStream({type:"bytes",async pull(s){let f=await o.slice(n,Math.min(o.size,n+65536)).arrayBuffer();n+=f.byteLength,s.enqueue(new Uint8Array(f)),n===o.size&&s.close()}})})}catch{}});async function*Ui(a,e=!0){for(let t of a)if("stream"in t)yield*t.stream();else if(ArrayBuffer.isView(t))if(e){let n=t.byteOffset,o=t.byteOffset+t.byteLength;for(;n!==o;){let s=Math.min(o-n,nu),u=t.buffer.slice(n,n+s);n+=u.byteLength,yield new Uint8Array(u)}}else yield t;else{let n=0,o=t;for(;n!==o.size;){let u=await o.slice(n,Math.min(o.size,n+nu)).arrayBuffer();n+=u.byteLength,yield new Uint8Array(u)}}}var Vb,nu,ou,nm,ft,jr=Q(()=>{"use strict";Vb=le(ru(),1);nu=65536;ou=class ji{#e=[];#t="";#r=0;#n="transparent";constructor(e=[],t={}){if(typeof e!="object"||e===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(typeof e[Symbol.iterator]!="function")throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof t!="object"&&typeof t!="function")throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");t===null&&(t={});let n=new TextEncoder;for(let s of e){let u;ArrayBuffer.isView(s)?u=new Uint8Array(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength)):s instanceof ArrayBuffer?u=new Uint8Array(s.slice(0)):s instanceof ji?u=s:u=n.encode(`${s}`),this.#r+=ArrayBuffer.isView(u)?u.byteLength:u.size,this.#e.push(u)}this.#n=`${t.endings===void 0?"transparent":t.endings}`;let o=t.type===void 0?"":String(t.type);this.#t=/^[\x20-\x7E]*$/.test(o)?o:""}get size(){return this.#r}get type(){return this.#t}async text(){let e=new TextDecoder,t="";for await(let n of Ui(this.#e,!1))t+=e.decode(n,{stream:!0});return t+=e.decode(),t}async arrayBuffer(){let e=new Uint8Array(this.size),t=0;for await(let n of Ui(this.#e,!1))e.set(n,t),t+=n.length;return e.buffer}stream(){let e=Ui(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(t){let n=await e.next();n.done?t.close():t.enqueue(n.value)},async cancel(){await e.return()}})}slice(e=0,t=this.size,n=""){let{size:o}=this,s=e<0?Math.max(o+e,0):Math.min(e,o),u=t<0?Math.max(o+t,0):Math.min(t,o),f=Math.max(u-s,0),d=this.#e,c=[],p=0;for(let y of d){if(p>=f)break;let g=ArrayBuffer.isView(y)?y.byteLength:y.size;if(s&&g<=s)s-=g,u-=g;else{let w;ArrayBuffer.isView(y)?(w=y.subarray(s,Math.min(g,u)),p+=w.byteLength):(w=y.slice(s,Math.min(g,u)),p+=w.size),u-=g,c.push(w),s=0}}let m=new ji([],{type:String(n).toLowerCase()});return m.#r=f,m.#e=c,m}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](e){return e&&typeof e=="object"&&typeof e.constructor=="function"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}};Object.defineProperties(ou.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});nm=ou,ft=nm});var om,im,br,Wi=Q(()=>{"use strict";jr();om=class extends ft{#e=0;#t="";constructor(e,t,n={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(e,n),n===null&&(n={});let o=n.lastModified===void 0?Date.now():Number(n.lastModified);Number.isNaN(o)||(this.#e=o),this.#t=String(t)}get name(){return this.#t}get lastModified(){return this.#e}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](e){return!!e&&e instanceof ft&&/^(File)$/.test(e[Symbol.toStringTag])}},im=om,br=im});function su(a,e=ft){var t=`${iu()}${iu()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),n=[],o=`--${t}\r
3268
3268
  Content-Disposition: form-data; name="`;return a.forEach((s,u)=>typeof s=="string"?n.push(o+Vi(u)+`"\r
3269
3269
  \r
3270
3270
  ${s.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
@@ -3273,25 +3273,25 @@ ${s.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
3273
3273
  Content-Type: ${s.type||"application/octet-stream"}\r
3274
3274
  \r
3275
3275
  `,s,`\r
3276
- `)),n.push(`--${t}--`),new e(n,{type:"multipart/form-data; boundary="+t})}var zr,am,sm,iu,lm,au,Vi,Yt,Qt,Wn=Q(()=>{"use strict";jr();zi();({toStringTag:zr,iterator:am,hasInstance:sm}=Symbol),iu=Math.random,lm="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),au=(a,e,t)=>(a+="",/^(Blob|File)$/.test(e&&e[zr])?[(t=t!==void 0?t+"":e[zr]=="File"?e.name:"blob",a),e.name!==t||e[zr]=="blob"?new br([e],t,e):e]:[a,e+""]),Vi=(a,e)=>(e?a:a.replace(/\r?\n|\r/g,`\r
3277
- `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Yt=(a,e,t)=>{if(e.length<t)throw new TypeError(`Failed to execute '${a}' on 'FormData': ${t} arguments required, but only ${e.length} present.`)},Qt=class{#e=[];constructor(...e){if(e.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[zr](){return"FormData"}[am](){return this.entries()}static[sm](e){return e&&typeof e=="object"&&e[zr]==="FormData"&&!lm.some(t=>typeof e[t]!="function")}append(...e){Yt("append",arguments,2),this.#e.push(au(...e))}delete(e){Yt("delete",arguments,1),e+="",this.#e=this.#e.filter(([t])=>t!==e)}get(e){Yt("get",arguments,1),e+="";for(var t=this.#e,n=t.length,o=0;o<n;o++)if(t[o][0]===e)return t[o][1];return null}getAll(e,t){return Yt("getAll",arguments,1),t=[],e+="",this.#e.forEach(n=>n[0]===e&&t.push(n[1])),t}has(e){return Yt("has",arguments,1),e+="",this.#e.some(t=>t[0]===e)}forEach(e,t){Yt("forEach",arguments,1);for(var[n,o]of this)e.call(t,o,n,this)}set(...e){Yt("set",arguments,2);var t=[],n=!0;e=au(...e),this.#e.forEach(o=>{o[0]===e[0]?n&&(n=!t.push(e)):t.push(o)}),n&&t.push(e),this.#e=t}*entries(){yield*this.#e}*keys(){for(var[e]of this)yield e}*values(){for(var[,e]of this)yield e}}});var fu=F((ny,du)=>{"use strict";if(!globalThis.DOMException)try{let{MessageChannel:a}=require("worker_threads"),e=new a().port1,t=new ArrayBuffer;e.postMessage(t,[t,t])}catch(a){a.constructor.name==="DOMException"&&(globalThis.DOMException=a.constructor)}du.exports=globalThis.DOMException});var Kn,um,ay,Hi=Q(()=>{"use strict";Kn=require("node:fs"),um=le(fu(),1);zi();jr();({stat:ay}=Kn.promises)});var hu={};Z(hu,{toFormData:()=>gm});function mm(a){let e=a.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!e)return;let t=e[2]||e[3]||"",n=t.slice(t.lastIndexOf("\\")+1);return n=n.replace(/%22/g,'"'),n=n.replace(/&#(\d{4});/g,(o,s)=>String.fromCharCode(s)),n}async function gm(a,e){if(!/multipart/i.test(e))throw new TypeError("Failed to fetch");let t=e.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!t)throw new TypeError("no or bad content-type header, no multipart boundary");let n=new Ki(t[1]||t[2]),o,s,u,f,d,c,p=[],m=new Qt,y=I=>{u+=k.decode(I,{stream:!0})},g=I=>{p.push(I)},w=()=>{let I=new br(p,c,{type:d});m.append(f,I)},R=()=>{m.append(f,u)},k=new TextDecoder("utf-8");k.decode(),n.onPartBegin=function(){n.onPartData=y,n.onPartEnd=R,o="",s="",u="",f="",d="",c=null,p.length=0},n.onHeaderField=function(I){o+=k.decode(I,{stream:!0})},n.onHeaderValue=function(I){s+=k.decode(I,{stream:!0})},n.onHeaderEnd=function(){if(s+=k.decode(),o=o.toLowerCase(),o==="content-disposition"){let I=s.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);I&&(f=I[2]||I[3]||""),c=mm(s),c&&(n.onPartData=g,n.onPartEnd=w)}else o==="content-type"&&(d=s);s="",o=""};for await(let I of a)n.write(I);return n.end(),m}var tt,ie,pu,Ct,Gn,Xn,cm,Wr,dm,fm,pm,hm,Jt,Ki,mu=Q(()=>{"use strict";Hi();Wn();tt=0,ie={START_BOUNDARY:tt++,HEADER_FIELD_START:tt++,HEADER_FIELD:tt++,HEADER_VALUE_START:tt++,HEADER_VALUE:tt++,HEADER_VALUE_ALMOST_DONE:tt++,HEADERS_ALMOST_DONE:tt++,PART_DATA_START:tt++,PART_DATA:tt++,END:tt++},pu=1,Ct={PART_BOUNDARY:pu,LAST_BOUNDARY:pu*=2},Gn=10,Xn=13,cm=32,Wr=45,dm=58,fm=97,pm=122,hm=a=>a|32,Jt=()=>{},Ki=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=Jt,this.onHeaderField=Jt,this.onHeadersEnd=Jt,this.onHeaderValue=Jt,this.onPartBegin=Jt,this.onPartData=Jt,this.onPartEnd=Jt,this.boundaryChars={},e=`\r
3278
- --`+e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n),this.boundaryChars[t[n]]=!0;this.boundary=t,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=ie.START_BOUNDARY}write(e){let t=0,n=e.length,o=this.index,{lookbehind:s,boundary:u,boundaryChars:f,index:d,state:c,flags:p}=this,m=this.boundary.length,y=m-1,g=e.length,w,R,k=G=>{this[G+"Mark"]=t},I=G=>{delete this[G+"Mark"]},E=(G,X,J,We)=>{(X===void 0||X!==J)&&this[G](We&&We.subarray(X,J))},re=(G,X)=>{let J=G+"Mark";J in this&&(X?(E(G,this[J],t,e),delete this[J]):(E(G,this[J],e.length,e),this[J]=0))};for(t=0;t<n;t++)switch(w=e[t],c){case ie.START_BOUNDARY:if(d===u.length-2){if(w===Wr)p|=Ct.LAST_BOUNDARY;else if(w!==Xn)return;d++;break}else if(d-1===u.length-2){if(p&Ct.LAST_BOUNDARY&&w===Wr)c=ie.END,p=0;else if(!(p&Ct.LAST_BOUNDARY)&&w===Gn)d=0,E("onPartBegin"),c=ie.HEADER_FIELD_START;else return;break}w!==u[d+2]&&(d=-2),w===u[d+2]&&d++;break;case ie.HEADER_FIELD_START:c=ie.HEADER_FIELD,k("onHeaderField"),d=0;case ie.HEADER_FIELD:if(w===Xn){I("onHeaderField"),c=ie.HEADERS_ALMOST_DONE;break}if(d++,w===Wr)break;if(w===dm){if(d===1)return;re("onHeaderField",!0),c=ie.HEADER_VALUE_START;break}if(R=hm(w),R<fm||R>pm)return;break;case ie.HEADER_VALUE_START:if(w===cm)break;k("onHeaderValue"),c=ie.HEADER_VALUE;case ie.HEADER_VALUE:w===Xn&&(re("onHeaderValue",!0),E("onHeaderEnd"),c=ie.HEADER_VALUE_ALMOST_DONE);break;case ie.HEADER_VALUE_ALMOST_DONE:if(w!==Gn)return;c=ie.HEADER_FIELD_START;break;case ie.HEADERS_ALMOST_DONE:if(w!==Gn)return;E("onHeadersEnd"),c=ie.PART_DATA_START;break;case ie.PART_DATA_START:c=ie.PART_DATA,k("onPartData");case ie.PART_DATA:if(o=d,d===0){for(t+=y;t<g&&!(e[t]in f);)t+=m;t-=y,w=e[t]}if(d<u.length)u[d]===w?(d===0&&re("onPartData",!0),d++):d=0;else if(d===u.length)d++,w===Xn?p|=Ct.PART_BOUNDARY:w===Wr?p|=Ct.LAST_BOUNDARY:d=0;else if(d-1===u.length)if(p&Ct.PART_BOUNDARY){if(d=0,w===Gn){p&=~Ct.PART_BOUNDARY,E("onPartEnd"),E("onPartBegin"),c=ie.HEADER_FIELD_START;break}}else p&Ct.LAST_BOUNDARY&&w===Wr?(E("onPartEnd"),c=ie.END,p=0):d=0;if(d>0)s[d-1]=w;else if(o>0){let G=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);E("onPartData",0,o,G),o=0,k("onPartData"),t--}break;case ie.END:break;default:throw new Error(`Unexpected state entered: ${c}`)}re("onHeaderField"),re("onHeaderValue"),re("onPartData"),this.index=d,this.state=c,this.flags=p}end(){if(this.state===ie.HEADER_FIELD_START&&this.index===0||this.state===ie.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==ie.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}});var Cu=F((Xy,Pm)=>{Pm.exports=Un("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")});var Du=F((Qy,Em)=>{Em.exports=Un("UEsDBBQACAAIAASRa1kAAAAAAAAAAAAAAAAkAAAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC40L2NvbnRyb2wubHVhjZXBbts4EIbPFqB3IHxSAFpo2mtdtOixu6ctcgkCYUyNZCIUyR0OjQ0EvfuClJ2kTWQVvpjzfzP8Z0RKxikwghQYI/aCcHCMdVqVxXkBbdtoy0gdKKy2LR5iDy14RtoxBg5bOZbFBokcib3oolWsnRXVgKG/KYvNhpAjWZGJHJVid5sUtK0si41fz/XJUpU5+U6Fs/1LflXX9evs3N4liLYti+mmLNLP5PZTG82ADA2IvRiTMJVFUKQ914S9DoyUAYaDwWqbE2ArX2fmis8d/EzCt4rTjmcXAfmlBMtfU7Orstjtdl97tEhaiR/ybg54IBiEUSz+ivA9BnbDz1Tk8w9592VGzlvcXTp69tFpCuy6yqhspXMkHvFJihOYiEJb4UFTyLJo3auZZeAyrrO756p/wyM2ucV/2BH0WKXi89ZphOfuR93ub6cX6ZCmez8yRZwe9jCVxSbM+XWaxjz7zQYkyHGS4/3hYX+Q9+Pt9LAfP07yfkx/JjmlR765lR/lJ5lqyQ5MQLntnNtmqYcBa2/gCen3da2OQKD4PSVScNQEBvX4RuwcKXwTDTHfijfxPupXMaRBh6CdDTl4ROORQq0IgbHx5DptkKrUys3SFnWP3LA2WH2QH2bq8mjf2KwJlfYY1jBGdbTOuF6/z774rnty0f8GeXLs+MljqEEdNZ5wQMvLzDC4RgFj7+hpmYrsvAGFjXKWyZlFUuWL0GjrI69BeLrmrEXlCFifcBmBAfplGS1rXm4K/43ap+Gs9/+C9qTbdWyR6Ey8kt+5a6kRzbpTzTg0+VxcR0I8rFOL4uDaJiCztv01Jhpcd2xhwLaxTgds8D9PmA/3H+GXN98i7IFYK7N8ROY7uW5y5q7IwUVSf1AoHB2xunI3nq//co30wlkWSZ80mCYM7nGZOmnimCjdW5hv85Q/KP8DUEsHCCVH6TG7AgAAeggAAFBLAwQUAAgACAC0vUVYAAAAAAAAAAAAAAAAIQAAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuNC9kYXRhLmx1YYWRz2rDMAzG74W+w0cuS6AJbPccBnuLUooTK4mpJxtbbgtj7z6cLF0Gg11s65N+sv5Y1ysLoSgRLT72O0Cm4G5oMSTuxThGWWUZ8L2ytqQQXDgUs/Fc/HKtxAoAc3C5BL+swcS62u+W9/0fcvFvyMOmrneK4wMIJCkwsrb9ZpMr8aRYW9JLupws37F3nuJfDdt5OINzaCEh0VbtVMiIsvFbPp/fqEvjq1ZeKDRdIHXxzrCUFeoa0eFG0I6fBJO6EsThQuRhDVOcT43km6b5qe0zT8k+NmQ0WkQSMTzGJooKkvyx0MrX2V0bXZyaq7K5UDOsiGK97Pe4CCfIRDwveqvmnon1F1BLBwiOeo29BQEAABACAABQSwMEFAAIAAgAZXOGWQAAAAAAAAAAAAAAACIAAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjQvaW5mby5qc29uVc7BCsIwEATQXylzToqIp1xE8BO8icg22bbRJluSrRfx36X25HGHecy+kSkxHAJ3y0CBZuVilatWGPTkVUqU+4tLjZLhsG93MNCo06oua7HppTTn1Z82DwNadJQCh8dSlQrlIGlgfsJglMQzDSuHgZes5HU7Aldf4qzb1C+YOQfOPnKFu+KYYo6JJpvFdlTZJgm4Gfz91x7w+QJQSwcIl0MXgpsAAADYAAAAUEsDBBQACAAIACWtrVYAAAAAAAAAAAAAAAAyAAAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC40L3NjZW5hcmlvcy9ydW4vY29udHJvbC5sdWFNjzFrxDAMhecY/B8emRJobihdM3btlaOdDyWWqTlHDrZy9P59cUhL0SK9h/Q9lTmHVU9Jrnxn0c6xD8LltE+l6hrm2xP8JrOGJOh6a5qYZorwKWGE5o3/pIkyRniKha1hcb011gwDSloYbluWB+bkGD5lTJnptqYgWqAJkcQhyW7dKQZHlWfNwfrlT6ty0W4/3AQPfazctW2PcUTbQr9YrGmOOIQRL8/WNCyuLtQ62mEAf2smxPrvTqV/kUBeOcMHoYjz+/Xy+vF5ebPmB1BLBwhSqPT1zgAAADABAABQSwMEFAAIAAgAaYkwVgAAAAAAAAAAAAAAADgAAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjQvc2NlbmFyaW9zL3Rlcm1pbmF0ZS9jb250cm9sLmx1YStOLsosKNHLz4vPzMss0UgrzUsuyczPU9DQ5OVSUIiPd0lNKk13TEksKEkt0itJLcrNzEssSQXJpualaAIAUEsHCJSORlA+AAAAPgAAAFBLAwQUAAgACABNgopYAAAAAAAAAAAAAAAANAAAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuNC9zY2VuYXJpb3MvdGhyb3cvY29udHJvbC5sdWGtU8FugzAMPYPEP0Q5USkgle3ab6kyYli0YFASqknT/n1yAisVG93YTsT2e8/PRrbQ9R5KqdRZowfbyBpybuAChou3LE3A2t6yE2tGrL3ukeUduPaQpUliwY8WWUCErGDFkSqASmRpMtznDrU0Jg84Mdci+/2QpaavpWGWMOzEbLRKUZa62urBlz2e4QLocwWNRnBliBzlva5fxKI1Scd2cy6PTkKOe3C+6LRzGlsuGMcegU92rtQAFuwGXS3h200UPI2tVHLwYAvScMQN49MjTnj8vu2P+NVeH1Sj7/T3V8IPvzV2T/Bxr9PhU2jYubOVwv9tbSX9972tJG83F++HhyBu4qsp4p1GVLWwlKXJ6wY+1ma82Dhmiq+DTvQRnyUqA4oUqPQBUEsHCPTB5xMnAQAAcgQAAFBLAwQUAAgACAAPE31XAAAAAAAAAAAAAAAAJQAAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuNC9zZXR0aW5ncy5sdWFF0Ntq3EgUheF7g99B+GYciEOpDirVDHmTBaFOchp3WqYlj/8w5N0HO+PRTV3stfiovc9rzedhWdfh67BfX/rtzfl9UvJ1+Dos+bwdo5Xh63C3rs/b3e1Ny3v+s7P3S7v/5/ZmGN6fYdh/Pve32rZfT5fHh63v++nyePf5d3rJP97Tlp8f9r7tD6f2Ef3X/HYA+bq/PH/ErS/55bx/+zufX97zjyCfz+vrt3LOl6f/dxiGX7c3vz7d3tzePDwMv7+yDa+n/ftbfXhet+1Uzn0oP/e+Dfs6/MhPfdhern14ztt2ujy+R3VtfWgvP5634XW9Pm1DXa/XXvfzz3f3tAz799M2tLVvlz/24XE9Cp+H/XsfyrXnp+f1dNkfTpePW2zD2+bD6+l8HpZ8Ot/e/HW/vFzqflov91++fPnUL+3T/dsSd8IYYUZhrDBOGC9MEGYSJgozC5OEycIUYaowTZguzPL7RndiNGIcxWjF6MToxRjEOIkxinEWYxJjFmMRYxVjE2MX48FYI+worBXWCeuFDcJOwkZhZ2GTsFnYImwVtgnbhT0YZ4QbhbPCOeG8cEG4Sbgo3CxcEi4LV4SrwjXhunAH443wo/BWeCe8Fz4IPwkfhZ+FT8Jn4YvwVfgmfBf+YIIRYRTBiuBE8CIEESYRogizCEmELEIRoYrQROgiHMxkxDSKyYrJicmLKYhpElMU0yymJKYspiKmKqYmpi6mg4lGxFFEK6IT0YsYRJxEjCLOIiYRs4hFxCpiE7GLeDCzEfMoZitmJ2Yv5iDmScxRzLOYk5izmIuYq5ibmLuYDyYZkUaRrEhOJC9SEGkSKYo0i5REyiIVkapITaQu0sFkI/IoshXZiexFDiJPIkeRZ5GTyFnkInIVuYncRT6YYkQZRbGiOFG8KEGUSZQoyixKEiWLUkSpojRRuigHU42oo6hWVCeqFzWIOokaRZ1FTaJmUYuoVdQmahf1YJoRbRTNiuZE86IF0SbRomizaEm0LFoRrYrWROuiHUw3oo+iW9Gd6F70IPokehR9Fj2JnkUvolfRm+hd9INZjFhGsVixOLF4sQSxTGKJYpnFksSSxVLEUsXSxNLFstx9+hdQSwcI9rJDNzwDAAAJBgAAUEsBAi0DFAAIAAgABJFrWSVH6TG7AgAAeggAACQAAAAAAAAAAAAgALaBAAAAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuNC9jb250cm9sLmx1YVBLAQItAxQACAAIALS9RViOeo29BQEAABACAAAhAAAAAAAAAAAAIAC2gQ0DAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjQvZGF0YS5sdWFQSwECLQMUAAgACABlc4ZZl0MXgpsAAADYAAAAIgAAAAAAAAAAACAAtoFhBAAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC40L2luZm8uanNvblBLAQItAxQACAAIACWtrVZSqPT1zgAAADABAAAyAAAAAAAAAAAAIAC2gUwFAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjQvc2NlbmFyaW9zL3J1bi9jb250cm9sLmx1YVBLAQItAxQACAAIAGmJMFaUjkZQPgAAAD4AAAA4AAAAAAAAAAAAIAC2gXoGAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjQvc2NlbmFyaW9zL3Rlcm1pbmF0ZS9jb250cm9sLmx1YVBLAQItAxQACAAIAE2Cilj0wecTJwEAAHIEAAA0AAAAAAAAAAAAIAC2gR4HAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjQvc2NlbmFyaW9zL3Rocm93L2NvbnRyb2wubHVhUEsBAi0DFAAIAAgADxN9V/ayQzc8AwAACQYAACUAAAAAAAAAAAAgALaBpwgAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuNC9zZXR0aW5ncy5sdWFQSwUGAAAAAAcABwBsAgAANgwAAAAA")});var oo=F(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.Event=Ot.Response=Ot.Message=void 0;var Qr=class{constructor(e){this.seq=0,this.type=e}};Ot.Message=Qr;var na=class extends Qr{constructor(e,t){super("response"),this.request_seq=e.seq,this.command=e.command,t?(this.success=!1,this.message=t):this.success=!0}};Ot.Response=na;var oa=class extends Qr{constructor(e,t){super("event"),this.event=e,t&&(this.body=t)}};Ot.Event=oa});var Bu=F(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.ProtocolServer=void 0;var Am=require("events"),Jr=oo(),ia=class{get event(){return this._event||(this._event=(e,t)=>{this._listener=e,this._this=t;let n;return n={dispose:()=>{this._listener=void 0,this._this=void 0}},n}),this._event}fire(e){if(this._listener)try{this._listener.call(this._this,e)}catch{}}hasListener(){return!!this._listener}dispose(){this._listener=void 0,this._this=void 0}},io=class a extends Am.EventEmitter{constructor(){super(),this._sendMessage=new ia,this._sequence=1,this._pendingRequests=new Map,this.onDidSendMessage=this._sendMessage.event}dispose(){}handleMessage(e){if(e.type==="request")this.dispatchRequest(e);else if(e.type==="response"){let t=e,n=this._pendingRequests.get(t.request_seq);n&&(this._pendingRequests.delete(t.request_seq),n(t))}}_isRunningInline(){return this._sendMessage&&this._sendMessage.hasListener()}start(e,t){this._writableStream=t,this._rawData=Buffer.alloc(0),e.on("data",n=>this._handleData(n)),e.on("close",()=>{this._emitEvent(new Jr.Event("close"))}),e.on("error",n=>{this._emitEvent(new Jr.Event("error","inStream error: "+(n&&n.message)))}),t.on("error",n=>{this._emitEvent(new Jr.Event("error","outStream error: "+(n&&n.message)))}),e.resume()}stop(){this._writableStream&&this._writableStream.end()}sendEvent(e){this._send("event",e)}sendResponse(e){e.seq>0?console.error(`attempt to send more than one response for command ${e.command}`):this._send("response",e)}sendRequest(e,t,n,o){let s={command:e};if(t&&Object.keys(t).length>0&&(s.arguments=t),this._send("request",s),o){this._pendingRequests.set(s.seq,o);let u=setTimeout(()=>{clearTimeout(u);let f=this._pendingRequests.get(s.seq);f&&(this._pendingRequests.delete(s.seq),f(new Jr.Response(s,"timeout")))},n)}}dispatchRequest(e){}_emitEvent(e){this.emit(e.event,e)}_send(e,t){if(t.type=e,t.seq=this._sequence++,this._writableStream){let n=JSON.stringify(t);this._writableStream.write(`Content-Length: ${Buffer.byteLength(n,"utf8")}\r
3276
+ `)),n.push(`--${t}--`),new e(n,{type:"multipart/form-data; boundary="+t})}var Wr,am,sm,iu,lm,au,Vi,Yt,Qt,zn=Q(()=>{"use strict";jr();Wi();({toStringTag:Wr,iterator:am,hasInstance:sm}=Symbol),iu=Math.random,lm="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),au=(a,e,t)=>(a+="",/^(Blob|File)$/.test(e&&e[Wr])?[(t=t!==void 0?t+"":e[Wr]=="File"?e.name:"blob",a),e.name!==t||e[Wr]=="blob"?new br([e],t,e):e]:[a,e+""]),Vi=(a,e)=>(e?a:a.replace(/\r?\n|\r/g,`\r
3277
+ `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Yt=(a,e,t)=>{if(e.length<t)throw new TypeError(`Failed to execute '${a}' on 'FormData': ${t} arguments required, but only ${e.length} present.`)},Qt=class{#e=[];constructor(...e){if(e.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[Wr](){return"FormData"}[am](){return this.entries()}static[sm](e){return e&&typeof e=="object"&&e[Wr]==="FormData"&&!lm.some(t=>typeof e[t]!="function")}append(...e){Yt("append",arguments,2),this.#e.push(au(...e))}delete(e){Yt("delete",arguments,1),e+="",this.#e=this.#e.filter(([t])=>t!==e)}get(e){Yt("get",arguments,1),e+="";for(var t=this.#e,n=t.length,o=0;o<n;o++)if(t[o][0]===e)return t[o][1];return null}getAll(e,t){return Yt("getAll",arguments,1),t=[],e+="",this.#e.forEach(n=>n[0]===e&&t.push(n[1])),t}has(e){return Yt("has",arguments,1),e+="",this.#e.some(t=>t[0]===e)}forEach(e,t){Yt("forEach",arguments,1);for(var[n,o]of this)e.call(t,o,n,this)}set(...e){Yt("set",arguments,2);var t=[],n=!0;e=au(...e),this.#e.forEach(o=>{o[0]===e[0]?n&&(n=!t.push(e)):t.push(o)}),n&&t.push(e),this.#e=t}*entries(){yield*this.#e}*keys(){for(var[e]of this)yield e}*values(){for(var[,e]of this)yield e}}});var fu=F((ny,du)=>{"use strict";if(!globalThis.DOMException)try{let{MessageChannel:a}=require("worker_threads"),e=new a().port1,t=new ArrayBuffer;e.postMessage(t,[t,t])}catch(a){a.constructor.name==="DOMException"&&(globalThis.DOMException=a.constructor)}du.exports=globalThis.DOMException});var Kn,um,ay,Hi=Q(()=>{"use strict";Kn=require("node:fs"),um=le(fu(),1);Wi();jr();({stat:ay}=Kn.promises)});var hu={};Z(hu,{toFormData:()=>gm});function mm(a){let e=a.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!e)return;let t=e[2]||e[3]||"",n=t.slice(t.lastIndexOf("\\")+1);return n=n.replace(/%22/g,'"'),n=n.replace(/&#(\d{4});/g,(o,s)=>String.fromCharCode(s)),n}async function gm(a,e){if(!/multipart/i.test(e))throw new TypeError("Failed to fetch");let t=e.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!t)throw new TypeError("no or bad content-type header, no multipart boundary");let n=new Ki(t[1]||t[2]),o,s,u,f,d,c,p=[],m=new Qt,y=C=>{u+=k.decode(C,{stream:!0})},g=C=>{p.push(C)},w=()=>{let C=new br(p,c,{type:d});m.append(f,C)},R=()=>{m.append(f,u)},k=new TextDecoder("utf-8");k.decode(),n.onPartBegin=function(){n.onPartData=y,n.onPartEnd=R,o="",s="",u="",f="",d="",c=null,p.length=0},n.onHeaderField=function(C){o+=k.decode(C,{stream:!0})},n.onHeaderValue=function(C){s+=k.decode(C,{stream:!0})},n.onHeaderEnd=function(){if(s+=k.decode(),o=o.toLowerCase(),o==="content-disposition"){let C=s.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);C&&(f=C[2]||C[3]||""),c=mm(s),c&&(n.onPartData=g,n.onPartEnd=w)}else o==="content-type"&&(d=s);s="",o=""};for await(let C of a)n.write(C);return n.end(),m}var tt,ie,pu,It,Gn,Xn,cm,zr,dm,fm,pm,hm,Jt,Ki,mu=Q(()=>{"use strict";Hi();zn();tt=0,ie={START_BOUNDARY:tt++,HEADER_FIELD_START:tt++,HEADER_FIELD:tt++,HEADER_VALUE_START:tt++,HEADER_VALUE:tt++,HEADER_VALUE_ALMOST_DONE:tt++,HEADERS_ALMOST_DONE:tt++,PART_DATA_START:tt++,PART_DATA:tt++,END:tt++},pu=1,It={PART_BOUNDARY:pu,LAST_BOUNDARY:pu*=2},Gn=10,Xn=13,cm=32,zr=45,dm=58,fm=97,pm=122,hm=a=>a|32,Jt=()=>{},Ki=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=Jt,this.onHeaderField=Jt,this.onHeadersEnd=Jt,this.onHeaderValue=Jt,this.onPartBegin=Jt,this.onPartData=Jt,this.onPartEnd=Jt,this.boundaryChars={},e=`\r
3278
+ --`+e;let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n),this.boundaryChars[t[n]]=!0;this.boundary=t,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=ie.START_BOUNDARY}write(e){let t=0,n=e.length,o=this.index,{lookbehind:s,boundary:u,boundaryChars:f,index:d,state:c,flags:p}=this,m=this.boundary.length,y=m-1,g=e.length,w,R,k=G=>{this[G+"Mark"]=t},C=G=>{delete this[G+"Mark"]},E=(G,X,J,ze)=>{(X===void 0||X!==J)&&this[G](ze&&ze.subarray(X,J))},re=(G,X)=>{let J=G+"Mark";J in this&&(X?(E(G,this[J],t,e),delete this[J]):(E(G,this[J],e.length,e),this[J]=0))};for(t=0;t<n;t++)switch(w=e[t],c){case ie.START_BOUNDARY:if(d===u.length-2){if(w===zr)p|=It.LAST_BOUNDARY;else if(w!==Xn)return;d++;break}else if(d-1===u.length-2){if(p&It.LAST_BOUNDARY&&w===zr)c=ie.END,p=0;else if(!(p&It.LAST_BOUNDARY)&&w===Gn)d=0,E("onPartBegin"),c=ie.HEADER_FIELD_START;else return;break}w!==u[d+2]&&(d=-2),w===u[d+2]&&d++;break;case ie.HEADER_FIELD_START:c=ie.HEADER_FIELD,k("onHeaderField"),d=0;case ie.HEADER_FIELD:if(w===Xn){C("onHeaderField"),c=ie.HEADERS_ALMOST_DONE;break}if(d++,w===zr)break;if(w===dm){if(d===1)return;re("onHeaderField",!0),c=ie.HEADER_VALUE_START;break}if(R=hm(w),R<fm||R>pm)return;break;case ie.HEADER_VALUE_START:if(w===cm)break;k("onHeaderValue"),c=ie.HEADER_VALUE;case ie.HEADER_VALUE:w===Xn&&(re("onHeaderValue",!0),E("onHeaderEnd"),c=ie.HEADER_VALUE_ALMOST_DONE);break;case ie.HEADER_VALUE_ALMOST_DONE:if(w!==Gn)return;c=ie.HEADER_FIELD_START;break;case ie.HEADERS_ALMOST_DONE:if(w!==Gn)return;E("onHeadersEnd"),c=ie.PART_DATA_START;break;case ie.PART_DATA_START:c=ie.PART_DATA,k("onPartData");case ie.PART_DATA:if(o=d,d===0){for(t+=y;t<g&&!(e[t]in f);)t+=m;t-=y,w=e[t]}if(d<u.length)u[d]===w?(d===0&&re("onPartData",!0),d++):d=0;else if(d===u.length)d++,w===Xn?p|=It.PART_BOUNDARY:w===zr?p|=It.LAST_BOUNDARY:d=0;else if(d-1===u.length)if(p&It.PART_BOUNDARY){if(d=0,w===Gn){p&=~It.PART_BOUNDARY,E("onPartEnd"),E("onPartBegin"),c=ie.HEADER_FIELD_START;break}}else p&It.LAST_BOUNDARY&&w===zr?(E("onPartEnd"),c=ie.END,p=0):d=0;if(d>0)s[d-1]=w;else if(o>0){let G=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);E("onPartData",0,o,G),o=0,k("onPartData"),t--}break;case ie.END:break;default:throw new Error(`Unexpected state entered: ${c}`)}re("onHeaderField"),re("onHeaderValue"),re("onPartData"),this.index=d,this.state=c,this.flags=p}end(){if(this.state===ie.HEADER_FIELD_START&&this.index===0||this.state===ie.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==ie.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}});var Iu=F((Xy,Pm)=>{Pm.exports=Nn("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")});var Du=F((Qy,Em)=>{Em.exports=Nn("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hT0YZ4QbhbPCOeG8cEG4Sbgo3CxcEi4LV4SrwjXhunAH443wo/BWeCe8Fz4IPwkfhZ+FT8Jn4YvwVfgmfBf+YIIRYRTBiuBE8CIEESYRogizCEmELEIRoYrQROgiHMxkxDSKyYrJicmLKYhpElMU0yymJKYspiKmKqYmpi6mg4lGxFFEK6IT0YsYRJxEjCLOIiYRs4hFxCpiE7GLeDCzEfMoZitmJ2Yv5iDmScxRzLOYk5izmIuYq5ibmLuYDyYZkUaRrEhOJC9SEGkSKYo0i5REyiIVkapITaQu0sFkI/IoshXZiexFDiJPIkeRZ5GTyFnkInIVuYncRT6YYkQZRbGiOFG8KEGUSZQoyixKEiWLUkSpojRRuigHU42oo6hWVCeqFzWIOokaRZ1FTaJmUYuoVdQmahf1YJoRbRTNiuZE86IF0SbRomizaEm0LFoRrYrWROuiHUw3oo+iW9Gd6F70IPokehR9Fj2JnkUvolfRm+hd9INZjFhGsVixOLF4sQSxTGKJYpnFksSSxVLEUsXSxNLFstx9+hdQSwcI9rJDNzwDAAAJBgAAUEsBAi0DFAAIAAgABJFrWSVH6TG7AgAAeggAACQAAAAAAAAAAAAgALaBAAAAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuNS9jb250cm9sLmx1YVBLAQItAxQACAAIALS9RViOeo29BQEAABACAAAhAAAAAAAAAAAAIAC2gQ0DAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjUvZGF0YS5sdWFQSwECLQMUAAgACADIuJJZoCnVg5sAAADYAAAAIgAAAAAAAAAAACAAtoFhBAAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC41L2luZm8uanNvblBLAQItAxQACAAIACWtrVZSqPT1zgAAADABAAAyAAAAAAAAAAAAIAC2gUwFAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjUvc2NlbmFyaW9zL3J1bi9jb250cm9sLmx1YVBLAQItAxQACAAIAGmJMFaUjkZQPgAAAD4AAAA4AAAAAAAAAAAAIAC2gXoGAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjUvc2NlbmFyaW9zL3Rlcm1pbmF0ZS9jb250cm9sLmx1YVBLAQItAxQACAAIAE2Cilj0wecTJwEAAHIEAAA0AAAAAAAAAAAAIAC2gR4HAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjUvc2NlbmFyaW9zL3Rocm93L2NvbnRyb2wubHVhUEsBAi0DFAAIAAgADxN9V/ayQzc8AwAACQYAACUAAAAAAAAAAAAgALaBpwgAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuNS9zZXR0aW5ncy5sdWFQSwUGAAAAAAcABwBsAgAANgwAAAAA")});var oo=F(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.Event=Bt.Response=Bt.Message=void 0;var Qr=class{constructor(e){this.seq=0,this.type=e}};Bt.Message=Qr;var na=class extends Qr{constructor(e,t){super("response"),this.request_seq=e.seq,this.command=e.command,t?(this.success=!1,this.message=t):this.success=!0}};Bt.Response=na;var oa=class extends Qr{constructor(e,t){super("event"),this.event=e,t&&(this.body=t)}};Bt.Event=oa});var Ou=F(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.ProtocolServer=void 0;var Am=require("events"),Jr=oo(),ia=class{get event(){return this._event||(this._event=(e,t)=>{this._listener=e,this._this=t;let n;return n={dispose:()=>{this._listener=void 0,this._this=void 0}},n}),this._event}fire(e){if(this._listener)try{this._listener.call(this._this,e)}catch{}}hasListener(){return!!this._listener}dispose(){this._listener=void 0,this._this=void 0}},io=class a extends Am.EventEmitter{constructor(){super(),this._sendMessage=new ia,this._sequence=1,this._pendingRequests=new Map,this.onDidSendMessage=this._sendMessage.event}dispose(){}handleMessage(e){if(e.type==="request")this.dispatchRequest(e);else if(e.type==="response"){let t=e,n=this._pendingRequests.get(t.request_seq);n&&(this._pendingRequests.delete(t.request_seq),n(t))}}_isRunningInline(){return this._sendMessage&&this._sendMessage.hasListener()}start(e,t){this._writableStream=t,this._rawData=Buffer.alloc(0),e.on("data",n=>this._handleData(n)),e.on("close",()=>{this._emitEvent(new Jr.Event("close"))}),e.on("error",n=>{this._emitEvent(new Jr.Event("error","inStream error: "+(n&&n.message)))}),t.on("error",n=>{this._emitEvent(new Jr.Event("error","outStream error: "+(n&&n.message)))}),e.resume()}stop(){this._writableStream&&this._writableStream.end()}sendEvent(e){this._send("event",e)}sendResponse(e){e.seq>0?console.error(`attempt to send more than one response for command ${e.command}`):this._send("response",e)}sendRequest(e,t,n,o){let s={command:e};if(t&&Object.keys(t).length>0&&(s.arguments=t),this._send("request",s),o){this._pendingRequests.set(s.seq,o);let u=setTimeout(()=>{clearTimeout(u);let f=this._pendingRequests.get(s.seq);f&&(this._pendingRequests.delete(s.seq),f(new Jr.Response(s,"timeout")))},n)}}dispatchRequest(e){}_emitEvent(e){this.emit(e.event,e)}_send(e,t){if(t.type=e,t.seq=this._sequence++,this._writableStream){let n=JSON.stringify(t);this._writableStream.write(`Content-Length: ${Buffer.byteLength(n,"utf8")}\r
3279
3279
  \r
3280
3280
  ${n}`,"utf8")}this._sendMessage.fire(t)}_handleData(e){for(this._rawData=Buffer.concat([this._rawData,e]);;){if(this._contentLength>=0){if(this._rawData.length>=this._contentLength){let t=this._rawData.toString("utf8",0,this._contentLength);if(this._rawData=this._rawData.slice(this._contentLength),this._contentLength=-1,t.length>0)try{let n=JSON.parse(t);this.handleMessage(n)}catch(n){this._emitEvent(new Jr.Event("error","Error handling data: "+(n&&n.message)))}continue}}else{let t=this._rawData.indexOf(a.TWO_CRLF);if(t!==-1){let o=this._rawData.toString("utf8",0,t).split(`\r
3281
3281
  `);for(let s=0;s<o.length;s++){let u=o[s].split(/: +/);u[0]=="Content-Length"&&(this._contentLength=+u[1])}this._rawData=this._rawData.slice(t+a.TWO_CRLF.length);continue}}break}}};ao.ProtocolServer=io;io.TWO_CRLF=`\r
3282
3282
  \r
3283
- `});var Ou=F(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.runDebugAdapter=void 0;var km=require("net");function Tm(a){let e=0;if(process.argv.slice(2).forEach(function(n,o,s){let u=/^--server=(\d{4,5})$/.exec(n);u&&(e=parseInt(u[1],10))}),e>0)console.error(`waiting for debug protocol on port ${e}`),km.createServer(n=>{console.error(">> accepted connection from client"),n.on("end",()=>{console.error(`>> client connection closed
3284
- `)});let o=new a(!1,!0);o.setRunAsServer(!0),o.start(n,n)}).listen(e);else{let n=new a(!1);process.on("SIGTERM",()=>{n.shutdown()}),n.start(process.stdin,process.stdout)}}so.runDebugAdapter=Tm});var uo=F(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.DebugSession=q.ErrorDestination=q.MemoryEvent=q.InvalidatedEvent=q.ProgressEndEvent=q.ProgressUpdateEvent=q.ProgressStartEvent=q.CapabilitiesEvent=q.LoadedSourceEvent=q.ModuleEvent=q.BreakpointEvent=q.ThreadEvent=q.OutputEvent=q.ExitedEvent=q.TerminatedEvent=q.InitializedEvent=q.ContinuedEvent=q.StoppedEvent=q.CompletionItem=q.Module=q.Breakpoint=q.Variable=q.Thread=q.StackFrame=q.Scope=q.Source=void 0;var Im=Bu(),he=oo(),Cm=Ou(),qu=require("url"),aa=class{constructor(e,t,n=0,o,s){this.name=e,this.path=t,this.sourceReference=n,o&&(this.origin=o),s&&(this.adapterData=s)}};q.Source=aa;var sa=class{constructor(e,t,n=!1){this.name=e,this.variablesReference=t,this.expensive=n}};q.Scope=sa;var la=class{constructor(e,t,n,o=0,s=0){this.id=e,this.source=n,this.line=o,this.column=s,this.name=t}};q.StackFrame=la;var ua=class{constructor(e,t){this.id=e,t?this.name=t:this.name="Thread #"+e}};q.Thread=ua;var ca=class{constructor(e,t,n=0,o,s){this.name=e,this.value=t,this.variablesReference=n,typeof s=="number"&&(this.namedVariables=s),typeof o=="number"&&(this.indexedVariables=o)}};q.Variable=ca;var da=class{constructor(e,t,n,o){this.verified=e;let s=this;typeof t=="number"&&(s.line=t),typeof n=="number"&&(s.column=n),o&&(s.source=o)}setId(e){this.id=e}};q.Breakpoint=da;var fa=class{constructor(e,t){this.id=e,this.name=t}};q.Module=fa;var pa=class{constructor(e,t,n=0){this.label=e,this.start=t,this.length=n}};q.CompletionItem=pa;var ha=class extends he.Event{constructor(e,t,n){super("stopped"),this.body={reason:e},typeof t=="number"&&(this.body.threadId=t),typeof n=="string"&&(this.body.text=n)}};q.StoppedEvent=ha;var ma=class extends he.Event{constructor(e,t){super("continued"),this.body={threadId:e},typeof t=="boolean"&&(this.body.allThreadsContinued=t)}};q.ContinuedEvent=ma;var ga=class extends he.Event{constructor(){super("initialized")}};q.InitializedEvent=ga;var _a=class extends he.Event{constructor(e){if(super("terminated"),typeof e=="boolean"||e){let t=this;t.body={restart:e}}}};q.TerminatedEvent=_a;var ba=class extends he.Event{constructor(e){super("exited"),this.body={exitCode:e}}};q.ExitedEvent=ba;var ya=class extends he.Event{constructor(e,t="console",n){super("output"),this.body={category:t,output:e},n!==void 0&&(this.body.data=n)}};q.OutputEvent=ya;var wa=class extends he.Event{constructor(e,t){super("thread"),this.body={reason:e,threadId:t}}};q.ThreadEvent=wa;var va=class extends he.Event{constructor(e,t){super("breakpoint"),this.body={reason:e,breakpoint:t}}};q.BreakpointEvent=va;var Sa=class extends he.Event{constructor(e,t){super("module"),this.body={reason:e,module:t}}};q.ModuleEvent=Sa;var Ra=class extends he.Event{constructor(e,t){super("loadedSource"),this.body={reason:e,source:t}}};q.LoadedSourceEvent=Ra;var Pa=class extends he.Event{constructor(e){super("capabilities"),this.body={capabilities:e}}};q.CapabilitiesEvent=Pa;var Ea=class extends he.Event{constructor(e,t,n){super("progressStart"),this.body={progressId:e,title:t},typeof n=="string"&&(this.body.message=n)}};q.ProgressStartEvent=Ea;var xa=class extends he.Event{constructor(e,t){super("progressUpdate"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressUpdateEvent=xa;var La=class extends he.Event{constructor(e,t){super("progressEnd"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressEndEvent=La;var Aa=class extends he.Event{constructor(e,t,n){super("invalidated"),this.body={},e&&(this.body.areas=e),t&&(this.body.threadId=t),n&&(this.body.stackFrameId=n)}};q.InvalidatedEvent=Aa;var ka=class extends he.Event{constructor(e,t,n){super("memory"),this.body={memoryReference:e,offset:t,count:n}}};q.MemoryEvent=ka;var rr;(function(a){a[a.User=1]="User",a[a.Telemetry=2]="Telemetry"})(rr=q.ErrorDestination||(q.ErrorDestination={}));var lo=class a extends Im.ProtocolServer{constructor(e,t){super();let n=typeof e=="boolean"?e:!1;this._debuggerLinesStartAt1=n,this._debuggerColumnsStartAt1=n,this._debuggerPathsAreURIs=!1,this._clientLinesStartAt1=!0,this._clientColumnsStartAt1=!0,this._clientPathsAreURIs=!1,this._isServer=typeof t=="boolean"?t:!1,this.on("close",()=>{this.shutdown()}),this.on("error",o=>{this.shutdown()})}setDebuggerPathFormat(e){this._debuggerPathsAreURIs=e!=="path"}setDebuggerLinesStartAt1(e){this._debuggerLinesStartAt1=e}setDebuggerColumnsStartAt1(e){this._debuggerColumnsStartAt1=e}setRunAsServer(e){this._isServer=e}static run(e){(0,Cm.runDebugAdapter)(e)}shutdown(){this._isServer||this._isRunningInline()||setTimeout(()=>{process.exit(0)},100)}sendErrorResponse(e,t,n,o,s=rr.User){let u;typeof t=="number"?(u={id:t,format:n},o&&(u.variables=o),s&rr.User&&(u.showUser=!0),s&rr.Telemetry&&(u.sendTelemetry=!0)):u=t,e.success=!1,e.message=a.formatPII(u.format,!0,u.variables),e.body||(e.body={}),e.body.error=u,this.sendResponse(e)}runInTerminalRequest(e,t,n){this.sendRequest("runInTerminal",e,t,n)}dispatchRequest(e){let t=new he.Response(e);try{if(e.command==="initialize"){var n=e.arguments;if(typeof n.linesStartAt1=="boolean"&&(this._clientLinesStartAt1=n.linesStartAt1),typeof n.columnsStartAt1=="boolean"&&(this._clientColumnsStartAt1=n.columnsStartAt1),n.pathFormat!=="path")this.sendErrorResponse(t,2018,"debug adapter only supports native paths",null,rr.Telemetry);else{let o=t;o.body={},this.initializeRequest(o,n)}}else e.command==="launch"?this.launchRequest(t,e.arguments,e):e.command==="attach"?this.attachRequest(t,e.arguments,e):e.command==="disconnect"?this.disconnectRequest(t,e.arguments,e):e.command==="terminate"?this.terminateRequest(t,e.arguments,e):e.command==="restart"?this.restartRequest(t,e.arguments,e):e.command==="setBreakpoints"?this.setBreakPointsRequest(t,e.arguments,e):e.command==="setFunctionBreakpoints"?this.setFunctionBreakPointsRequest(t,e.arguments,e):e.command==="setExceptionBreakpoints"?this.setExceptionBreakPointsRequest(t,e.arguments,e):e.command==="configurationDone"?this.configurationDoneRequest(t,e.arguments,e):e.command==="continue"?this.continueRequest(t,e.arguments,e):e.command==="next"?this.nextRequest(t,e.arguments,e):e.command==="stepIn"?this.stepInRequest(t,e.arguments,e):e.command==="stepOut"?this.stepOutRequest(t,e.arguments,e):e.command==="stepBack"?this.stepBackRequest(t,e.arguments,e):e.command==="reverseContinue"?this.reverseContinueRequest(t,e.arguments,e):e.command==="restartFrame"?this.restartFrameRequest(t,e.arguments,e):e.command==="goto"?this.gotoRequest(t,e.arguments,e):e.command==="pause"?this.pauseRequest(t,e.arguments,e):e.command==="stackTrace"?this.stackTraceRequest(t,e.arguments,e):e.command==="scopes"?this.scopesRequest(t,e.arguments,e):e.command==="variables"?this.variablesRequest(t,e.arguments,e):e.command==="setVariable"?this.setVariableRequest(t,e.arguments,e):e.command==="setExpression"?this.setExpressionRequest(t,e.arguments,e):e.command==="source"?this.sourceRequest(t,e.arguments,e):e.command==="threads"?this.threadsRequest(t,e):e.command==="terminateThreads"?this.terminateThreadsRequest(t,e.arguments,e):e.command==="evaluate"?this.evaluateRequest(t,e.arguments,e):e.command==="stepInTargets"?this.stepInTargetsRequest(t,e.arguments,e):e.command==="gotoTargets"?this.gotoTargetsRequest(t,e.arguments,e):e.command==="completions"?this.completionsRequest(t,e.arguments,e):e.command==="exceptionInfo"?this.exceptionInfoRequest(t,e.arguments,e):e.command==="loadedSources"?this.loadedSourcesRequest(t,e.arguments,e):e.command==="dataBreakpointInfo"?this.dataBreakpointInfoRequest(t,e.arguments,e):e.command==="setDataBreakpoints"?this.setDataBreakpointsRequest(t,e.arguments,e):e.command==="readMemory"?this.readMemoryRequest(t,e.arguments,e):e.command==="writeMemory"?this.writeMemoryRequest(t,e.arguments,e):e.command==="disassemble"?this.disassembleRequest(t,e.arguments,e):e.command==="cancel"?this.cancelRequest(t,e.arguments,e):e.command==="breakpointLocations"?this.breakpointLocationsRequest(t,e.arguments,e):e.command==="setInstructionBreakpoints"?this.setInstructionBreakpointsRequest(t,e.arguments,e):this.customRequest(e.command,t,e.arguments,e)}catch(o){this.sendErrorResponse(t,1104,"{_stack}",{_exception:o.message,_stack:o.stack},rr.Telemetry)}}initializeRequest(e,t){e.body.supportsConditionalBreakpoints=!1,e.body.supportsHitConditionalBreakpoints=!1,e.body.supportsFunctionBreakpoints=!1,e.body.supportsConfigurationDoneRequest=!0,e.body.supportsEvaluateForHovers=!1,e.body.supportsStepBack=!1,e.body.supportsSetVariable=!1,e.body.supportsRestartFrame=!1,e.body.supportsStepInTargetsRequest=!1,e.body.supportsGotoTargetsRequest=!1,e.body.supportsCompletionsRequest=!1,e.body.supportsRestartRequest=!1,e.body.supportsExceptionOptions=!1,e.body.supportsValueFormattingOptions=!1,e.body.supportsExceptionInfoRequest=!1,e.body.supportTerminateDebuggee=!1,e.body.supportsDelayedStackTraceLoading=!1,e.body.supportsLoadedSourcesRequest=!1,e.body.supportsLogPoints=!1,e.body.supportsTerminateThreadsRequest=!1,e.body.supportsSetExpression=!1,e.body.supportsTerminateRequest=!1,e.body.supportsDataBreakpoints=!1,e.body.supportsReadMemoryRequest=!1,e.body.supportsDisassembleRequest=!1,e.body.supportsCancelRequest=!1,e.body.supportsBreakpointLocationsRequest=!1,e.body.supportsClipboardContext=!1,e.body.supportsSteppingGranularity=!1,e.body.supportsInstructionBreakpoints=!1,e.body.supportsExceptionFilterOptions=!1,this.sendResponse(e)}disconnectRequest(e,t,n){this.sendResponse(e),this.shutdown()}launchRequest(e,t,n){this.sendResponse(e)}attachRequest(e,t,n){this.sendResponse(e)}terminateRequest(e,t,n){this.sendResponse(e)}restartRequest(e,t,n){this.sendResponse(e)}setBreakPointsRequest(e,t,n){this.sendResponse(e)}setFunctionBreakPointsRequest(e,t,n){this.sendResponse(e)}setExceptionBreakPointsRequest(e,t,n){this.sendResponse(e)}configurationDoneRequest(e,t,n){this.sendResponse(e)}continueRequest(e,t,n){this.sendResponse(e)}nextRequest(e,t,n){this.sendResponse(e)}stepInRequest(e,t,n){this.sendResponse(e)}stepOutRequest(e,t,n){this.sendResponse(e)}stepBackRequest(e,t,n){this.sendResponse(e)}reverseContinueRequest(e,t,n){this.sendResponse(e)}restartFrameRequest(e,t,n){this.sendResponse(e)}gotoRequest(e,t,n){this.sendResponse(e)}pauseRequest(e,t,n){this.sendResponse(e)}sourceRequest(e,t,n){this.sendResponse(e)}threadsRequest(e,t){this.sendResponse(e)}terminateThreadsRequest(e,t,n){this.sendResponse(e)}stackTraceRequest(e,t,n){this.sendResponse(e)}scopesRequest(e,t,n){this.sendResponse(e)}variablesRequest(e,t,n){this.sendResponse(e)}setVariableRequest(e,t,n){this.sendResponse(e)}setExpressionRequest(e,t,n){this.sendResponse(e)}evaluateRequest(e,t,n){this.sendResponse(e)}stepInTargetsRequest(e,t,n){this.sendResponse(e)}gotoTargetsRequest(e,t,n){this.sendResponse(e)}completionsRequest(e,t,n){this.sendResponse(e)}exceptionInfoRequest(e,t,n){this.sendResponse(e)}loadedSourcesRequest(e,t,n){this.sendResponse(e)}dataBreakpointInfoRequest(e,t,n){this.sendResponse(e)}setDataBreakpointsRequest(e,t,n){this.sendResponse(e)}readMemoryRequest(e,t,n){this.sendResponse(e)}writeMemoryRequest(e,t,n){this.sendResponse(e)}disassembleRequest(e,t,n){this.sendResponse(e)}cancelRequest(e,t,n){this.sendResponse(e)}breakpointLocationsRequest(e,t,n){this.sendResponse(e)}setInstructionBreakpointsRequest(e,t,n){this.sendResponse(e)}customRequest(e,t,n,o){this.sendErrorResponse(t,1014,"unrecognized request",null,rr.Telemetry)}convertClientLineToDebugger(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e+1:this._clientLinesStartAt1?e-1:e}convertDebuggerLineToClient(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e-1:this._clientLinesStartAt1?e+1:e}convertClientColumnToDebugger(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e+1:this._clientColumnsStartAt1?e-1:e}convertDebuggerColumnToClient(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e-1:this._clientColumnsStartAt1?e+1:e}convertClientPathToDebugger(e){return this._clientPathsAreURIs!==this._debuggerPathsAreURIs?this._clientPathsAreURIs?a.uri2path(e):a.path2uri(e):e}convertDebuggerPathToClient(e){return this._debuggerPathsAreURIs!==this._clientPathsAreURIs?this._debuggerPathsAreURIs?a.uri2path(e):a.path2uri(e):e}static path2uri(e){process.platform==="win32"&&(/^[A-Z]:/.test(e)&&(e=e[0].toLowerCase()+e.substr(1)),e=e.replace(/\\/g,"/")),e=encodeURI(e);let t=new qu.URL("file:");return t.pathname=e,t.toString()}static uri2path(e){let t=new qu.URL(e),n=decodeURIComponent(t.pathname);return process.platform==="win32"&&(/^\/[a-zA-Z]:/.test(n)&&(n=n[1].toLowerCase()+n.substr(2)),n=n.replace(/\//g,"\\")),n}static formatPII(e,t,n){return e.replace(a._formatPIIRegexp,function(o,s){return t&&s.length>0&&s[0]!=="_"?o:n[s]&&n.hasOwnProperty(s)?n[s]:o})}};q.DebugSession=lo;lo._formatPIIRegexp=/{([^}]+)}/g});var ju=F(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});fo.InternalLogger=void 0;var Mu=require("fs"),Uu=require("path"),Fe=po(),Ta=class{constructor(e,t){this.beforeExitCallback=()=>this.dispose(),this._logCallback=e,this._logToConsole=t,this._minLogLevel=Fe.LogLevel.Warn,this.disposeCallback=(n,o)=>{this.dispose(),o=o||2,o+=128,process.exit(o)}}async setup(e){if(this._minLogLevel=e.consoleMinLogLevel,this._prependTimestamp=e.prependTimestamp,e.logFilePath)if(!Uu.isAbsolute(e.logFilePath))this.log(`logFilePath must be an absolute path: ${e.logFilePath}`,Fe.LogLevel.Error);else{let t=n=>this.sendLog(`Error creating log file at path: ${e.logFilePath}. Error: ${n.toString()}
3285
- `,Fe.LogLevel.Error);try{await Mu.promises.mkdir(Uu.dirname(e.logFilePath),{recursive:!0}),this.log(`Verbose logs are written to:
3283
+ `});var Bu=F(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.runDebugAdapter=void 0;var km=require("net");function Tm(a){let e=0;if(process.argv.slice(2).forEach(function(n,o,s){let u=/^--server=(\d{4,5})$/.exec(n);u&&(e=parseInt(u[1],10))}),e>0)console.error(`waiting for debug protocol on port ${e}`),km.createServer(n=>{console.error(">> accepted connection from client"),n.on("end",()=>{console.error(`>> client connection closed
3284
+ `)});let o=new a(!1,!0);o.setRunAsServer(!0),o.start(n,n)}).listen(e);else{let n=new a(!1);process.on("SIGTERM",()=>{n.shutdown()}),n.start(process.stdin,process.stdout)}}so.runDebugAdapter=Tm});var uo=F(q=>{"use strict";Object.defineProperty(q,"__esModule",{value:!0});q.DebugSession=q.ErrorDestination=q.MemoryEvent=q.InvalidatedEvent=q.ProgressEndEvent=q.ProgressUpdateEvent=q.ProgressStartEvent=q.CapabilitiesEvent=q.LoadedSourceEvent=q.ModuleEvent=q.BreakpointEvent=q.ThreadEvent=q.OutputEvent=q.ExitedEvent=q.TerminatedEvent=q.InitializedEvent=q.ContinuedEvent=q.StoppedEvent=q.CompletionItem=q.Module=q.Breakpoint=q.Variable=q.Thread=q.StackFrame=q.Scope=q.Source=void 0;var Cm=Ou(),he=oo(),Im=Bu(),qu=require("url"),aa=class{constructor(e,t,n=0,o,s){this.name=e,this.path=t,this.sourceReference=n,o&&(this.origin=o),s&&(this.adapterData=s)}};q.Source=aa;var sa=class{constructor(e,t,n=!1){this.name=e,this.variablesReference=t,this.expensive=n}};q.Scope=sa;var la=class{constructor(e,t,n,o=0,s=0){this.id=e,this.source=n,this.line=o,this.column=s,this.name=t}};q.StackFrame=la;var ua=class{constructor(e,t){this.id=e,t?this.name=t:this.name="Thread #"+e}};q.Thread=ua;var ca=class{constructor(e,t,n=0,o,s){this.name=e,this.value=t,this.variablesReference=n,typeof s=="number"&&(this.namedVariables=s),typeof o=="number"&&(this.indexedVariables=o)}};q.Variable=ca;var da=class{constructor(e,t,n,o){this.verified=e;let s=this;typeof t=="number"&&(s.line=t),typeof n=="number"&&(s.column=n),o&&(s.source=o)}setId(e){this.id=e}};q.Breakpoint=da;var fa=class{constructor(e,t){this.id=e,this.name=t}};q.Module=fa;var pa=class{constructor(e,t,n=0){this.label=e,this.start=t,this.length=n}};q.CompletionItem=pa;var ha=class extends he.Event{constructor(e,t,n){super("stopped"),this.body={reason:e},typeof t=="number"&&(this.body.threadId=t),typeof n=="string"&&(this.body.text=n)}};q.StoppedEvent=ha;var ma=class extends he.Event{constructor(e,t){super("continued"),this.body={threadId:e},typeof t=="boolean"&&(this.body.allThreadsContinued=t)}};q.ContinuedEvent=ma;var ga=class extends he.Event{constructor(){super("initialized")}};q.InitializedEvent=ga;var _a=class extends he.Event{constructor(e){if(super("terminated"),typeof e=="boolean"||e){let t=this;t.body={restart:e}}}};q.TerminatedEvent=_a;var ba=class extends he.Event{constructor(e){super("exited"),this.body={exitCode:e}}};q.ExitedEvent=ba;var ya=class extends he.Event{constructor(e,t="console",n){super("output"),this.body={category:t,output:e},n!==void 0&&(this.body.data=n)}};q.OutputEvent=ya;var wa=class extends he.Event{constructor(e,t){super("thread"),this.body={reason:e,threadId:t}}};q.ThreadEvent=wa;var va=class extends he.Event{constructor(e,t){super("breakpoint"),this.body={reason:e,breakpoint:t}}};q.BreakpointEvent=va;var Sa=class extends he.Event{constructor(e,t){super("module"),this.body={reason:e,module:t}}};q.ModuleEvent=Sa;var Ra=class extends he.Event{constructor(e,t){super("loadedSource"),this.body={reason:e,source:t}}};q.LoadedSourceEvent=Ra;var Pa=class extends he.Event{constructor(e){super("capabilities"),this.body={capabilities:e}}};q.CapabilitiesEvent=Pa;var Ea=class extends he.Event{constructor(e,t,n){super("progressStart"),this.body={progressId:e,title:t},typeof n=="string"&&(this.body.message=n)}};q.ProgressStartEvent=Ea;var xa=class extends he.Event{constructor(e,t){super("progressUpdate"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressUpdateEvent=xa;var La=class extends he.Event{constructor(e,t){super("progressEnd"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressEndEvent=La;var Aa=class extends he.Event{constructor(e,t,n){super("invalidated"),this.body={},e&&(this.body.areas=e),t&&(this.body.threadId=t),n&&(this.body.stackFrameId=n)}};q.InvalidatedEvent=Aa;var ka=class extends he.Event{constructor(e,t,n){super("memory"),this.body={memoryReference:e,offset:t,count:n}}};q.MemoryEvent=ka;var rr;(function(a){a[a.User=1]="User",a[a.Telemetry=2]="Telemetry"})(rr=q.ErrorDestination||(q.ErrorDestination={}));var lo=class a extends Cm.ProtocolServer{constructor(e,t){super();let n=typeof e=="boolean"?e:!1;this._debuggerLinesStartAt1=n,this._debuggerColumnsStartAt1=n,this._debuggerPathsAreURIs=!1,this._clientLinesStartAt1=!0,this._clientColumnsStartAt1=!0,this._clientPathsAreURIs=!1,this._isServer=typeof t=="boolean"?t:!1,this.on("close",()=>{this.shutdown()}),this.on("error",o=>{this.shutdown()})}setDebuggerPathFormat(e){this._debuggerPathsAreURIs=e!=="path"}setDebuggerLinesStartAt1(e){this._debuggerLinesStartAt1=e}setDebuggerColumnsStartAt1(e){this._debuggerColumnsStartAt1=e}setRunAsServer(e){this._isServer=e}static run(e){(0,Im.runDebugAdapter)(e)}shutdown(){this._isServer||this._isRunningInline()||setTimeout(()=>{process.exit(0)},100)}sendErrorResponse(e,t,n,o,s=rr.User){let u;typeof t=="number"?(u={id:t,format:n},o&&(u.variables=o),s&rr.User&&(u.showUser=!0),s&rr.Telemetry&&(u.sendTelemetry=!0)):u=t,e.success=!1,e.message=a.formatPII(u.format,!0,u.variables),e.body||(e.body={}),e.body.error=u,this.sendResponse(e)}runInTerminalRequest(e,t,n){this.sendRequest("runInTerminal",e,t,n)}dispatchRequest(e){let t=new he.Response(e);try{if(e.command==="initialize"){var n=e.arguments;if(typeof n.linesStartAt1=="boolean"&&(this._clientLinesStartAt1=n.linesStartAt1),typeof n.columnsStartAt1=="boolean"&&(this._clientColumnsStartAt1=n.columnsStartAt1),n.pathFormat!=="path")this.sendErrorResponse(t,2018,"debug adapter only supports native paths",null,rr.Telemetry);else{let o=t;o.body={},this.initializeRequest(o,n)}}else e.command==="launch"?this.launchRequest(t,e.arguments,e):e.command==="attach"?this.attachRequest(t,e.arguments,e):e.command==="disconnect"?this.disconnectRequest(t,e.arguments,e):e.command==="terminate"?this.terminateRequest(t,e.arguments,e):e.command==="restart"?this.restartRequest(t,e.arguments,e):e.command==="setBreakpoints"?this.setBreakPointsRequest(t,e.arguments,e):e.command==="setFunctionBreakpoints"?this.setFunctionBreakPointsRequest(t,e.arguments,e):e.command==="setExceptionBreakpoints"?this.setExceptionBreakPointsRequest(t,e.arguments,e):e.command==="configurationDone"?this.configurationDoneRequest(t,e.arguments,e):e.command==="continue"?this.continueRequest(t,e.arguments,e):e.command==="next"?this.nextRequest(t,e.arguments,e):e.command==="stepIn"?this.stepInRequest(t,e.arguments,e):e.command==="stepOut"?this.stepOutRequest(t,e.arguments,e):e.command==="stepBack"?this.stepBackRequest(t,e.arguments,e):e.command==="reverseContinue"?this.reverseContinueRequest(t,e.arguments,e):e.command==="restartFrame"?this.restartFrameRequest(t,e.arguments,e):e.command==="goto"?this.gotoRequest(t,e.arguments,e):e.command==="pause"?this.pauseRequest(t,e.arguments,e):e.command==="stackTrace"?this.stackTraceRequest(t,e.arguments,e):e.command==="scopes"?this.scopesRequest(t,e.arguments,e):e.command==="variables"?this.variablesRequest(t,e.arguments,e):e.command==="setVariable"?this.setVariableRequest(t,e.arguments,e):e.command==="setExpression"?this.setExpressionRequest(t,e.arguments,e):e.command==="source"?this.sourceRequest(t,e.arguments,e):e.command==="threads"?this.threadsRequest(t,e):e.command==="terminateThreads"?this.terminateThreadsRequest(t,e.arguments,e):e.command==="evaluate"?this.evaluateRequest(t,e.arguments,e):e.command==="stepInTargets"?this.stepInTargetsRequest(t,e.arguments,e):e.command==="gotoTargets"?this.gotoTargetsRequest(t,e.arguments,e):e.command==="completions"?this.completionsRequest(t,e.arguments,e):e.command==="exceptionInfo"?this.exceptionInfoRequest(t,e.arguments,e):e.command==="loadedSources"?this.loadedSourcesRequest(t,e.arguments,e):e.command==="dataBreakpointInfo"?this.dataBreakpointInfoRequest(t,e.arguments,e):e.command==="setDataBreakpoints"?this.setDataBreakpointsRequest(t,e.arguments,e):e.command==="readMemory"?this.readMemoryRequest(t,e.arguments,e):e.command==="writeMemory"?this.writeMemoryRequest(t,e.arguments,e):e.command==="disassemble"?this.disassembleRequest(t,e.arguments,e):e.command==="cancel"?this.cancelRequest(t,e.arguments,e):e.command==="breakpointLocations"?this.breakpointLocationsRequest(t,e.arguments,e):e.command==="setInstructionBreakpoints"?this.setInstructionBreakpointsRequest(t,e.arguments,e):this.customRequest(e.command,t,e.arguments,e)}catch(o){this.sendErrorResponse(t,1104,"{_stack}",{_exception:o.message,_stack:o.stack},rr.Telemetry)}}initializeRequest(e,t){e.body.supportsConditionalBreakpoints=!1,e.body.supportsHitConditionalBreakpoints=!1,e.body.supportsFunctionBreakpoints=!1,e.body.supportsConfigurationDoneRequest=!0,e.body.supportsEvaluateForHovers=!1,e.body.supportsStepBack=!1,e.body.supportsSetVariable=!1,e.body.supportsRestartFrame=!1,e.body.supportsStepInTargetsRequest=!1,e.body.supportsGotoTargetsRequest=!1,e.body.supportsCompletionsRequest=!1,e.body.supportsRestartRequest=!1,e.body.supportsExceptionOptions=!1,e.body.supportsValueFormattingOptions=!1,e.body.supportsExceptionInfoRequest=!1,e.body.supportTerminateDebuggee=!1,e.body.supportsDelayedStackTraceLoading=!1,e.body.supportsLoadedSourcesRequest=!1,e.body.supportsLogPoints=!1,e.body.supportsTerminateThreadsRequest=!1,e.body.supportsSetExpression=!1,e.body.supportsTerminateRequest=!1,e.body.supportsDataBreakpoints=!1,e.body.supportsReadMemoryRequest=!1,e.body.supportsDisassembleRequest=!1,e.body.supportsCancelRequest=!1,e.body.supportsBreakpointLocationsRequest=!1,e.body.supportsClipboardContext=!1,e.body.supportsSteppingGranularity=!1,e.body.supportsInstructionBreakpoints=!1,e.body.supportsExceptionFilterOptions=!1,this.sendResponse(e)}disconnectRequest(e,t,n){this.sendResponse(e),this.shutdown()}launchRequest(e,t,n){this.sendResponse(e)}attachRequest(e,t,n){this.sendResponse(e)}terminateRequest(e,t,n){this.sendResponse(e)}restartRequest(e,t,n){this.sendResponse(e)}setBreakPointsRequest(e,t,n){this.sendResponse(e)}setFunctionBreakPointsRequest(e,t,n){this.sendResponse(e)}setExceptionBreakPointsRequest(e,t,n){this.sendResponse(e)}configurationDoneRequest(e,t,n){this.sendResponse(e)}continueRequest(e,t,n){this.sendResponse(e)}nextRequest(e,t,n){this.sendResponse(e)}stepInRequest(e,t,n){this.sendResponse(e)}stepOutRequest(e,t,n){this.sendResponse(e)}stepBackRequest(e,t,n){this.sendResponse(e)}reverseContinueRequest(e,t,n){this.sendResponse(e)}restartFrameRequest(e,t,n){this.sendResponse(e)}gotoRequest(e,t,n){this.sendResponse(e)}pauseRequest(e,t,n){this.sendResponse(e)}sourceRequest(e,t,n){this.sendResponse(e)}threadsRequest(e,t){this.sendResponse(e)}terminateThreadsRequest(e,t,n){this.sendResponse(e)}stackTraceRequest(e,t,n){this.sendResponse(e)}scopesRequest(e,t,n){this.sendResponse(e)}variablesRequest(e,t,n){this.sendResponse(e)}setVariableRequest(e,t,n){this.sendResponse(e)}setExpressionRequest(e,t,n){this.sendResponse(e)}evaluateRequest(e,t,n){this.sendResponse(e)}stepInTargetsRequest(e,t,n){this.sendResponse(e)}gotoTargetsRequest(e,t,n){this.sendResponse(e)}completionsRequest(e,t,n){this.sendResponse(e)}exceptionInfoRequest(e,t,n){this.sendResponse(e)}loadedSourcesRequest(e,t,n){this.sendResponse(e)}dataBreakpointInfoRequest(e,t,n){this.sendResponse(e)}setDataBreakpointsRequest(e,t,n){this.sendResponse(e)}readMemoryRequest(e,t,n){this.sendResponse(e)}writeMemoryRequest(e,t,n){this.sendResponse(e)}disassembleRequest(e,t,n){this.sendResponse(e)}cancelRequest(e,t,n){this.sendResponse(e)}breakpointLocationsRequest(e,t,n){this.sendResponse(e)}setInstructionBreakpointsRequest(e,t,n){this.sendResponse(e)}customRequest(e,t,n,o){this.sendErrorResponse(t,1014,"unrecognized request",null,rr.Telemetry)}convertClientLineToDebugger(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e+1:this._clientLinesStartAt1?e-1:e}convertDebuggerLineToClient(e){return this._debuggerLinesStartAt1?this._clientLinesStartAt1?e:e-1:this._clientLinesStartAt1?e+1:e}convertClientColumnToDebugger(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e+1:this._clientColumnsStartAt1?e-1:e}convertDebuggerColumnToClient(e){return this._debuggerColumnsStartAt1?this._clientColumnsStartAt1?e:e-1:this._clientColumnsStartAt1?e+1:e}convertClientPathToDebugger(e){return this._clientPathsAreURIs!==this._debuggerPathsAreURIs?this._clientPathsAreURIs?a.uri2path(e):a.path2uri(e):e}convertDebuggerPathToClient(e){return this._debuggerPathsAreURIs!==this._clientPathsAreURIs?this._debuggerPathsAreURIs?a.uri2path(e):a.path2uri(e):e}static path2uri(e){process.platform==="win32"&&(/^[A-Z]:/.test(e)&&(e=e[0].toLowerCase()+e.substr(1)),e=e.replace(/\\/g,"/")),e=encodeURI(e);let t=new qu.URL("file:");return t.pathname=e,t.toString()}static uri2path(e){let t=new qu.URL(e),n=decodeURIComponent(t.pathname);return process.platform==="win32"&&(/^\/[a-zA-Z]:/.test(n)&&(n=n[1].toLowerCase()+n.substr(2)),n=n.replace(/\//g,"\\")),n}static formatPII(e,t,n){return e.replace(a._formatPIIRegexp,function(o,s){return t&&s.length>0&&s[0]!=="_"?o:n[s]&&n.hasOwnProperty(s)?n[s]:o})}};q.DebugSession=lo;lo._formatPIIRegexp=/{([^}]+)}/g});var ju=F(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});fo.InternalLogger=void 0;var Mu=require("fs"),Nu=require("path"),Fe=po(),Ta=class{constructor(e,t){this.beforeExitCallback=()=>this.dispose(),this._logCallback=e,this._logToConsole=t,this._minLogLevel=Fe.LogLevel.Warn,this.disposeCallback=(n,o)=>{this.dispose(),o=o||2,o+=128,process.exit(o)}}async setup(e){if(this._minLogLevel=e.consoleMinLogLevel,this._prependTimestamp=e.prependTimestamp,e.logFilePath)if(!Nu.isAbsolute(e.logFilePath))this.log(`logFilePath must be an absolute path: ${e.logFilePath}`,Fe.LogLevel.Error);else{let t=n=>this.sendLog(`Error creating log file at path: ${e.logFilePath}. Error: ${n.toString()}
3285
+ `,Fe.LogLevel.Error);try{await Mu.promises.mkdir(Nu.dirname(e.logFilePath),{recursive:!0}),this.log(`Verbose logs are written to:
3286
3286
  `,Fe.LogLevel.Warn),this.log(e.logFilePath+`
3287
- `,Fe.LogLevel.Warn),this._logFileStream=Mu.createWriteStream(e.logFilePath),this.logDateTime(),this.setupShutdownListeners(),this._logFileStream.on("error",n=>{t(n)})}catch(n){t(n)}}}logDateTime(){let e=new Date,n=e.getUTCFullYear()+`-${e.getUTCMonth()+1}-`+e.getUTCDate()+", "+Nu();this.log(n+`
3288
- `,Fe.LogLevel.Verbose,!1)}setupShutdownListeners(){process.on("beforeExit",this.beforeExitCallback),process.on("SIGTERM",this.disposeCallback),process.on("SIGINT",this.disposeCallback)}removeShutdownListeners(){process.removeListener("beforeExit",this.beforeExitCallback),process.removeListener("SIGTERM",this.disposeCallback),process.removeListener("SIGINT",this.disposeCallback)}dispose(){return new Promise(e=>{this.removeShutdownListeners(),this._logFileStream?(this._logFileStream.end(e),this._logFileStream=null):e()})}log(e,t,n=!0){if(this._minLogLevel!==Fe.LogLevel.Stop){if(t>=this._minLogLevel&&this.sendLog(e,t),this._logToConsole){let o=t===Fe.LogLevel.Error?console.error:t===Fe.LogLevel.Warn?console.warn:null;o&&o((0,Fe.trimLastNewline)(e))}t===Fe.LogLevel.Error&&(e=`[${Fe.LogLevel[t]}] ${e}`),this._prependTimestamp&&n&&(e="["+Nu()+"] "+e),this._logFileStream&&this._logFileStream.write(e)}}sendLog(e,t){if(e.length>1500){let n=!!e.match(/(\n|\r\n)$/);e=e.substr(0,1500)+"[...]",n&&(e=e+`
3289
- `)}if(this._logCallback){let n=new Fe.LogOutputEvent(e,t);this._logCallback(n)}}};fo.InternalLogger=Ta;function Nu(){let a=new Date,e=co(2,String(a.getUTCHours())),t=co(2,String(a.getUTCMinutes())),n=co(2,String(a.getUTCSeconds())),o=co(3,String(a.getUTCMilliseconds()));return e+":"+t+":"+n+"."+o+" UTC"}function co(a,e){return e.length>=a?e:String("0".repeat(a)+e).slice(-a)}});var po=F(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.trimLastNewline=Be.LogOutputEvent=Be.logger=Be.Logger=Be.LogLevel=void 0;var Dm=ju(),$m=uo(),qt;(function(a){a[a.Verbose=0]="Verbose",a[a.Log=1]="Log",a[a.Warn=2]="Warn",a[a.Error=3]="Error",a[a.Stop=4]="Stop"})(qt=Be.LogLevel||(Be.LogLevel={}));var ho=class{constructor(){this._pendingLogQ=[]}log(e,t=qt.Log){e=e+`
3290
- `,this._write(e,t)}verbose(e){this.log(e,qt.Verbose)}warn(e){this.log(e,qt.Warn)}error(e){this.log(e,qt.Error)}dispose(){if(this._currentLogger){let e=this._currentLogger.dispose();return this._currentLogger=null,e}else return Promise.resolve()}_write(e,t=qt.Log){e=e+"",this._pendingLogQ?this._pendingLogQ.push({msg:e,level:t}):this._currentLogger&&this._currentLogger.log(e,t)}setup(e,t,n=!0){let o=typeof t=="string"?t:t&&this._logFilePathFromInit;if(this._currentLogger){let s={consoleMinLogLevel:e,logFilePath:o,prependTimestamp:n};this._currentLogger.setup(s).then(()=>{if(this._pendingLogQ){let u=this._pendingLogQ;this._pendingLogQ=null,u.forEach(f=>this._write(f.msg,f.level))}})}}init(e,t,n){this._pendingLogQ=this._pendingLogQ||[],this._currentLogger=new Dm.InternalLogger(e,n),this._logFilePathFromInit=t}};Be.Logger=ho;Be.logger=new ho;var Ia=class extends $m.OutputEvent{constructor(e,t){let n=t===qt.Error?"stderr":t===qt.Warn?"console":"stdout";super(e,n)}};Be.LogOutputEvent=Ia;function Fm(a){return a.replace(/(\n|\r\n)$/,"")}Be.trimLastNewline=Fm});var Wu=F(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.LoggingDebugSession=void 0;var Vu=po(),xr=Vu.logger,zu=uo(),Ca=class extends zu.DebugSession{constructor(e,t,n){super(t,n),this.obsolete_logFilePath=e,this.on("error",o=>{xr.error(o.body)})}start(e,t){super.start(e,t),xr.init(n=>this.sendEvent(n),this.obsolete_logFilePath,this._isServer)}sendEvent(e){if(!(e instanceof Vu.LogOutputEvent)){let t=e;e instanceof zu.OutputEvent&&e.body&&e.body.data&&e.body.data.doNotLogOutput&&(delete e.body.data.doNotLogOutput,t={...e},t.body={...e.body,output:"<output not logged>"}),xr.verbose(`To client: ${JSON.stringify(t)}`)}super.sendEvent(e)}sendRequest(e,t,n,o){xr.verbose(`To client: ${JSON.stringify(e)}(${JSON.stringify(t)}), timeout: ${n}`),super.sendRequest(e,t,n,o)}sendResponse(e){xr.verbose(`To client: ${JSON.stringify(e)}`),super.sendResponse(e)}dispatchRequest(e){xr.verbose(`From client: ${e.command}(${JSON.stringify(e.arguments)})`),super.dispatchRequest(e)}};mo.LoggingDebugSession=Ca});var Hu=F(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.Handles=void 0;var Da=class{constructor(e){this.START_HANDLE=1e3,this._handleMap=new Map,this._nextHandle=typeof e=="number"?e:this.START_HANDLE}reset(){this._nextHandle=this.START_HANDLE,this._handleMap=new Map}create(e){var t=this._nextHandle++;return this._handleMap.set(t,e),t}get(e,t){return this._handleMap.get(e)||t}};go.Handles=Da});var Xu=F(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.Handles=T.Response=T.Event=T.ErrorDestination=T.CompletionItem=T.Module=T.Source=T.Breakpoint=T.Variable=T.Scope=T.StackFrame=T.Thread=T.MemoryEvent=T.InvalidatedEvent=T.ProgressEndEvent=T.ProgressUpdateEvent=T.ProgressStartEvent=T.CapabilitiesEvent=T.LoadedSourceEvent=T.ModuleEvent=T.BreakpointEvent=T.ThreadEvent=T.OutputEvent=T.ContinuedEvent=T.StoppedEvent=T.ExitedEvent=T.TerminatedEvent=T.InitializedEvent=T.logger=T.Logger=T.LoggingDebugSession=T.DebugSession=void 0;var ae=uo();Object.defineProperty(T,"DebugSession",{enumerable:!0,get:function(){return ae.DebugSession}});Object.defineProperty(T,"InitializedEvent",{enumerable:!0,get:function(){return ae.InitializedEvent}});Object.defineProperty(T,"TerminatedEvent",{enumerable:!0,get:function(){return ae.TerminatedEvent}});Object.defineProperty(T,"ExitedEvent",{enumerable:!0,get:function(){return ae.ExitedEvent}});Object.defineProperty(T,"StoppedEvent",{enumerable:!0,get:function(){return ae.StoppedEvent}});Object.defineProperty(T,"ContinuedEvent",{enumerable:!0,get:function(){return ae.ContinuedEvent}});Object.defineProperty(T,"OutputEvent",{enumerable:!0,get:function(){return ae.OutputEvent}});Object.defineProperty(T,"ThreadEvent",{enumerable:!0,get:function(){return ae.ThreadEvent}});Object.defineProperty(T,"BreakpointEvent",{enumerable:!0,get:function(){return ae.BreakpointEvent}});Object.defineProperty(T,"ModuleEvent",{enumerable:!0,get:function(){return ae.ModuleEvent}});Object.defineProperty(T,"LoadedSourceEvent",{enumerable:!0,get:function(){return ae.LoadedSourceEvent}});Object.defineProperty(T,"CapabilitiesEvent",{enumerable:!0,get:function(){return ae.CapabilitiesEvent}});Object.defineProperty(T,"ProgressStartEvent",{enumerable:!0,get:function(){return ae.ProgressStartEvent}});Object.defineProperty(T,"ProgressUpdateEvent",{enumerable:!0,get:function(){return ae.ProgressUpdateEvent}});Object.defineProperty(T,"ProgressEndEvent",{enumerable:!0,get:function(){return ae.ProgressEndEvent}});Object.defineProperty(T,"InvalidatedEvent",{enumerable:!0,get:function(){return ae.InvalidatedEvent}});Object.defineProperty(T,"MemoryEvent",{enumerable:!0,get:function(){return ae.MemoryEvent}});Object.defineProperty(T,"Thread",{enumerable:!0,get:function(){return ae.Thread}});Object.defineProperty(T,"StackFrame",{enumerable:!0,get:function(){return ae.StackFrame}});Object.defineProperty(T,"Scope",{enumerable:!0,get:function(){return ae.Scope}});Object.defineProperty(T,"Variable",{enumerable:!0,get:function(){return ae.Variable}});Object.defineProperty(T,"Breakpoint",{enumerable:!0,get:function(){return ae.Breakpoint}});Object.defineProperty(T,"Source",{enumerable:!0,get:function(){return ae.Source}});Object.defineProperty(T,"Module",{enumerable:!0,get:function(){return ae.Module}});Object.defineProperty(T,"CompletionItem",{enumerable:!0,get:function(){return ae.CompletionItem}});Object.defineProperty(T,"ErrorDestination",{enumerable:!0,get:function(){return ae.ErrorDestination}});var Bm=Wu();Object.defineProperty(T,"LoggingDebugSession",{enumerable:!0,get:function(){return Bm.LoggingDebugSession}});var Ku=po();T.Logger=Ku;var Gu=oo();Object.defineProperty(T,"Event",{enumerable:!0,get:function(){return Gu.Event}});Object.defineProperty(T,"Response",{enumerable:!0,get:function(){return Gu.Response}});var Om=Hu();Object.defineProperty(T,"Handles",{enumerable:!0,get:function(){return Om.Handles}});var qm=Ku.logger;T.logger=qm});var Zr=F((Lw,Yu)=>{"use strict";var Mm="2.0.0",Um=Number.MAX_SAFE_INTEGER||9007199254740991,Nm=16,jm=250,zm=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Yu.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Nm,MAX_SAFE_BUILD_LENGTH:jm,MAX_SAFE_INTEGER:Um,RELEASE_TYPES:zm,SEMVER_SPEC_VERSION:Mm,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var en=F((Aw,Qu)=>{"use strict";var Vm=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...a)=>console.error("SEMVER",...a):()=>{};Qu.exports=Vm});var Lr=F((gt,Ju)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:$a,MAX_SAFE_BUILD_LENGTH:Wm,MAX_LENGTH:Hm}=Zr(),Km=en();gt=Ju.exports={};var Gm=gt.re=[],Xm=gt.safeRe=[],L=gt.src=[],A=gt.t={},Ym=0,Fa="[a-zA-Z0-9-]",Qm=[["\\s",1],["\\d",Hm],[Fa,Wm]],Jm=a=>{for(let[e,t]of Qm)a=a.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return a},z=(a,e,t)=>{let n=Jm(e),o=Ym++;Km(a,o,e),A[a]=o,L[o]=e,Gm[o]=new RegExp(e,t?"g":void 0),Xm[o]=new RegExp(n,t?"g":void 0)};z("NUMERICIDENTIFIER","0|[1-9]\\d*");z("NUMERICIDENTIFIERLOOSE","\\d+");z("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Fa}*`);z("MAINVERSION",`(${L[A.NUMERICIDENTIFIER]})\\.(${L[A.NUMERICIDENTIFIER]})\\.(${L[A.NUMERICIDENTIFIER]})`);z("MAINVERSIONLOOSE",`(${L[A.NUMERICIDENTIFIERLOOSE]})\\.(${L[A.NUMERICIDENTIFIERLOOSE]})\\.(${L[A.NUMERICIDENTIFIERLOOSE]})`);z("PRERELEASEIDENTIFIER",`(?:${L[A.NUMERICIDENTIFIER]}|${L[A.NONNUMERICIDENTIFIER]})`);z("PRERELEASEIDENTIFIERLOOSE",`(?:${L[A.NUMERICIDENTIFIERLOOSE]}|${L[A.NONNUMERICIDENTIFIER]})`);z("PRERELEASE",`(?:-(${L[A.PRERELEASEIDENTIFIER]}(?:\\.${L[A.PRERELEASEIDENTIFIER]})*))`);z("PRERELEASELOOSE",`(?:-?(${L[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${L[A.PRERELEASEIDENTIFIERLOOSE]})*))`);z("BUILDIDENTIFIER",`${Fa}+`);z("BUILD",`(?:\\+(${L[A.BUILDIDENTIFIER]}(?:\\.${L[A.BUILDIDENTIFIER]})*))`);z("FULLPLAIN",`v?${L[A.MAINVERSION]}${L[A.PRERELEASE]}?${L[A.BUILD]}?`);z("FULL",`^${L[A.FULLPLAIN]}$`);z("LOOSEPLAIN",`[v=\\s]*${L[A.MAINVERSIONLOOSE]}${L[A.PRERELEASELOOSE]}?${L[A.BUILD]}?`);z("LOOSE",`^${L[A.LOOSEPLAIN]}$`);z("GTLT","((?:<|>)?=?)");z("XRANGEIDENTIFIERLOOSE",`${L[A.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);z("XRANGEIDENTIFIER",`${L[A.NUMERICIDENTIFIER]}|x|X|\\*`);z("XRANGEPLAIN",`[v=\\s]*(${L[A.XRANGEIDENTIFIER]})(?:\\.(${L[A.XRANGEIDENTIFIER]})(?:\\.(${L[A.XRANGEIDENTIFIER]})(?:${L[A.PRERELEASE]})?${L[A.BUILD]}?)?)?`);z("XRANGEPLAINLOOSE",`[v=\\s]*(${L[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[A.XRANGEIDENTIFIERLOOSE]})(?:${L[A.PRERELEASELOOSE]})?${L[A.BUILD]}?)?)?`);z("XRANGE",`^${L[A.GTLT]}\\s*${L[A.XRANGEPLAIN]}$`);z("XRANGELOOSE",`^${L[A.GTLT]}\\s*${L[A.XRANGEPLAINLOOSE]}$`);z("COERCEPLAIN",`(^|[^\\d])(\\d{1,${$a}})(?:\\.(\\d{1,${$a}}))?(?:\\.(\\d{1,${$a}}))?`);z("COERCE",`${L[A.COERCEPLAIN]}(?:$|[^\\d])`);z("COERCEFULL",L[A.COERCEPLAIN]+`(?:${L[A.PRERELEASE]})?(?:${L[A.BUILD]})?(?:$|[^\\d])`);z("COERCERTL",L[A.COERCE],!0);z("COERCERTLFULL",L[A.COERCEFULL],!0);z("LONETILDE","(?:~>?)");z("TILDETRIM",`(\\s*)${L[A.LONETILDE]}\\s+`,!0);gt.tildeTrimReplace="$1~";z("TILDE",`^${L[A.LONETILDE]}${L[A.XRANGEPLAIN]}$`);z("TILDELOOSE",`^${L[A.LONETILDE]}${L[A.XRANGEPLAINLOOSE]}$`);z("LONECARET","(?:\\^)");z("CARETTRIM",`(\\s*)${L[A.LONECARET]}\\s+`,!0);gt.caretTrimReplace="$1^";z("CARET",`^${L[A.LONECARET]}${L[A.XRANGEPLAIN]}$`);z("CARETLOOSE",`^${L[A.LONECARET]}${L[A.XRANGEPLAINLOOSE]}$`);z("COMPARATORLOOSE",`^${L[A.GTLT]}\\s*(${L[A.LOOSEPLAIN]})$|^$`);z("COMPARATOR",`^${L[A.GTLT]}\\s*(${L[A.FULLPLAIN]})$|^$`);z("COMPARATORTRIM",`(\\s*)${L[A.GTLT]}\\s*(${L[A.LOOSEPLAIN]}|${L[A.XRANGEPLAIN]})`,!0);gt.comparatorTrimReplace="$1$2$3";z("HYPHENRANGE",`^\\s*(${L[A.XRANGEPLAIN]})\\s+-\\s+(${L[A.XRANGEPLAIN]})\\s*$`);z("HYPHENRANGELOOSE",`^\\s*(${L[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${L[A.XRANGEPLAINLOOSE]})\\s*$`);z("STAR","(<|>)?=?\\s*\\*");z("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");z("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var _o=F((kw,Zu)=>{"use strict";var Zm=Object.freeze({loose:!0}),eg=Object.freeze({}),tg=a=>a?typeof a!="object"?Zm:a:eg;Zu.exports=tg});var Ba=F((Tw,rc)=>{"use strict";var ec=/^[0-9]+$/,tc=(a,e)=>{let t=ec.test(a),n=ec.test(e);return t&&n&&(a=+a,e=+e),a===e?0:t&&!n?-1:n&&!t?1:a<e?-1:1},rg=(a,e)=>tc(e,a);rc.exports={compareIdentifiers:tc,rcompareIdentifiers:rg}});var ge=F((Iw,ac)=>{"use strict";var bo=en(),{MAX_LENGTH:nc,MAX_SAFE_INTEGER:yo}=Zr(),{safeRe:oc,t:ic}=Lr(),ng=_o(),{compareIdentifiers:Ar}=Ba(),Oa=class a{constructor(e,t){if(t=ng(t),e instanceof a){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>nc)throw new TypeError(`version is longer than ${nc} characters`);bo("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?oc[ic.LOOSE]:oc[ic.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>yo||this.major<0)throw new TypeError("Invalid major version");if(this.minor>yo||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>yo||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let s=+o;if(s>=0&&s<yo)return s}return o}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(bo("SemVer.compare",this.version,this.options,e),!(e instanceof a)){if(typeof e=="string"&&e===this.version)return 0;e=new a(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof a||(e=new a(e,this.options)),Ar(this.major,e.major)||Ar(this.minor,e.minor)||Ar(this.patch,e.patch)}comparePre(e){if(e instanceof a||(e=new a(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let n=this.prerelease[t],o=e.prerelease[t];if(bo("prerelease compare",t,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return Ar(n,o)}while(++t)}compareBuild(e){e instanceof a||(e=new a(e,this.options));let t=0;do{let n=this.build[t],o=e.build[t];if(bo("build compare",t,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return Ar(n,o)}while(++t)}inc(e,t,n){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(n)?1:0;if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[o];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let s=[t,o];n===!1&&(s=[t]),Ar(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ac.exports=Oa});var nr=F((Cw,lc)=>{"use strict";var sc=ge(),og=(a,e,t=!1)=>{if(a instanceof sc)return a;try{return new sc(a,e)}catch(n){if(!t)return null;throw n}};lc.exports=og});var cc=F((Dw,uc)=>{"use strict";var ig=nr(),ag=(a,e)=>{let t=ig(a,e);return t?t.version:null};uc.exports=ag});var fc=F(($w,dc)=>{"use strict";var sg=nr(),lg=(a,e)=>{let t=sg(a.trim().replace(/^[=v]+/,""),e);return t?t.version:null};dc.exports=lg});var mc=F((Fw,hc)=>{"use strict";var pc=ge(),ug=(a,e,t,n,o)=>{typeof t=="string"&&(o=n,n=t,t=void 0);try{return new pc(a instanceof pc?a.version:a,t).inc(e,n,o).version}catch{return null}};hc.exports=ug});var bc=F((Bw,_c)=>{"use strict";var gc=nr(),cg=(a,e)=>{let t=gc(a,null,!0),n=gc(e,null,!0),o=t.compare(n);if(o===0)return null;let s=o>0,u=s?t:n,f=s?n:t,d=!!u.prerelease.length;if(!!f.prerelease.length&&!d)return!f.patch&&!f.minor?"major":u.patch?"patch":u.minor?"minor":"major";let p=d?"pre":"";return t.major!==n.major?p+"major":t.minor!==n.minor?p+"minor":t.patch!==n.patch?p+"patch":"prerelease"};_c.exports=cg});var wc=F((Ow,yc)=>{"use strict";var dg=ge(),fg=(a,e)=>new dg(a,e).major;yc.exports=fg});var Sc=F((qw,vc)=>{"use strict";var pg=ge(),hg=(a,e)=>new pg(a,e).minor;vc.exports=hg});var Pc=F((Mw,Rc)=>{"use strict";var mg=ge(),gg=(a,e)=>new mg(a,e).patch;Rc.exports=gg});var xc=F((Uw,Ec)=>{"use strict";var _g=nr(),bg=(a,e)=>{let t=_g(a,e);return t&&t.prerelease.length?t.prerelease:null};Ec.exports=bg});var ze=F((Nw,Ac)=>{"use strict";var Lc=ge(),yg=(a,e,t)=>new Lc(a,t).compare(new Lc(e,t));Ac.exports=yg});var Tc=F((jw,kc)=>{"use strict";var wg=ze(),vg=(a,e,t)=>wg(e,a,t);kc.exports=vg});var Cc=F((zw,Ic)=>{"use strict";var Sg=ze(),Rg=(a,e)=>Sg(a,e,!0);Ic.exports=Rg});var wo=F((Vw,$c)=>{"use strict";var Dc=ge(),Pg=(a,e,t)=>{let n=new Dc(a,t),o=new Dc(e,t);return n.compare(o)||n.compareBuild(o)};$c.exports=Pg});var Bc=F((Ww,Fc)=>{"use strict";var Eg=wo(),xg=(a,e)=>a.sort((t,n)=>Eg(t,n,e));Fc.exports=xg});var qc=F((Hw,Oc)=>{"use strict";var Lg=wo(),Ag=(a,e)=>a.sort((t,n)=>Lg(n,t,e));Oc.exports=Ag});var tn=F((Kw,Mc)=>{"use strict";var kg=ze(),Tg=(a,e,t)=>kg(a,e,t)>0;Mc.exports=Tg});var vo=F((Gw,Uc)=>{"use strict";var Ig=ze(),Cg=(a,e,t)=>Ig(a,e,t)<0;Uc.exports=Cg});var qa=F((Xw,Nc)=>{"use strict";var Dg=ze(),$g=(a,e,t)=>Dg(a,e,t)===0;Nc.exports=$g});var Ma=F((Yw,jc)=>{"use strict";var Fg=ze(),Bg=(a,e,t)=>Fg(a,e,t)!==0;jc.exports=Bg});var So=F((Qw,zc)=>{"use strict";var Og=ze(),qg=(a,e,t)=>Og(a,e,t)>=0;zc.exports=qg});var Ro=F((Jw,Vc)=>{"use strict";var Mg=ze(),Ug=(a,e,t)=>Mg(a,e,t)<=0;Vc.exports=Ug});var Ua=F((Zw,Wc)=>{"use strict";var Ng=qa(),jg=Ma(),zg=tn(),Vg=So(),Wg=vo(),Hg=Ro(),Kg=(a,e,t,n)=>{switch(e){case"===":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a===t;case"!==":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a!==t;case"":case"=":case"==":return Ng(a,t,n);case"!=":return jg(a,t,n);case">":return zg(a,t,n);case">=":return Vg(a,t,n);case"<":return Wg(a,t,n);case"<=":return Hg(a,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Wc.exports=Kg});var Kc=F((ev,Hc)=>{"use strict";var Gg=ge(),Xg=nr(),{safeRe:Po,t:Eo}=Lr(),Yg=(a,e)=>{if(a instanceof Gg)return a;if(typeof a=="number"&&(a=String(a)),typeof a!="string")return null;e=e||{};let t=null;if(!e.rtl)t=a.match(e.includePrerelease?Po[Eo.COERCEFULL]:Po[Eo.COERCE]);else{let d=e.includePrerelease?Po[Eo.COERCERTLFULL]:Po[Eo.COERCERTL],c;for(;(c=d.exec(a))&&(!t||t.index+t[0].length!==a.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),d.lastIndex=c.index+c[1].length+c[2].length;d.lastIndex=-1}if(t===null)return null;let n=t[2],o=t[3]||"0",s=t[4]||"0",u=e.includePrerelease&&t[5]?`-${t[5]}`:"",f=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Xg(`${n}.${o}.${s}${u}${f}`,e)};Hc.exports=Yg});var Xc=F((tv,Gc)=>{"use strict";var Na=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(e,t)}return this}};Gc.exports=Na});var Ve=F((rv,Zc)=>{"use strict";var Qg=/\s+/g,ja=class a{constructor(e,t){if(t=Zg(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof za)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(Qg," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(o=>!Qc(o[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&a_(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let n=0;n<t.length;n++)n>0&&(this.formatted+=" "),this.formatted+=t[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&o_)|(this.options.loose&&i_))+":"+e,o=Yc.get(n);if(o)return o;let s=this.options.loose,u=s?Le[be.HYPHENRANGELOOSE]:Le[be.HYPHENRANGE];e=e.replace(u,g_(this.options.includePrerelease)),se("hyphen replace",e),e=e.replace(Le[be.COMPARATORTRIM],t_),se("comparator trim",e),e=e.replace(Le[be.TILDETRIM],r_),se("tilde trim",e),e=e.replace(Le[be.CARETTRIM],n_),se("caret trim",e);let f=e.split(" ").map(m=>s_(m,this.options)).join(" ").split(/\s+/).map(m=>m_(m,this.options));s&&(f=f.filter(m=>(se("loose invalid filter",m,this.options),!!m.match(Le[be.COMPARATORLOOSE])))),se("range list",f);let d=new Map,c=f.map(m=>new za(m,this.options));for(let m of c){if(Qc(m))return[m];d.set(m.value,m)}d.size>1&&d.has("")&&d.delete("");let p=[...d.values()];return Yc.set(n,p),p}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>Jc(n,t)&&e.set.some(o=>Jc(o,t)&&n.every(s=>o.every(u=>s.intersects(u,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new e_(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(__(this.set[t],e,this.options))return!0;return!1}};Zc.exports=ja;var Jg=Xc(),Yc=new Jg,Zg=_o(),za=rn(),se=en(),e_=ge(),{safeRe:Le,t:be,comparatorTrimReplace:t_,tildeTrimReplace:r_,caretTrimReplace:n_}=Lr(),{FLAG_INCLUDE_PRERELEASE:o_,FLAG_LOOSE:i_}=Zr(),Qc=a=>a.value==="<0.0.0-0",a_=a=>a.value==="",Jc=(a,e)=>{let t=!0,n=a.slice(),o=n.pop();for(;t&&n.length;)t=n.every(s=>o.intersects(s,e)),o=n.pop();return t},s_=(a,e)=>(se("comp",a,e),a=c_(a,e),se("caret",a),a=l_(a,e),se("tildes",a),a=f_(a,e),se("xrange",a),a=h_(a,e),se("stars",a),a),ye=a=>!a||a.toLowerCase()==="x"||a==="*",l_=(a,e)=>a.trim().split(/\s+/).map(t=>u_(t,e)).join(" "),u_=(a,e)=>{let t=e.loose?Le[be.TILDELOOSE]:Le[be.TILDE];return a.replace(t,(n,o,s,u,f)=>{se("tilde",a,n,o,s,u,f);let d;return ye(o)?d="":ye(s)?d=`>=${o}.0.0 <${+o+1}.0.0-0`:ye(u)?d=`>=${o}.${s}.0 <${o}.${+s+1}.0-0`:f?(se("replaceTilde pr",f),d=`>=${o}.${s}.${u}-${f} <${o}.${+s+1}.0-0`):d=`>=${o}.${s}.${u} <${o}.${+s+1}.0-0`,se("tilde return",d),d})},c_=(a,e)=>a.trim().split(/\s+/).map(t=>d_(t,e)).join(" "),d_=(a,e)=>{se("caret",a,e);let t=e.loose?Le[be.CARETLOOSE]:Le[be.CARET],n=e.includePrerelease?"-0":"";return a.replace(t,(o,s,u,f,d)=>{se("caret",a,o,s,u,f,d);let c;return ye(s)?c="":ye(u)?c=`>=${s}.0.0${n} <${+s+1}.0.0-0`:ye(f)?s==="0"?c=`>=${s}.${u}.0${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.0${n} <${+s+1}.0.0-0`:d?(se("replaceCaret pr",d),s==="0"?u==="0"?c=`>=${s}.${u}.${f}-${d} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}-${d} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f}-${d} <${+s+1}.0.0-0`):(se("no pr"),s==="0"?u==="0"?c=`>=${s}.${u}.${f}${n} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f} <${+s+1}.0.0-0`),se("caret return",c),c})},f_=(a,e)=>(se("replaceXRanges",a,e),a.split(/\s+/).map(t=>p_(t,e)).join(" ")),p_=(a,e)=>{a=a.trim();let t=e.loose?Le[be.XRANGELOOSE]:Le[be.XRANGE];return a.replace(t,(n,o,s,u,f,d)=>{se("xRange",a,n,o,s,u,f,d);let c=ye(s),p=c||ye(u),m=p||ye(f),y=m;return o==="="&&y&&(o=""),d=e.includePrerelease?"-0":"",c?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&y?(p&&(u=0),f=0,o===">"?(o=">=",p?(s=+s+1,u=0,f=0):(u=+u+1,f=0)):o==="<="&&(o="<",p?s=+s+1:u=+u+1),o==="<"&&(d="-0"),n=`${o+s}.${u}.${f}${d}`):p?n=`>=${s}.0.0${d} <${+s+1}.0.0-0`:m&&(n=`>=${s}.${u}.0${d} <${s}.${+u+1}.0-0`),se("xRange return",n),n})},h_=(a,e)=>(se("replaceStars",a,e),a.trim().replace(Le[be.STAR],"")),m_=(a,e)=>(se("replaceGTE0",a,e),a.trim().replace(Le[e.includePrerelease?be.GTE0PRE:be.GTE0],"")),g_=a=>(e,t,n,o,s,u,f,d,c,p,m,y)=>(ye(n)?t="":ye(o)?t=`>=${n}.0.0${a?"-0":""}`:ye(s)?t=`>=${n}.${o}.0${a?"-0":""}`:u?t=`>=${t}`:t=`>=${t}${a?"-0":""}`,ye(c)?d="":ye(p)?d=`<${+c+1}.0.0-0`:ye(m)?d=`<${c}.${+p+1}.0-0`:y?d=`<=${c}.${p}.${m}-${y}`:a?d=`<${c}.${p}.${+m+1}-0`:d=`<=${d}`,`${t} ${d}`.trim()),__=(a,e,t)=>{for(let n=0;n<a.length;n++)if(!a[n].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let n=0;n<a.length;n++)if(se(a[n].semver),a[n].semver!==za.ANY&&a[n].semver.prerelease.length>0){let o=a[n].semver;if(o.major===e.major&&o.minor===e.minor&&o.patch===e.patch)return!0}return!1}return!0}});var rn=F((nv,id)=>{"use strict";var nn=Symbol("SemVer ANY"),Ha=class a{static get ANY(){return nn}constructor(e,t){if(t=ed(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Wa("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===nn?this.value="":this.value=this.operator+this.semver.version,Wa("comp",this)}parse(e){let t=this.options.loose?td[rd.COMPARATORLOOSE]:td[rd.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new nd(n[2],this.options.loose):this.semver=nn}toString(){return this.value}test(e){if(Wa("Comparator.test",e,this.options.loose),this.semver===nn||e===nn)return!0;if(typeof e=="string")try{e=new nd(e,this.options)}catch{return!1}return Va(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new od(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new od(this.value,t).test(e.semver):(t=ed(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Va(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Va(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};id.exports=Ha;var ed=_o(),{safeRe:td,t:rd}=Lr(),Va=Ua(),Wa=en(),nd=ge(),od=Ve()});var on=F((ov,ad)=>{"use strict";var b_=Ve(),y_=(a,e,t)=>{try{e=new b_(e,t)}catch{return!1}return e.test(a)};ad.exports=y_});var ld=F((iv,sd)=>{"use strict";var w_=Ve(),v_=(a,e)=>new w_(a,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));sd.exports=v_});var cd=F((av,ud)=>{"use strict";var S_=ge(),R_=Ve(),P_=(a,e,t)=>{let n=null,o=null,s=null;try{s=new R_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||o.compare(u)===-1)&&(n=u,o=new S_(n,t))}),n};ud.exports=P_});var fd=F((sv,dd)=>{"use strict";var E_=ge(),x_=Ve(),L_=(a,e,t)=>{let n=null,o=null,s=null;try{s=new x_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||o.compare(u)===1)&&(n=u,o=new E_(n,t))}),n};dd.exports=L_});var md=F((lv,hd)=>{"use strict";var Ka=ge(),A_=Ve(),pd=tn(),k_=(a,e)=>{a=new A_(a,e);let t=new Ka("0.0.0");if(a.test(t)||(t=new Ka("0.0.0-0"),a.test(t)))return t;t=null;for(let n=0;n<a.set.length;++n){let o=a.set[n],s=null;o.forEach(u=>{let f=new Ka(u.semver.version);switch(u.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!s||pd(f,s))&&(s=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),s&&(!t||pd(t,s))&&(t=s)}return t&&a.test(t)?t:null};hd.exports=k_});var _d=F((uv,gd)=>{"use strict";var T_=Ve(),I_=(a,e)=>{try{return new T_(a,e).range||"*"}catch{return null}};gd.exports=I_});var xo=F((cv,vd)=>{"use strict";var C_=ge(),wd=rn(),{ANY:D_}=wd,$_=Ve(),F_=on(),bd=tn(),yd=vo(),B_=Ro(),O_=So(),q_=(a,e,t,n)=>{a=new C_(a,n),e=new $_(e,n);let o,s,u,f,d;switch(t){case">":o=bd,s=B_,u=yd,f=">",d=">=";break;case"<":o=yd,s=O_,u=bd,f="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(F_(a,e,n))return!1;for(let c=0;c<e.set.length;++c){let p=e.set[c],m=null,y=null;if(p.forEach(g=>{g.semver===D_&&(g=new wd(">=0.0.0")),m=m||g,y=y||g,o(g.semver,m.semver,n)?m=g:u(g.semver,y.semver,n)&&(y=g)}),m.operator===f||m.operator===d||(!y.operator||y.operator===f)&&s(a,y.semver))return!1;if(y.operator===d&&u(a,y.semver))return!1}return!0};vd.exports=q_});var Rd=F((dv,Sd)=>{"use strict";var M_=xo(),U_=(a,e,t)=>M_(a,e,">",t);Sd.exports=U_});var Ed=F((fv,Pd)=>{"use strict";var N_=xo(),j_=(a,e,t)=>N_(a,e,"<",t);Pd.exports=j_});var Ad=F((pv,Ld)=>{"use strict";var xd=Ve(),z_=(a,e,t)=>(a=new xd(a,t),e=new xd(e,t),a.intersects(e,t));Ld.exports=z_});var Td=F((hv,kd)=>{"use strict";var V_=on(),W_=ze();kd.exports=(a,e,t)=>{let n=[],o=null,s=null,u=a.sort((p,m)=>W_(p,m,t));for(let p of u)V_(p,e,t)?(s=p,o||(o=p)):(s&&n.push([o,s]),s=null,o=null);o&&n.push([o,null]);let f=[];for(let[p,m]of n)p===m?f.push(p):!m&&p===u[0]?f.push("*"):m?p===u[0]?f.push(`<=${m}`):f.push(`${p} - ${m}`):f.push(`>=${p}`);let d=f.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return d.length<c.length?d:e}});var Bd=F((mv,Fd)=>{"use strict";var Id=Ve(),Xa=rn(),{ANY:Ga}=Xa,an=on(),Ya=ze(),H_=(a,e,t={})=>{if(a===e)return!0;a=new Id(a,t),e=new Id(e,t);let n=!1;e:for(let o of a.set){for(let s of e.set){let u=G_(o,s,t);if(n=n||u!==null,u)continue e}if(n)return!1}return!0},K_=[new Xa(">=0.0.0-0")],Cd=[new Xa(">=0.0.0")],G_=(a,e,t)=>{if(a===e)return!0;if(a.length===1&&a[0].semver===Ga){if(e.length===1&&e[0].semver===Ga)return!0;t.includePrerelease?a=K_:a=Cd}if(e.length===1&&e[0].semver===Ga){if(t.includePrerelease)return!0;e=Cd}let n=new Set,o,s;for(let g of a)g.operator===">"||g.operator===">="?o=Dd(o,g,t):g.operator==="<"||g.operator==="<="?s=$d(s,g,t):n.add(g.semver);if(n.size>1)return null;let u;if(o&&s){if(u=Ya(o.semver,s.semver,t),u>0)return null;if(u===0&&(o.operator!==">="||s.operator!=="<="))return null}for(let g of n){if(o&&!an(g,String(o),t)||s&&!an(g,String(s),t))return null;for(let w of e)if(!an(g,String(w),t))return!1;return!0}let f,d,c,p,m=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,y=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1;m&&m.prerelease.length===1&&s.operator==="<"&&m.prerelease[0]===0&&(m=!1);for(let g of e){if(p=p||g.operator===">"||g.operator===">=",c=c||g.operator==="<"||g.operator==="<=",o){if(y&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===y.major&&g.semver.minor===y.minor&&g.semver.patch===y.patch&&(y=!1),g.operator===">"||g.operator===">="){if(f=Dd(o,g,t),f===g&&f!==o)return!1}else if(o.operator===">="&&!an(o.semver,String(g),t))return!1}if(s){if(m&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===m.major&&g.semver.minor===m.minor&&g.semver.patch===m.patch&&(m=!1),g.operator==="<"||g.operator==="<="){if(d=$d(s,g,t),d===g&&d!==s)return!1}else if(s.operator==="<="&&!an(s.semver,String(g),t))return!1}if(!g.operator&&(s||o)&&u!==0)return!1}return!(o&&c&&!s&&u!==0||s&&p&&!o&&u!==0||y||m)},Dd=(a,e,t)=>{if(!a)return e;let n=Ya(a.semver,e.semver,t);return n>0?a:n<0||e.operator===">"&&a.operator===">="?e:a},$d=(a,e,t)=>{if(!a)return e;let n=Ya(a.semver,e.semver,t);return n<0?a:n>0||e.operator==="<"&&a.operator==="<="?e:a};Fd.exports=H_});var Ud=F((gv,Md)=>{"use strict";var Qa=Lr(),Od=Zr(),X_=ge(),qd=Ba(),Y_=nr(),Q_=cc(),J_=fc(),Z_=mc(),eb=bc(),tb=wc(),rb=Sc(),nb=Pc(),ob=xc(),ib=ze(),ab=Tc(),sb=Cc(),lb=wo(),ub=Bc(),cb=qc(),db=tn(),fb=vo(),pb=qa(),hb=Ma(),mb=So(),gb=Ro(),_b=Ua(),bb=Kc(),yb=rn(),wb=Ve(),vb=on(),Sb=ld(),Rb=cd(),Pb=fd(),Eb=md(),xb=_d(),Lb=xo(),Ab=Rd(),kb=Ed(),Tb=Ad(),Ib=Td(),Cb=Bd();Md.exports={parse:Y_,valid:Q_,clean:J_,inc:Z_,diff:eb,major:tb,minor:rb,patch:nb,prerelease:ob,compare:ib,rcompare:ab,compareLoose:sb,compareBuild:lb,sort:ub,rsort:cb,gt:db,lt:fb,eq:pb,neq:hb,gte:mb,lte:gb,cmp:_b,coerce:bb,Comparator:yb,Range:wb,satisfies:vb,toComparators:Sb,maxSatisfying:Rb,minSatisfying:Pb,minVersion:Eb,validRange:xb,outside:Lb,gtr:Ab,ltr:kb,intersects:Tb,simplifyRange:Ib,subset:Cb,SemVer:X_,re:Qa.re,src:Qa.src,tokens:Qa.t,SEMVER_SPEC_VERSION:Od.SEMVER_SPEC_VERSION,RELEASE_TYPES:Od.RELEASE_TYPES,compareIdentifiers:qd.compareIdentifiers,rcompareIdentifiers:qd.rcompareIdentifiers}});var Gd=F((yv,Kd)=>{"use strict";var Hd=require("child_process"),zd=Hd.spawn,Db=Hd.exec;Kd.exports=function(a,e,t){if(typeof e=="function"&&t===void 0&&(t=e,e=void 0),a=parseInt(a),Number.isNaN(a)){if(t)return t(new Error("pid must be a number"));throw new Error("pid must be a number")}var n={},o={};switch(n[a]=[],o[a]=1,process.platform){case"win32":Db("taskkill /pid "+a+" /T /F",t);break;case"darwin":Ja(a,n,o,function(s){return zd("pgrep",["-P",s])},function(){Vd(n,e,t)});break;default:Ja(a,n,o,function(s){return zd("ps",["-o","pid","--no-headers","--ppid",s])},function(){Vd(n,e,t)});break}};function Vd(a,e,t){var n={};try{Object.keys(a).forEach(function(o){a[o].forEach(function(s){n[s]||(Wd(s,e),n[s]=1)}),n[o]||(Wd(o,e),n[o]=1)})}catch(o){if(t)return t(o);throw o}if(t)return t()}function Wd(a,e){try{process.kill(parseInt(a,10),e)}catch(t){if(t.code!=="ESRCH")throw t}}function Ja(a,e,t,n,o){var s=n(a),u="";s.stdout.on("data",function(c){var c=c.toString("ascii");u+=c});var f=function(d){if(delete t[a],d!=0){Object.keys(t).length==0&&o();return}u.match(/\d+/g).forEach(function(c){c=parseInt(c,10),e[a].push(c),e[c]=[],t[c]=1,Ja(c,e,t,n,o)})};s.on("close",f)}});var of=F((Ov,nf)=>{"use strict";var{hasOwnProperty:cs}=Object.prototype,ds=(a,e={})=>{typeof e=="string"&&(e={section:e}),e.align=e.align===!0,e.newline=e.newline===!0,e.sort=e.sort===!0,e.whitespace=e.whitespace===!0||e.align===!0,e.platform=e.platform||typeof process<"u"&&process.platform,e.bracketedArray=e.bracketedArray!==!1;let t=e.platform==="win32"?`\r
3287
+ `,Fe.LogLevel.Warn),this._logFileStream=Mu.createWriteStream(e.logFilePath),this.logDateTime(),this.setupShutdownListeners(),this._logFileStream.on("error",n=>{t(n)})}catch(n){t(n)}}}logDateTime(){let e=new Date,n=e.getUTCFullYear()+`-${e.getUTCMonth()+1}-`+e.getUTCDate()+", "+Uu();this.log(n+`
3288
+ `,Fe.LogLevel.Verbose,!1)}setupShutdownListeners(){process.on("beforeExit",this.beforeExitCallback),process.on("SIGTERM",this.disposeCallback),process.on("SIGINT",this.disposeCallback)}removeShutdownListeners(){process.removeListener("beforeExit",this.beforeExitCallback),process.removeListener("SIGTERM",this.disposeCallback),process.removeListener("SIGINT",this.disposeCallback)}dispose(){return new Promise(e=>{this.removeShutdownListeners(),this._logFileStream?(this._logFileStream.end(e),this._logFileStream=null):e()})}log(e,t,n=!0){if(this._minLogLevel!==Fe.LogLevel.Stop){if(t>=this._minLogLevel&&this.sendLog(e,t),this._logToConsole){let o=t===Fe.LogLevel.Error?console.error:t===Fe.LogLevel.Warn?console.warn:null;o&&o((0,Fe.trimLastNewline)(e))}t===Fe.LogLevel.Error&&(e=`[${Fe.LogLevel[t]}] ${e}`),this._prependTimestamp&&n&&(e="["+Uu()+"] "+e),this._logFileStream&&this._logFileStream.write(e)}}sendLog(e,t){if(e.length>1500){let n=!!e.match(/(\n|\r\n)$/);e=e.substr(0,1500)+"[...]",n&&(e=e+`
3289
+ `)}if(this._logCallback){let n=new Fe.LogOutputEvent(e,t);this._logCallback(n)}}};fo.InternalLogger=Ta;function Uu(){let a=new Date,e=co(2,String(a.getUTCHours())),t=co(2,String(a.getUTCMinutes())),n=co(2,String(a.getUTCSeconds())),o=co(3,String(a.getUTCMilliseconds()));return e+":"+t+":"+n+"."+o+" UTC"}function co(a,e){return e.length>=a?e:String("0".repeat(a)+e).slice(-a)}});var po=F(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.trimLastNewline=Oe.LogOutputEvent=Oe.logger=Oe.Logger=Oe.LogLevel=void 0;var Dm=ju(),$m=uo(),qt;(function(a){a[a.Verbose=0]="Verbose",a[a.Log=1]="Log",a[a.Warn=2]="Warn",a[a.Error=3]="Error",a[a.Stop=4]="Stop"})(qt=Oe.LogLevel||(Oe.LogLevel={}));var ho=class{constructor(){this._pendingLogQ=[]}log(e,t=qt.Log){e=e+`
3290
+ `,this._write(e,t)}verbose(e){this.log(e,qt.Verbose)}warn(e){this.log(e,qt.Warn)}error(e){this.log(e,qt.Error)}dispose(){if(this._currentLogger){let e=this._currentLogger.dispose();return this._currentLogger=null,e}else return Promise.resolve()}_write(e,t=qt.Log){e=e+"",this._pendingLogQ?this._pendingLogQ.push({msg:e,level:t}):this._currentLogger&&this._currentLogger.log(e,t)}setup(e,t,n=!0){let o=typeof t=="string"?t:t&&this._logFilePathFromInit;if(this._currentLogger){let s={consoleMinLogLevel:e,logFilePath:o,prependTimestamp:n};this._currentLogger.setup(s).then(()=>{if(this._pendingLogQ){let u=this._pendingLogQ;this._pendingLogQ=null,u.forEach(f=>this._write(f.msg,f.level))}})}}init(e,t,n){this._pendingLogQ=this._pendingLogQ||[],this._currentLogger=new Dm.InternalLogger(e,n),this._logFilePathFromInit=t}};Oe.Logger=ho;Oe.logger=new ho;var Ca=class extends $m.OutputEvent{constructor(e,t){let n=t===qt.Error?"stderr":t===qt.Warn?"console":"stdout";super(e,n)}};Oe.LogOutputEvent=Ca;function Fm(a){return a.replace(/(\n|\r\n)$/,"")}Oe.trimLastNewline=Fm});var zu=F(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.LoggingDebugSession=void 0;var Vu=po(),xr=Vu.logger,Wu=uo(),Ia=class extends Wu.DebugSession{constructor(e,t,n){super(t,n),this.obsolete_logFilePath=e,this.on("error",o=>{xr.error(o.body)})}start(e,t){super.start(e,t),xr.init(n=>this.sendEvent(n),this.obsolete_logFilePath,this._isServer)}sendEvent(e){if(!(e instanceof Vu.LogOutputEvent)){let t=e;e instanceof Wu.OutputEvent&&e.body&&e.body.data&&e.body.data.doNotLogOutput&&(delete e.body.data.doNotLogOutput,t={...e},t.body={...e.body,output:"<output not logged>"}),xr.verbose(`To client: ${JSON.stringify(t)}`)}super.sendEvent(e)}sendRequest(e,t,n,o){xr.verbose(`To client: ${JSON.stringify(e)}(${JSON.stringify(t)}), timeout: ${n}`),super.sendRequest(e,t,n,o)}sendResponse(e){xr.verbose(`To client: ${JSON.stringify(e)}`),super.sendResponse(e)}dispatchRequest(e){xr.verbose(`From client: ${e.command}(${JSON.stringify(e.arguments)})`),super.dispatchRequest(e)}};mo.LoggingDebugSession=Ia});var Hu=F(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.Handles=void 0;var Da=class{constructor(e){this.START_HANDLE=1e3,this._handleMap=new Map,this._nextHandle=typeof e=="number"?e:this.START_HANDLE}reset(){this._nextHandle=this.START_HANDLE,this._handleMap=new Map}create(e){var t=this._nextHandle++;return this._handleMap.set(t,e),t}get(e,t){return this._handleMap.get(e)||t}};go.Handles=Da});var Xu=F(T=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});T.Handles=T.Response=T.Event=T.ErrorDestination=T.CompletionItem=T.Module=T.Source=T.Breakpoint=T.Variable=T.Scope=T.StackFrame=T.Thread=T.MemoryEvent=T.InvalidatedEvent=T.ProgressEndEvent=T.ProgressUpdateEvent=T.ProgressStartEvent=T.CapabilitiesEvent=T.LoadedSourceEvent=T.ModuleEvent=T.BreakpointEvent=T.ThreadEvent=T.OutputEvent=T.ContinuedEvent=T.StoppedEvent=T.ExitedEvent=T.TerminatedEvent=T.InitializedEvent=T.logger=T.Logger=T.LoggingDebugSession=T.DebugSession=void 0;var ae=uo();Object.defineProperty(T,"DebugSession",{enumerable:!0,get:function(){return ae.DebugSession}});Object.defineProperty(T,"InitializedEvent",{enumerable:!0,get:function(){return ae.InitializedEvent}});Object.defineProperty(T,"TerminatedEvent",{enumerable:!0,get:function(){return ae.TerminatedEvent}});Object.defineProperty(T,"ExitedEvent",{enumerable:!0,get:function(){return ae.ExitedEvent}});Object.defineProperty(T,"StoppedEvent",{enumerable:!0,get:function(){return ae.StoppedEvent}});Object.defineProperty(T,"ContinuedEvent",{enumerable:!0,get:function(){return ae.ContinuedEvent}});Object.defineProperty(T,"OutputEvent",{enumerable:!0,get:function(){return ae.OutputEvent}});Object.defineProperty(T,"ThreadEvent",{enumerable:!0,get:function(){return ae.ThreadEvent}});Object.defineProperty(T,"BreakpointEvent",{enumerable:!0,get:function(){return ae.BreakpointEvent}});Object.defineProperty(T,"ModuleEvent",{enumerable:!0,get:function(){return ae.ModuleEvent}});Object.defineProperty(T,"LoadedSourceEvent",{enumerable:!0,get:function(){return ae.LoadedSourceEvent}});Object.defineProperty(T,"CapabilitiesEvent",{enumerable:!0,get:function(){return ae.CapabilitiesEvent}});Object.defineProperty(T,"ProgressStartEvent",{enumerable:!0,get:function(){return ae.ProgressStartEvent}});Object.defineProperty(T,"ProgressUpdateEvent",{enumerable:!0,get:function(){return ae.ProgressUpdateEvent}});Object.defineProperty(T,"ProgressEndEvent",{enumerable:!0,get:function(){return ae.ProgressEndEvent}});Object.defineProperty(T,"InvalidatedEvent",{enumerable:!0,get:function(){return ae.InvalidatedEvent}});Object.defineProperty(T,"MemoryEvent",{enumerable:!0,get:function(){return ae.MemoryEvent}});Object.defineProperty(T,"Thread",{enumerable:!0,get:function(){return ae.Thread}});Object.defineProperty(T,"StackFrame",{enumerable:!0,get:function(){return ae.StackFrame}});Object.defineProperty(T,"Scope",{enumerable:!0,get:function(){return ae.Scope}});Object.defineProperty(T,"Variable",{enumerable:!0,get:function(){return ae.Variable}});Object.defineProperty(T,"Breakpoint",{enumerable:!0,get:function(){return ae.Breakpoint}});Object.defineProperty(T,"Source",{enumerable:!0,get:function(){return ae.Source}});Object.defineProperty(T,"Module",{enumerable:!0,get:function(){return ae.Module}});Object.defineProperty(T,"CompletionItem",{enumerable:!0,get:function(){return ae.CompletionItem}});Object.defineProperty(T,"ErrorDestination",{enumerable:!0,get:function(){return ae.ErrorDestination}});var Om=zu();Object.defineProperty(T,"LoggingDebugSession",{enumerable:!0,get:function(){return Om.LoggingDebugSession}});var Ku=po();T.Logger=Ku;var Gu=oo();Object.defineProperty(T,"Event",{enumerable:!0,get:function(){return Gu.Event}});Object.defineProperty(T,"Response",{enumerable:!0,get:function(){return Gu.Response}});var Bm=Hu();Object.defineProperty(T,"Handles",{enumerable:!0,get:function(){return Bm.Handles}});var qm=Ku.logger;T.logger=qm});var Zr=F((Lw,Yu)=>{"use strict";var Mm="2.0.0",Nm=Number.MAX_SAFE_INTEGER||9007199254740991,Um=16,jm=250,Wm=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Yu.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Um,MAX_SAFE_BUILD_LENGTH:jm,MAX_SAFE_INTEGER:Nm,RELEASE_TYPES:Wm,SEMVER_SPEC_VERSION:Mm,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var en=F((Aw,Qu)=>{"use strict";var Vm=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...a)=>console.error("SEMVER",...a):()=>{};Qu.exports=Vm});var Lr=F((gt,Ju)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:$a,MAX_SAFE_BUILD_LENGTH:zm,MAX_LENGTH:Hm}=Zr(),Km=en();gt=Ju.exports={};var Gm=gt.re=[],Xm=gt.safeRe=[],L=gt.src=[],A=gt.t={},Ym=0,Fa="[a-zA-Z0-9-]",Qm=[["\\s",1],["\\d",Hm],[Fa,zm]],Jm=a=>{for(let[e,t]of Qm)a=a.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return a},W=(a,e,t)=>{let n=Jm(e),o=Ym++;Km(a,o,e),A[a]=o,L[o]=e,Gm[o]=new RegExp(e,t?"g":void 0),Xm[o]=new RegExp(n,t?"g":void 0)};W("NUMERICIDENTIFIER","0|[1-9]\\d*");W("NUMERICIDENTIFIERLOOSE","\\d+");W("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Fa}*`);W("MAINVERSION",`(${L[A.NUMERICIDENTIFIER]})\\.(${L[A.NUMERICIDENTIFIER]})\\.(${L[A.NUMERICIDENTIFIER]})`);W("MAINVERSIONLOOSE",`(${L[A.NUMERICIDENTIFIERLOOSE]})\\.(${L[A.NUMERICIDENTIFIERLOOSE]})\\.(${L[A.NUMERICIDENTIFIERLOOSE]})`);W("PRERELEASEIDENTIFIER",`(?:${L[A.NUMERICIDENTIFIER]}|${L[A.NONNUMERICIDENTIFIER]})`);W("PRERELEASEIDENTIFIERLOOSE",`(?:${L[A.NUMERICIDENTIFIERLOOSE]}|${L[A.NONNUMERICIDENTIFIER]})`);W("PRERELEASE",`(?:-(${L[A.PRERELEASEIDENTIFIER]}(?:\\.${L[A.PRERELEASEIDENTIFIER]})*))`);W("PRERELEASELOOSE",`(?:-?(${L[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${L[A.PRERELEASEIDENTIFIERLOOSE]})*))`);W("BUILDIDENTIFIER",`${Fa}+`);W("BUILD",`(?:\\+(${L[A.BUILDIDENTIFIER]}(?:\\.${L[A.BUILDIDENTIFIER]})*))`);W("FULLPLAIN",`v?${L[A.MAINVERSION]}${L[A.PRERELEASE]}?${L[A.BUILD]}?`);W("FULL",`^${L[A.FULLPLAIN]}$`);W("LOOSEPLAIN",`[v=\\s]*${L[A.MAINVERSIONLOOSE]}${L[A.PRERELEASELOOSE]}?${L[A.BUILD]}?`);W("LOOSE",`^${L[A.LOOSEPLAIN]}$`);W("GTLT","((?:<|>)?=?)");W("XRANGEIDENTIFIERLOOSE",`${L[A.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);W("XRANGEIDENTIFIER",`${L[A.NUMERICIDENTIFIER]}|x|X|\\*`);W("XRANGEPLAIN",`[v=\\s]*(${L[A.XRANGEIDENTIFIER]})(?:\\.(${L[A.XRANGEIDENTIFIER]})(?:\\.(${L[A.XRANGEIDENTIFIER]})(?:${L[A.PRERELEASE]})?${L[A.BUILD]}?)?)?`);W("XRANGEPLAINLOOSE",`[v=\\s]*(${L[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[A.XRANGEIDENTIFIERLOOSE]})(?:${L[A.PRERELEASELOOSE]})?${L[A.BUILD]}?)?)?`);W("XRANGE",`^${L[A.GTLT]}\\s*${L[A.XRANGEPLAIN]}$`);W("XRANGELOOSE",`^${L[A.GTLT]}\\s*${L[A.XRANGEPLAINLOOSE]}$`);W("COERCEPLAIN",`(^|[^\\d])(\\d{1,${$a}})(?:\\.(\\d{1,${$a}}))?(?:\\.(\\d{1,${$a}}))?`);W("COERCE",`${L[A.COERCEPLAIN]}(?:$|[^\\d])`);W("COERCEFULL",L[A.COERCEPLAIN]+`(?:${L[A.PRERELEASE]})?(?:${L[A.BUILD]})?(?:$|[^\\d])`);W("COERCERTL",L[A.COERCE],!0);W("COERCERTLFULL",L[A.COERCEFULL],!0);W("LONETILDE","(?:~>?)");W("TILDETRIM",`(\\s*)${L[A.LONETILDE]}\\s+`,!0);gt.tildeTrimReplace="$1~";W("TILDE",`^${L[A.LONETILDE]}${L[A.XRANGEPLAIN]}$`);W("TILDELOOSE",`^${L[A.LONETILDE]}${L[A.XRANGEPLAINLOOSE]}$`);W("LONECARET","(?:\\^)");W("CARETTRIM",`(\\s*)${L[A.LONECARET]}\\s+`,!0);gt.caretTrimReplace="$1^";W("CARET",`^${L[A.LONECARET]}${L[A.XRANGEPLAIN]}$`);W("CARETLOOSE",`^${L[A.LONECARET]}${L[A.XRANGEPLAINLOOSE]}$`);W("COMPARATORLOOSE",`^${L[A.GTLT]}\\s*(${L[A.LOOSEPLAIN]})$|^$`);W("COMPARATOR",`^${L[A.GTLT]}\\s*(${L[A.FULLPLAIN]})$|^$`);W("COMPARATORTRIM",`(\\s*)${L[A.GTLT]}\\s*(${L[A.LOOSEPLAIN]}|${L[A.XRANGEPLAIN]})`,!0);gt.comparatorTrimReplace="$1$2$3";W("HYPHENRANGE",`^\\s*(${L[A.XRANGEPLAIN]})\\s+-\\s+(${L[A.XRANGEPLAIN]})\\s*$`);W("HYPHENRANGELOOSE",`^\\s*(${L[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${L[A.XRANGEPLAINLOOSE]})\\s*$`);W("STAR","(<|>)?=?\\s*\\*");W("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");W("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var _o=F((kw,Zu)=>{"use strict";var Zm=Object.freeze({loose:!0}),eg=Object.freeze({}),tg=a=>a?typeof a!="object"?Zm:a:eg;Zu.exports=tg});var Oa=F((Tw,rc)=>{"use strict";var ec=/^[0-9]+$/,tc=(a,e)=>{let t=ec.test(a),n=ec.test(e);return t&&n&&(a=+a,e=+e),a===e?0:t&&!n?-1:n&&!t?1:a<e?-1:1},rg=(a,e)=>tc(e,a);rc.exports={compareIdentifiers:tc,rcompareIdentifiers:rg}});var ge=F((Cw,ac)=>{"use strict";var bo=en(),{MAX_LENGTH:nc,MAX_SAFE_INTEGER:yo}=Zr(),{safeRe:oc,t:ic}=Lr(),ng=_o(),{compareIdentifiers:Ar}=Oa(),Ba=class a{constructor(e,t){if(t=ng(t),e instanceof a){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>nc)throw new TypeError(`version is longer than ${nc} characters`);bo("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?oc[ic.LOOSE]:oc[ic.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>yo||this.major<0)throw new TypeError("Invalid major version");if(this.minor>yo||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>yo||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let s=+o;if(s>=0&&s<yo)return s}return o}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(bo("SemVer.compare",this.version,this.options,e),!(e instanceof a)){if(typeof e=="string"&&e===this.version)return 0;e=new a(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof a||(e=new a(e,this.options)),Ar(this.major,e.major)||Ar(this.minor,e.minor)||Ar(this.patch,e.patch)}comparePre(e){if(e instanceof a||(e=new a(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let n=this.prerelease[t],o=e.prerelease[t];if(bo("prerelease compare",t,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return Ar(n,o)}while(++t)}compareBuild(e){e instanceof a||(e=new a(e,this.options));let t=0;do{let n=this.build[t],o=e.build[t];if(bo("build compare",t,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return Ar(n,o)}while(++t)}inc(e,t,n){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(n)?1:0;if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[o];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let s=[t,o];n===!1&&(s=[t]),Ar(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ac.exports=Ba});var nr=F((Iw,lc)=>{"use strict";var sc=ge(),og=(a,e,t=!1)=>{if(a instanceof sc)return a;try{return new sc(a,e)}catch(n){if(!t)return null;throw n}};lc.exports=og});var cc=F((Dw,uc)=>{"use strict";var ig=nr(),ag=(a,e)=>{let t=ig(a,e);return t?t.version:null};uc.exports=ag});var fc=F(($w,dc)=>{"use strict";var sg=nr(),lg=(a,e)=>{let t=sg(a.trim().replace(/^[=v]+/,""),e);return t?t.version:null};dc.exports=lg});var mc=F((Fw,hc)=>{"use strict";var pc=ge(),ug=(a,e,t,n,o)=>{typeof t=="string"&&(o=n,n=t,t=void 0);try{return new pc(a instanceof pc?a.version:a,t).inc(e,n,o).version}catch{return null}};hc.exports=ug});var bc=F((Ow,_c)=>{"use strict";var gc=nr(),cg=(a,e)=>{let t=gc(a,null,!0),n=gc(e,null,!0),o=t.compare(n);if(o===0)return null;let s=o>0,u=s?t:n,f=s?n:t,d=!!u.prerelease.length;if(!!f.prerelease.length&&!d)return!f.patch&&!f.minor?"major":u.patch?"patch":u.minor?"minor":"major";let p=d?"pre":"";return t.major!==n.major?p+"major":t.minor!==n.minor?p+"minor":t.patch!==n.patch?p+"patch":"prerelease"};_c.exports=cg});var wc=F((Bw,yc)=>{"use strict";var dg=ge(),fg=(a,e)=>new dg(a,e).major;yc.exports=fg});var Sc=F((qw,vc)=>{"use strict";var pg=ge(),hg=(a,e)=>new pg(a,e).minor;vc.exports=hg});var Pc=F((Mw,Rc)=>{"use strict";var mg=ge(),gg=(a,e)=>new mg(a,e).patch;Rc.exports=gg});var xc=F((Nw,Ec)=>{"use strict";var _g=nr(),bg=(a,e)=>{let t=_g(a,e);return t&&t.prerelease.length?t.prerelease:null};Ec.exports=bg});var We=F((Uw,Ac)=>{"use strict";var Lc=ge(),yg=(a,e,t)=>new Lc(a,t).compare(new Lc(e,t));Ac.exports=yg});var Tc=F((jw,kc)=>{"use strict";var wg=We(),vg=(a,e,t)=>wg(e,a,t);kc.exports=vg});var Ic=F((Ww,Cc)=>{"use strict";var Sg=We(),Rg=(a,e)=>Sg(a,e,!0);Cc.exports=Rg});var wo=F((Vw,$c)=>{"use strict";var Dc=ge(),Pg=(a,e,t)=>{let n=new Dc(a,t),o=new Dc(e,t);return n.compare(o)||n.compareBuild(o)};$c.exports=Pg});var Oc=F((zw,Fc)=>{"use strict";var Eg=wo(),xg=(a,e)=>a.sort((t,n)=>Eg(t,n,e));Fc.exports=xg});var qc=F((Hw,Bc)=>{"use strict";var Lg=wo(),Ag=(a,e)=>a.sort((t,n)=>Lg(n,t,e));Bc.exports=Ag});var tn=F((Kw,Mc)=>{"use strict";var kg=We(),Tg=(a,e,t)=>kg(a,e,t)>0;Mc.exports=Tg});var vo=F((Gw,Nc)=>{"use strict";var Cg=We(),Ig=(a,e,t)=>Cg(a,e,t)<0;Nc.exports=Ig});var qa=F((Xw,Uc)=>{"use strict";var Dg=We(),$g=(a,e,t)=>Dg(a,e,t)===0;Uc.exports=$g});var Ma=F((Yw,jc)=>{"use strict";var Fg=We(),Og=(a,e,t)=>Fg(a,e,t)!==0;jc.exports=Og});var So=F((Qw,Wc)=>{"use strict";var Bg=We(),qg=(a,e,t)=>Bg(a,e,t)>=0;Wc.exports=qg});var Ro=F((Jw,Vc)=>{"use strict";var Mg=We(),Ng=(a,e,t)=>Mg(a,e,t)<=0;Vc.exports=Ng});var Na=F((Zw,zc)=>{"use strict";var Ug=qa(),jg=Ma(),Wg=tn(),Vg=So(),zg=vo(),Hg=Ro(),Kg=(a,e,t,n)=>{switch(e){case"===":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a===t;case"!==":return typeof a=="object"&&(a=a.version),typeof t=="object"&&(t=t.version),a!==t;case"":case"=":case"==":return Ug(a,t,n);case"!=":return jg(a,t,n);case">":return Wg(a,t,n);case">=":return Vg(a,t,n);case"<":return zg(a,t,n);case"<=":return Hg(a,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};zc.exports=Kg});var Kc=F((ev,Hc)=>{"use strict";var Gg=ge(),Xg=nr(),{safeRe:Po,t:Eo}=Lr(),Yg=(a,e)=>{if(a instanceof Gg)return a;if(typeof a=="number"&&(a=String(a)),typeof a!="string")return null;e=e||{};let t=null;if(!e.rtl)t=a.match(e.includePrerelease?Po[Eo.COERCEFULL]:Po[Eo.COERCE]);else{let d=e.includePrerelease?Po[Eo.COERCERTLFULL]:Po[Eo.COERCERTL],c;for(;(c=d.exec(a))&&(!t||t.index+t[0].length!==a.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),d.lastIndex=c.index+c[1].length+c[2].length;d.lastIndex=-1}if(t===null)return null;let n=t[2],o=t[3]||"0",s=t[4]||"0",u=e.includePrerelease&&t[5]?`-${t[5]}`:"",f=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Xg(`${n}.${o}.${s}${u}${f}`,e)};Hc.exports=Yg});var Xc=F((tv,Gc)=>{"use strict";var Ua=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(e,t)}return this}};Gc.exports=Ua});var Ve=F((rv,Zc)=>{"use strict";var Qg=/\s+/g,ja=class a{constructor(e,t){if(t=Zg(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof Wa)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(Qg," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(o=>!Qc(o[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&a_(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let n=0;n<t.length;n++)n>0&&(this.formatted+=" "),this.formatted+=t[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&o_)|(this.options.loose&&i_))+":"+e,o=Yc.get(n);if(o)return o;let s=this.options.loose,u=s?Le[be.HYPHENRANGELOOSE]:Le[be.HYPHENRANGE];e=e.replace(u,g_(this.options.includePrerelease)),se("hyphen replace",e),e=e.replace(Le[be.COMPARATORTRIM],t_),se("comparator trim",e),e=e.replace(Le[be.TILDETRIM],r_),se("tilde trim",e),e=e.replace(Le[be.CARETTRIM],n_),se("caret trim",e);let f=e.split(" ").map(m=>s_(m,this.options)).join(" ").split(/\s+/).map(m=>m_(m,this.options));s&&(f=f.filter(m=>(se("loose invalid filter",m,this.options),!!m.match(Le[be.COMPARATORLOOSE])))),se("range list",f);let d=new Map,c=f.map(m=>new Wa(m,this.options));for(let m of c){if(Qc(m))return[m];d.set(m.value,m)}d.size>1&&d.has("")&&d.delete("");let p=[...d.values()];return Yc.set(n,p),p}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>Jc(n,t)&&e.set.some(o=>Jc(o,t)&&n.every(s=>o.every(u=>s.intersects(u,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new e_(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(__(this.set[t],e,this.options))return!0;return!1}};Zc.exports=ja;var Jg=Xc(),Yc=new Jg,Zg=_o(),Wa=rn(),se=en(),e_=ge(),{safeRe:Le,t:be,comparatorTrimReplace:t_,tildeTrimReplace:r_,caretTrimReplace:n_}=Lr(),{FLAG_INCLUDE_PRERELEASE:o_,FLAG_LOOSE:i_}=Zr(),Qc=a=>a.value==="<0.0.0-0",a_=a=>a.value==="",Jc=(a,e)=>{let t=!0,n=a.slice(),o=n.pop();for(;t&&n.length;)t=n.every(s=>o.intersects(s,e)),o=n.pop();return t},s_=(a,e)=>(se("comp",a,e),a=c_(a,e),se("caret",a),a=l_(a,e),se("tildes",a),a=f_(a,e),se("xrange",a),a=h_(a,e),se("stars",a),a),ye=a=>!a||a.toLowerCase()==="x"||a==="*",l_=(a,e)=>a.trim().split(/\s+/).map(t=>u_(t,e)).join(" "),u_=(a,e)=>{let t=e.loose?Le[be.TILDELOOSE]:Le[be.TILDE];return a.replace(t,(n,o,s,u,f)=>{se("tilde",a,n,o,s,u,f);let d;return ye(o)?d="":ye(s)?d=`>=${o}.0.0 <${+o+1}.0.0-0`:ye(u)?d=`>=${o}.${s}.0 <${o}.${+s+1}.0-0`:f?(se("replaceTilde pr",f),d=`>=${o}.${s}.${u}-${f} <${o}.${+s+1}.0-0`):d=`>=${o}.${s}.${u} <${o}.${+s+1}.0-0`,se("tilde return",d),d})},c_=(a,e)=>a.trim().split(/\s+/).map(t=>d_(t,e)).join(" "),d_=(a,e)=>{se("caret",a,e);let t=e.loose?Le[be.CARETLOOSE]:Le[be.CARET],n=e.includePrerelease?"-0":"";return a.replace(t,(o,s,u,f,d)=>{se("caret",a,o,s,u,f,d);let c;return ye(s)?c="":ye(u)?c=`>=${s}.0.0${n} <${+s+1}.0.0-0`:ye(f)?s==="0"?c=`>=${s}.${u}.0${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.0${n} <${+s+1}.0.0-0`:d?(se("replaceCaret pr",d),s==="0"?u==="0"?c=`>=${s}.${u}.${f}-${d} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}-${d} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f}-${d} <${+s+1}.0.0-0`):(se("no pr"),s==="0"?u==="0"?c=`>=${s}.${u}.${f}${n} <${s}.${u}.${+f+1}-0`:c=`>=${s}.${u}.${f}${n} <${s}.${+u+1}.0-0`:c=`>=${s}.${u}.${f} <${+s+1}.0.0-0`),se("caret return",c),c})},f_=(a,e)=>(se("replaceXRanges",a,e),a.split(/\s+/).map(t=>p_(t,e)).join(" ")),p_=(a,e)=>{a=a.trim();let t=e.loose?Le[be.XRANGELOOSE]:Le[be.XRANGE];return a.replace(t,(n,o,s,u,f,d)=>{se("xRange",a,n,o,s,u,f,d);let c=ye(s),p=c||ye(u),m=p||ye(f),y=m;return o==="="&&y&&(o=""),d=e.includePrerelease?"-0":"",c?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&y?(p&&(u=0),f=0,o===">"?(o=">=",p?(s=+s+1,u=0,f=0):(u=+u+1,f=0)):o==="<="&&(o="<",p?s=+s+1:u=+u+1),o==="<"&&(d="-0"),n=`${o+s}.${u}.${f}${d}`):p?n=`>=${s}.0.0${d} <${+s+1}.0.0-0`:m&&(n=`>=${s}.${u}.0${d} <${s}.${+u+1}.0-0`),se("xRange return",n),n})},h_=(a,e)=>(se("replaceStars",a,e),a.trim().replace(Le[be.STAR],"")),m_=(a,e)=>(se("replaceGTE0",a,e),a.trim().replace(Le[e.includePrerelease?be.GTE0PRE:be.GTE0],"")),g_=a=>(e,t,n,o,s,u,f,d,c,p,m,y)=>(ye(n)?t="":ye(o)?t=`>=${n}.0.0${a?"-0":""}`:ye(s)?t=`>=${n}.${o}.0${a?"-0":""}`:u?t=`>=${t}`:t=`>=${t}${a?"-0":""}`,ye(c)?d="":ye(p)?d=`<${+c+1}.0.0-0`:ye(m)?d=`<${c}.${+p+1}.0-0`:y?d=`<=${c}.${p}.${m}-${y}`:a?d=`<${c}.${p}.${+m+1}-0`:d=`<=${d}`,`${t} ${d}`.trim()),__=(a,e,t)=>{for(let n=0;n<a.length;n++)if(!a[n].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let n=0;n<a.length;n++)if(se(a[n].semver),a[n].semver!==Wa.ANY&&a[n].semver.prerelease.length>0){let o=a[n].semver;if(o.major===e.major&&o.minor===e.minor&&o.patch===e.patch)return!0}return!1}return!0}});var rn=F((nv,id)=>{"use strict";var nn=Symbol("SemVer ANY"),Ha=class a{static get ANY(){return nn}constructor(e,t){if(t=ed(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),za("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===nn?this.value="":this.value=this.operator+this.semver.version,za("comp",this)}parse(e){let t=this.options.loose?td[rd.COMPARATORLOOSE]:td[rd.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new nd(n[2],this.options.loose):this.semver=nn}toString(){return this.value}test(e){if(za("Comparator.test",e,this.options.loose),this.semver===nn||e===nn)return!0;if(typeof e=="string")try{e=new nd(e,this.options)}catch{return!1}return Va(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new od(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new od(this.value,t).test(e.semver):(t=ed(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Va(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Va(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};id.exports=Ha;var ed=_o(),{safeRe:td,t:rd}=Lr(),Va=Na(),za=en(),nd=ge(),od=Ve()});var on=F((ov,ad)=>{"use strict";var b_=Ve(),y_=(a,e,t)=>{try{e=new b_(e,t)}catch{return!1}return e.test(a)};ad.exports=y_});var ld=F((iv,sd)=>{"use strict";var w_=Ve(),v_=(a,e)=>new w_(a,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));sd.exports=v_});var cd=F((av,ud)=>{"use strict";var S_=ge(),R_=Ve(),P_=(a,e,t)=>{let n=null,o=null,s=null;try{s=new R_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||o.compare(u)===-1)&&(n=u,o=new S_(n,t))}),n};ud.exports=P_});var fd=F((sv,dd)=>{"use strict";var E_=ge(),x_=Ve(),L_=(a,e,t)=>{let n=null,o=null,s=null;try{s=new x_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||o.compare(u)===1)&&(n=u,o=new E_(n,t))}),n};dd.exports=L_});var md=F((lv,hd)=>{"use strict";var Ka=ge(),A_=Ve(),pd=tn(),k_=(a,e)=>{a=new A_(a,e);let t=new Ka("0.0.0");if(a.test(t)||(t=new Ka("0.0.0-0"),a.test(t)))return t;t=null;for(let n=0;n<a.set.length;++n){let o=a.set[n],s=null;o.forEach(u=>{let f=new Ka(u.semver.version);switch(u.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!s||pd(f,s))&&(s=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),s&&(!t||pd(t,s))&&(t=s)}return t&&a.test(t)?t:null};hd.exports=k_});var _d=F((uv,gd)=>{"use strict";var T_=Ve(),C_=(a,e)=>{try{return new T_(a,e).range||"*"}catch{return null}};gd.exports=C_});var xo=F((cv,vd)=>{"use strict";var I_=ge(),wd=rn(),{ANY:D_}=wd,$_=Ve(),F_=on(),bd=tn(),yd=vo(),O_=Ro(),B_=So(),q_=(a,e,t,n)=>{a=new I_(a,n),e=new $_(e,n);let o,s,u,f,d;switch(t){case">":o=bd,s=O_,u=yd,f=">",d=">=";break;case"<":o=yd,s=B_,u=bd,f="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(F_(a,e,n))return!1;for(let c=0;c<e.set.length;++c){let p=e.set[c],m=null,y=null;if(p.forEach(g=>{g.semver===D_&&(g=new wd(">=0.0.0")),m=m||g,y=y||g,o(g.semver,m.semver,n)?m=g:u(g.semver,y.semver,n)&&(y=g)}),m.operator===f||m.operator===d||(!y.operator||y.operator===f)&&s(a,y.semver))return!1;if(y.operator===d&&u(a,y.semver))return!1}return!0};vd.exports=q_});var Rd=F((dv,Sd)=>{"use strict";var M_=xo(),N_=(a,e,t)=>M_(a,e,">",t);Sd.exports=N_});var Ed=F((fv,Pd)=>{"use strict";var U_=xo(),j_=(a,e,t)=>U_(a,e,"<",t);Pd.exports=j_});var Ad=F((pv,Ld)=>{"use strict";var xd=Ve(),W_=(a,e,t)=>(a=new xd(a,t),e=new xd(e,t),a.intersects(e,t));Ld.exports=W_});var Td=F((hv,kd)=>{"use strict";var V_=on(),z_=We();kd.exports=(a,e,t)=>{let n=[],o=null,s=null,u=a.sort((p,m)=>z_(p,m,t));for(let p of u)V_(p,e,t)?(s=p,o||(o=p)):(s&&n.push([o,s]),s=null,o=null);o&&n.push([o,null]);let f=[];for(let[p,m]of n)p===m?f.push(p):!m&&p===u[0]?f.push("*"):m?p===u[0]?f.push(`<=${m}`):f.push(`${p} - ${m}`):f.push(`>=${p}`);let d=f.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return d.length<c.length?d:e}});var Od=F((mv,Fd)=>{"use strict";var Cd=Ve(),Xa=rn(),{ANY:Ga}=Xa,an=on(),Ya=We(),H_=(a,e,t={})=>{if(a===e)return!0;a=new Cd(a,t),e=new Cd(e,t);let n=!1;e:for(let o of a.set){for(let s of e.set){let u=G_(o,s,t);if(n=n||u!==null,u)continue e}if(n)return!1}return!0},K_=[new Xa(">=0.0.0-0")],Id=[new Xa(">=0.0.0")],G_=(a,e,t)=>{if(a===e)return!0;if(a.length===1&&a[0].semver===Ga){if(e.length===1&&e[0].semver===Ga)return!0;t.includePrerelease?a=K_:a=Id}if(e.length===1&&e[0].semver===Ga){if(t.includePrerelease)return!0;e=Id}let n=new Set,o,s;for(let g of a)g.operator===">"||g.operator===">="?o=Dd(o,g,t):g.operator==="<"||g.operator==="<="?s=$d(s,g,t):n.add(g.semver);if(n.size>1)return null;let u;if(o&&s){if(u=Ya(o.semver,s.semver,t),u>0)return null;if(u===0&&(o.operator!==">="||s.operator!=="<="))return null}for(let g of n){if(o&&!an(g,String(o),t)||s&&!an(g,String(s),t))return null;for(let w of e)if(!an(g,String(w),t))return!1;return!0}let f,d,c,p,m=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,y=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1;m&&m.prerelease.length===1&&s.operator==="<"&&m.prerelease[0]===0&&(m=!1);for(let g of e){if(p=p||g.operator===">"||g.operator===">=",c=c||g.operator==="<"||g.operator==="<=",o){if(y&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===y.major&&g.semver.minor===y.minor&&g.semver.patch===y.patch&&(y=!1),g.operator===">"||g.operator===">="){if(f=Dd(o,g,t),f===g&&f!==o)return!1}else if(o.operator===">="&&!an(o.semver,String(g),t))return!1}if(s){if(m&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===m.major&&g.semver.minor===m.minor&&g.semver.patch===m.patch&&(m=!1),g.operator==="<"||g.operator==="<="){if(d=$d(s,g,t),d===g&&d!==s)return!1}else if(s.operator==="<="&&!an(s.semver,String(g),t))return!1}if(!g.operator&&(s||o)&&u!==0)return!1}return!(o&&c&&!s&&u!==0||s&&p&&!o&&u!==0||y||m)},Dd=(a,e,t)=>{if(!a)return e;let n=Ya(a.semver,e.semver,t);return n>0?a:n<0||e.operator===">"&&a.operator===">="?e:a},$d=(a,e,t)=>{if(!a)return e;let n=Ya(a.semver,e.semver,t);return n<0?a:n>0||e.operator==="<"&&a.operator==="<="?e:a};Fd.exports=H_});var Nd=F((gv,Md)=>{"use strict";var Qa=Lr(),Bd=Zr(),X_=ge(),qd=Oa(),Y_=nr(),Q_=cc(),J_=fc(),Z_=mc(),eb=bc(),tb=wc(),rb=Sc(),nb=Pc(),ob=xc(),ib=We(),ab=Tc(),sb=Ic(),lb=wo(),ub=Oc(),cb=qc(),db=tn(),fb=vo(),pb=qa(),hb=Ma(),mb=So(),gb=Ro(),_b=Na(),bb=Kc(),yb=rn(),wb=Ve(),vb=on(),Sb=ld(),Rb=cd(),Pb=fd(),Eb=md(),xb=_d(),Lb=xo(),Ab=Rd(),kb=Ed(),Tb=Ad(),Cb=Td(),Ib=Od();Md.exports={parse:Y_,valid:Q_,clean:J_,inc:Z_,diff:eb,major:tb,minor:rb,patch:nb,prerelease:ob,compare:ib,rcompare:ab,compareLoose:sb,compareBuild:lb,sort:ub,rsort:cb,gt:db,lt:fb,eq:pb,neq:hb,gte:mb,lte:gb,cmp:_b,coerce:bb,Comparator:yb,Range:wb,satisfies:vb,toComparators:Sb,maxSatisfying:Rb,minSatisfying:Pb,minVersion:Eb,validRange:xb,outside:Lb,gtr:Ab,ltr:kb,intersects:Tb,simplifyRange:Cb,subset:Ib,SemVer:X_,re:Qa.re,src:Qa.src,tokens:Qa.t,SEMVER_SPEC_VERSION:Bd.SEMVER_SPEC_VERSION,RELEASE_TYPES:Bd.RELEASE_TYPES,compareIdentifiers:qd.compareIdentifiers,rcompareIdentifiers:qd.rcompareIdentifiers}});var Gd=F((yv,Kd)=>{"use strict";var Hd=require("child_process"),Wd=Hd.spawn,Db=Hd.exec;Kd.exports=function(a,e,t){if(typeof e=="function"&&t===void 0&&(t=e,e=void 0),a=parseInt(a),Number.isNaN(a)){if(t)return t(new Error("pid must be a number"));throw new Error("pid must be a number")}var n={},o={};switch(n[a]=[],o[a]=1,process.platform){case"win32":Db("taskkill /pid "+a+" /T /F",t);break;case"darwin":Ja(a,n,o,function(s){return Wd("pgrep",["-P",s])},function(){Vd(n,e,t)});break;default:Ja(a,n,o,function(s){return Wd("ps",["-o","pid","--no-headers","--ppid",s])},function(){Vd(n,e,t)});break}};function Vd(a,e,t){var n={};try{Object.keys(a).forEach(function(o){a[o].forEach(function(s){n[s]||(zd(s,e),n[s]=1)}),n[o]||(zd(o,e),n[o]=1)})}catch(o){if(t)return t(o);throw o}if(t)return t()}function zd(a,e){try{process.kill(parseInt(a,10),e)}catch(t){if(t.code!=="ESRCH")throw t}}function Ja(a,e,t,n,o){var s=n(a),u="";s.stdout.on("data",function(c){var c=c.toString("ascii");u+=c});var f=function(d){if(delete t[a],d!=0){Object.keys(t).length==0&&o();return}u.match(/\d+/g).forEach(function(c){c=parseInt(c,10),e[a].push(c),e[c]=[],t[c]=1,Ja(c,e,t,n,o)})};s.on("close",f)}});var of=F((Bv,nf)=>{"use strict";var{hasOwnProperty:cs}=Object.prototype,ds=(a,e={})=>{typeof e=="string"&&(e={section:e}),e.align=e.align===!0,e.newline=e.newline===!0,e.sort=e.sort===!0,e.whitespace=e.whitespace===!0||e.align===!0,e.platform=e.platform||typeof process<"u"&&process.platform,e.bracketedArray=e.bracketedArray!==!1;let t=e.platform==="win32"?`\r
3291
3291
  `:`
3292
- `,n=e.whitespace?" = ":"=",o=[],s=e.sort?Object.keys(a).sort():Object.keys(a),u=0;e.align&&(u=yt(s.filter(c=>a[c]===null||Array.isArray(a[c])||typeof a[c]!="object").map(c=>Array.isArray(a[c])?`${c}[]`:c).concat([""]).reduce((c,p)=>yt(c).length>=yt(p).length?c:p)).length);let f="",d=e.bracketedArray?"[]":"";for(let c of s){let p=a[c];if(p&&Array.isArray(p))for(let m of p)f+=yt(`${c}${d}`).padEnd(u," ")+n+yt(m)+t;else p&&typeof p=="object"?o.push(c):f+=yt(c).padEnd(u," ")+n+yt(p)+t}e.section&&f.length&&(f="["+yt(e.section)+"]"+(e.newline?t+t:t)+f);for(let c of o){let p=tf(c,".").join("\\."),m=(e.section?e.section+".":"")+p,y=ds(a[c],{...e,section:m});f.length&&y.length&&(f+=t),f+=y}return f};function tf(a,e){var t=0,n=0,o=0,s=[];do if(o=a.indexOf(e,t),o!==-1){if(t=o+e.length,o>0&&a[o-1]==="\\")continue;s.push(a.slice(n,o)),n=o+e.length}while(o!==-1);return s.push(a.slice(n)),s}var ef=(a,e={})=>{e.bracketedArray=e.bracketedArray!==!1;let t=Object.create(null),n=t,o=null,s=/^\[([^\]]*)\]\s*$|^([^=]+)(=(.*))?$/i,u=a.split(/[\r\n]+/g),f={};for(let c of u){if(!c||c.match(/^\s*[;#]/)||c.match(/^\s*$/))continue;let p=c.match(s);if(!p)continue;if(p[1]!==void 0){if(o=To(p[1]),o==="__proto__"){n=Object.create(null);continue}n=t[o]=t[o]||Object.create(null);continue}let m=To(p[2]),y;e.bracketedArray?y=m.length>2&&m.slice(-2)==="[]":(f[m]=(f?.[m]||0)+1,y=f[m]>1);let g=y&&m.endsWith("[]")?m.slice(0,-2):m;if(g==="__proto__")continue;let w=p[3]?To(p[4]):!0,R=w==="true"||w==="false"||w==="null"?JSON.parse(w):w;y&&(cs.call(n,g)?Array.isArray(n[g])||(n[g]=[n[g]]):n[g]=[]),Array.isArray(n[g])?n[g].push(R):n[g]=R}let d=[];for(let c of Object.keys(t)){if(!cs.call(t,c)||typeof t[c]!="object"||Array.isArray(t[c]))continue;let p=tf(c,".");n=t;let m=p.pop(),y=m.replace(/\\\./g,".");for(let g of p)g!=="__proto__"&&((!cs.call(n,g)||typeof n[g]!="object")&&(n[g]=Object.create(null)),n=n[g]);n===t&&y===m||(n[y]=t[c],d.push(c))}for(let c of d)delete t[c];return t},rf=a=>a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"),yt=a=>typeof a!="string"||a.match(/[=\r\n]/)||a.match(/^\[/)||a.length>1&&rf(a)||a!==a.trim()?JSON.stringify(a):a.split(";").join("\\;").split("#").join("\\#"),To=a=>{if(a=(a||"").trim(),rf(a)){a.charAt(0)==="'"&&(a=a.slice(1,-1));try{a=JSON.parse(a)}catch{}}else{let e=!1,t="";for(let n=0,o=a.length;n<o;n++){let s=a.charAt(n);if(e)"\\;#".indexOf(s)!==-1?t+=s:t+="\\"+s,e=!1;else{if(";#".indexOf(s)!==-1)break;s==="\\"?e=!0:t+=s}}return e&&(t+="\\"),t.trim()}return a};nf.exports={parse:ef,decode:ef,stringify:ds,encode:ds,safe:yt,unsafe:To}});var Bb={};Z(Bb,{ActiveFactorioVersion:()=>fs,ApiDocGenerator:()=>ta,BufferSplitter:()=>kr,BufferStream:()=>ir,EncodingUtil:()=>mi,FactorioModDebugSession:()=>is,LuaControlBehaviorType:()=>us,LuaFlowStatisticsType:()=>ln,LuaItemStackType:()=>bt,LuaLSAddon:()=>Ui,LuaObjectType:()=>ls,MapVersion:()=>Dt,ModManager:()=>Sr,ModSettings:()=>Xr,PropertyTree:()=>Rr,PropertyTreeType:()=>Ji,ProtoDocGenerator:()=>ra,SavedLuaTypeTag:()=>ss,ScriptDat:()=>as,getModInfo:()=>$u,substitutePathVariables:()=>Io});module.exports=eh(Bb);var mi={};Z(mi,{bufferChunks:()=>pi,encodeBreakpoints:()=>hi,encodeVarInt:()=>Gt,luaBlockQuote:()=>It,objectToLua:()=>Nr});function It(a){let e=a.toString().match(/\]=*$/),t="=".repeat((a.toString().match(/\]=*\]/g)||[]).map(n=>n.length-1).reduce((n,o)=>Math.max(n,o),e?e[0].length:0));return Buffer.concat([Buffer.from(`[${t}[`),a,Buffer.from(`]${t}]`)])}function pi(a,e){let t=[],n=a.length,o=0;for(;o<n;)t.push(a.slice(o,o+=e));return t}function Nr(a){switch(typeof a){case"object":let e=[Buffer.from("{")];for(let t in a)Object.prototype.hasOwnProperty.call(a,t)&&(e.push(Buffer.from("[")),e.push(Nr(t)),e.push(Buffer.from("]=")),e.push(Nr(a[t])),e.push(Buffer.from(",")));return e.push(Buffer.from("}")),Buffer.concat(e);case"string":return Buffer.from(`"${a}"`);case"boolean":case"number":return Buffer.from(`${a}`)}}function Gt(a){if(a>4294967280)throw new Error("Values > 0xFFFFFFF0 are reserved");if(a<0)throw new Error("Value must be positive");a===10?a=4294967295:a===26?a=4294967294:a===13&&(a=4294967293);let e,t,n,o;if(a<128)return Buffer.from([a]);a<2048?(o=2,e=192,t=31,n=6):a<65536?(o=3,e=224,t=15,n=12):a<2097152?(o=4,e=240,t=7,n=18):a<67108864?(o=5,e=248,t=3,n=24):(o=6,e=252,t=3,n=30);let s=Buffer.alloc(o);s[0]=e|a>>n&t;for(let u=n-6,f=1;u>=0;u-=6,f++)s[f]=128|a>>u&63;return s}function jn(a){let e=Buffer.from(a,"utf8"),t=Gt(e.length);return Buffer.concat([t,e])}function Nn(a){let e=Gt(a.line),t=0,n=new Array;return a.condition&&(t|=1,n.push(jn(a.condition.replace(/[\r\n]+/g," ")))),a.hitCondition&&(t|=2,n.push(jn(a.hitCondition.replace(/[\r\n]+/g," ")))),a.logMessage&&(t|=4,n.push(jn(a.logMessage.replace(/[\r\n]+/g," ")))),Buffer.concat([e,Buffer.from([t]),Buffer.concat(n)])}function hi(a,e){let t=jn(a),n=e.filter(f=>!f.condition&&!f.hitCondition&&!f.logMessage).map(f=>f.line),o;if(n.length===0)o=Buffer.from([255]);else if(n.length===10){let f=Buffer.from([254]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}else if(n.length===26){let f=Buffer.from([253]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}else if(n.length===13){let f=Buffer.from([252]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}else{let f=Buffer.from([n.length]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}let s=e.filter(f=>f.condition||f.hitCondition||f.logMessage),u;if(s.length===0)u=Buffer.from([255]);else if(s.length===10){let f=Buffer.from([254]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Nn(d)))])}else if(s.length===26){let f=Buffer.from([253]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Nn(d)))])}else if(s.length===13){let f=Buffer.from([252]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Nn(d)))])}else{let f=Buffer.from([s.length]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Nn(d)))])}return Buffer.concat([t,o,u])}var Ui={};Z(Ui,{getConfig:()=>tm,getLuaFiles:()=>em});var Xt="2.0.4";var zn;async function em(){if(!zn){zn=[];let a=await Promise.resolve().then(()=>(Ql(),Yl)),e=a.default,t=a.filenames;for(let n=0;n<e.length;n++)zn.push({name:t[n].replace("../luals-addon/",""),content:e[n].default})}return zn}async function tm(a){return{name:"factorio/config.json",content:JSON.stringify(Object.assign(await Promise.resolve().then(()=>le(Jl())),{bundleVersion:Xt,factorioVersion:a}))}}var Ee=le(require("fs/promises")),nt=le(require("path"));var Tu=le(require("node:http"),1),Iu=le(require("node:https"),1),er=le(require("node:zlib"),1),Ce=le(require("node:stream"),1),Gr=require("node:buffer");function rm(a){if(!/^data:/i.test(a))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');a=a.replace(/\r?\n/g,"");let e=a.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");let t=a.substring(5,e).split(";"),n="",o=!1,s=t[0]||"text/plain",u=s;for(let p=1;p<t.length;p++)t[p]==="base64"?o=!0:t[p]&&(u+=`;${t[p]}`,t[p].indexOf("charset=")===0&&(n=t[p].substring(8)));!t[0]&&!n.length&&(u+=";charset=US-ASCII",n="US-ASCII");let f=o?"base64":"ascii",d=unescape(a.substring(e+1)),c=Buffer.from(d,f);return c.type=s,c.typeFull=u,c.charset=n,c}var Zl=rm;var Ne=le(require("node:stream"),1),ht=require("node:util"),Te=require("node:buffer");jr();Wn();var pt=class extends Error{constructor(e,t){super(e),Error.captureStackTrace(this,this.constructor),this.type=t}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}};var Re=class extends pt{constructor(e,t,n){super(e,t),n&&(this.code=this.errno=n.code,this.erroredSysCall=n.syscall)}};var Hn=Symbol.toStringTag,Wi=a=>typeof a=="object"&&typeof a.append=="function"&&typeof a.delete=="function"&&typeof a.get=="function"&&typeof a.getAll=="function"&&typeof a.has=="function"&&typeof a.set=="function"&&typeof a.sort=="function"&&a[Hn]==="URLSearchParams",Vr=a=>a&&typeof a=="object"&&typeof a.arrayBuffer=="function"&&typeof a.type=="string"&&typeof a.stream=="function"&&typeof a.constructor=="function"&&/^(Blob|File)$/.test(a[Hn]),lu=a=>typeof a=="object"&&(a[Hn]==="AbortSignal"||a[Hn]==="EventTarget"),uu=(a,e)=>{let t=new URL(e).hostname,n=new URL(a).hostname;return t===n||t.endsWith(`.${n}`)},cu=(a,e)=>{let t=new URL(e).protocol,n=new URL(a).protocol;return t===n};var _m=(0,ht.promisify)(Ne.default.pipeline),Pe=Symbol("Body internals"),rt=class{constructor(e,{size:t=0}={}){let n=null;e===null?e=null:Wi(e)?e=Te.Buffer.from(e.toString()):Vr(e)||Te.Buffer.isBuffer(e)||(ht.types.isAnyArrayBuffer(e)?e=Te.Buffer.from(e):ArrayBuffer.isView(e)?e=Te.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof Ne.default||(e instanceof Qt?(e=su(e),n=e.type.split("=")[1]):e=Te.Buffer.from(String(e))));let o=e;Te.Buffer.isBuffer(e)?o=Ne.default.Readable.from(e):Vr(e)&&(o=Ne.default.Readable.from(e.stream())),this[Pe]={body:e,stream:o,boundary:n,disturbed:!1,error:null},this.size=t,e instanceof Ne.default&&e.on("error",s=>{let u=s instanceof pt?s:new Re(`Invalid response body while trying to fetch ${this.url}: ${s.message}`,"system",s);this[Pe].error=u})}get body(){return this[Pe].stream}get bodyUsed(){return this[Pe].disturbed}async arrayBuffer(){let{buffer:e,byteOffset:t,byteLength:n}=await Gi(this);return e.slice(t,t+n)}async formData(){let e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){let n=new Qt,o=new URLSearchParams(await this.text());for(let[s,u]of o)n.append(s,u);return n}let{toFormData:t}=await Promise.resolve().then(()=>(mu(),hu));return t(this.body,e)}async blob(){let e=this.headers&&this.headers.get("content-type")||this[Pe].body&&this[Pe].body.type||"",t=await this.arrayBuffer();return new ft([t],{type:e})}async json(){let e=await this.text();return JSON.parse(e)}async text(){let e=await Gi(this);return new TextDecoder().decode(e)}buffer(){return Gi(this)}};rt.prototype.buffer=(0,ht.deprecate)(rt.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(rt.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,ht.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function Gi(a){if(a[Pe].disturbed)throw new TypeError(`body used already for: ${a.url}`);if(a[Pe].disturbed=!0,a[Pe].error)throw a[Pe].error;let{body:e}=a;if(e===null)return Te.Buffer.alloc(0);if(!(e instanceof Ne.default))return Te.Buffer.alloc(0);let t=[],n=0;try{for await(let o of e){if(a.size>0&&n+o.length>a.size){let s=new Re(`content size at ${a.url} over limit: ${a.size}`,"max-size");throw e.destroy(s),s}n+=o.length,t.push(o)}}catch(o){throw o instanceof pt?o:new Re(`Invalid response body while trying to fetch ${a.url}: ${o.message}`,"system",o)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return t.every(o=>typeof o=="string")?Te.Buffer.from(t.join("")):Te.Buffer.concat(t,n)}catch(o){throw new Re(`Could not create Buffer from response body for ${a.url}: ${o.message}`,"system",o)}else throw new Re(`Premature close of server response while trying to fetch ${a.url}`)}var yr=(a,e)=>{let t,n,{body:o}=a[Pe];if(a.bodyUsed)throw new Error("cannot clone body after it is used");return o instanceof Ne.default&&typeof o.getBoundary!="function"&&(t=new Ne.PassThrough({highWaterMark:e}),n=new Ne.PassThrough({highWaterMark:e}),o.pipe(t),o.pipe(n),a[Pe].stream=t,o=n),o},bm=(0,ht.deprecate)(a=>a.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),Yn=(a,e)=>a===null?null:typeof a=="string"?"text/plain;charset=UTF-8":Wi(a)?"application/x-www-form-urlencoded;charset=UTF-8":Vr(a)?a.type||null:Te.Buffer.isBuffer(a)||ht.types.isAnyArrayBuffer(a)||ArrayBuffer.isView(a)?null:a instanceof Qt?`multipart/form-data; boundary=${e[Pe].boundary}`:a&&typeof a.getBoundary=="function"?`multipart/form-data;boundary=${bm(a)}`:a instanceof Ne.default?null:"text/plain;charset=UTF-8",gu=a=>{let{body:e}=a[Pe];return e===null?0:Vr(e)?e.size:Te.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},_u=async(a,{body:e})=>{e===null?a.end():await _m(e,a)};var Xi=require("node:util"),Hr=le(require("node:http"),1),Qn=typeof Hr.default.validateHeaderName=="function"?Hr.default.validateHeaderName:a=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(a)){let e=new TypeError(`Header name must be a valid HTTP token [${a}]`);throw Object.defineProperty(e,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),e}},Yi=typeof Hr.default.validateHeaderValue=="function"?Hr.default.validateHeaderValue:(a,e)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(e)){let t=new TypeError(`Invalid character in header content ["${a}"]`);throw Object.defineProperty(t,"code",{value:"ERR_INVALID_CHAR"}),t}},Ie=class a extends URLSearchParams{constructor(e){let t=[];if(e instanceof a){let n=e.raw();for(let[o,s]of Object.entries(n))t.push(...s.map(u=>[o,u]))}else if(e!=null)if(typeof e=="object"&&!Xi.types.isBoxedPrimitive(e)){let n=e[Symbol.iterator];if(n==null)t.push(...Object.entries(e));else{if(typeof n!="function")throw new TypeError("Header pairs must be iterable");t=[...e].map(o=>{if(typeof o!="object"||Xi.types.isBoxedPrimitive(o))throw new TypeError("Each header pair must be an iterable object");return[...o]}).map(o=>{if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...o]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return t=t.length>0?t.map(([n,o])=>(Qn(n),Yi(n,String(o)),[String(n).toLowerCase(),String(o)])):void 0,super(t),new Proxy(this,{get(n,o,s){switch(o){case"append":case"set":return(u,f)=>(Qn(u),Yi(u,String(f)),URLSearchParams.prototype[o].call(n,String(u).toLowerCase(),String(f)));case"delete":case"has":case"getAll":return u=>(Qn(u),URLSearchParams.prototype[o].call(n,String(u).toLowerCase()));case"keys":return()=>(n.sort(),new Set(URLSearchParams.prototype.keys.call(n)).keys());default:return Reflect.get(n,o,s)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){let t=this.getAll(e);if(t.length===0)return null;let n=t.join(", ");return/^content-encoding$/i.test(e)&&(n=n.toLowerCase()),n}forEach(e,t=void 0){for(let n of this.keys())Reflect.apply(e,t,[this.get(n),n,this])}*values(){for(let e of this.keys())yield this.get(e)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((e,t)=>(e[t]=this.getAll(t),e),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((e,t)=>{let n=this.getAll(t);return t==="host"?e[t]=n[0]:e[t]=n.length>1?n:n[0],e},{})}};Object.defineProperties(Ie.prototype,["get","entries","forEach","values"].reduce((a,e)=>(a[e]={enumerable:!0},a),{}));function bu(a=[]){return new Ie(a.reduce((e,t,n,o)=>(n%2===0&&e.push(o.slice(n,n+2)),e),[]).filter(([e,t])=>{try{return Qn(e),Yi(e,String(t)),!0}catch{return!1}}))}var ym=new Set([301,302,303,307,308]),Jn=a=>ym.has(a);var Ye=Symbol("Response internals"),je=class a extends rt{constructor(e=null,t={}){super(e,t);let n=t.status!=null?t.status:200,o=new Ie(t.headers);if(e!==null&&!o.has("Content-Type")){let s=Yn(e,this);s&&o.append("Content-Type",s)}this[Ye]={type:"default",url:t.url,status:n,statusText:t.statusText||"",headers:o,counter:t.counter,highWaterMark:t.highWaterMark}}get type(){return this[Ye].type}get url(){return this[Ye].url||""}get status(){return this[Ye].status}get ok(){return this[Ye].status>=200&&this[Ye].status<300}get redirected(){return this[Ye].counter>0}get statusText(){return this[Ye].statusText}get headers(){return this[Ye].headers}get highWaterMark(){return this[Ye].highWaterMark}clone(){return new a(yr(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,t=302){if(!Jn(t))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new a(null,{headers:{location:new URL(e).toString()},status:t})}static error(){let e=new a(null,{status:0,statusText:""});return e[Ye].type="error",e}static json(e=void 0,t={}){let n=JSON.stringify(e);if(n===void 0)throw new TypeError("data is not JSON serializable");let o=new Ie(t&&t.headers);return o.has("content-type")||o.set("content-type","application/json"),new a(n,{...t,headers:o})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(je.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var Lu=require("node:url"),Au=require("node:util");var yu=a=>{if(a.search)return a.search;let e=a.href.length-1,t=a.hash||(a.href[e]==="#"?"#":"");return a.href[e-t.length]==="?"?"?":""};var vu=require("node:net");function wu(a,e=!1){return a==null||(a=new URL(a),/^(about|blob|data):$/.test(a.protocol))?"no-referrer":(a.username="",a.password="",a.hash="",e&&(a.pathname="",a.search=""),a)}var Su=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),Ru="strict-origin-when-cross-origin";function Pu(a){if(!Su.has(a))throw new TypeError(`Invalid referrerPolicy: ${a}`);return a}function wm(a){if(/^(http|ws)s:$/.test(a.protocol))return!0;let e=a.host.replace(/(^\[)|(]$)/g,""),t=(0,vu.isIP)(e);return t===4&&/^127\./.test(e)||t===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(e)?!0:a.host==="localhost"||a.host.endsWith(".localhost")?!1:a.protocol==="file:"}function wr(a){return/^about:(blank|srcdoc)$/.test(a)||a.protocol==="data:"||/^(blob|filesystem):$/.test(a.protocol)?!0:wm(a)}function Eu(a,{referrerURLCallback:e,referrerOriginCallback:t}={}){if(a.referrer==="no-referrer"||a.referrerPolicy==="")return null;let n=a.referrerPolicy;if(a.referrer==="about:client")return"no-referrer";let o=a.referrer,s=wu(o),u=wu(o,!0);s.toString().length>4096&&(s=u),e&&(s=e(s)),t&&(u=t(u));let f=new URL(a.url);switch(n){case"no-referrer":return"no-referrer";case"origin":return u;case"unsafe-url":return s;case"strict-origin":return wr(s)&&!wr(f)?"no-referrer":u.toString();case"strict-origin-when-cross-origin":return s.origin===f.origin?s:wr(s)&&!wr(f)?"no-referrer":u;case"same-origin":return s.origin===f.origin?s:"no-referrer";case"origin-when-cross-origin":return s.origin===f.origin?s:u;case"no-referrer-when-downgrade":return wr(s)&&!wr(f)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${n}`)}}function xu(a){let e=(a.get("referrer-policy")||"").split(/[,\s]+/),t="";for(let n of e)n&&Su.has(n)&&(t=n);return t}var fe=Symbol("Request internals"),Kr=a=>typeof a=="object"&&typeof a[fe]=="object",vm=(0,Au.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),Zt=class a extends rt{constructor(e,t={}){let n;if(Kr(e)?n=new URL(e.url):(n=new URL(e),e={}),n.username!==""||n.password!=="")throw new TypeError(`${n} is an url with embedded credentials.`);let o=t.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(o)&&(o=o.toUpperCase()),!Kr(t)&&"data"in t&&vm(),(t.body!=null||Kr(e)&&e.body!==null)&&(o==="GET"||o==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=t.body?t.body:Kr(e)&&e.body!==null?yr(e):null;super(s,{size:t.size||e.size||0});let u=new Ie(t.headers||e.headers||{});if(s!==null&&!u.has("Content-Type")){let c=Yn(s,this);c&&u.set("Content-Type",c)}let f=Kr(e)?e.signal:null;if("signal"in t&&(f=t.signal),f!=null&&!lu(f))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let d=t.referrer==null?e.referrer:t.referrer;if(d==="")d="no-referrer";else if(d){let c=new URL(d);d=/^about:(\/\/)?client$/.test(c)?"client":c}else d=void 0;this[fe]={method:o,redirect:t.redirect||e.redirect||"follow",headers:u,parsedURL:n,signal:f,referrer:d},this.follow=t.follow===void 0?e.follow===void 0?20:e.follow:t.follow,this.compress=t.compress===void 0?e.compress===void 0?!0:e.compress:t.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent,this.highWaterMark=t.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=t.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=t.referrerPolicy||e.referrerPolicy||""}get method(){return this[fe].method}get url(){return(0,Lu.format)(this[fe].parsedURL)}get headers(){return this[fe].headers}get redirect(){return this[fe].redirect}get signal(){return this[fe].signal}get referrer(){if(this[fe].referrer==="no-referrer")return"";if(this[fe].referrer==="client")return"about:client";if(this[fe].referrer)return this[fe].referrer.toString()}get referrerPolicy(){return this[fe].referrerPolicy}set referrerPolicy(e){this[fe].referrerPolicy=Pu(e)}clone(){return new a(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(Zt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var ku=a=>{let{parsedURL:e}=a[fe],t=new Ie(a[fe].headers);t.has("Accept")||t.set("Accept","*/*");let n=null;if(a.body===null&&/^(post|put)$/i.test(a.method)&&(n="0"),a.body!==null){let f=gu(a);typeof f=="number"&&!Number.isNaN(f)&&(n=String(f))}n&&t.set("Content-Length",n),a.referrerPolicy===""&&(a.referrerPolicy=Ru),a.referrer&&a.referrer!=="no-referrer"?a[fe].referrer=Eu(a):a[fe].referrer="no-referrer",a[fe].referrer instanceof URL&&t.set("Referer",a.referrer),t.has("User-Agent")||t.set("User-Agent","node-fetch"),a.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip, deflate, br");let{agent:o}=a;typeof o=="function"&&(o=o(e));let s=yu(e),u={path:e.pathname+s,method:a.method,headers:t[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:a.insecureHTTPParser,agent:o};return{parsedURL:e,options:u}};var Zn=class extends pt{constructor(e,t="aborted"){super(e,t)}};Wn();Hi();var Sm=new Set(["data:","http:","https:"]);async function vr(a,e){return new Promise((t,n)=>{let o=new Zt(a,e),{parsedURL:s,options:u}=ku(o);if(!Sm.has(s.protocol))throw new TypeError(`node-fetch cannot load ${a}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let w=Zl(o.url),R=new je(w,{headers:{"Content-Type":w.typeFull}});t(R);return}let f=(s.protocol==="https:"?Iu.default:Tu.default).request,{signal:d}=o,c=null,p=()=>{let w=new Zn("The operation was aborted.");n(w),o.body&&o.body instanceof Ce.default.Readable&&o.body.destroy(w),!(!c||!c.body)&&c.body.emit("error",w)};if(d&&d.aborted){p();return}let m=()=>{p(),g()},y=f(s.toString(),u);d&&d.addEventListener("abort",m);let g=()=>{y.abort(),d&&d.removeEventListener("abort",m)};y.on("error",w=>{n(new Re(`request to ${o.url} failed, reason: ${w.message}`,"system",w)),g()}),Rm(y,w=>{c&&c.body&&c.body.destroy(w)}),process.version<"v14"&&y.on("socket",w=>{let R;w.prependListener("end",()=>{R=w._eventsCount}),w.prependListener("close",k=>{if(c&&R<w._eventsCount&&!k){let I=new Error("Premature close");I.code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",I)}})}),y.on("response",w=>{y.setTimeout(0);let R=bu(w.rawHeaders);if(Jn(w.statusCode)){let G=R.get("Location"),X=null;try{X=G===null?null:new URL(G,o.url)}catch{if(o.redirect!=="manual"){n(new Re(`uri requested responds with an invalid redirect URL: ${G}`,"invalid-redirect")),g();return}}switch(o.redirect){case"error":n(new Re(`uri requested responds with a redirect, redirect mode is set to error: ${o.url}`,"no-redirect")),g();return;case"manual":break;case"follow":{if(X===null)break;if(o.counter>=o.follow){n(new Re(`maximum redirect reached at: ${o.url}`,"max-redirect")),g();return}let J={headers:new Ie(o.headers),follow:o.follow,counter:o.counter+1,agent:o.agent,compress:o.compress,method:o.method,body:yr(o),signal:o.signal,size:o.size,referrer:o.referrer,referrerPolicy:o.referrerPolicy};if(!uu(o.url,X)||!cu(o.url,X))for(let He of["authorization","www-authenticate","cookie","cookie2"])J.headers.delete(He);if(w.statusCode!==303&&o.body&&e.body instanceof Ce.default.Readable){n(new Re("Cannot follow redirect with body being a readable stream","unsupported-redirect")),g();return}(w.statusCode===303||(w.statusCode===301||w.statusCode===302)&&o.method==="POST")&&(J.method="GET",J.body=void 0,J.headers.delete("content-length"));let We=xu(R);We&&(J.referrerPolicy=We),t(vr(new Zt(X,J))),g();return}default:return n(new TypeError(`Redirect option '${o.redirect}' is not a valid value of RequestRedirect`))}}d&&w.once("end",()=>{d.removeEventListener("abort",m)});let k=(0,Ce.pipeline)(w,new Ce.PassThrough,G=>{G&&n(G)});process.version<"v12.10"&&w.on("aborted",m);let I={url:o.url,status:w.statusCode,statusText:w.statusMessage,headers:R,size:o.size,counter:o.counter,highWaterMark:o.highWaterMark},E=R.get("Content-Encoding");if(!o.compress||o.method==="HEAD"||E===null||w.statusCode===204||w.statusCode===304){c=new je(k,I),t(c);return}let re={flush:er.default.Z_SYNC_FLUSH,finishFlush:er.default.Z_SYNC_FLUSH};if(E==="gzip"||E==="x-gzip"){k=(0,Ce.pipeline)(k,er.default.createGunzip(re),G=>{G&&n(G)}),c=new je(k,I),t(c);return}if(E==="deflate"||E==="x-deflate"){let G=(0,Ce.pipeline)(w,new Ce.PassThrough,X=>{X&&n(X)});G.once("data",X=>{(X[0]&15)===8?k=(0,Ce.pipeline)(k,er.default.createInflate(),J=>{J&&n(J)}):k=(0,Ce.pipeline)(k,er.default.createInflateRaw(),J=>{J&&n(J)}),c=new je(k,I),t(c)}),G.once("end",()=>{c||(c=new je(k,I),t(c))});return}if(E==="br"){k=(0,Ce.pipeline)(k,er.default.createBrotliDecompress(),G=>{G&&n(G)}),c=new je(k,I),t(c);return}c=new je(k,I),t(c)}),_u(y,o).catch(n)})}function Rm(a,e){let t=Gr.Buffer.from(`0\r
3292
+ `,n=e.whitespace?" = ":"=",o=[],s=e.sort?Object.keys(a).sort():Object.keys(a),u=0;e.align&&(u=yt(s.filter(c=>a[c]===null||Array.isArray(a[c])||typeof a[c]!="object").map(c=>Array.isArray(a[c])?`${c}[]`:c).concat([""]).reduce((c,p)=>yt(c).length>=yt(p).length?c:p)).length);let f="",d=e.bracketedArray?"[]":"";for(let c of s){let p=a[c];if(p&&Array.isArray(p))for(let m of p)f+=yt(`${c}${d}`).padEnd(u," ")+n+yt(m)+t;else p&&typeof p=="object"?o.push(c):f+=yt(c).padEnd(u," ")+n+yt(p)+t}e.section&&f.length&&(f="["+yt(e.section)+"]"+(e.newline?t+t:t)+f);for(let c of o){let p=tf(c,".").join("\\."),m=(e.section?e.section+".":"")+p,y=ds(a[c],{...e,section:m});f.length&&y.length&&(f+=t),f+=y}return f};function tf(a,e){var t=0,n=0,o=0,s=[];do if(o=a.indexOf(e,t),o!==-1){if(t=o+e.length,o>0&&a[o-1]==="\\")continue;s.push(a.slice(n,o)),n=o+e.length}while(o!==-1);return s.push(a.slice(n)),s}var ef=(a,e={})=>{e.bracketedArray=e.bracketedArray!==!1;let t=Object.create(null),n=t,o=null,s=/^\[([^\]]*)\]\s*$|^([^=]+)(=(.*))?$/i,u=a.split(/[\r\n]+/g),f={};for(let c of u){if(!c||c.match(/^\s*[;#]/)||c.match(/^\s*$/))continue;let p=c.match(s);if(!p)continue;if(p[1]!==void 0){if(o=To(p[1]),o==="__proto__"){n=Object.create(null);continue}n=t[o]=t[o]||Object.create(null);continue}let m=To(p[2]),y;e.bracketedArray?y=m.length>2&&m.slice(-2)==="[]":(f[m]=(f?.[m]||0)+1,y=f[m]>1);let g=y&&m.endsWith("[]")?m.slice(0,-2):m;if(g==="__proto__")continue;let w=p[3]?To(p[4]):!0,R=w==="true"||w==="false"||w==="null"?JSON.parse(w):w;y&&(cs.call(n,g)?Array.isArray(n[g])||(n[g]=[n[g]]):n[g]=[]),Array.isArray(n[g])?n[g].push(R):n[g]=R}let d=[];for(let c of Object.keys(t)){if(!cs.call(t,c)||typeof t[c]!="object"||Array.isArray(t[c]))continue;let p=tf(c,".");n=t;let m=p.pop(),y=m.replace(/\\\./g,".");for(let g of p)g!=="__proto__"&&((!cs.call(n,g)||typeof n[g]!="object")&&(n[g]=Object.create(null)),n=n[g]);n===t&&y===m||(n[y]=t[c],d.push(c))}for(let c of d)delete t[c];return t},rf=a=>a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"),yt=a=>typeof a!="string"||a.match(/[=\r\n]/)||a.match(/^\[/)||a.length>1&&rf(a)||a!==a.trim()?JSON.stringify(a):a.split(";").join("\\;").split("#").join("\\#"),To=a=>{if(a=(a||"").trim(),rf(a)){a.charAt(0)==="'"&&(a=a.slice(1,-1));try{a=JSON.parse(a)}catch{}}else{let e=!1,t="";for(let n=0,o=a.length;n<o;n++){let s=a.charAt(n);if(e)"\\;#".indexOf(s)!==-1?t+=s:t+="\\"+s,e=!1;else{if(";#".indexOf(s)!==-1)break;s==="\\"?e=!0:t+=s}}return e&&(t+="\\"),t.trim()}return a};nf.exports={parse:ef,decode:ef,stringify:ds,encode:ds,safe:yt,unsafe:To}});var Ob={};Z(Ob,{ActiveFactorioVersion:()=>fs,ApiDocGenerator:()=>ta,BufferSplitter:()=>kr,BufferStream:()=>ir,EncodingUtil:()=>mi,FactorioModDebugSession:()=>is,LuaControlBehaviorType:()=>us,LuaFlowStatisticsType:()=>ln,LuaItemStackType:()=>bt,LuaLSAddon:()=>Ni,LuaObjectType:()=>ls,MapVersion:()=>Dt,ModManager:()=>Sr,ModSettings:()=>Xr,PropertyTree:()=>Rr,PropertyTreeType:()=>Ji,ProtoDocGenerator:()=>ra,SavedLuaTypeTag:()=>ss,ScriptDat:()=>as,getModInfo:()=>$u,substitutePathVariables:()=>Co});module.exports=eh(Ob);var mi={};Z(mi,{bufferChunks:()=>pi,encodeBreakpoints:()=>hi,encodeVarInt:()=>Gt,luaBlockQuote:()=>Ct,objectToLua:()=>Ur});function Ct(a){let e=a.toString().match(/\]=*$/),t="=".repeat((a.toString().match(/\]=*\]/g)||[]).map(n=>n.length-1).reduce((n,o)=>Math.max(n,o),e?e[0].length:0));return Buffer.concat([Buffer.from(`[${t}[`),a,Buffer.from(`]${t}]`)])}function pi(a,e){let t=[],n=a.length,o=0;for(;o<n;)t.push(a.slice(o,o+=e));return t}function Ur(a){switch(typeof a){case"object":let e=[Buffer.from("{")];for(let t in a)Object.prototype.hasOwnProperty.call(a,t)&&(e.push(Buffer.from("[")),e.push(Ur(t)),e.push(Buffer.from("]=")),e.push(Ur(a[t])),e.push(Buffer.from(",")));return e.push(Buffer.from("}")),Buffer.concat(e);case"string":return Buffer.from(`"${a}"`);case"boolean":case"number":return Buffer.from(`${a}`)}}function Gt(a){if(a>4294967280)throw new Error("Values > 0xFFFFFFF0 are reserved");if(a<0)throw new Error("Value must be positive");a===10?a=4294967295:a===26?a=4294967294:a===13&&(a=4294967293);let e,t,n,o;if(a<128)return Buffer.from([a]);a<2048?(o=2,e=192,t=31,n=6):a<65536?(o=3,e=224,t=15,n=12):a<2097152?(o=4,e=240,t=7,n=18):a<67108864?(o=5,e=248,t=3,n=24):(o=6,e=252,t=3,n=30);let s=Buffer.alloc(o);s[0]=e|a>>n&t;for(let u=n-6,f=1;u>=0;u-=6,f++)s[f]=128|a>>u&63;return s}function jn(a){let e=Buffer.from(a,"utf8"),t=Gt(e.length);return Buffer.concat([t,e])}function Un(a){let e=Gt(a.line),t=0,n=new Array;return a.condition&&(t|=1,n.push(jn(a.condition.replace(/[\r\n]+/g," ")))),a.hitCondition&&(t|=2,n.push(jn(a.hitCondition.replace(/[\r\n]+/g," ")))),a.logMessage&&(t|=4,n.push(jn(a.logMessage.replace(/[\r\n]+/g," ")))),Buffer.concat([e,Buffer.from([t]),Buffer.concat(n)])}function hi(a,e){let t=jn(a),n=e.filter(f=>!f.condition&&!f.hitCondition&&!f.logMessage).map(f=>f.line),o;if(n.length===0)o=Buffer.from([255]);else if(n.length===10){let f=Buffer.from([254]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}else if(n.length===26){let f=Buffer.from([253]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}else if(n.length===13){let f=Buffer.from([252]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}else{let f=Buffer.from([n.length]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Gt(d)))])}let s=e.filter(f=>f.condition||f.hitCondition||f.logMessage),u;if(s.length===0)u=Buffer.from([255]);else if(s.length===10){let f=Buffer.from([254]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Un(d)))])}else if(s.length===26){let f=Buffer.from([253]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Un(d)))])}else if(s.length===13){let f=Buffer.from([252]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Un(d)))])}else{let f=Buffer.from([s.length]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Un(d)))])}return Buffer.concat([t,o,u])}var Ni={};Z(Ni,{getConfig:()=>tm,getLuaFiles:()=>em});var Xt="2.0.5";var Wn;async function em(){if(!Wn){Wn=[];let a=await Promise.resolve().then(()=>(Ql(),Yl)),e=a.default,t=a.filenames;for(let n=0;n<e.length;n++)Wn.push({name:t[n].replace("../luals-addon/",""),content:e[n].default})}return Wn}async function tm(a){return{name:"factorio/config.json",content:JSON.stringify(Object.assign(await Promise.resolve().then(()=>le(Jl())),{bundleVersion:Xt,factorioVersion:a}))}}var Ee=le(require("fs/promises")),nt=le(require("path"));var Tu=le(require("node:http"),1),Cu=le(require("node:https"),1),er=le(require("node:zlib"),1),Ie=le(require("node:stream"),1),Gr=require("node:buffer");function rm(a){if(!/^data:/i.test(a))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');a=a.replace(/\r?\n/g,"");let e=a.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");let t=a.substring(5,e).split(";"),n="",o=!1,s=t[0]||"text/plain",u=s;for(let p=1;p<t.length;p++)t[p]==="base64"?o=!0:t[p]&&(u+=`;${t[p]}`,t[p].indexOf("charset=")===0&&(n=t[p].substring(8)));!t[0]&&!n.length&&(u+=";charset=US-ASCII",n="US-ASCII");let f=o?"base64":"ascii",d=unescape(a.substring(e+1)),c=Buffer.from(d,f);return c.type=s,c.typeFull=u,c.charset=n,c}var Zl=rm;var Ue=le(require("node:stream"),1),ht=require("node:util"),Te=require("node:buffer");jr();zn();var pt=class extends Error{constructor(e,t){super(e),Error.captureStackTrace(this,this.constructor),this.type=t}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}};var Re=class extends pt{constructor(e,t,n){super(e,t),n&&(this.code=this.errno=n.code,this.erroredSysCall=n.syscall)}};var Hn=Symbol.toStringTag,zi=a=>typeof a=="object"&&typeof a.append=="function"&&typeof a.delete=="function"&&typeof a.get=="function"&&typeof a.getAll=="function"&&typeof a.has=="function"&&typeof a.set=="function"&&typeof a.sort=="function"&&a[Hn]==="URLSearchParams",Vr=a=>a&&typeof a=="object"&&typeof a.arrayBuffer=="function"&&typeof a.type=="string"&&typeof a.stream=="function"&&typeof a.constructor=="function"&&/^(Blob|File)$/.test(a[Hn]),lu=a=>typeof a=="object"&&(a[Hn]==="AbortSignal"||a[Hn]==="EventTarget"),uu=(a,e)=>{let t=new URL(e).hostname,n=new URL(a).hostname;return t===n||t.endsWith(`.${n}`)},cu=(a,e)=>{let t=new URL(e).protocol,n=new URL(a).protocol;return t===n};var _m=(0,ht.promisify)(Ue.default.pipeline),Pe=Symbol("Body internals"),rt=class{constructor(e,{size:t=0}={}){let n=null;e===null?e=null:zi(e)?e=Te.Buffer.from(e.toString()):Vr(e)||Te.Buffer.isBuffer(e)||(ht.types.isAnyArrayBuffer(e)?e=Te.Buffer.from(e):ArrayBuffer.isView(e)?e=Te.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof Ue.default||(e instanceof Qt?(e=su(e),n=e.type.split("=")[1]):e=Te.Buffer.from(String(e))));let o=e;Te.Buffer.isBuffer(e)?o=Ue.default.Readable.from(e):Vr(e)&&(o=Ue.default.Readable.from(e.stream())),this[Pe]={body:e,stream:o,boundary:n,disturbed:!1,error:null},this.size=t,e instanceof Ue.default&&e.on("error",s=>{let u=s instanceof pt?s:new Re(`Invalid response body while trying to fetch ${this.url}: ${s.message}`,"system",s);this[Pe].error=u})}get body(){return this[Pe].stream}get bodyUsed(){return this[Pe].disturbed}async arrayBuffer(){let{buffer:e,byteOffset:t,byteLength:n}=await Gi(this);return e.slice(t,t+n)}async formData(){let e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){let n=new Qt,o=new URLSearchParams(await this.text());for(let[s,u]of o)n.append(s,u);return n}let{toFormData:t}=await Promise.resolve().then(()=>(mu(),hu));return t(this.body,e)}async blob(){let e=this.headers&&this.headers.get("content-type")||this[Pe].body&&this[Pe].body.type||"",t=await this.arrayBuffer();return new ft([t],{type:e})}async json(){let e=await this.text();return JSON.parse(e)}async text(){let e=await Gi(this);return new TextDecoder().decode(e)}buffer(){return Gi(this)}};rt.prototype.buffer=(0,ht.deprecate)(rt.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(rt.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,ht.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});async function Gi(a){if(a[Pe].disturbed)throw new TypeError(`body used already for: ${a.url}`);if(a[Pe].disturbed=!0,a[Pe].error)throw a[Pe].error;let{body:e}=a;if(e===null)return Te.Buffer.alloc(0);if(!(e instanceof Ue.default))return Te.Buffer.alloc(0);let t=[],n=0;try{for await(let o of e){if(a.size>0&&n+o.length>a.size){let s=new Re(`content size at ${a.url} over limit: ${a.size}`,"max-size");throw e.destroy(s),s}n+=o.length,t.push(o)}}catch(o){throw o instanceof pt?o:new Re(`Invalid response body while trying to fetch ${a.url}: ${o.message}`,"system",o)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return t.every(o=>typeof o=="string")?Te.Buffer.from(t.join("")):Te.Buffer.concat(t,n)}catch(o){throw new Re(`Could not create Buffer from response body for ${a.url}: ${o.message}`,"system",o)}else throw new Re(`Premature close of server response while trying to fetch ${a.url}`)}var yr=(a,e)=>{let t,n,{body:o}=a[Pe];if(a.bodyUsed)throw new Error("cannot clone body after it is used");return o instanceof Ue.default&&typeof o.getBoundary!="function"&&(t=new Ue.PassThrough({highWaterMark:e}),n=new Ue.PassThrough({highWaterMark:e}),o.pipe(t),o.pipe(n),a[Pe].stream=t,o=n),o},bm=(0,ht.deprecate)(a=>a.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),Yn=(a,e)=>a===null?null:typeof a=="string"?"text/plain;charset=UTF-8":zi(a)?"application/x-www-form-urlencoded;charset=UTF-8":Vr(a)?a.type||null:Te.Buffer.isBuffer(a)||ht.types.isAnyArrayBuffer(a)||ArrayBuffer.isView(a)?null:a instanceof Qt?`multipart/form-data; boundary=${e[Pe].boundary}`:a&&typeof a.getBoundary=="function"?`multipart/form-data;boundary=${bm(a)}`:a instanceof Ue.default?null:"text/plain;charset=UTF-8",gu=a=>{let{body:e}=a[Pe];return e===null?0:Vr(e)?e.size:Te.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},_u=async(a,{body:e})=>{e===null?a.end():await _m(e,a)};var Xi=require("node:util"),Hr=le(require("node:http"),1),Qn=typeof Hr.default.validateHeaderName=="function"?Hr.default.validateHeaderName:a=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(a)){let e=new TypeError(`Header name must be a valid HTTP token [${a}]`);throw Object.defineProperty(e,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),e}},Yi=typeof Hr.default.validateHeaderValue=="function"?Hr.default.validateHeaderValue:(a,e)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(e)){let t=new TypeError(`Invalid character in header content ["${a}"]`);throw Object.defineProperty(t,"code",{value:"ERR_INVALID_CHAR"}),t}},Ce=class a extends URLSearchParams{constructor(e){let t=[];if(e instanceof a){let n=e.raw();for(let[o,s]of Object.entries(n))t.push(...s.map(u=>[o,u]))}else if(e!=null)if(typeof e=="object"&&!Xi.types.isBoxedPrimitive(e)){let n=e[Symbol.iterator];if(n==null)t.push(...Object.entries(e));else{if(typeof n!="function")throw new TypeError("Header pairs must be iterable");t=[...e].map(o=>{if(typeof o!="object"||Xi.types.isBoxedPrimitive(o))throw new TypeError("Each header pair must be an iterable object");return[...o]}).map(o=>{if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...o]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return t=t.length>0?t.map(([n,o])=>(Qn(n),Yi(n,String(o)),[String(n).toLowerCase(),String(o)])):void 0,super(t),new Proxy(this,{get(n,o,s){switch(o){case"append":case"set":return(u,f)=>(Qn(u),Yi(u,String(f)),URLSearchParams.prototype[o].call(n,String(u).toLowerCase(),String(f)));case"delete":case"has":case"getAll":return u=>(Qn(u),URLSearchParams.prototype[o].call(n,String(u).toLowerCase()));case"keys":return()=>(n.sort(),new Set(URLSearchParams.prototype.keys.call(n)).keys());default:return Reflect.get(n,o,s)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){let t=this.getAll(e);if(t.length===0)return null;let n=t.join(", ");return/^content-encoding$/i.test(e)&&(n=n.toLowerCase()),n}forEach(e,t=void 0){for(let n of this.keys())Reflect.apply(e,t,[this.get(n),n,this])}*values(){for(let e of this.keys())yield this.get(e)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((e,t)=>(e[t]=this.getAll(t),e),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((e,t)=>{let n=this.getAll(t);return t==="host"?e[t]=n[0]:e[t]=n.length>1?n:n[0],e},{})}};Object.defineProperties(Ce.prototype,["get","entries","forEach","values"].reduce((a,e)=>(a[e]={enumerable:!0},a),{}));function bu(a=[]){return new Ce(a.reduce((e,t,n,o)=>(n%2===0&&e.push(o.slice(n,n+2)),e),[]).filter(([e,t])=>{try{return Qn(e),Yi(e,String(t)),!0}catch{return!1}}))}var ym=new Set([301,302,303,307,308]),Jn=a=>ym.has(a);var Ye=Symbol("Response internals"),je=class a extends rt{constructor(e=null,t={}){super(e,t);let n=t.status!=null?t.status:200,o=new Ce(t.headers);if(e!==null&&!o.has("Content-Type")){let s=Yn(e,this);s&&o.append("Content-Type",s)}this[Ye]={type:"default",url:t.url,status:n,statusText:t.statusText||"",headers:o,counter:t.counter,highWaterMark:t.highWaterMark}}get type(){return this[Ye].type}get url(){return this[Ye].url||""}get status(){return this[Ye].status}get ok(){return this[Ye].status>=200&&this[Ye].status<300}get redirected(){return this[Ye].counter>0}get statusText(){return this[Ye].statusText}get headers(){return this[Ye].headers}get highWaterMark(){return this[Ye].highWaterMark}clone(){return new a(yr(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,t=302){if(!Jn(t))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new a(null,{headers:{location:new URL(e).toString()},status:t})}static error(){let e=new a(null,{status:0,statusText:""});return e[Ye].type="error",e}static json(e=void 0,t={}){let n=JSON.stringify(e);if(n===void 0)throw new TypeError("data is not JSON serializable");let o=new Ce(t&&t.headers);return o.has("content-type")||o.set("content-type","application/json"),new a(n,{...t,headers:o})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(je.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});var Lu=require("node:url"),Au=require("node:util");var yu=a=>{if(a.search)return a.search;let e=a.href.length-1,t=a.hash||(a.href[e]==="#"?"#":"");return a.href[e-t.length]==="?"?"?":""};var vu=require("node:net");function wu(a,e=!1){return a==null||(a=new URL(a),/^(about|blob|data):$/.test(a.protocol))?"no-referrer":(a.username="",a.password="",a.hash="",e&&(a.pathname="",a.search=""),a)}var Su=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),Ru="strict-origin-when-cross-origin";function Pu(a){if(!Su.has(a))throw new TypeError(`Invalid referrerPolicy: ${a}`);return a}function wm(a){if(/^(http|ws)s:$/.test(a.protocol))return!0;let e=a.host.replace(/(^\[)|(]$)/g,""),t=(0,vu.isIP)(e);return t===4&&/^127\./.test(e)||t===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(e)?!0:a.host==="localhost"||a.host.endsWith(".localhost")?!1:a.protocol==="file:"}function wr(a){return/^about:(blank|srcdoc)$/.test(a)||a.protocol==="data:"||/^(blob|filesystem):$/.test(a.protocol)?!0:wm(a)}function Eu(a,{referrerURLCallback:e,referrerOriginCallback:t}={}){if(a.referrer==="no-referrer"||a.referrerPolicy==="")return null;let n=a.referrerPolicy;if(a.referrer==="about:client")return"no-referrer";let o=a.referrer,s=wu(o),u=wu(o,!0);s.toString().length>4096&&(s=u),e&&(s=e(s)),t&&(u=t(u));let f=new URL(a.url);switch(n){case"no-referrer":return"no-referrer";case"origin":return u;case"unsafe-url":return s;case"strict-origin":return wr(s)&&!wr(f)?"no-referrer":u.toString();case"strict-origin-when-cross-origin":return s.origin===f.origin?s:wr(s)&&!wr(f)?"no-referrer":u;case"same-origin":return s.origin===f.origin?s:"no-referrer";case"origin-when-cross-origin":return s.origin===f.origin?s:u;case"no-referrer-when-downgrade":return wr(s)&&!wr(f)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${n}`)}}function xu(a){let e=(a.get("referrer-policy")||"").split(/[,\s]+/),t="";for(let n of e)n&&Su.has(n)&&(t=n);return t}var fe=Symbol("Request internals"),Kr=a=>typeof a=="object"&&typeof a[fe]=="object",vm=(0,Au.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),Zt=class a extends rt{constructor(e,t={}){let n;if(Kr(e)?n=new URL(e.url):(n=new URL(e),e={}),n.username!==""||n.password!=="")throw new TypeError(`${n} is an url with embedded credentials.`);let o=t.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(o)&&(o=o.toUpperCase()),!Kr(t)&&"data"in t&&vm(),(t.body!=null||Kr(e)&&e.body!==null)&&(o==="GET"||o==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=t.body?t.body:Kr(e)&&e.body!==null?yr(e):null;super(s,{size:t.size||e.size||0});let u=new Ce(t.headers||e.headers||{});if(s!==null&&!u.has("Content-Type")){let c=Yn(s,this);c&&u.set("Content-Type",c)}let f=Kr(e)?e.signal:null;if("signal"in t&&(f=t.signal),f!=null&&!lu(f))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let d=t.referrer==null?e.referrer:t.referrer;if(d==="")d="no-referrer";else if(d){let c=new URL(d);d=/^about:(\/\/)?client$/.test(c)?"client":c}else d=void 0;this[fe]={method:o,redirect:t.redirect||e.redirect||"follow",headers:u,parsedURL:n,signal:f,referrer:d},this.follow=t.follow===void 0?e.follow===void 0?20:e.follow:t.follow,this.compress=t.compress===void 0?e.compress===void 0?!0:e.compress:t.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent,this.highWaterMark=t.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=t.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=t.referrerPolicy||e.referrerPolicy||""}get method(){return this[fe].method}get url(){return(0,Lu.format)(this[fe].parsedURL)}get headers(){return this[fe].headers}get redirect(){return this[fe].redirect}get signal(){return this[fe].signal}get referrer(){if(this[fe].referrer==="no-referrer")return"";if(this[fe].referrer==="client")return"about:client";if(this[fe].referrer)return this[fe].referrer.toString()}get referrerPolicy(){return this[fe].referrerPolicy}set referrerPolicy(e){this[fe].referrerPolicy=Pu(e)}clone(){return new a(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(Zt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});var ku=a=>{let{parsedURL:e}=a[fe],t=new Ce(a[fe].headers);t.has("Accept")||t.set("Accept","*/*");let n=null;if(a.body===null&&/^(post|put)$/i.test(a.method)&&(n="0"),a.body!==null){let f=gu(a);typeof f=="number"&&!Number.isNaN(f)&&(n=String(f))}n&&t.set("Content-Length",n),a.referrerPolicy===""&&(a.referrerPolicy=Ru),a.referrer&&a.referrer!=="no-referrer"?a[fe].referrer=Eu(a):a[fe].referrer="no-referrer",a[fe].referrer instanceof URL&&t.set("Referer",a.referrer),t.has("User-Agent")||t.set("User-Agent","node-fetch"),a.compress&&!t.has("Accept-Encoding")&&t.set("Accept-Encoding","gzip, deflate, br");let{agent:o}=a;typeof o=="function"&&(o=o(e));let s=yu(e),u={path:e.pathname+s,method:a.method,headers:t[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:a.insecureHTTPParser,agent:o};return{parsedURL:e,options:u}};var Zn=class extends pt{constructor(e,t="aborted"){super(e,t)}};zn();Hi();var Sm=new Set(["data:","http:","https:"]);async function vr(a,e){return new Promise((t,n)=>{let o=new Zt(a,e),{parsedURL:s,options:u}=ku(o);if(!Sm.has(s.protocol))throw new TypeError(`node-fetch cannot load ${a}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let w=Zl(o.url),R=new je(w,{headers:{"Content-Type":w.typeFull}});t(R);return}let f=(s.protocol==="https:"?Cu.default:Tu.default).request,{signal:d}=o,c=null,p=()=>{let w=new Zn("The operation was aborted.");n(w),o.body&&o.body instanceof Ie.default.Readable&&o.body.destroy(w),!(!c||!c.body)&&c.body.emit("error",w)};if(d&&d.aborted){p();return}let m=()=>{p(),g()},y=f(s.toString(),u);d&&d.addEventListener("abort",m);let g=()=>{y.abort(),d&&d.removeEventListener("abort",m)};y.on("error",w=>{n(new Re(`request to ${o.url} failed, reason: ${w.message}`,"system",w)),g()}),Rm(y,w=>{c&&c.body&&c.body.destroy(w)}),process.version<"v14"&&y.on("socket",w=>{let R;w.prependListener("end",()=>{R=w._eventsCount}),w.prependListener("close",k=>{if(c&&R<w._eventsCount&&!k){let C=new Error("Premature close");C.code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",C)}})}),y.on("response",w=>{y.setTimeout(0);let R=bu(w.rawHeaders);if(Jn(w.statusCode)){let G=R.get("Location"),X=null;try{X=G===null?null:new URL(G,o.url)}catch{if(o.redirect!=="manual"){n(new Re(`uri requested responds with an invalid redirect URL: ${G}`,"invalid-redirect")),g();return}}switch(o.redirect){case"error":n(new Re(`uri requested responds with a redirect, redirect mode is set to error: ${o.url}`,"no-redirect")),g();return;case"manual":break;case"follow":{if(X===null)break;if(o.counter>=o.follow){n(new Re(`maximum redirect reached at: ${o.url}`,"max-redirect")),g();return}let J={headers:new Ce(o.headers),follow:o.follow,counter:o.counter+1,agent:o.agent,compress:o.compress,method:o.method,body:yr(o),signal:o.signal,size:o.size,referrer:o.referrer,referrerPolicy:o.referrerPolicy};if(!uu(o.url,X)||!cu(o.url,X))for(let He of["authorization","www-authenticate","cookie","cookie2"])J.headers.delete(He);if(w.statusCode!==303&&o.body&&e.body instanceof Ie.default.Readable){n(new Re("Cannot follow redirect with body being a readable stream","unsupported-redirect")),g();return}(w.statusCode===303||(w.statusCode===301||w.statusCode===302)&&o.method==="POST")&&(J.method="GET",J.body=void 0,J.headers.delete("content-length"));let ze=xu(R);ze&&(J.referrerPolicy=ze),t(vr(new Zt(X,J))),g();return}default:return n(new TypeError(`Redirect option '${o.redirect}' is not a valid value of RequestRedirect`))}}d&&w.once("end",()=>{d.removeEventListener("abort",m)});let k=(0,Ie.pipeline)(w,new Ie.PassThrough,G=>{G&&n(G)});process.version<"v12.10"&&w.on("aborted",m);let C={url:o.url,status:w.statusCode,statusText:w.statusMessage,headers:R,size:o.size,counter:o.counter,highWaterMark:o.highWaterMark},E=R.get("Content-Encoding");if(!o.compress||o.method==="HEAD"||E===null||w.statusCode===204||w.statusCode===304){c=new je(k,C),t(c);return}let re={flush:er.default.Z_SYNC_FLUSH,finishFlush:er.default.Z_SYNC_FLUSH};if(E==="gzip"||E==="x-gzip"){k=(0,Ie.pipeline)(k,er.default.createGunzip(re),G=>{G&&n(G)}),c=new je(k,C),t(c);return}if(E==="deflate"||E==="x-deflate"){let G=(0,Ie.pipeline)(w,new Ie.PassThrough,X=>{X&&n(X)});G.once("data",X=>{(X[0]&15)===8?k=(0,Ie.pipeline)(k,er.default.createInflate(),J=>{J&&n(J)}):k=(0,Ie.pipeline)(k,er.default.createInflateRaw(),J=>{J&&n(J)}),c=new je(k,C),t(c)}),G.once("end",()=>{c||(c=new je(k,C),t(c))});return}if(E==="br"){k=(0,Ie.pipeline)(k,er.default.createBrotliDecompress(),G=>{G&&n(G)}),c=new je(k,C),t(c);return}c=new je(k,C),t(c)}),_u(y,o).catch(n)})}function Rm(a,e){let t=Gr.Buffer.from(`0\r
3293
3293
  \r
3294
- `),n=!1,o=!1,s;a.on("response",u=>{let{headers:f}=u;n=f["transfer-encoding"]==="chunked"&&!f["content-length"]}),a.on("socket",u=>{let f=()=>{if(n&&!o){let c=new Error("Premature close");c.code="ERR_STREAM_PREMATURE_CLOSE",e(c)}},d=c=>{o=Gr.Buffer.compare(c.slice(-5),t)===0,!o&&s&&(o=Gr.Buffer.compare(s.slice(-3),t.slice(0,3))===0&&Gr.Buffer.compare(c.slice(-2),t.slice(3))===0),s=c};u.prependListener("close",f),u.on("data",d),a.on("close",()=>{u.removeListener("close",f),u.removeListener("data",d)})})}var xm={debugadapter:{version:Xt,zip:async()=>(await Promise.resolve().then(()=>le(Cu()))).default},"debugadapter-tests":{version:Xt,zip:async()=>(await Promise.resolve().then(()=>le(Du()))).default}};async function $u(a,e){let t=await vr(`https://mods.factorio.com/api/mods/${a}${e?"/full":""}`);if(!t.ok)throw new Error(t.statusText);return await t.json()}var Sr=class{constructor(e,t){this.modsPath=e;this.playerdataPath=t;this.Loaded=this.reload()}modList={mods:[]};Loaded;async reload(){let e=nt.resolve(this.modsPath,"./mod-list.json");try{this.modList=JSON.parse(await Ee.readFile(e,"utf8"))}catch{this.modList={mods:[]}}}async write(){let e=nt.resolve(this.modsPath,"./mod-list.json");return Ee.writeFile(e,JSON.stringify(this.modList,null,2),"utf8")}async getDownloadCredentials(e){let t=this.playerdataPath??nt.resolve(this.modsPath,"../player-data.json"),n=t?await Ee.readFile(t,"utf8").then(f=>JSON.parse(f)).catch(()=>{}):void 0;if(n?.["service-token"])return{username:n["service-username"],token:n["service-token"]};let o=await e(n?.["service-username"]),s=await vr("https://auth.factorio.com/api-login",{method:"POST",body:new URLSearchParams({username:o.username,password:o.password,api_version:"4",require_game_ownership:"true"})});if(!s.ok)throw new Error(s.statusText);let u=await s.json();return n&&(n["service-username"]=u.username,n["service-token"]=u.token,await Ee.writeFile(t,JSON.stringify(n,void 0,2))),u}async findInstallSource(e,t){if(t.origin!=="portal"){let s=xm[e];if(s)return s;if(t.origin==="bundle")throw new Error(`No bundled package for ${e}`)}let n=await $u(e),o=n.releases[n.releases.length-1];return{version:o.version,zip:async()=>{let s=await this.getDownloadCredentials(t.credentialPrompt),u=await vr(`https://mods.factorio.com/${o.download_url}?username=${s.username}&token=${s.token}`);if(!u.ok)throw new Error(u.statusText);return u.body}}}async installMod(e,t){let n=await this.findInstallSource(e,t),o=n.version,s=this.modList.mods.find(p=>p.name===e),u=s?.enabled?s.version??!0:s?.enabled;async function f(p){let m=nt.resolve(p,"info.json");try{let y=await Ee.readFile(m,"utf8");if(y){let g=JSON.parse(y);if(g.name===e&&g.version===o)return!0}}catch{}return!1}if(!t.force){if(await f(nt.resolve(this.modsPath,e)))return this.set(e,o),{using:o,from:"folder",previous:u};if(await f(nt.resolve(this.modsPath,`${e}_${o}`)))return this.set(e,o),{using:o,from:"versioned_folder",previous:u};try{return await Ee.access(nt.resolve(this.modsPath,`${e}_${o}.zip`)),this.set(e,o),{using:o,from:"existing",previous:u}}catch{}}let d=Ee.writeFile(nt.resolve(this.modsPath,`${e}_${o}.zip`),await n.zip()),c;if(!t.keepOld){let p=(await Ee.readdir(this.modsPath,"utf8")).filter(m=>m.startsWith(e)&&m.endsWith(".zip")&&m.substring(e.length,m.length-4).match(/^_[\d\.]+$/)&&m!==`${e}_${o}.zip`);p.length===1&&(await Ee.unlink(nt.resolve(this.modsPath,p[0])),c=p[0].substring(e.length+1,p[0].length-4))}return this.set(e,o),await d,{using:o,from:"installed",previous:u,replaced:c}}set(e,t){let n=!!t,o=typeof t=="string"?t:void 0,s=this.modList.mods.find(u=>u.name===e);s?(s.enabled=n,s.version=o):this.modList.mods.push({name:e,enabled:n,version:o})}disableAll(){this.modList.mods.forEach(e=>e.enabled=!1)}};var Ji=(d=>(d[d.none=0]="none",d[d.bool=1]="bool",d[d.number=2]="number",d[d.string=3]="string",d[d.list=4]="list",d[d.dictionary=5]="dictionary",d[d.signedinteger=6]="signedinteger",d[d.unsignedinteger=7]="unsignedinteger",d))(Ji||{});function Qi(a){if(a.readUInt8()!==0)return"";{let t=a.readPackedUInt_8_32();return a.readString(t)}}var Rr=class a{constructor(){}static load(e){let t=e.readUInt8();switch(e.readUInt8(),t){case 0:return{type:t};case 1:return{type:t,value:e.readUInt8()!==0};case 2:return{type:t,value:e.readDoubleLE()};case 3:return{type:t,value:Qi(e)};case 4:{let n=e.readUInt32LE(),o=[];for(let s=0;s<n;s++){Qi(e);let u=a.load(e);o.push(u)}return{type:t,value:o}}case 5:{let n=e.readUInt32LE(),o={};for(let s=0;s<n;s++){let u=Qi(e);if(!u)throw new Error("Missing key in PropertyTree Dictionary");let f=a.load(e);o[u]=f}return{type:t,value:o}}case 6:return{type:t,value:e.readBigInt64LE()};case 7:return{type:t,value:e.readBigUInt64LE()};default:throw new Error(`Invalid datatype in PropertyTree ${t}`)}}static saveString(e){if(!e)return Buffer.from([1]);let t=Buffer.from(e,"utf8"),n=Buffer.alloc(1);return t.length<255?n.writeUInt8(t.length):(n=Buffer.alloc(5),n.writeUInt8(255),n.writeUInt32LE(t.length,1)),Buffer.concat([Buffer.from([0]),n,t])}static typeTag(e){return Buffer.from([e,0])}static save(e){switch(e.type){case 3:return Buffer.concat([a.typeTag(3),a.saveString(e.value)]);case 1:return Buffer.concat([a.typeTag(1),Buffer.from([e.value?1:0])]);case 2:{let t=Buffer.alloc(8);return t.writeDoubleLE(e.value),Buffer.concat([a.typeTag(2),t])}case 6:{let t=Buffer.alloc(8);return t.writeBigInt64LE(e.value),Buffer.concat([a.typeTag(6),t])}case 7:{let t=Buffer.alloc(8);return t.writeBigUInt64LE(e.value),Buffer.concat([a.typeTag(7),t])}case 0:return a.typeTag(0);case 4:{let t=Buffer.alloc(4);return t.writeUInt32LE(e.value.length),Buffer.concat([a.typeTag(4),t,Buffer.concat(e.value.map(n=>Buffer.concat([a.saveString(""),a.save(n)])))])}case 5:{let t=[];for(let o in e.value)if(Object.prototype.hasOwnProperty.call(e.value,o)){let s=e.value[o];t.push(Buffer.concat([a.saveString(o),a.save(s)]))}let n=Buffer.alloc(4);return n.writeUInt32LE(t.length),Buffer.concat([a.typeTag(5),n,Buffer.concat(t)])}default:throw new Error(`Invalid datatype in PropertyTree ${e.type}`)}}};var Dt=class a{constructor(e,t,n,o,s){this.main=e;this.major=t;this.minor=n;this.patch=o;this.branch=s}static load(e){let t=e.readUInt16LE(0),n=e.readUInt16LE(2),o=e.readUInt16LE(4),s=e.readUInt16LE(6),u=e.readUInt8(8);return new a(t,n,o,s,u)}save(){let e=Buffer.alloc(9);return e.writeUInt16LE(this.main,0),e.writeUInt16LE(this.major,2),e.writeUInt16LE(this.minor,4),e.writeUInt16LE(this.patch,6),e.writeUInt8(this.branch,8),e}format(){return`${this.main}.${this.major}.${this.minor}-${this.patch}`}isBeyond(e,t,n,o){return this.main<e?!1:this.main>e||t===void 0?!0:this.major<t?!1:this.major>t||n===void 0?!0:this.minor<n?!1:this.minor>n||o===void 0?!0:this.patch<o?!1:(this.patch>o,!0)}};var eo=le(require("assert")),Fu=["startup","runtime-global","runtime-per-user"],Xr=class{version;_settings;constructor(e){this.version=Dt.load(e.read(9));let t=Rr.load(e);(0,eo.default)(t.type===5);let n={startup:{},"runtime-global":{},"runtime-per-user":{}};for(let o of Fu){let s=t.value[o];(0,eo.default)(s.type===5);let u=n[o];for(let f in s.value){let d=s.value[f];(0,eo.default)(d.type===5);let c=d.value.value;switch(c.type){case 3:u[f]={type:"string",value:c.value};break;case 2:u[f]={type:"number",value:c.value};break;case 6:u[f]={type:"int",value:c.value};break;case 1:u[f]={type:"bool",value:c.value};break;case 5:let p=c.value;if("r"in p&&p.r.type===2&&"g"in p&&p.g.type===2&&"b"in p&&p.b.type===2&&"a"in p&&p.a.type===2)u[f]={type:"color",value:{r:p.r.value,g:p.g.value,b:p.b.value,a:p.a.value}};else throw new Error(`Dictionary value in ModSettings Tree does not match any known structure at ${o} ${f}`);break;default:throw new Error(`Unexpected type in ModSettings Tree: ${c.type}`)}}}this._settings=n}get settings(){return this._settings}save(){let e={type:5,value:{}};for(let t of Fu){let n=this._settings[t],o={type:5,value:{}};e.value[t]=o;for(let s in n){let u=n[s];switch(u.type){case"string":o.value[s]={type:5,value:{value:{type:3,value:u.value}}};break;case"bool":o.value[s]={type:5,value:{value:{type:1,value:u.value}}};break;case"int":o.value[s]={type:5,value:{value:{type:6,value:u.value}}};break;case"number":o.value[s]={type:5,value:{value:{type:2,value:u.value}}};break;case"color":o.value[s]={type:5,value:{value:{type:5,value:{r:{type:2,value:u.value.r},g:{type:2,value:u.value.g},b:{type:2,value:u.value.b},a:{type:2,value:u.value.a}}}}};break;default:break}}}return Buffer.concat([this.version.save(),Rr.save(e)])}set(e,t,n){n===void 0?delete this._settings[e][t]:this._settings[e][t]=n}get(e,t){return this._settings[e][t]}*list(){for(let e in this._settings)for(let t in this._settings[e]){let n=this._settings[e][t];yield{scope:e,setting:t,value:n.value}}}};var de=1e5,$t={adjust:{table:{BlueprintEntity:{parameters:[{name:"orientation",order:de++,description:"",optional:!0,type:"number"},{name:"recipe",order:de++,description:"",optional:!0,type:"string"},{name:"inventory",order:de++,description:"",optional:!0,type:{complex_type:"table",parameters:[{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}}]}},{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}},{name:"type",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"input"},{complex_type:"literal",value:"output"}]}},{name:"input_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"output_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"filter",order:de++,description:"",optional:!0,type:"string"},{name:"filter_mode",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"whitelist"},{complex_type:"literal",value:"blacklist"}]}},{name:"override_stack_size",order:de++,description:"",optional:!0,type:"number"},{name:"request_filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"LogisticFilter"}},{name:"request_from_buffers",order:de++,description:"",optional:!0,type:"boolean"},{name:"parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerParameters"},{name:"alert_parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerAlertParameters"},{name:"color",order:de++,description:"",optional:!0,type:"Color"},{name:"station",order:de++,description:"",optional:!0,type:"string"}]}},class:{LuaLazyLoadedValue:{generic_params:["T"],generic_parent:"{get:fun():T}"},LuaCustomTable:{generic_params:["K","V"],generic_parent:"{[K]:V}",no_index:!0},LuaGuiElement:{index_key:{complex_type:"union",options:["string","uint"]},split_funcs:!0}},define:{"defines.prototypes":{owntype:!0}}}};function Lm(a){return["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"].includes(a)?`${a}_`:a}function Er(a){return Lm(a.replace(/[^a-zA-Z0-9]/g,"_").replace(/^([0-9])/,"_$1"))}function Zi(a){return!!a.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)}async function Bt(a,e){if(!e)return;let t=await e;t&&a.write(`---${t.replace(/\n/g,`
3294
+ `),n=!1,o=!1,s;a.on("response",u=>{let{headers:f}=u;n=f["transfer-encoding"]==="chunked"&&!f["content-length"]}),a.on("socket",u=>{let f=()=>{if(n&&!o){let c=new Error("Premature close");c.code="ERR_STREAM_PREMATURE_CLOSE",e(c)}},d=c=>{o=Gr.Buffer.compare(c.slice(-5),t)===0,!o&&s&&(o=Gr.Buffer.compare(s.slice(-3),t.slice(0,3))===0&&Gr.Buffer.compare(c.slice(-2),t.slice(3))===0),s=c};u.prependListener("close",f),u.on("data",d),a.on("close",()=>{u.removeListener("close",f),u.removeListener("data",d)})})}var xm={debugadapter:{version:Xt,zip:async()=>(await Promise.resolve().then(()=>le(Iu()))).default},"debugadapter-tests":{version:Xt,zip:async()=>(await Promise.resolve().then(()=>le(Du()))).default}};async function $u(a,e){let t=await vr(`https://mods.factorio.com/api/mods/${a}${e?"/full":""}`);if(!t.ok)throw new Error(t.statusText);return await t.json()}var Sr=class{constructor(e,t){this.modsPath=e;this.playerdataPath=t;this.Loaded=this.reload()}modList={mods:[]};Loaded;async reload(){let e=nt.resolve(this.modsPath,"./mod-list.json");try{this.modList=JSON.parse(await Ee.readFile(e,"utf8"))}catch{this.modList={mods:[]}}}async write(){let e=nt.resolve(this.modsPath,"./mod-list.json");return Ee.writeFile(e,JSON.stringify(this.modList,null,2),"utf8")}async getDownloadCredentials(e){let t=this.playerdataPath??nt.resolve(this.modsPath,"../player-data.json"),n=t?await Ee.readFile(t,"utf8").then(f=>JSON.parse(f)).catch(()=>{}):void 0;if(n?.["service-token"])return{username:n["service-username"],token:n["service-token"]};let o=await e(n?.["service-username"]),s=await vr("https://auth.factorio.com/api-login",{method:"POST",body:new URLSearchParams({username:o.username,password:o.password,api_version:"4",require_game_ownership:"true"})});if(!s.ok)throw new Error(s.statusText);let u=await s.json();return n&&(n["service-username"]=u.username,n["service-token"]=u.token,await Ee.writeFile(t,JSON.stringify(n,void 0,2))),u}async findInstallSource(e,t){if(t.origin!=="portal"){let s=xm[e];if(s)return s;if(t.origin==="bundle")throw new Error(`No bundled package for ${e}`)}let n=await $u(e),o=n.releases[n.releases.length-1];return{version:o.version,zip:async()=>{let s=await this.getDownloadCredentials(t.credentialPrompt),u=await vr(`https://mods.factorio.com/${o.download_url}?username=${s.username}&token=${s.token}`);if(!u.ok)throw new Error(u.statusText);return u.body}}}async installMod(e,t){let n=await this.findInstallSource(e,t),o=n.version,s=this.modList.mods.find(p=>p.name===e),u=s?.enabled?s.version??!0:s?.enabled;async function f(p){let m=nt.resolve(p,"info.json");try{let y=await Ee.readFile(m,"utf8");if(y){let g=JSON.parse(y);if(g.name===e&&g.version===o)return!0}}catch{}return!1}if(!t.force){if(await f(nt.resolve(this.modsPath,e)))return this.set(e,o),{using:o,from:"folder",previous:u};if(await f(nt.resolve(this.modsPath,`${e}_${o}`)))return this.set(e,o),{using:o,from:"versioned_folder",previous:u};try{return await Ee.access(nt.resolve(this.modsPath,`${e}_${o}.zip`)),this.set(e,o),{using:o,from:"existing",previous:u}}catch{}}let d=Ee.writeFile(nt.resolve(this.modsPath,`${e}_${o}.zip`),await n.zip()),c;if(!t.keepOld){let p=(await Ee.readdir(this.modsPath,"utf8")).filter(m=>m.startsWith(e)&&m.endsWith(".zip")&&m.substring(e.length,m.length-4).match(/^_[\d\.]+$/)&&m!==`${e}_${o}.zip`);p.length===1&&(await Ee.unlink(nt.resolve(this.modsPath,p[0])),c=p[0].substring(e.length+1,p[0].length-4))}return this.set(e,o),await d,{using:o,from:"installed",previous:u,replaced:c}}set(e,t){let n=!!t,o=typeof t=="string"?t:void 0,s=this.modList.mods.find(u=>u.name===e);s?(s.enabled=n,s.version=o):this.modList.mods.push({name:e,enabled:n,version:o})}disableAll(){this.modList.mods.forEach(e=>e.enabled=!1)}};var Ji=(d=>(d[d.none=0]="none",d[d.bool=1]="bool",d[d.number=2]="number",d[d.string=3]="string",d[d.list=4]="list",d[d.dictionary=5]="dictionary",d[d.signedinteger=6]="signedinteger",d[d.unsignedinteger=7]="unsignedinteger",d))(Ji||{});function Qi(a){if(a.readUInt8()!==0)return"";{let t=a.readPackedUInt_8_32();return a.readString(t)}}var Rr=class a{constructor(){}static load(e){let t=e.readUInt8();switch(e.readUInt8(),t){case 0:return{type:t};case 1:return{type:t,value:e.readUInt8()!==0};case 2:return{type:t,value:e.readDoubleLE()};case 3:return{type:t,value:Qi(e)};case 4:{let n=e.readUInt32LE(),o=[];for(let s=0;s<n;s++){Qi(e);let u=a.load(e);o.push(u)}return{type:t,value:o}}case 5:{let n=e.readUInt32LE(),o={};for(let s=0;s<n;s++){let u=Qi(e);if(!u)throw new Error("Missing key in PropertyTree Dictionary");let f=a.load(e);o[u]=f}return{type:t,value:o}}case 6:return{type:t,value:e.readBigInt64LE()};case 7:return{type:t,value:e.readBigUInt64LE()};default:throw new Error(`Invalid datatype in PropertyTree ${t}`)}}static saveString(e){if(!e)return Buffer.from([1]);let t=Buffer.from(e,"utf8"),n=Buffer.alloc(1);return t.length<255?n.writeUInt8(t.length):(n=Buffer.alloc(5),n.writeUInt8(255),n.writeUInt32LE(t.length,1)),Buffer.concat([Buffer.from([0]),n,t])}static typeTag(e){return Buffer.from([e,0])}static save(e){switch(e.type){case 3:return Buffer.concat([a.typeTag(3),a.saveString(e.value)]);case 1:return Buffer.concat([a.typeTag(1),Buffer.from([e.value?1:0])]);case 2:{let t=Buffer.alloc(8);return t.writeDoubleLE(e.value),Buffer.concat([a.typeTag(2),t])}case 6:{let t=Buffer.alloc(8);return t.writeBigInt64LE(e.value),Buffer.concat([a.typeTag(6),t])}case 7:{let t=Buffer.alloc(8);return t.writeBigUInt64LE(e.value),Buffer.concat([a.typeTag(7),t])}case 0:return a.typeTag(0);case 4:{let t=Buffer.alloc(4);return t.writeUInt32LE(e.value.length),Buffer.concat([a.typeTag(4),t,Buffer.concat(e.value.map(n=>Buffer.concat([a.saveString(""),a.save(n)])))])}case 5:{let t=[];for(let o in e.value)if(Object.prototype.hasOwnProperty.call(e.value,o)){let s=e.value[o];t.push(Buffer.concat([a.saveString(o),a.save(s)]))}let n=Buffer.alloc(4);return n.writeUInt32LE(t.length),Buffer.concat([a.typeTag(5),n,Buffer.concat(t)])}default:throw new Error(`Invalid datatype in PropertyTree ${e.type}`)}}};var Dt=class a{constructor(e,t,n,o,s){this.main=e;this.major=t;this.minor=n;this.patch=o;this.branch=s}static load(e){let t=e.readUInt16LE(0),n=e.readUInt16LE(2),o=e.readUInt16LE(4),s=e.readUInt16LE(6),u=e.readUInt8(8);return new a(t,n,o,s,u)}save(){let e=Buffer.alloc(9);return e.writeUInt16LE(this.main,0),e.writeUInt16LE(this.major,2),e.writeUInt16LE(this.minor,4),e.writeUInt16LE(this.patch,6),e.writeUInt8(this.branch,8),e}format(){return`${this.main}.${this.major}.${this.minor}-${this.patch}`}isBeyond(e,t,n,o){return this.main<e?!1:this.main>e||t===void 0?!0:this.major<t?!1:this.major>t||n===void 0?!0:this.minor<n?!1:this.minor>n||o===void 0?!0:this.patch<o?!1:(this.patch>o,!0)}};var eo=le(require("assert")),Fu=["startup","runtime-global","runtime-per-user"],Xr=class{version;_settings;constructor(e){this.version=Dt.load(e.read(9));let t=Rr.load(e);(0,eo.default)(t.type===5);let n={startup:{},"runtime-global":{},"runtime-per-user":{}};for(let o of Fu){let s=t.value[o];(0,eo.default)(s.type===5);let u=n[o];for(let f in s.value){let d=s.value[f];(0,eo.default)(d.type===5);let c=d.value.value;switch(c.type){case 3:u[f]={type:"string",value:c.value};break;case 2:u[f]={type:"number",value:c.value};break;case 6:u[f]={type:"int",value:c.value};break;case 1:u[f]={type:"bool",value:c.value};break;case 5:let p=c.value;if("r"in p&&p.r.type===2&&"g"in p&&p.g.type===2&&"b"in p&&p.b.type===2&&"a"in p&&p.a.type===2)u[f]={type:"color",value:{r:p.r.value,g:p.g.value,b:p.b.value,a:p.a.value}};else throw new Error(`Dictionary value in ModSettings Tree does not match any known structure at ${o} ${f}`);break;default:throw new Error(`Unexpected type in ModSettings Tree: ${c.type}`)}}}this._settings=n}get settings(){return this._settings}save(){let e={type:5,value:{}};for(let t of Fu){let n=this._settings[t],o={type:5,value:{}};e.value[t]=o;for(let s in n){let u=n[s];switch(u.type){case"string":o.value[s]={type:5,value:{value:{type:3,value:u.value}}};break;case"bool":o.value[s]={type:5,value:{value:{type:1,value:u.value}}};break;case"int":o.value[s]={type:5,value:{value:{type:6,value:u.value}}};break;case"number":o.value[s]={type:5,value:{value:{type:2,value:u.value}}};break;case"color":o.value[s]={type:5,value:{value:{type:5,value:{r:{type:2,value:u.value.r},g:{type:2,value:u.value.g},b:{type:2,value:u.value.b},a:{type:2,value:u.value.a}}}}};break;default:break}}}return Buffer.concat([this.version.save(),Rr.save(e)])}set(e,t,n){n===void 0?delete this._settings[e][t]:this._settings[e][t]=n}get(e,t){return this._settings[e][t]}*list(){for(let e in this._settings)for(let t in this._settings[e]){let n=this._settings[e][t];yield{scope:e,setting:t,value:n.value}}}};var de=1e5,$t={adjust:{table:{BlueprintEntity:{parameters:[{name:"orientation",order:de++,description:"",optional:!0,type:"number"},{name:"recipe",order:de++,description:"",optional:!0,type:"string"},{name:"inventory",order:de++,description:"",optional:!0,type:{complex_type:"table",parameters:[{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}}]}},{name:"bar",order:de++,description:"",optional:!0,type:"number"},{name:"filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"InventoryFilter"}},{name:"type",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"input"},{complex_type:"literal",value:"output"}]}},{name:"input_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"output_priority",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"left"},{complex_type:"literal",value:"right"}]}},{name:"filter",order:de++,description:"",optional:!0,type:"string"},{name:"filter_mode",order:de++,description:"",optional:!0,type:{complex_type:"union",options:[{complex_type:"literal",value:"whitelist"},{complex_type:"literal",value:"blacklist"}]}},{name:"override_stack_size",order:de++,description:"",optional:!0,type:"number"},{name:"request_filters",order:de++,description:"",optional:!0,type:{complex_type:"array",value:"LogisticFilter"}},{name:"request_from_buffers",order:de++,description:"",optional:!0,type:"boolean"},{name:"parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerParameters"},{name:"alert_parameters",order:de++,description:"",optional:!0,type:"ProgrammableSpeakerAlertParameters"},{name:"color",order:de++,description:"",optional:!0,type:"Color"},{name:"station",order:de++,description:"",optional:!0,type:"string"}]}},class:{LuaLazyLoadedValue:{generic_params:["T"],generic_parent:"{get:fun():T}"},LuaCustomTable:{generic_params:["K","V"],generic_parent:"{[K]:V}",no_index:!0},LuaGuiElement:{index_key:{complex_type:"union",options:["string","uint"]},split_funcs:!0}},define:{"defines.prototypes":{owntype:!0}}}};function Lm(a){return["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"].includes(a)?`${a}_`:a}function Er(a){return Lm(a.replace(/[^a-zA-Z0-9]/g,"_").replace(/^([0-9])/,"_$1"))}function Zi(a){return!!a.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)}async function Ot(a,e){if(!e)return;let t=await e;t&&a.write(`---${t.replace(/\n/g,`
3295
3295
  ---`)}
3296
3296
  `)}var De=class{constructor(e,t,n="_"){this.name=e;this.app_version=t;this.meta=n}members;add(e){this.members||(this.members=[]),this.members.push(e)}async write(e){if(typeof this.meta=="string"&&e.write(`---@meta ${this.meta}
3297
3297
  `),e.write(`
@@ -3300,27 +3300,27 @@ ${n}`,"utf8")}this._sendMessage.fire(t)}_handleData(e){for(this._rawData=Buffer.
3300
3300
  `),e.write(`--$Section ${this.name}
3301
3301
  `),e.write(`-- This file is automatically generated. Edits will be overwritten without warning.
3302
3302
  `),e.write(`
3303
- `),this.members)for(let t of this.members)await t.write(e)}},U=class{constructor(e,t){this.name=e;this.generic_args=t}format(){return this.generic_args?`${this.name}<${this.generic_args.map(e=>e.format()).join(", ")}>`:this.name}},ot=class{constructor(e){this.value=e}format(){switch(typeof this.value){case"string":return`"${this.value}"`;case"number":case"boolean":return this.value.toString();default:throw new Error("Invalid value")}}},tr=class{constructor(e,t){this.key=e;this.value=t}format(){return`{[${this.key.format()}]:${this.value.format()}}`}},Qe=class{constructor(e){this.member=e}format(){return`(${this.member.format()})[]`}},Pr=class{constructor(e){this.members=e}format(){return`{${this.members.map((e,t)=>`[${t+1}]:${e.format()}`).join(", ")}}`}},Ft=class{constructor(e){this.members=e}format(){return this.members.map(e=>`(${e.format()})`).join("|")}},mt=class{constructor(e,t,n){this.name=e;this.type=t;this.description=n}async write(e){await Bt(e,this.description),e.write(`---@alias ${this.name} ${this.type.format()}
3303
+ `),this.members)for(let t of this.members)await t.write(e)}},N=class{constructor(e,t){this.name=e;this.generic_args=t}format(){return this.generic_args?`${this.name}<${this.generic_args.map(e=>e.format()).join(", ")}>`:this.name}},ot=class{constructor(e){this.value=e}format(){switch(typeof this.value){case"string":return`"${this.value}"`;case"number":case"boolean":return this.value.toString();default:throw new Error("Invalid value")}}},tr=class{constructor(e,t){this.key=e;this.value=t}format(){return`{[${this.key.format()}]:${this.value.format()}}`}},Qe=class{constructor(e){this.member=e}format(){return`(${this.member.format()})[]`}},Pr=class{constructor(e){this.members=e}format(){return`{${this.members.map((e,t)=>`[${t+1}]:${e.format()}`).join(", ")}}`}},Ft=class{constructor(e){this.members=e}format(){return this.members.map(e=>`(${e.format()})`).join("|")}},mt=class{constructor(e,t,n){this.name=e;this.type=t;this.description=n}async write(e){await Ot(e,this.description),e.write(`---@alias ${this.name} ${this.type.format()}
3304
3304
 
3305
- `)}},to=class{constructor(e,t,n,o){this.name=e;this.type_name=t;this.fields=n;this.description=o}async write(e){await Bt(e,this.description),e.write(`---@enum ${this.type_name}
3305
+ `)}},to=class{constructor(e,t,n,o){this.name=e;this.type_name=t;this.fields=n;this.description=o}async write(e){await Ot(e,this.description),e.write(`---@enum ${this.type_name}
3306
3306
  `),e.write(`${this.name}={
3307
3307
  `);for(let t of this.fields)await t.write(e);e.write(`}
3308
- `)}},ro=class{constructor(e,t,n,o){this.name=e;this.typename=t;this.description=n;this.value=o}async write(e){await Bt(e,this.description);let t=Zi(this.name)?this.name:`['${this.name}']`;e.write(`${t}=`),this.value?e.write(`${this.value.format()},
3308
+ `)}},ro=class{constructor(e,t,n,o){this.name=e;this.typename=t;this.description=n;this.value=o}async write(e){await Ot(e,this.description);let t=Zi(this.name)?this.name:`['${this.name}']`;e.write(`${t}=`),this.value?e.write(`${this.value.format()},
3309
3309
  `):e.write(`#{} --[[@as ${this.typename.format()} ]],
3310
3310
  `)}},pe=class{constructor(e){this.name=e}description;parents;generic_args;global_name;exact;operators;call_op;fields;functions;add(e){e instanceof Yr?(this.operators||(this.operators=[]),this.operators.push(e)):e instanceof $e?(this.call_op||(this.call_op=[]),this.call_op.push(e)):e instanceof ce?(this.fields||(this.fields=[]),this.fields.push(e)):e instanceof xe&&(this.functions||(this.functions=[]),this.functions.push(e))}async write(e){if(e.write(`do
3311
- `),await Bt(e,this.description),e.write("---@class "),this.exact&&e.write("(exact) "),e.write(`${this.name}`),this.generic_args&&this.generic_args.length>0&&e.write(`<${this.generic_args.join(",")}>`),this.parents&&this.parents.length>0&&e.write(`:${this.parents.map(t=>t.format()).join(", ")}`),e.write(`
3311
+ `),await Ot(e,this.description),e.write("---@class "),this.exact&&e.write("(exact) "),e.write(`${this.name}`),this.generic_args&&this.generic_args.length>0&&e.write(`<${this.generic_args.join(",")}>`),this.parents&&this.parents.length>0&&e.write(`:${this.parents.map(t=>t.format()).join(", ")}`),e.write(`
3312
3312
  `),this.fields)for(let t of this.fields)await t.write(e);if(this.call_op)for(let t of this.call_op)await t.write(e);if(this.operators)for(let t of this.operators)await t.write(e);if(e.write(`${this.global_name??"local "+Er(this.name)}={
3313
3313
  `),this.functions)for(let t of this.functions)await t.write(e);e.write(`}
3314
3314
  end
3315
3315
 
3316
- `)}format(){if(this.description||this.parents||this.generic_args||this.global_name||this.functions||this.call_op)throw new Error("Can't inline table with unsupported features");return this.fields?`{${this.fields.map((e,t)=>typeof e.name=="string"?`${e.name}:${e.type.format()}`:`[${e.name.format()}]:${e.type.format()}`).join(", ")}}`:"{}"}},Yr=class{constructor(e,t,n){this.name=e;this.type=t;this.input_type=n}description;async write(e){await Bt(e,this.description),e.write(`---@operator ${this.name}`),this.input_type&&e.write(`(${this.input_type.format()})`),e.write(`:${this.type.format()}
3317
- `)}},ce=class{constructor(e,t,n,o){this.name=e;this.type=t;this.description=n;this.optional=o}async write(e){await Bt(e,this.description),e.write("---@field "),typeof this.name=="string"?e.write(this.name):e.write(`[${this.name.format()}]`),this.optional&&e.write("?"),e.write(` ${this.type.format()}
3318
- `)}},$e=class{constructor(e,t,n){this.description=e;this.params=t;this.returns=n}async write(e){await Bt(e,this.description);let t="";this.params&&(t=this.params.map(o=>`${o.name}${o.optional?"?":""}:${o.type.format()}`).join(", "));let n="";this.returns&&(n=`:${this.returns.map(o=>o.type.format()).join(", ")}`),e.write(`---@overload fun(${t})${n}
3319
- `)}},xe=class{constructor(e,t,n,o){this.name=e;this.params=t;this.returns=n;this.description=o}overloads;nodiscard;add(e){this.overloads||(this.overloads=[]),this.overloads.push(e)}async write(e){if(await Bt(e,this.description),this.params)for(let t of this.params)await t.write(e);if(this.returns)for(let t of this.returns)await t.write(e);if(this.nodiscard&&e.write(`---@nodiscard
3316
+ `)}format(){if(this.description||this.parents||this.generic_args||this.global_name||this.functions||this.call_op)throw new Error("Can't inline table with unsupported features");return this.fields?`{${this.fields.map((e,t)=>typeof e.name=="string"?`${e.name}:${e.type.format()}`:`[${e.name.format()}]:${e.type.format()}`).join(", ")}}`:"{}"}},Yr=class{constructor(e,t,n){this.name=e;this.type=t;this.input_type=n}description;async write(e){await Ot(e,this.description),e.write(`---@operator ${this.name}`),this.input_type&&e.write(`(${this.input_type.format()})`),e.write(`:${this.type.format()}
3317
+ `)}},ce=class{constructor(e,t,n,o){this.name=e;this.type=t;this.description=n;this.optional=o}async write(e){await Ot(e,this.description),e.write("---@field "),typeof this.name=="string"?e.write(this.name):e.write(`[${this.name.format()}]`),this.optional&&e.write("?"),e.write(` ${this.type.format()}
3318
+ `)}},$e=class{constructor(e,t,n){this.description=e;this.params=t;this.returns=n}async write(e){await Ot(e,this.description);let t="";this.params&&(t=this.params.map(o=>`${o.name}${o.optional?"?":""}:${o.type.format()}`).join(", "));let n="";this.returns&&(n=`:${this.returns.map(o=>o.type.format()).join(", ")}`),e.write(`---@overload fun(${t})${n}
3319
+ `)}},xe=class{constructor(e,t,n,o){this.name=e;this.params=t;this.returns=n;this.description=o}overloads;nodiscard;add(e){this.overloads||(this.overloads=[]),this.overloads.push(e)}async write(e){if(await Ot(e,this.description),this.params)for(let t of this.params)await t.write(e);if(this.returns)for(let t of this.returns)await t.write(e);if(this.nodiscard&&e.write(`---@nodiscard
3320
3320
  `),this.overloads)for(let t of this.overloads)await t.write(e);e.write(`${this.name} = function(`),this.params&&e.write(this.params.map(t=>t.name).join(", ")),e.write(`) end;
3321
3321
  `)}format(){if((!this.params||this.params.length===0)&&!this.returns)return"function";let e="";this.params&&(e=this.params.map(n=>`${n.name}${n.optional?"?":""}:${n.type.format()}`).join(", "));let t="";return this.returns&&(t=`:${this.returns.map(n=>n.type.format()).join(", ")}`),`fun(${e})${t}`}},ee=class{constructor(e,t,n,o){this.name=e;this.type=t;this.description=n;this.optional=o}async write(e){e.write(`---@param ${this.name}${this.optional?"?":""} ${this.type.format()} ${await this.description??""}
3322
3322
  `)}},no=class{constructor(e,t,n,o){this.type=e;this.name=t;this.description=n;this.optional=o}async write(e){e.write(`---@return ${this.type.format()}${this.optional?"?":""} ${this.name??""}`);let t=await this.description;t&&e.write(` #${t}`),e.write(`
3323
- `)}};function ea(a,e){return a.order-e.order}var ta=class{docs;classes;events;concepts;globals;defines;constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(this.docs.api_version!==6)throw`Unsupported Runtime Docs JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="runtime")throw`Wrong stage: ${this.docs.stage}`;this.classes=new Map(this.docs.classes.map(o=>[o.name,o])),this.events=new Map(this.docs.events.map(o=>[o.name,o])),this.concepts=new Map(this.docs.concepts.map(o=>[o.name,o])),this.globals=new Map(this.docs.global_objects.map(o=>[o.type,o]));let n=(o,s)=>{let u=`${s}${o.name}`;this.defines.add(u);let f=`${u}.`;o.values&&o.values.forEach(d=>{this.defines.add(`${f}${d.name}`)}),o.subkeys&&o.subkeys.forEach(d=>n(d,f))};this.defines=new Set,this.defines.add("defines"),this.docs.defines.forEach(o=>n(o,"defines."))}isVersion(e){return this.api_version===e}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["classes","events","concepts","defines"].includes(e))return`/${e}.html${t}`;if(e==="builtin_types")return`/builtin-types.html${t}`;if(["libraries","storage","migrations","data-lifecycle","prototype-tree","noise-expressions","instrument"].includes(e))return`/auxiliary/${e}.html${t}`;if(this.concepts.has(e))return`/concepts/${e}.html${t}`;if(this.classes.has(e))return`/classes/${e}.html${t}`;if(this.events.has(e))return`/events.html#${e}`;if(this.defines.has(e))return`/defines.html#${e}`;let n=e.match(/defines\.prototypes\[\'(.+)\'\]/);if(n&&this.defines.has(`defines.prototypes.${n[1]}`))return`/defines.html#defines.prototypes.${n[1]}`;console.warn(`Invalid Link: runtime:${e}${t}`)}with_base_classes(e,t){let n=[];return n.push(...t(e)),e.parent&&n.push(...t(this.classes.get(e.parent))),n}generate_debuginfo(){let e={alwaysValid:{},expandKeys:{}};return this.classes.forEach(t=>{if(["LuaCustomTable"].includes(t.name))return;let n={},o=!1;e.expandKeys[t.name]=n;for(let s of this.with_base_classes(t,u=>u.attributes))if(s.name==="valid")o=!0;else if(s.name!=="object_name"){if(s.read_type){n[s.name]={},s.write_type||(n[s.name].readOnly=!0);let u=s.read_type;typeof u=="string"&&u.startsWith("defines.")&&(n[s.name].enumFrom=u)}}o||(e.alwaysValid[t.name]=!0);for(let s of t.operators)switch(s.name){case"index":n["[]"]={readOnly:!s.write_type,thisAsTable:!0,iterMode:"count"};break;case"length":default:break}for(let s of this.with_base_classes(t,u=>u.methods))["help","generate_event_name"].includes(s.name)||s.parameters.length>0||s.return_values.length!==0&&(s.raises||(n[s.name]={readOnly:!0,fetchable:!0}))}),e}async generate_LuaLS_docs(e){return Promise.all([...await this.generate_LuaLS_classes(e),this.generate_LuaLS_concepts(e),this.generate_LuaLS_defines(e),this.generate_LuaLS_events(e),this.generate_LuaLS_LuaObjectNames(),this.generate_LuaLS_global_functions(e)])}async generate_LuaLS_classes(e){let t=[];for(let n of this.docs.classes)t.push(await this.generate_LuaLS_class(n,e));return t}async generate_LuaLS_class(e,t){let n=new De(`runtime-api/${e.name}`,this.docs.application_version),o=new pe(e.name),s=this.globals.get(e.name);s&&(o.global_name=s.name),o.description=t(this.collect_description(e,{scope:"runtime",member:e.name})),o.parents=e.parent?[new U(e.parent)]:[new U("LuaObject")],o.generic_args=$t.adjust.class[e.name]?.generic_params,$t.adjust.class[e.name]?.generic_parent&&o.parents.push(await this.LuaLS_type($t.adjust.class[e.name]?.generic_parent));for(let f of e.attributes)o.add(new ce(f.name,await this.LuaLS_type(f.write_type??f.read_type,{file:n,table_class_name:`${e.name}.${f.name}`,format_description:t}),t(this.collect_description(f,{scope:"runtime",member:e.name,part:f.name})),f.optional));for(let f of e.operators)switch(f.name){case"call":{o.add(new $e(t(this.collect_description(f,{scope:"runtime",member:e.name,part:"call_operator"})),await this.LuaLS_params(f.parameters,t),await this.LuaLS_returns(f.return_values,t)));break}case"length":{let d=new Yr("len",await this.LuaLS_type(f.read_type));d.description=t(this.collect_description(f,{scope:"runtime",member:e.name,part:"length_operator"})),o.add(d);break}case"index":{if($t.adjust.class[e.name]?.no_index)break;o.add(new ce(await this.LuaLS_type($t.adjust.class[e.name]?.index_key??"uint"),await this.LuaLS_type(f.write_type??f.read_type),t(this.collect_description(f,{scope:"runtime",member:e.name,part:"index_operator"}))));break}default:throw`Unkown operator: ${f.name}`}let u=o;$t.adjust.class[e.name]?.split_funcs&&(u=new pe(`${e.name}_funcs`),n.add(u),o.parents.push(new U(`${e.name}_funcs`)));for(let f of e.methods)u.add(await this.LuaLS_function(f,n,t,e.name));return n.add(o),n}async generate_LuaLS_concepts(e){let t=new De("runtime-api/concepts",this.docs.application_version);for(let n of this.docs.concepts){let o=e(this.collect_description(n,{scope:"runtime",member:n.name}));if(typeof n.type=="string")t.add(new mt(n.name,await this.LuaLS_type(n.type),o));else switch(n.type.complex_type){case"dictionary":let s=n.type.key,u=n.type.value;if(typeof u=="object"&&u.complex_type==="literal"&&u.value===!0&&typeof s=="object"&&s.complex_type==="union"){let f=new pe(n.name);f.exact=!0,f.description=o;for(let d of s.options)f.add(new ce(await this.LuaLS_type(d),await this.LuaLS_type(u)));t.add(f);break}case"union":case"array":case"table":case"tuple":case"LuaStruct":{let f=await this.LuaLS_type(n.type,{file:t,table_class_name:n.name,format_description:e});f instanceof U&&f.name===n.name||t.add(new mt(n.name,f,o));break}case"builtin":break;default:break}}return t}async generate_LuaLS_defines(e){let t=new De("runtime-api/defines",this.docs.application_version),n=new pe("defines");n.global_name="defines",n.description=e(void 0,{scope:"runtime",member:"defines"}),t.add(n);let o=(u,f)=>Zi(f)?`${u}.${f}`:`${u}['${f}']`,s=async(u,f,d,c)=>{let p=o(f,u.name),m=`${d}.${Er(u.name)}`,y=e(this.collect_description(u,{scope:"runtime",member:p}));if(p==="defines.prototypes"&&(c=new ot(0)),u.values)t.add(new to(p,m,u.values.map(g=>new ro(g.name,new U(`${m}.${Er(g.name)}`),g.description,c)),y));else{let g=new pe(p);if(g.global_name=p,g.description=y,$t.adjust.define[p]?.owntype&&(g.parents=[new U(`__${p}`)]),t.add(g),u.subkeys)for(let R of u.subkeys)await s(R,p,m,c)}};for(let u of this.docs.defines)await s(u,"defines","defines");return t}async generate_LuaLS_events(e){let t=new De("runtime-api/events",this.docs.application_version),n=new pe("event_handler.events");n.exact=!0;for(let[o,s]of this.events){let u=new pe(`EventData.${s.name}`);u.exact=!0,u.parents=[new U("EventData")],u.description=e(this.collect_description(s,{scope:"runtime",member:s.name}));for(let d of s.data)u.add(new ce(d.name,await this.LuaLS_type(d.type),e(this.collect_description(d,{scope:"runtime",member:s.name,part:d.name})),d.optional));if(t.add(u),s.name==="CustomInputEvent")continue;let f=new xe("handler",[new ee("event",new U(`EventData.${s.name}`))]);n.add(new ce(new U(`defines.events.${s.name}`),f))}return n.add(new ce(new U("defines.events"),new xe("handler",[new ee("event",new U("EventData"))]))),t.add(n),t}async generate_LuaLS_LuaObjectNames(){let e=new De("runtime-api/LuaObjectNames",this.docs.application_version);return e.add(new mt("LuaObject.object_name",new Ft(this.docs.classes.filter(t=>!t.abstract).map(t=>new ot(t.name))))),e}async generate_LuaLS_global_functions(e){let t=new De("runtime-api/global_functions",this.docs.application_version);for(let n of this.docs.global_functions)t.add(await this.LuaLS_function(n,t,e));return t}async LuaLS_params(e,t){return Promise.all(e.sort(ea).map(async n=>new ee(Er(n.name),await this.LuaLS_type(n.type),t(this.collect_description(n)),n.optional)))}async LuaLS_returns(e,t){return Promise.all(e.sort(ea).map(async n=>new no(await this.LuaLS_type(n.type),void 0,t(this.collect_description(n)),n.optional)))}async LuaLS_function(e,t,n,o){let s=e.format.takes_table?[new ee("param",await this.LuaLS_table_type(e,t,`${o??""}${o?".":""}${e.name}_param`,n),void 0,e.format.table_optional)]:await this.LuaLS_params(e.parameters,n);e.variadic_parameter&&s.push(new ee("...",await this.LuaLS_type(e.variadic_parameter.type),n(e.variadic_parameter.description)));let u=new xe(e.name,s,await this.LuaLS_returns(e.return_values,n),n(this.collect_description(e),{scope:"runtime",member:o??"libraries",part:o?e.name:"new-functions"}));if(o==="LuaBootstrap"&&e.name==="on_event"){s[1].type.members[0].params[0].name="event",u.add(new $e(void 0,[new ee("event",new U("string")),new ee("handler",new xe("handler",[new ee("event",new U("EventData"))]))])),u.add(new $e(void 0,[new ee("event",new U("LuaCustomEventPrototype")),new ee("handler",new xe("handler",[new ee("event",new U("EventData"))]))])),u.add(new $e(void 0,[new ee("event",new U("LuaCustomInputPrototype")),new ee("handler",new xe("handler",[new ee("event",new U("EventData.CustomInputEvent"))]))]));for(let[f,d]of this.events){let c=new U(`defines.events.${d.name}`),p=new U(`EventData.${d.name}`);if(d.name==="CustomInputEvent")continue;let m=[new ee("event",c),new ee("handler",new xe("handler",[new ee("event",p)]))];d.filter&&m.push(new ee("filters",new Qe(new U(d.filter)),void 0,!0)),u.add(new $e(void 0,m))}}return u}async LuaLS_table_type(e,t,n,o,s){let u=new pe(n);u.exact=!0,u.parents=s,t.add(u);let f=1;for(let d of e.parameters.sort(ea)){let c="complex_type"in e&&e.complex_type==="tuple";u.add(new ce(c?new ot(f++):d.name,await this.LuaLS_type(d.type),o(this.collect_description(d)),d.optional))}if(e.variant_parameter_groups){let d=[],c=new mt(u.name,new Ft(d));t.add(c),u.name+=".base";for(let p of e.variant_parameter_groups){let m=await this.LuaLS_table_type(p,t,`${n}.${Er(p.name)}`,o,[new U(u.name)]);d.push(m)}return d.push(new U(u.name)),new U(c.name)}return new U(u.name)}async LuaLS_type(e,t){if(!e)return new U("any");if(typeof e=="string")return new U(e);let n=o=>t&&{file:t.file,table_class_name:`${t.table_class_name}.${o}`,format_description:t.format_description};switch(e.complex_type){case"array":return new Qe(await this.LuaLS_type(e.value,n("member")));case"dictionary":return new tr(await this.LuaLS_type(e.key,n("key")),await this.LuaLS_type(e.value,n("value")));case"union":return new Ft(await Promise.all(e.options.map((o,s)=>this.LuaLS_type(o,n(`${s}`)))));case"LuaLazyLoadedValue":return new U("LuaLazyLoadedValue",[await this.LuaLS_type(e.value,n("value"))]);case"LuaCustomTable":return new U("LuaCustomTable",await Promise.all([this.LuaLS_type(e.key,n("key")),this.LuaLS_type(e.value,n("value"))]));case"literal":return new ot(e.value);case"function":return new xe(void 0,await Promise.all(e.parameters.map(async(o,s,u)=>new ee(`p${s+1}`,await this.LuaLS_type(o,n(`param${u.length>1?s:""}`))))));case"type":return this.LuaLS_type(e.value,t);case"tuple":return new Pr(await Promise.all(e.values.map((o,s)=>this.LuaLS_type(o,n(`${s}`)))));case"table":if(!t)throw new Error(`${e.complex_type} without parent`);return this.LuaLS_table_type(e,t.file,t.table_class_name,t.format_description);case"LuaStruct":{if(!t)throw new Error(`${e.complex_type} without parent`);let o=new pe(t.table_class_name);o.exact=!0;for(let s of e.attributes)o.add(new ce(s.name,await this.LuaLS_type(s.write_type??s.read_type,{file:t.file,table_class_name:`${t.table_class_name}.${s.name}`,format_description:t.format_description}),t.format_description(this.collect_description(s)),s.optional));return t.file.add(o),new U(t.table_class_name)}}throw new Error("Invalid Type")}collect_description(e,t,n){return n||(n=e.description),"read"in e&&(n=`[${e.read?"R":""}${e.write?"W":""}] ${n??""}`),[n,e.lists?.join(`
3323
+ `)}};function ea(a,e){return a.order-e.order}var ta=class{docs;classes;events;concepts;globals;defines;constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(this.docs.api_version!==6)throw`Unsupported Runtime Docs JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="runtime")throw`Wrong stage: ${this.docs.stage}`;this.classes=new Map(this.docs.classes.map(o=>[o.name,o])),this.events=new Map(this.docs.events.map(o=>[o.name,o])),this.concepts=new Map(this.docs.concepts.map(o=>[o.name,o])),this.globals=new Map(this.docs.global_objects.map(o=>[o.type,o]));let n=(o,s)=>{let u=`${s}${o.name}`;this.defines.add(u);let f=`${u}.`;o.values&&o.values.forEach(d=>{this.defines.add(`${f}${d.name}`)}),o.subkeys&&o.subkeys.forEach(d=>n(d,f))};this.defines=new Set,this.defines.add("defines"),this.docs.defines.forEach(o=>n(o,"defines."))}isVersion(e){return this.api_version===e}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["classes","events","concepts","defines"].includes(e))return`/${e}.html${t}`;if(e==="builtin_types")return`/builtin-types.html${t}`;if(["libraries","storage","migrations","data-lifecycle","prototype-tree","noise-expressions","instrument"].includes(e))return`/auxiliary/${e}.html${t}`;if(this.concepts.has(e))return`/concepts/${e}.html${t}`;if(this.classes.has(e))return`/classes/${e}.html${t}`;if(this.events.has(e))return`/events.html#${e}`;if(this.defines.has(e))return`/defines.html#${e}`;let n=e.match(/defines\.prototypes\[\'(.+)\'\]/);if(n&&this.defines.has(`defines.prototypes.${n[1]}`))return`/defines.html#defines.prototypes.${n[1]}`;console.warn(`Invalid Link: runtime:${e}${t}`)}with_base_classes(e,t){let n=[];return n.push(...t(e)),e.parent&&n.push(...t(this.classes.get(e.parent))),n}generate_debuginfo(){let e={alwaysValid:{},expandKeys:{}};return this.classes.forEach(t=>{if(["LuaCustomTable"].includes(t.name))return;let n={},o=!1;e.expandKeys[t.name]=n;for(let s of this.with_base_classes(t,u=>u.attributes))if(s.name==="valid")o=!0;else if(s.name!=="object_name"){if(s.read_type){n[s.name]={},s.write_type||(n[s.name].readOnly=!0);let u=s.read_type;typeof u=="string"&&u.startsWith("defines.")&&(n[s.name].enumFrom=u)}}o||(e.alwaysValid[t.name]=!0);for(let s of t.operators)switch(s.name){case"index":n["[]"]={readOnly:!s.write_type,thisAsTable:!0,iterMode:"count"};break;case"length":default:break}for(let s of this.with_base_classes(t,u=>u.methods))["help","generate_event_name"].includes(s.name)||s.parameters.length>0||s.return_values.length!==0&&(s.raises||(n[s.name]={readOnly:!0,fetchable:!0}))}),e}async generate_LuaLS_docs(e){return Promise.all([...await this.generate_LuaLS_classes(e),this.generate_LuaLS_concepts(e),this.generate_LuaLS_defines(e),this.generate_LuaLS_events(e),this.generate_LuaLS_LuaObjectNames(),this.generate_LuaLS_global_functions(e)])}async generate_LuaLS_classes(e){let t=[];for(let n of this.docs.classes)t.push(await this.generate_LuaLS_class(n,e));return t}async generate_LuaLS_class(e,t){let n=new De(`runtime-api/${e.name}`,this.docs.application_version),o=new pe(e.name),s=this.globals.get(e.name);s&&(o.global_name=s.name),o.description=t(this.collect_description(e,{scope:"runtime",member:e.name})),o.parents=e.parent?[new N(e.parent)]:[new N("LuaObject")],o.generic_args=$t.adjust.class[e.name]?.generic_params,$t.adjust.class[e.name]?.generic_parent&&o.parents.push(await this.LuaLS_type($t.adjust.class[e.name]?.generic_parent));for(let f of e.attributes)o.add(new ce(f.name,await this.LuaLS_type(f.write_type??f.read_type,{file:n,table_class_name:`${e.name}.${f.name}`,format_description:t}),t(this.collect_description(f,{scope:"runtime",member:e.name,part:f.name})),f.optional));for(let f of e.operators)switch(f.name){case"call":{o.add(new $e(t(this.collect_description(f,{scope:"runtime",member:e.name,part:"call_operator"})),await this.LuaLS_params(f.parameters,t),await this.LuaLS_returns(f.return_values,t)));break}case"length":{let d=new Yr("len",await this.LuaLS_type(f.read_type));d.description=t(this.collect_description(f,{scope:"runtime",member:e.name,part:"length_operator"})),o.add(d);break}case"index":{if($t.adjust.class[e.name]?.no_index)break;o.add(new ce(await this.LuaLS_type($t.adjust.class[e.name]?.index_key??"uint"),await this.LuaLS_type(f.write_type??f.read_type),t(this.collect_description(f,{scope:"runtime",member:e.name,part:"index_operator"}))));break}default:throw`Unkown operator: ${f.name}`}let u=o;$t.adjust.class[e.name]?.split_funcs&&(u=new pe(`${e.name}_funcs`),n.add(u),o.parents.push(new N(`${e.name}_funcs`)));for(let f of e.methods)u.add(await this.LuaLS_function(f,n,t,e.name));return n.add(o),n}async generate_LuaLS_concepts(e){let t=new De("runtime-api/concepts",this.docs.application_version);for(let n of this.docs.concepts){let o=e(this.collect_description(n,{scope:"runtime",member:n.name}));if(typeof n.type=="string")t.add(new mt(n.name,await this.LuaLS_type(n.type),o));else switch(n.type.complex_type){case"dictionary":let s=n.type.key,u=n.type.value;if(typeof u=="object"&&u.complex_type==="literal"&&u.value===!0&&typeof s=="object"&&s.complex_type==="union"){let f=new pe(n.name);f.exact=!0,f.description=o;for(let d of s.options)f.add(new ce(await this.LuaLS_type(d),await this.LuaLS_type(u)));t.add(f);break}case"union":case"array":case"table":case"tuple":case"LuaStruct":{let f=await this.LuaLS_type(n.type,{file:t,table_class_name:n.name,format_description:e});f instanceof N&&f.name===n.name||t.add(new mt(n.name,f,o));break}case"builtin":break;default:break}}return t}async generate_LuaLS_defines(e){let t=new De("runtime-api/defines",this.docs.application_version),n=new pe("defines");n.global_name="defines",n.description=e(void 0,{scope:"runtime",member:"defines"}),t.add(n);let o=(u,f)=>Zi(f)?`${u}.${f}`:`${u}['${f}']`,s=async(u,f,d,c)=>{let p=o(f,u.name),m=`${d}.${Er(u.name)}`,y=e(this.collect_description(u,{scope:"runtime",member:p}));if(p==="defines.prototypes"&&(c=new ot(0)),u.values)t.add(new to(p,m,u.values.map(g=>new ro(g.name,new N(`${m}.${Er(g.name)}`),g.description,c)),y));else{let g=new pe(p);if(g.global_name=p,g.description=y,$t.adjust.define[p]?.owntype&&(g.parents=[new N(`__${p}`)]),t.add(g),u.subkeys)for(let R of u.subkeys)await s(R,p,m,c)}};for(let u of this.docs.defines)await s(u,"defines","defines");return t}async generate_LuaLS_events(e){let t=new De("runtime-api/events",this.docs.application_version),n=new pe("event_handler.events");n.exact=!0;for(let[o,s]of this.events){let u=new pe(`EventData.${s.name}`);u.exact=!0,u.parents=[new N("EventData")],u.description=e(this.collect_description(s,{scope:"runtime",member:s.name}));for(let d of s.data)u.add(new ce(d.name,await this.LuaLS_type(d.type),e(this.collect_description(d,{scope:"runtime",member:s.name,part:d.name})),d.optional));if(t.add(u),s.name==="CustomInputEvent")continue;let f=new xe("handler",[new ee("event",new N(`EventData.${s.name}`))]);n.add(new ce(new N(`defines.events.${s.name}`),f))}return n.add(new ce(new N("defines.events"),new xe("handler",[new ee("event",new N("EventData"))]))),t.add(n),t}async generate_LuaLS_LuaObjectNames(){let e=new De("runtime-api/LuaObjectNames",this.docs.application_version);return e.add(new mt("LuaObject.object_name",new Ft(this.docs.classes.filter(t=>!t.abstract).map(t=>new ot(t.name))))),e}async generate_LuaLS_global_functions(e){let t=new De("runtime-api/global_functions",this.docs.application_version);for(let n of this.docs.global_functions)t.add(await this.LuaLS_function(n,t,e));return t}async LuaLS_params(e,t){return Promise.all(e.sort(ea).map(async n=>new ee(Er(n.name),await this.LuaLS_type(n.type),t(this.collect_description(n)),n.optional)))}async LuaLS_returns(e,t){return Promise.all(e.sort(ea).map(async n=>new no(await this.LuaLS_type(n.type),void 0,t(this.collect_description(n)),n.optional)))}async LuaLS_function(e,t,n,o){let s=e.format.takes_table?[new ee("param",await this.LuaLS_table_type(e,t,`${o??""}${o?".":""}${e.name}_param`,n),void 0,e.format.table_optional)]:await this.LuaLS_params(e.parameters,n);e.variadic_parameter&&s.push(new ee("...",await this.LuaLS_type(e.variadic_parameter.type),n(e.variadic_parameter.description)));let u=new xe(e.name,s,await this.LuaLS_returns(e.return_values,n),n(this.collect_description(e),{scope:"runtime",member:o??"libraries",part:o?e.name:"new-functions"}));if(o==="LuaBootstrap"&&e.name==="on_event"){s[1].type.members[0].params[0].name="event",u.add(new $e(void 0,[new ee("event",new N("string")),new ee("handler",new xe("handler",[new ee("event",new N("EventData"))]))])),u.add(new $e(void 0,[new ee("event",new N("LuaCustomEventPrototype")),new ee("handler",new xe("handler",[new ee("event",new N("EventData"))]))])),u.add(new $e(void 0,[new ee("event",new N("LuaCustomInputPrototype")),new ee("handler",new xe("handler",[new ee("event",new N("EventData.CustomInputEvent"))]))]));for(let[f,d]of this.events){let c=new N(`defines.events.${d.name}`),p=new N(`EventData.${d.name}`);if(d.name==="CustomInputEvent")continue;let m=[new ee("event",c),new ee("handler",new xe("handler",[new ee("event",p)]))];d.filter&&m.push(new ee("filters",new Qe(new N(d.filter)),void 0,!0)),u.add(new $e(void 0,m))}}return u}async LuaLS_table_type(e,t,n,o,s){let u=new pe(n);u.exact=!0,u.parents=s,t.add(u);let f=1;for(let d of e.parameters.sort(ea)){let c="complex_type"in e&&e.complex_type==="tuple";u.add(new ce(c?new ot(f++):d.name,await this.LuaLS_type(d.type),o(this.collect_description(d)),d.optional))}if(e.variant_parameter_groups){let d=[],c=new mt(u.name,new Ft(d));t.add(c),u.name+=".base";for(let p of e.variant_parameter_groups){let m=await this.LuaLS_table_type(p,t,`${n}.${Er(p.name)}`,o,[new N(u.name)]);d.push(m)}return d.push(new N(u.name)),new N(c.name)}return new N(u.name)}async LuaLS_type(e,t){if(!e)return new N("any");if(typeof e=="string")return new N(e);let n=o=>t&&{file:t.file,table_class_name:`${t.table_class_name}.${o}`,format_description:t.format_description};switch(e.complex_type){case"array":return new Qe(await this.LuaLS_type(e.value,n("member")));case"dictionary":return new tr(await this.LuaLS_type(e.key,n("key")),await this.LuaLS_type(e.value,n("value")));case"union":return new Ft(await Promise.all(e.options.map((o,s)=>this.LuaLS_type(o,n(`${s}`)))));case"LuaLazyLoadedValue":return new N("LuaLazyLoadedValue",[await this.LuaLS_type(e.value,n("value"))]);case"LuaCustomTable":return new N("LuaCustomTable",await Promise.all([this.LuaLS_type(e.key,n("key")),this.LuaLS_type(e.value,n("value"))]));case"literal":return new ot(e.value);case"function":return new xe(void 0,await Promise.all(e.parameters.map(async(o,s,u)=>new ee(`p${s+1}`,await this.LuaLS_type(o,n(`param${u.length>1?s:""}`))))));case"type":return this.LuaLS_type(e.value,t);case"tuple":return new Pr(await Promise.all(e.values.map((o,s)=>this.LuaLS_type(o,n(`${s}`)))));case"table":if(!t)throw new Error(`${e.complex_type} without parent`);return this.LuaLS_table_type(e,t.file,t.table_class_name,t.format_description);case"LuaStruct":{if(!t)throw new Error(`${e.complex_type} without parent`);let o=new pe(t.table_class_name);o.exact=!0;for(let s of e.attributes)o.add(new ce(s.name,await this.LuaLS_type(s.write_type??s.read_type,{file:t.file,table_class_name:`${t.table_class_name}.${s.name}`,format_description:t.format_description}),t.format_description(this.collect_description(s)),s.optional));return t.file.add(o),new N(t.table_class_name)}}throw new Error("Invalid Type")}collect_description(e,t,n){return n||(n=e.description),"read"in e&&(n=`[${e.read?"R":""}${e.write?"W":""}] ${n??""}`),[n,e.lists?.join(`
3324
3324
 
3325
3325
  `),e.raises&&`**Events:**
3326
3326
  ${e.raises?.map(o=>` * ${o.optional?"May":"Will"} raise [${o.name}](runtime:events::${o.name}) ${{instantly:"instantly",current_tick:"later in the current tick",future_tick:"in a future tick"}[o.timeframe]}.${o.description?`
@@ -3331,58 +3331,58 @@ ${o}`)?.join(`
3331
3331
 
3332
3332
  `),e.subclasses&&`_Can only be used if this is ${e.subclasses.length===1?e.subclasses[0]:`${e.subclasses.slice(0,-1).join(", ")} or ${e.subclasses[e.subclasses.length-1]}`}_`].filter(o=>!!o).join(`
3333
3333
 
3334
- `)}};var ra=class{docs;concepts;simple_structs;prototypes;type_prefix="data.";constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(this.docs.api_version!==6)throw`Unsupported Prototype Docs JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="prototype")throw`Wrong stage: ${this.docs.stage}`;this.concepts=new Map(this.docs.types.map(n=>[n.name,n])),this.simple_structs=new Set;for(let[n,o]of this.concepts)typeof o.type=="object"&&o.type.complex_type==="struct"&&this.simple_structs.add(n);this.prototypes=new Map(this.docs.prototypes.map(n=>[n.name,n]))}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["prototypes","types"].includes(e))return`/${e}.html${t}`;if(["libraries","storage","migrations","data-lifecycle","prototype-tree","noise-expressions","instrument"].includes(e))return`/auxiliary/${e}.html${t}`;if(this.concepts.has(e))return`/types/${e}.html${t}`;if(this.prototypes.has(e))return`/prototypes/${e}.html${t}`;console.warn(`Invalid Link: prototype:${e}${t}`)}generate_LuaLS_docs(e){return[this.generate_LuaLS_concepts(e),this.generate_LuaLS_prototypes(e),this.generate_LuaLS_data(e)]}async generate_LuaLS_concepts(e){let t=new De("prototype-api/concepts",this.application_version);for(let[n,o]of this.concepts){if(o.type==="builtin")continue;let s=this.simple_structs.has(o.name),u=s?"":".struct";if(o.properties){let f=new pe(this.type_prefix+o.name+u);f.exact=!0,f.description=await e(o.description,{scope:"prototype",member:o.name}),o.parent&&(f.parents=[new U(this.type_prefix+o.parent+u)]);for(let d of o.properties)f.add(new ce(d.name,this.lua_proto_type(d.type),await e(d.description,{scope:"prototype",member:o.name,part:d.name}),d.optional));t.add(f)}if(!s){let f=o.type;o.name==="AnyPrototype"&&typeof f=="object"&&f.complex_type==="union"&&(f={complex_type:"union",options:f.options.filter(c=>typeof c=="object"?!(c.complex_type==="type"&&c.value==="MapGenPresets"):c!=="MapGenPresets")}),t.add(new mt(this.type_prefix+o.name,this.lua_proto_type(f,o),o.description))}}return t}generate_LuaLS_data(e){let t=new De("prototype-api/data",this.application_version),n=new pe("data");n.add(new ce("raw",new U("data.raw"))),n.add(new ce("is_demo",new U("boolean")));let o=new xe("extend",[new ee("otherdata",new Qe(new U("data.AnyPrototype")))]);o.add(new $e(void 0,[new ee("self",new U("data")),new ee("otherdata",new Qe(new U("data.AnyPrototype")))])),o.add(new $e(void 0,[new ee("otherdata",new Qe(new U("data.AnyModSettingPrototype")))])),o.add(new $e(void 0,[new ee("self",new U("data")),new ee("otherdata",new Qe(new U("data.AnyModSettingPrototype")))])),n.add(o),n.global_name="data",t.add(n);let s=new pe("data.raw");s.exact=!0,t.add(s);for(let[u,f]of this.prototypes)f.typename&&s.add(new ce(new ot(f.typename),new tr(new U("string"),new U(this.type_prefix+f.name))));return t}async generate_LuaLS_prototypes(e){let t=new De("prototype-api/prototypes",this.application_version);for(let[n,o]of this.prototypes){let s=new pe(this.type_prefix+o.name);s.exact=!0,s.description=await e(o.description,{scope:"prototype",member:o.name}),o.parent&&(s.parents=[new U(this.type_prefix+o.parent)]);for(let u of o.properties)s.add(new ce(u.name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:o.name,part:u.name}),u.optional)),u.alt_name&&s.add(new ce(u.alt_name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:o.name,part:u.alt_name}),u.optional));if(o.custom_properties){let u=o.custom_properties;s.add(new ce(this.lua_proto_type(u.key_type),this.lua_proto_type(u.value_type),await e(u.description,{scope:"prototype",member:o.name,part:"custom_properties"})))}t.add(s)}return t}lua_proto_type(e,t){switch(typeof e){case"string":switch(e){case"bool":return new U("boolean");case"boolean":case"string":case"float":case"double":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":case"int64":case"uint64":return new U(e)}return new U(this.type_prefix+e);case"object":switch(e.complex_type){case"struct":if(!t)throw new Error("struct without parent");return this.simple_structs.has(t.name)?new U(this.type_prefix+t.name):new U(this.type_prefix+t.name+".struct");case"array":return new Qe(this.lua_proto_type(e.value,t));case"tuple":return new Pr(e.values.map(n=>this.lua_proto_type(n,t)));case"dictionary":return new tr(this.lua_proto_type(e.key,t),this.lua_proto_type(e.value,t));case"union":return new Ft(e.options.map(n=>this.lua_proto_type(n,t)));case"literal":return new ot(e.value);case"type":return this.lua_proto_type(e.value,t);default:throw new Error("Invalid Type")}default:throw new Error("Invalid Type")}}};var B=le(Xu()),_t=le(require("path")),Jd=le(require("fs/promises")),or=le(require("os")),os=le(Ud());var Nd;(()=>{"use strict";var a={470:o=>{function s(d){if(typeof d!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(d))}function u(d,c){for(var p,m="",y=0,g=-1,w=0,R=0;R<=d.length;++R){if(R<d.length)p=d.charCodeAt(R);else{if(p===47)break;p=47}if(p===47){if(!(g===R-1||w===1))if(g!==R-1&&w===2){if(m.length<2||y!==2||m.charCodeAt(m.length-1)!==46||m.charCodeAt(m.length-2)!==46){if(m.length>2){var k=m.lastIndexOf("/");if(k!==m.length-1){k===-1?(m="",y=0):y=(m=m.slice(0,k)).length-1-m.lastIndexOf("/"),g=R,w=0;continue}}else if(m.length===2||m.length===1){m="",y=0,g=R,w=0;continue}}c&&(m.length>0?m+="/..":m="..",y=2)}else m.length>0?m+="/"+d.slice(g+1,R):m=d.slice(g+1,R),y=R-g-1;g=R,w=0}else p===46&&w!==-1?++w:w=-1}return m}var f={resolve:function(){for(var d,c="",p=!1,m=arguments.length-1;m>=-1&&!p;m--){var y;m>=0?y=arguments[m]:(d===void 0&&(d=process.cwd()),y=d),s(y),y.length!==0&&(c=y+"/"+c,p=y.charCodeAt(0)===47)}return c=u(c,!p),p?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(d){if(s(d),d.length===0)return".";var c=d.charCodeAt(0)===47,p=d.charCodeAt(d.length-1)===47;return(d=u(d,!c)).length!==0||c||(d="."),d.length>0&&p&&(d+="/"),c?"/"+d:d},isAbsolute:function(d){return s(d),d.length>0&&d.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var d,c=0;c<arguments.length;++c){var p=arguments[c];s(p),p.length>0&&(d===void 0?d=p:d+="/"+p)}return d===void 0?".":f.normalize(d)},relative:function(d,c){if(s(d),s(c),d===c||(d=f.resolve(d))===(c=f.resolve(c)))return"";for(var p=1;p<d.length&&d.charCodeAt(p)===47;++p);for(var m=d.length,y=m-p,g=1;g<c.length&&c.charCodeAt(g)===47;++g);for(var w=c.length-g,R=y<w?y:w,k=-1,I=0;I<=R;++I){if(I===R){if(w>R){if(c.charCodeAt(g+I)===47)return c.slice(g+I+1);if(I===0)return c.slice(g+I)}else y>R&&(d.charCodeAt(p+I)===47?k=I:I===0&&(k=0));break}var E=d.charCodeAt(p+I);if(E!==c.charCodeAt(g+I))break;E===47&&(k=I)}var re="";for(I=p+k+1;I<=m;++I)I!==m&&d.charCodeAt(I)!==47||(re.length===0?re+="..":re+="/..");return re.length>0?re+c.slice(g+k):(g+=k,c.charCodeAt(g)===47&&++g,c.slice(g))},_makeLong:function(d){return d},dirname:function(d){if(s(d),d.length===0)return".";for(var c=d.charCodeAt(0),p=c===47,m=-1,y=!0,g=d.length-1;g>=1;--g)if((c=d.charCodeAt(g))===47){if(!y){m=g;break}}else y=!1;return m===-1?p?"/":".":p&&m===1?"//":d.slice(0,m)},basename:function(d,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(d);var p,m=0,y=-1,g=!0;if(c!==void 0&&c.length>0&&c.length<=d.length){if(c.length===d.length&&c===d)return"";var w=c.length-1,R=-1;for(p=d.length-1;p>=0;--p){var k=d.charCodeAt(p);if(k===47){if(!g){m=p+1;break}}else R===-1&&(g=!1,R=p+1),w>=0&&(k===c.charCodeAt(w)?--w==-1&&(y=p):(w=-1,y=R))}return m===y?y=R:y===-1&&(y=d.length),d.slice(m,y)}for(p=d.length-1;p>=0;--p)if(d.charCodeAt(p)===47){if(!g){m=p+1;break}}else y===-1&&(g=!1,y=p+1);return y===-1?"":d.slice(m,y)},extname:function(d){s(d);for(var c=-1,p=0,m=-1,y=!0,g=0,w=d.length-1;w>=0;--w){var R=d.charCodeAt(w);if(R!==47)m===-1&&(y=!1,m=w+1),R===46?c===-1?c=w:g!==1&&(g=1):c!==-1&&(g=-1);else if(!y){p=w+1;break}}return c===-1||m===-1||g===0||g===1&&c===m-1&&c===p+1?"":d.slice(c,m)},format:function(d){if(d===null||typeof d!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof d);return function(c,p){var m=p.dir||p.root,y=p.base||(p.name||"")+(p.ext||"");return m?m===p.root?m+y:m+"/"+y:y}(0,d)},parse:function(d){s(d);var c={root:"",dir:"",base:"",ext:"",name:""};if(d.length===0)return c;var p,m=d.charCodeAt(0),y=m===47;y?(c.root="/",p=1):p=0;for(var g=-1,w=0,R=-1,k=!0,I=d.length-1,E=0;I>=p;--I)if((m=d.charCodeAt(I))!==47)R===-1&&(k=!1,R=I+1),m===46?g===-1?g=I:E!==1&&(E=1):g!==-1&&(E=-1);else if(!k){w=I+1;break}return g===-1||R===-1||E===0||E===1&&g===R-1&&g===w+1?R!==-1&&(c.base=c.name=w===0&&y?d.slice(1,R):d.slice(w,R)):(w===0&&y?(c.name=d.slice(1,g),c.base=d.slice(1,R)):(c.name=d.slice(w,g),c.base=d.slice(w,R)),c.ext=d.slice(g,R)),w>0?c.dir=d.slice(0,w-1):y&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};f.posix=f,o.exports=f}},e={};function t(o){var s=e[o];if(s!==void 0)return s.exports;var u=e[o]={exports:{}};return a[o](u,u.exports,t),u.exports}t.d=(o,s)=>{for(var u in s)t.o(s,u)&&!t.o(o,u)&&Object.defineProperty(o,u,{enumerable:!0,get:s[u]})},t.o=(o,s)=>Object.prototype.hasOwnProperty.call(o,s),t.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var n={};(()=>{let o;t.r(n),t.d(n,{URI:()=>y,Utils:()=>Mt}),typeof process=="object"?o=process.platform==="win32":typeof navigator=="object"&&(o=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,u=/^\//,f=/^\/\//;function d(C,P){if(!C.scheme&&P)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${C.authority}", path: "${C.path}", query: "${C.query}", fragment: "${C.fragment}"}`);if(C.scheme&&!s.test(C.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(C.path){if(C.authority){if(!u.test(C.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(C.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",p="/",m=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class y{static isUri(P){return P instanceof y||!!P&&typeof P.authority=="string"&&typeof P.fragment=="string"&&typeof P.path=="string"&&typeof P.query=="string"&&typeof P.scheme=="string"&&typeof P.fsPath=="string"&&typeof P.with=="function"&&typeof P.toString=="function"}scheme;authority;path;query;fragment;constructor(P,D,$,Y,H,V=!1){typeof P=="object"?(this.scheme=P.scheme||c,this.authority=P.authority||c,this.path=P.path||c,this.query=P.query||c,this.fragment=P.fragment||c):(this.scheme=function(we,ve){return we||ve?we:"file"}(P,V),this.authority=D||c,this.path=function(we,ve){switch(we){case"https":case"http":case"file":ve?ve[0]!==p&&(ve=p+ve):ve=p}return ve}(this.scheme,$||c),this.query=Y||c,this.fragment=H||c,d(this,V))}get fsPath(){return E(this,!1)}with(P){if(!P)return this;let{scheme:D,authority:$,path:Y,query:H,fragment:V}=P;return D===void 0?D=this.scheme:D===null&&(D=c),$===void 0?$=this.authority:$===null&&($=c),Y===void 0?Y=this.path:Y===null&&(Y=c),H===void 0?H=this.query:H===null&&(H=c),V===void 0?V=this.fragment:V===null&&(V=c),D===this.scheme&&$===this.authority&&Y===this.path&&H===this.query&&V===this.fragment?this:new w(D,$,Y,H,V)}static parse(P,D=!1){let $=m.exec(P);return $?new w($[2]||c,J($[4]||c),J($[5]||c),J($[7]||c),J($[9]||c),D):new w(c,c,c,c,c)}static file(P){let D=c;if(o&&(P=P.replace(/\\/g,p)),P[0]===p&&P[1]===p){let $=P.indexOf(p,2);$===-1?(D=P.substring(2),P=p):(D=P.substring(2,$),P=P.substring($)||p)}return new w("file",D,P,c,c)}static from(P){let D=new w(P.scheme,P.authority,P.path,P.query,P.fragment);return d(D,!0),D}toString(P=!1){return re(this,P)}toJSON(){return this}static revive(P){if(P){if(P instanceof y)return P;{let D=new w(P);return D._formatted=P.external,D._fsPath=P._sep===g?P.fsPath:null,D}}return P}}let g=o?1:void 0;class w extends y{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=E(this,!1)),this._fsPath}toString(P=!1){return P?re(this,!0):(this._formatted||(this._formatted=re(this,!1)),this._formatted)}toJSON(){let P={$mid:1};return this._fsPath&&(P.fsPath=this._fsPath,P._sep=g),this._formatted&&(P.external=this._formatted),this.path&&(P.path=this.path),this.scheme&&(P.scheme=this.scheme),this.authority&&(P.authority=this.authority),this.query&&(P.query=this.query),this.fragment&&(P.fragment=this.fragment),P}}let R={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function k(C,P,D){let $,Y=-1;for(let H=0;H<C.length;H++){let V=C.charCodeAt(H);if(V>=97&&V<=122||V>=65&&V<=90||V>=48&&V<=57||V===45||V===46||V===95||V===126||P&&V===47||D&&V===91||D&&V===93||D&&V===58)Y!==-1&&($+=encodeURIComponent(C.substring(Y,H)),Y=-1),$!==void 0&&($+=C.charAt(H));else{$===void 0&&($=C.substr(0,H));let we=R[V];we!==void 0?(Y!==-1&&($+=encodeURIComponent(C.substring(Y,H)),Y=-1),$+=we):Y===-1&&(Y=H)}}return Y!==-1&&($+=encodeURIComponent(C.substring(Y))),$!==void 0?$:C}function I(C){let P;for(let D=0;D<C.length;D++){let $=C.charCodeAt(D);$===35||$===63?(P===void 0&&(P=C.substr(0,D)),P+=R[$]):P!==void 0&&(P+=C[D])}return P!==void 0?P:C}function E(C,P){let D;return D=C.authority&&C.path.length>1&&C.scheme==="file"?`//${C.authority}${C.path}`:C.path.charCodeAt(0)===47&&(C.path.charCodeAt(1)>=65&&C.path.charCodeAt(1)<=90||C.path.charCodeAt(1)>=97&&C.path.charCodeAt(1)<=122)&&C.path.charCodeAt(2)===58?P?C.path.substr(1):C.path[1].toLowerCase()+C.path.substr(2):C.path,o&&(D=D.replace(/\//g,"\\")),D}function re(C,P){let D=P?I:k,$="",{scheme:Y,authority:H,path:V,query:we,fragment:ve}=C;if(Y&&($+=Y,$+=":"),(H||Y==="file")&&($+=p,$+=p),H){let ue=H.indexOf("@");if(ue!==-1){let Ut=H.substr(0,ue);H=H.substr(ue+1),ue=Ut.lastIndexOf(":"),ue===-1?$+=D(Ut,!1,!1):($+=D(Ut.substr(0,ue),!1,!1),$+=":",$+=D(Ut.substr(ue+1),!1,!0)),$+="@"}H=H.toLowerCase(),ue=H.lastIndexOf(":"),ue===-1?$+=D(H,!1,!0):($+=D(H.substr(0,ue),!1,!0),$+=H.substr(ue))}if(V){if(V.length>=3&&V.charCodeAt(0)===47&&V.charCodeAt(2)===58){let ue=V.charCodeAt(1);ue>=65&&ue<=90&&(V=`/${String.fromCharCode(ue+32)}:${V.substr(3)}`)}else if(V.length>=2&&V.charCodeAt(1)===58){let ue=V.charCodeAt(0);ue>=65&&ue<=90&&(V=`${String.fromCharCode(ue+32)}:${V.substr(2)}`)}$+=D(V,!0,!1)}return we&&($+="?",$+=D(we,!1,!1)),ve&&($+="#",$+=P?ve:k(ve,!1,!1)),$}function G(C){try{return decodeURIComponent(C)}catch{return C.length>3?C.substr(0,3)+G(C.substr(3)):C}}let X=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function J(C){return C.match(X)?C.replace(X,P=>G(P)):C}var We=t(470);let He=We.posix||We,wt="/";var Mt;(function(C){C.joinPath=function(P,...D){return P.with({path:He.join(P.path,...D)})},C.resolvePath=function(P,...D){let $=P.path,Y=!1;$[0]!==wt&&($=wt+$,Y=!0);let H=He.resolve($,...D);return Y&&H[0]===wt&&!P.authority&&(H=H.substring(1)),P.with({path:H})},C.dirname=function(P){if(P.path.length===0||P.path===wt)return P;let D=He.dirname(P.path);return D.length===1&&D.charCodeAt(0)===46&&(D=""),P.with({path:D})},C.basename=function(P){return He.basename(P.path)},C.extname=function(P){return He.extname(P.path)}})(Mt||(Mt={}))})(),Nd=n})();var{URI:Ae,Utils:Je}=Nd;var Za=require("child_process"),Xd=require("events");var jd=require("events"),kr=class extends jd.EventEmitter{buf;matchers;constructor(e,t){super(),this.buf=Buffer.alloc(0),this.matchers=t instanceof Buffer?[t]:t,e.on("close",()=>{this.emit("close")}),e.on("end",()=>{this.emit("end")}),e.on("data",n=>{for(this.buf=Buffer.concat([this.buf,n]);this.buf.length>0;){let o=this.matchers.map(u=>this.buf.indexOf(u instanceof Buffer?u:u.start)),s=o.reduce((u,f)=>u===-1?f:f===-1?u:Math.min(u,f));if(s!==-1){let u=this.matchers[o.indexOf(s)];if(u instanceof Buffer)s>0&&this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s+u.length);else{s>0&&(this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s));let f=this.buf.indexOf(u.end,u.start.length);if(f!==-1)this.emit("segment",this.buf.slice(u.start.length,f)),this.buf=this.buf.slice(f+u.end.length);else return}}else return}})}};var Yd=le(require("path")),Qd=le(Gd()),$b=[Buffer.from(`
3334
+ `)}};var ra=class{docs;concepts;simple_structs;prototypes;type_prefix="data.";constructor(e,t){if(this.docs=JSON.parse(e),this.docs.application!=="factorio")throw`Unknown application: ${this.docs.application}`;if(this.docs.api_version!==6)throw`Unsupported Prototype Docs JSON Version ${this.docs.api_version}`;if(this.docs.stage!=="prototype")throw`Wrong stage: ${this.docs.stage}`;this.concepts=new Map(this.docs.types.map(n=>[n.name,n])),this.simple_structs=new Set;for(let[n,o]of this.concepts)typeof o.type=="object"&&o.type.complex_type==="struct"&&this.simple_structs.add(n);this.prototypes=new Map(this.docs.prototypes.map(n=>[n.name,n]))}get api_version(){return this.docs.api_version}get stage(){return this.docs.stage}get application(){return this.docs.application}get application_version(){return this.docs.application_version}resolve_link(e,t){if(t=t?`#${t}`:"",["prototypes","types"].includes(e))return`/${e}.html${t}`;if(["libraries","storage","migrations","data-lifecycle","prototype-tree","noise-expressions","instrument"].includes(e))return`/auxiliary/${e}.html${t}`;if(this.concepts.has(e))return`/types/${e}.html${t}`;if(this.prototypes.has(e))return`/prototypes/${e}.html${t}`;console.warn(`Invalid Link: prototype:${e}${t}`)}generate_LuaLS_docs(e){return[this.generate_LuaLS_concepts(e),this.generate_LuaLS_prototypes(e),this.generate_LuaLS_data(e)]}async generate_LuaLS_concepts(e){let t=new De("prototype-api/concepts",this.application_version);for(let[n,o]of this.concepts){if(o.type==="builtin")continue;let s=this.simple_structs.has(o.name),u=s?"":".struct";if(o.properties){let f=new pe(this.type_prefix+o.name+u);f.exact=!0,f.description=await e(o.description,{scope:"prototype",member:o.name}),o.parent&&(f.parents=[new N(this.type_prefix+o.parent+u)]);for(let d of o.properties)f.add(new ce(d.name,this.lua_proto_type(d.type),await e(d.description,{scope:"prototype",member:o.name,part:d.name}),d.optional));t.add(f)}if(!s){let f=o.type;o.name==="AnyPrototype"&&typeof f=="object"&&f.complex_type==="union"&&(f={complex_type:"union",options:f.options.filter(c=>typeof c=="object"?!(c.complex_type==="type"&&c.value==="MapGenPresets"):c!=="MapGenPresets")}),t.add(new mt(this.type_prefix+o.name,this.lua_proto_type(f,o),o.description))}}return t}generate_LuaLS_data(e){let t=new De("prototype-api/data",this.application_version),n=new pe("data");n.add(new ce("raw",new N("data.raw"))),n.add(new ce("is_demo",new N("boolean")));let o=new xe("extend",[new ee("otherdata",new Qe(new N("data.AnyPrototype")))]);o.add(new $e(void 0,[new ee("self",new N("data")),new ee("otherdata",new Qe(new N("data.AnyPrototype")))])),o.add(new $e(void 0,[new ee("otherdata",new Qe(new N("data.AnyModSettingPrototype")))])),o.add(new $e(void 0,[new ee("self",new N("data")),new ee("otherdata",new Qe(new N("data.AnyModSettingPrototype")))])),n.add(o),n.global_name="data",t.add(n);let s=new pe("data.raw");s.exact=!0,t.add(s);for(let[u,f]of this.prototypes)f.typename&&s.add(new ce(new ot(f.typename),new tr(new N("string"),new N(this.type_prefix+f.name))));return t}async generate_LuaLS_prototypes(e){let t=new De("prototype-api/prototypes",this.application_version);for(let[n,o]of this.prototypes){let s=new pe(this.type_prefix+o.name);s.exact=!0,s.description=await e(o.description,{scope:"prototype",member:o.name}),o.parent&&(s.parents=[new N(this.type_prefix+o.parent)]);for(let u of o.properties)s.add(new ce(u.name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:o.name,part:u.name}),u.optional)),u.alt_name&&s.add(new ce(u.alt_name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:o.name,part:u.alt_name}),u.optional));if(o.custom_properties){let u=o.custom_properties;s.add(new ce(this.lua_proto_type(u.key_type),this.lua_proto_type(u.value_type),await e(u.description,{scope:"prototype",member:o.name,part:"custom_properties"})))}t.add(s)}return t}lua_proto_type(e,t){switch(typeof e){case"string":switch(e){case"bool":return new N("boolean");case"boolean":case"string":case"float":case"double":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":case"int64":case"uint64":return new N(e)}return new N(this.type_prefix+e);case"object":switch(e.complex_type){case"struct":if(!t)throw new Error("struct without parent");return this.simple_structs.has(t.name)?new N(this.type_prefix+t.name):new N(this.type_prefix+t.name+".struct");case"array":return new Qe(this.lua_proto_type(e.value,t));case"tuple":return new Pr(e.values.map(n=>this.lua_proto_type(n,t)));case"dictionary":return new tr(this.lua_proto_type(e.key,t),this.lua_proto_type(e.value,t));case"union":return new Ft(e.options.map(n=>this.lua_proto_type(n,t)));case"literal":return new ot(e.value);case"type":return this.lua_proto_type(e.value,t);default:throw new Error("Invalid Type")}default:throw new Error("Invalid Type")}}};var O=le(Xu()),_t=le(require("path")),Jd=le(require("fs/promises")),or=le(require("os")),os=le(Nd());var Ud;(()=>{"use strict";var a={470:o=>{function s(d){if(typeof d!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(d))}function u(d,c){for(var p,m="",y=0,g=-1,w=0,R=0;R<=d.length;++R){if(R<d.length)p=d.charCodeAt(R);else{if(p===47)break;p=47}if(p===47){if(!(g===R-1||w===1))if(g!==R-1&&w===2){if(m.length<2||y!==2||m.charCodeAt(m.length-1)!==46||m.charCodeAt(m.length-2)!==46){if(m.length>2){var k=m.lastIndexOf("/");if(k!==m.length-1){k===-1?(m="",y=0):y=(m=m.slice(0,k)).length-1-m.lastIndexOf("/"),g=R,w=0;continue}}else if(m.length===2||m.length===1){m="",y=0,g=R,w=0;continue}}c&&(m.length>0?m+="/..":m="..",y=2)}else m.length>0?m+="/"+d.slice(g+1,R):m=d.slice(g+1,R),y=R-g-1;g=R,w=0}else p===46&&w!==-1?++w:w=-1}return m}var f={resolve:function(){for(var d,c="",p=!1,m=arguments.length-1;m>=-1&&!p;m--){var y;m>=0?y=arguments[m]:(d===void 0&&(d=process.cwd()),y=d),s(y),y.length!==0&&(c=y+"/"+c,p=y.charCodeAt(0)===47)}return c=u(c,!p),p?c.length>0?"/"+c:"/":c.length>0?c:"."},normalize:function(d){if(s(d),d.length===0)return".";var c=d.charCodeAt(0)===47,p=d.charCodeAt(d.length-1)===47;return(d=u(d,!c)).length!==0||c||(d="."),d.length>0&&p&&(d+="/"),c?"/"+d:d},isAbsolute:function(d){return s(d),d.length>0&&d.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var d,c=0;c<arguments.length;++c){var p=arguments[c];s(p),p.length>0&&(d===void 0?d=p:d+="/"+p)}return d===void 0?".":f.normalize(d)},relative:function(d,c){if(s(d),s(c),d===c||(d=f.resolve(d))===(c=f.resolve(c)))return"";for(var p=1;p<d.length&&d.charCodeAt(p)===47;++p);for(var m=d.length,y=m-p,g=1;g<c.length&&c.charCodeAt(g)===47;++g);for(var w=c.length-g,R=y<w?y:w,k=-1,C=0;C<=R;++C){if(C===R){if(w>R){if(c.charCodeAt(g+C)===47)return c.slice(g+C+1);if(C===0)return c.slice(g+C)}else y>R&&(d.charCodeAt(p+C)===47?k=C:C===0&&(k=0));break}var E=d.charCodeAt(p+C);if(E!==c.charCodeAt(g+C))break;E===47&&(k=C)}var re="";for(C=p+k+1;C<=m;++C)C!==m&&d.charCodeAt(C)!==47||(re.length===0?re+="..":re+="/..");return re.length>0?re+c.slice(g+k):(g+=k,c.charCodeAt(g)===47&&++g,c.slice(g))},_makeLong:function(d){return d},dirname:function(d){if(s(d),d.length===0)return".";for(var c=d.charCodeAt(0),p=c===47,m=-1,y=!0,g=d.length-1;g>=1;--g)if((c=d.charCodeAt(g))===47){if(!y){m=g;break}}else y=!1;return m===-1?p?"/":".":p&&m===1?"//":d.slice(0,m)},basename:function(d,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(d);var p,m=0,y=-1,g=!0;if(c!==void 0&&c.length>0&&c.length<=d.length){if(c.length===d.length&&c===d)return"";var w=c.length-1,R=-1;for(p=d.length-1;p>=0;--p){var k=d.charCodeAt(p);if(k===47){if(!g){m=p+1;break}}else R===-1&&(g=!1,R=p+1),w>=0&&(k===c.charCodeAt(w)?--w==-1&&(y=p):(w=-1,y=R))}return m===y?y=R:y===-1&&(y=d.length),d.slice(m,y)}for(p=d.length-1;p>=0;--p)if(d.charCodeAt(p)===47){if(!g){m=p+1;break}}else y===-1&&(g=!1,y=p+1);return y===-1?"":d.slice(m,y)},extname:function(d){s(d);for(var c=-1,p=0,m=-1,y=!0,g=0,w=d.length-1;w>=0;--w){var R=d.charCodeAt(w);if(R!==47)m===-1&&(y=!1,m=w+1),R===46?c===-1?c=w:g!==1&&(g=1):c!==-1&&(g=-1);else if(!y){p=w+1;break}}return c===-1||m===-1||g===0||g===1&&c===m-1&&c===p+1?"":d.slice(c,m)},format:function(d){if(d===null||typeof d!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof d);return function(c,p){var m=p.dir||p.root,y=p.base||(p.name||"")+(p.ext||"");return m?m===p.root?m+y:m+"/"+y:y}(0,d)},parse:function(d){s(d);var c={root:"",dir:"",base:"",ext:"",name:""};if(d.length===0)return c;var p,m=d.charCodeAt(0),y=m===47;y?(c.root="/",p=1):p=0;for(var g=-1,w=0,R=-1,k=!0,C=d.length-1,E=0;C>=p;--C)if((m=d.charCodeAt(C))!==47)R===-1&&(k=!1,R=C+1),m===46?g===-1?g=C:E!==1&&(E=1):g!==-1&&(E=-1);else if(!k){w=C+1;break}return g===-1||R===-1||E===0||E===1&&g===R-1&&g===w+1?R!==-1&&(c.base=c.name=w===0&&y?d.slice(1,R):d.slice(w,R)):(w===0&&y?(c.name=d.slice(1,g),c.base=d.slice(1,R)):(c.name=d.slice(w,g),c.base=d.slice(w,R)),c.ext=d.slice(g,R)),w>0?c.dir=d.slice(0,w-1):y&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};f.posix=f,o.exports=f}},e={};function t(o){var s=e[o];if(s!==void 0)return s.exports;var u=e[o]={exports:{}};return a[o](u,u.exports,t),u.exports}t.d=(o,s)=>{for(var u in s)t.o(s,u)&&!t.o(o,u)&&Object.defineProperty(o,u,{enumerable:!0,get:s[u]})},t.o=(o,s)=>Object.prototype.hasOwnProperty.call(o,s),t.r=o=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})};var n={};(()=>{let o;t.r(n),t.d(n,{URI:()=>y,Utils:()=>Mt}),typeof process=="object"?o=process.platform==="win32":typeof navigator=="object"&&(o=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,u=/^\//,f=/^\/\//;function d(I,P){if(!I.scheme&&P)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${I.authority}", path: "${I.path}", query: "${I.query}", fragment: "${I.fragment}"}`);if(I.scheme&&!s.test(I.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(I.path){if(I.authority){if(!u.test(I.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(I.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",p="/",m=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class y{static isUri(P){return P instanceof y||!!P&&typeof P.authority=="string"&&typeof P.fragment=="string"&&typeof P.path=="string"&&typeof P.query=="string"&&typeof P.scheme=="string"&&typeof P.fsPath=="string"&&typeof P.with=="function"&&typeof P.toString=="function"}scheme;authority;path;query;fragment;constructor(P,D,$,Y,H,V=!1){typeof P=="object"?(this.scheme=P.scheme||c,this.authority=P.authority||c,this.path=P.path||c,this.query=P.query||c,this.fragment=P.fragment||c):(this.scheme=function(we,ve){return we||ve?we:"file"}(P,V),this.authority=D||c,this.path=function(we,ve){switch(we){case"https":case"http":case"file":ve?ve[0]!==p&&(ve=p+ve):ve=p}return ve}(this.scheme,$||c),this.query=Y||c,this.fragment=H||c,d(this,V))}get fsPath(){return E(this,!1)}with(P){if(!P)return this;let{scheme:D,authority:$,path:Y,query:H,fragment:V}=P;return D===void 0?D=this.scheme:D===null&&(D=c),$===void 0?$=this.authority:$===null&&($=c),Y===void 0?Y=this.path:Y===null&&(Y=c),H===void 0?H=this.query:H===null&&(H=c),V===void 0?V=this.fragment:V===null&&(V=c),D===this.scheme&&$===this.authority&&Y===this.path&&H===this.query&&V===this.fragment?this:new w(D,$,Y,H,V)}static parse(P,D=!1){let $=m.exec(P);return $?new w($[2]||c,J($[4]||c),J($[5]||c),J($[7]||c),J($[9]||c),D):new w(c,c,c,c,c)}static file(P){let D=c;if(o&&(P=P.replace(/\\/g,p)),P[0]===p&&P[1]===p){let $=P.indexOf(p,2);$===-1?(D=P.substring(2),P=p):(D=P.substring(2,$),P=P.substring($)||p)}return new w("file",D,P,c,c)}static from(P){let D=new w(P.scheme,P.authority,P.path,P.query,P.fragment);return d(D,!0),D}toString(P=!1){return re(this,P)}toJSON(){return this}static revive(P){if(P){if(P instanceof y)return P;{let D=new w(P);return D._formatted=P.external,D._fsPath=P._sep===g?P.fsPath:null,D}}return P}}let g=o?1:void 0;class w extends y{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=E(this,!1)),this._fsPath}toString(P=!1){return P?re(this,!0):(this._formatted||(this._formatted=re(this,!1)),this._formatted)}toJSON(){let P={$mid:1};return this._fsPath&&(P.fsPath=this._fsPath,P._sep=g),this._formatted&&(P.external=this._formatted),this.path&&(P.path=this.path),this.scheme&&(P.scheme=this.scheme),this.authority&&(P.authority=this.authority),this.query&&(P.query=this.query),this.fragment&&(P.fragment=this.fragment),P}}let R={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function k(I,P,D){let $,Y=-1;for(let H=0;H<I.length;H++){let V=I.charCodeAt(H);if(V>=97&&V<=122||V>=65&&V<=90||V>=48&&V<=57||V===45||V===46||V===95||V===126||P&&V===47||D&&V===91||D&&V===93||D&&V===58)Y!==-1&&($+=encodeURIComponent(I.substring(Y,H)),Y=-1),$!==void 0&&($+=I.charAt(H));else{$===void 0&&($=I.substr(0,H));let we=R[V];we!==void 0?(Y!==-1&&($+=encodeURIComponent(I.substring(Y,H)),Y=-1),$+=we):Y===-1&&(Y=H)}}return Y!==-1&&($+=encodeURIComponent(I.substring(Y))),$!==void 0?$:I}function C(I){let P;for(let D=0;D<I.length;D++){let $=I.charCodeAt(D);$===35||$===63?(P===void 0&&(P=I.substr(0,D)),P+=R[$]):P!==void 0&&(P+=I[D])}return P!==void 0?P:I}function E(I,P){let D;return D=I.authority&&I.path.length>1&&I.scheme==="file"?`//${I.authority}${I.path}`:I.path.charCodeAt(0)===47&&(I.path.charCodeAt(1)>=65&&I.path.charCodeAt(1)<=90||I.path.charCodeAt(1)>=97&&I.path.charCodeAt(1)<=122)&&I.path.charCodeAt(2)===58?P?I.path.substr(1):I.path[1].toLowerCase()+I.path.substr(2):I.path,o&&(D=D.replace(/\//g,"\\")),D}function re(I,P){let D=P?C:k,$="",{scheme:Y,authority:H,path:V,query:we,fragment:ve}=I;if(Y&&($+=Y,$+=":"),(H||Y==="file")&&($+=p,$+=p),H){let ue=H.indexOf("@");if(ue!==-1){let Nt=H.substr(0,ue);H=H.substr(ue+1),ue=Nt.lastIndexOf(":"),ue===-1?$+=D(Nt,!1,!1):($+=D(Nt.substr(0,ue),!1,!1),$+=":",$+=D(Nt.substr(ue+1),!1,!0)),$+="@"}H=H.toLowerCase(),ue=H.lastIndexOf(":"),ue===-1?$+=D(H,!1,!0):($+=D(H.substr(0,ue),!1,!0),$+=H.substr(ue))}if(V){if(V.length>=3&&V.charCodeAt(0)===47&&V.charCodeAt(2)===58){let ue=V.charCodeAt(1);ue>=65&&ue<=90&&(V=`/${String.fromCharCode(ue+32)}:${V.substr(3)}`)}else if(V.length>=2&&V.charCodeAt(1)===58){let ue=V.charCodeAt(0);ue>=65&&ue<=90&&(V=`${String.fromCharCode(ue+32)}:${V.substr(2)}`)}$+=D(V,!0,!1)}return we&&($+="?",$+=D(we,!1,!1)),ve&&($+="#",$+=P?ve:k(ve,!1,!1)),$}function G(I){try{return decodeURIComponent(I)}catch{return I.length>3?I.substr(0,3)+G(I.substr(3)):I}}let X=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function J(I){return I.match(X)?I.replace(X,P=>G(P)):I}var ze=t(470);let He=ze.posix||ze,wt="/";var Mt;(function(I){I.joinPath=function(P,...D){return P.with({path:He.join(P.path,...D)})},I.resolvePath=function(P,...D){let $=P.path,Y=!1;$[0]!==wt&&($=wt+$,Y=!0);let H=He.resolve($,...D);return Y&&H[0]===wt&&!P.authority&&(H=H.substring(1)),P.with({path:H})},I.dirname=function(P){if(P.path.length===0||P.path===wt)return P;let D=He.dirname(P.path);return D.length===1&&D.charCodeAt(0)===46&&(D=""),P.with({path:D})},I.basename=function(P){return He.basename(P.path)},I.extname=function(P){return He.extname(P.path)}})(Mt||(Mt={}))})(),Ud=n})();var{URI:Ae,Utils:Je}=Ud;var Za=require("child_process"),Xd=require("events");var jd=require("events"),kr=class extends jd.EventEmitter{buf;matchers;constructor(e,t){super(),this.buf=Buffer.alloc(0),this.matchers=t instanceof Buffer?[t]:t,e.on("close",()=>{this.emit("close")}),e.on("end",()=>{this.emit("end")}),e.on("data",n=>{for(this.buf=Buffer.concat([this.buf,n]);this.buf.length>0;){let o=this.matchers.map(u=>this.buf.indexOf(u instanceof Buffer?u:u.start)),s=o.reduce((u,f)=>u===-1?f:f===-1?u:Math.min(u,f));if(s!==-1){let u=this.matchers[o.indexOf(s)];if(u instanceof Buffer)s>0&&this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s+u.length);else{s>0&&(this.emit("segment",this.buf.slice(0,s)),this.buf=this.buf.slice(s));let f=this.buf.indexOf(u.end,u.start.length);if(f!==-1)this.emit("segment",this.buf.slice(u.start.length,f)),this.buf=this.buf.slice(f+u.end.length);else return}}else return}})}};var Yd=le(require("path")),Qd=le(Gd()),$b=[Buffer.from(`
3335
3335
  `),Buffer.from("lua_debug> ")],Fb=[Buffer.from(`
3336
- `),{start:Buffer.from([239,183,174]),end:Buffer.from([239,183,175])}],Lo=class extends Xd.EventEmitter{factorio;hasNativeDebug;constructor(e,t,n,o){super();let s={cwd:Yd.dirname(e),env:Object.assign({},process.env,o,{SteamAppId:"427520"})};n?(this.hasNativeDebug=!0,this.factorio=(0,Za.spawn)(n,[e,...t],s)):this.factorio=(0,Za.spawn)(e,t,s),this.factorio.on("exit",(...d)=>this.emit("exit",...d)),new kr(this.factorio.stderr,$b).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stderr",d)}),new kr(this.factorio.stdout,Fb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stdout",d)})}writeStdin(e){return this.factorio.stdin.write(e)}kill(){if(this.hasNativeDebug)this.factorio.pid&&(0,Qd.default)(this.factorio.pid);else{this.factorio.kill();try{this.factorio.kill("SIGKILL")}catch{}}}};var es=Buffer.from([27,76,117,97,82,0,1,4,8,4,8,0,25,147,13,10,26,10]);function Ao(a,e){let t=a.readBigUInt64LE(e);e+=8;let n;return t>0?(n=a.subarray(e,e+Number(t)-1),e+=Number(t)):n=Buffer.alloc(0,0),[n,e]}var ts=class{constructor(e,t){this.raw=e;this.line=t}get Op(){return this.raw&63}get A(){return this.raw>>6&255}get B(){return this.raw>>23&511}get C(){return this.raw>>14&511}get Ax(){return this.raw>>6&67108863}get Bx(){return this.raw>>14&262143}get sBx(){return this.Bx-131071}},rs=class{name;instack;idx;constructor(e,t){this.instack=e.readUInt8(t)!==0,this.idx=e.readUInt8(t+1)}},ns=class{name;start;end;dumpsize;constructor(e,t){let n;[n,t]=Ao(e,t),this.name=n.toString("utf8"),this.start=e.readUInt32LE(t),t+=4,this.end=e.readUInt32LE(t),t+=4,this.dumpsize=(n.length===0?8:8+n.length+1)+8}},Tr=class{constructor(e,t){this.type=e;this.value=t;switch(e){case 0:if(t!==void 0)throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 1:if(typeof t!="boolean")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 3:if(typeof t!="number")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 4:if(!(t instanceof Buffer))throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;default:throw new Error(`Invalid Lua Constant Type: ${e}`)}}get label(){switch(this.type){case 0:return"nil";case 1:case 3:return this.value.toString();case 4:return`"${this.value.toString("utf8")}"`;default:throw new Error(`Invalid Lua Constant Type: ${this.type} ${this.value}`)}}},ko=class a{source;nparam;is_vararg;maxstack;locals=[];upvals=[];instruction_count;_instraw;_instlines;constants=[];inner_functions=[];firstline;lastline;nextbyte;constructor(e,t){if(t===void 0){if(!e.subarray(0,es.length).equals(es))throw new Error("Invalid Header");t=es.length}this.firstline=e.readUInt32LE(t),t+=4,this.lastline=e.readUInt32LE(t),t+=4,this.nparam=e[t++],this.is_vararg=e[t++]!==0,this.maxstack=e[t++],this.instruction_count=e.readUInt32LE(t),t+=4,this._instraw=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let n=e.readUInt32LE(t);t+=4;for(let c=0;c<n;c++){let p=e[t++];switch(p){case 0:this.constants.push(new Tr(0));break;case 1:this.constants.push(new Tr(1,e[t++]!==0));break;case 3:this.constants.push(new Tr(3,e.readDoubleLE(t))),t+=8;break;case 4:let m;[m,t]=Ao(e,t),this.constants.push(new Tr(4,m));break;default:throw new Error(`Invalid Lua Constant Type: ${p}`)}}let o=e.readUInt32LE(t);t+=4;for(let c=0;c<o;c++){let p=new a(e,t);t=p.nextbyte,this.inner_functions.push(p)}let s=e.readUInt32LE(t);t+=4;for(let c=0;c<s;c++)this.upvals.push(new rs(e,t)),t+=2;{let c;[c,t]=Ao(e,t),this.source=c.toString("utf8")}let u=e.readUInt32LE(t);if(t+=4,u!==this.instruction_count)throw new Error("line info count mismatch");this._instlines=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let f=e.readUInt32LE(t);t+=4;for(let c=0;c<f;c++){let p=new ns(e,t);t+=p.dumpsize,this.locals.push(p)}let d=e.readUInt32LE(t);t+=4;for(let c=0;c<d;c++){let p;[p,t]=Ao(e,t),this.upvals[c].name=p.toString("utf8")}this.nextbyte=t}_baseAddr;get baseAddr(){return this._baseAddr}rebase(e){let t=e;return this._baseAddr=t,t+=this.instruction_count,this.inner_functions.forEach(n=>{t=n.rebase(t)}),t}_instructions=[];instruction(e){if(e>this.instruction_count-1)return;let t=this._instructions[e];return t===void 0&&(t=new ts(this._instraw.readUint32LE(e*4),this._instlines.readUint32LE(e*4)),this._instructions[e]=t),t}get lines(){let e=[];for(let t=0;t<this.instruction_count;t++)e[t]=this._instlines.readUInt32LE(t*4);return e}walk_functions(e){e(this),this.inner_functions.forEach(t=>t.walk_functions(e))}getFunctionAtStartLine(e){if(this.firstline===e)return this;if(this.firstline<e&&(this.lastline===0||this.lastline>e)&&this.inner_functions)for(let t=0;t<this.inner_functions.length;t++){let n=this.inner_functions[t].getFunctionAtStartLine(e);if(n)return n}}getInstructionsAtBase(e,t){if(!(t===0||!this._baseAddr)&&this._baseAddr<=e&&this._baseAddr+this.instruction_count>e){let n=e-this._baseAddr,o=[];n+t>this.instruction_count&&(t=this.instruction_count-n);for(let s=0;s<t;s++){let u=this.instruction(s+n);o.push({address:"0x"+(this._baseAddr+n+s).toString(16),instruction:this.getInstructionLabel(s+n),line:u.line,instructionBytes:u.raw.toString(16).padStart(8,"0"),symbol:s+n===0?this.source+":"+this.firstline:void 0})}return o}}getInstructionLabel(e){let t=this.instruction(e);if(!t)throw new Error("Invalid PC");let n=this.instruction(e+1);switch(t.Op){case 1:return`LOADK ${this.getRegisterLabel(e,t.A)} := ${this.constants[t.Bx].label}`;case 2:if(!n)throw new Error("Invalid PC");return`LOADKX ${this.getRegisterLabel(e,t.A)} := ${this.constants[n.Ax].label}`;case 3:return`LOADBOOL ${this.getRegisterLabel(e,t.A)} := ${t.B!==0}${t.C!==0?" pc++":""}`;case 4:return`LOADNIL ${this.getRegisterLabel(e,t.A)}...${this.getRegisterLabel(e,t.A+t.B)})`;case 5:return`GETUPVAL ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}`;case 6:return`GETTABUP ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 7:return`GETTABLE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 8:return`SETTABUP ${this.getUpvalLabel(t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 9:return`SETUPVAL ${this.getUpvalLabel(t.B)} := ${this.getRegisterLabel(e,t.A)}`;case 10:return`SETTABLE ${this.getRegisterLabel(e,t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 11:{let f=t.B,d=this.fb2int(f),c=t.C,p=this.fb2int(c),m=f===d?`${d}`:`${f}->${d}`,y=c===p?`${p}`:`${c}->${p}`;return`NEWTABLE ${this.getRegisterLabel(e,t.A)} := {} size(${m},${y})`}case 12:return`SELF ${this.getRegisterLabel(e,t.A+1)} := ${this.getRegisterLabel(e,t.B)}; ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 13:return`ADD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} + ${this.getRegisterOrConstantLabel(e,t.C)}`;case 14:return`SUB ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} - ${this.getRegisterOrConstantLabel(e,t.C)}`;case 15:return`MUL ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} * ${this.getRegisterOrConstantLabel(e,t.C)}`;case 16:return`DIV ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} / ${this.getRegisterOrConstantLabel(e,t.C)}`;case 17:return`MOD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} % ${this.getRegisterOrConstantLabel(e,t.C)}`;case 18:return`POW ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} ^ ${this.getRegisterOrConstantLabel(e,t.C)}`;case 0:return`MOVE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}`;case 19:return`UNM ${this.getRegisterLabel(e,t.A)} := -${this.getRegisterLabel(e,t.B)}`;case 20:return`NOT ${this.getRegisterLabel(e,t.A)} := not ${this.getRegisterLabel(e,t.B)}`;case 21:return`LEN ${this.getRegisterLabel(e,t.A)} := length of ${this.getRegisterLabel(e,t.B)}`;case 22:return`CONCAT ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}.. ... ..${this.getRegisterLabel(e,t.C)}`;case 23:return`JMP pc+=${t.sBx}${t.A?`; close >= ${t.A-1}`:""}`;case 24:return`EQ if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?"~=":"=="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 25:return`LT if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">=":"<"} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 26:return`LE if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">":"<="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 27:return`TEST if ${t.C?"not ":""}${this.getRegisterLabel(e,t.A)} then pc++`;case 28:return`TESTSET if ${t.C?"":"not "}${this.getRegisterLabel(e,t.A)} then ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)} else pc++`;case 29:return`CALL ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args ${t.C?t.C-1:"var"} returns)`;case 30:return`TAILCALL return ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args)`;case 31:return`RETURN return ${t.B?t.B-1:"var"} results ${t.B>1?`starting at ${this.getRegisterLabel(e,t.A)}`:""}`;case 32:return`FORLOOP ${this.getRegisterLabel(e,t.A)} += ${this.getRegisterLabel(e,t.A+2)}; if ${this.getRegisterLabel(e,t.A)} <= ${this.getRegisterLabel(e,t.A+1)} then { pc+=${t.sBx}; ${this.getRegisterLabel(e,t.A+3)} := ${this.getRegisterLabel(e,t.A)} }`;case 33:return`FORPREP ${this.getRegisterLabel(e,t.A)} -= ${this.getRegisterLabel(e,t.A+2)}; pc += ${t.sBx}`;case 34:return`TFORCALL ${this.getRegisterLabel(e,t.A+3)}...${this.getRegisterLabel(e,t.A+2+t.C)} := ${this.getRegisterLabel(e,t.A)}(${this.getRegisterLabel(e,t.A+1)},${this.getRegisterLabel(e,t.A+2)})`;case 35:return`TFORLOOP if ${this.getRegisterLabel(e,t.A+1)} ~= nil then { ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.A+1)}; pc += ${t.sBx} }`;case 36:let o=t.C-1;if(!t.C){if(!n)throw new Error("Invalid PC");o=n.Ax-1}let s=50;return`SETLIST ${this.getRegisterLabel(e,t.A)}[${o*s+1}...${t.B?o*s+t.B:""}] := ${this.getRegisterLabel(e,t.A+1)}...${t.B?this.getRegisterLabel(e,t.A+t.B):"top"}`;case 37:let u=this.inner_functions[t.Bx];return`CLOSURE ${this.getRegisterLabel(e,t.A)} := closure(${u.source}:${u.firstline}-${u.lastline})`;case 38:return`VARARG ${this.getRegisterLabel(e,t.A)}...${t.B?this.getRegisterLabel(e,t.A+t.B-2):"top"}`;case 39:return"EXTRAARG";default:return`UNKNOWN OP(${t.Op}) A(${t.A}) B(${t.B}) C(${t.C})`}}fb2int(e){let t=e>>3&31;return t===0?e:(e&7)+8<<t-1}getRegisterOrConstantLabel(e,t){return t&256?this.constants[t&255].label:this.getRegisterLabel(e,t)}getUpvalLabel(e){return`Up(${this.upvals[e]?.name??e})`}getRegisterLabel(e,t){let n=0;for(let o=0;o<this.locals.length;o++){let s=this.locals[o];if(s.start<=e+1){if(s.end>=e+1){if(n===t)return`R(${s.name})`;n++}}else break}return`R(${t})`}};var sn=class extends B.StoppedEvent{constructor(e,t,n){super(e,t,n),this.body.allThreadsStopped=!0}},is=class extends B.LoggingDebugSession{constructor(t,n,o){super();this.activeVersion=t;this.fs=n;this.editorInterface=o;this.objectInfoChunks=pi(Nr(this.activeVersion.docs.generate_debuginfo()),3500),this.setDebuggerLinesStartAt1(!0),this.setDebuggerColumnsStartAt1(!0),this.setDebuggerPathFormat("uri"),this.configDone=new Promise(s=>{this._configurationDone=s})}_configurationDone;configDone;nextBreakpointID=1;breakPoints=new Map;breakPointsChanged=new Set;exceptionFilters=new Set(["unhandled"]);_modules=new Map;_responses=new Map;_dumps=new Map;translations=new Map;buffers=new Map;nextRef=1;factorio;stdinQueue=[];launchArgs;inPrompt=0;pauseRequested=!1;workspaceModInfo=[];initializeRequest(t,n){t.body=t.body||{},t.body.supportsConditionalBreakpoints=!0,t.body.supportsHitConditionalBreakpoints=!0,t.body.supportsEvaluateForHovers=!0,t.body.exceptionBreakpointFilters=[{filter:"pcall",label:"Caught by pcall",default:!1},{filter:"xpcall",label:"Caught by xpcall",default:!1},{filter:"unhandled",label:"Unhandled Exceptions",default:!0}],t.body.supportsSetVariable=!0,t.body.supportsModulesRequest=!0,t.body.supportsLogPoints=!0,t.body.supportsConfigurationDoneRequest=!0,t.body.supportsLoadedSourcesRequest=!0,t.body.supportsBreakpointLocationsRequest=!0,t.body.supportsDisassembleRequest=!0,t.body.supportsSteppingGranularity=!0,t.body.supportsInstructionBreakpoints=!1,this.sendResponse(t)}configurationDoneRequest(t,n){super.configurationDoneRequest(t,n),this._configurationDone?.()}async terminateRequest(t,n){return this.sendResponse(t),this.terminate()}async disconnectRequest(t,n){return this.sendResponse(t),this.terminate()}async checkFactorioArgs(t){let n=t.factorioArgs;if(n){if(n.includes("--config"))return this.sendEvent(new B.OutputEvent(`Factorio --config option is set by configPath and should not be included in factorioArgs
3337
- `,"console")),!1;if(n.includes("--mod-directory"))return this.sendEvent(new B.OutputEvent(`Factorio --mod-directory option is set by modsPath and should not be included in factorioArgs
3338
- `,"console")),!1}return!0}async resolveModsPath(t){let n;if(t.modsPath){n="launch";let o=_t.posix.normalize(t.modsPath);o.match(/^~[\\\/]/)&&(o=_t.posix.join(or.homedir().replace(/\\/g,"/"),o.replace(/^~[\\\/]/,""))),o.match(/[\\\/]$/)&&(o=o.replace(/[\\\/]+$/,""));try{await Jd.access(o),t.modsPath=o}catch{return this.sendEvent(new B.OutputEvent(`modsPath specified in launch configuration does not exist
3339
- `,"console")),!1}}else{let o=await this.editorInterface.findWorkspaceFiles("**/mod-list.json");if(o.length===1)t.modsPath=_t.dirname(o[0].fsPath),n="workspace";else{if(o.length>1)return this.sendEvent(new B.OutputEvent(`multiple mod-list.json in workspace, please specify one as modsPath
3340
- `,"console")),!1;n="config",t.modsPath=await this.activeVersion.defaultModsPath()}}if(or.platform()==="win32"&&t.modsPath.startsWith("/")&&(t.modsPath=t.modsPath.substr(1)),t.modsPath=t.modsPath.replace(/\\/g,"/"),this.sendEvent(new B.OutputEvent(`using modsPath ${t.modsPath} (${n})
3341
- `,"console")),n!=="config"){let o=t.modsPath;o.endsWith("/")||(o+="/"),t.factorioArgs.push("--mod-directory",o)}return!0}async setupMods(t){if(t.manageMod===!1)this.sendEvent(new B.OutputEvent(`automatic management of mods disabled
3342
- `,"console"));else{t.adjustMods||(t.adjustMods={}),t.allowDisableBaseMod||(t.adjustMods.base=!0);let n=new Sr(t.modsPath);await n.Loaded,t.disableExtraMods&&n.disableAll();for(let o in t.adjustMods)if(t.adjustMods.hasOwnProperty(o)){let s=t.adjustMods[o];n.set(o,s)}if(t.noDebug)n.set("debugadapter",!1);else{n.set("coverage",!1),n.set("profiler",!1);let o=await n.installMod("debugadapter",{origin:"bundle"});this.sendEvent(new B.OutputEvent(`package install debugadapter ${JSON.stringify(o)}
3343
- `,"console"))}await n.write(),this.sendEvent(new B.OutputEvent(`debugadapter ${t.noDebug?"disabled":"enabled"} in mod-list.json
3344
- `,"console"))}}async launchRequest(t,n){if(B.logger.setup(n.trace?B.Logger.LogLevel.Verbose:B.Logger.LogLevel.Stop,_t.join(or.tmpdir(),"fmtk.log"),!0),this.launchArgs=n,n.hookSettings=n.hookSettings??!1,n.hookData=n.hookData??!1,n.hookControl=n.hookControl??!0,n.hookMode=n.hookMode??"debug",n.trace=n.trace??!1,n.factorioArgs=n.factorioArgs||[],n.env&&Object.keys(n.env).length>0&&this.sendEvent(new B.OutputEvent(`using custom environment variables: ${JSON.stringify(n.env)}
3345
- `,"console")),!await this.checkFactorioArgs(n)){this.sendEvent(new B.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}if(!await this.resolveModsPath(n)){this.sendEvent(new B.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}try{await this.setupMods(n)}catch(m){this.sendEvent(new B.OutputEvent(`Error setting up mods: ${m}
3346
- `,"console")),this.sendEvent(new B.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}let o=await this.editorInterface.findWorkspaceFiles("**/info.json");if(await Promise.all(o.map(this.updateInfoJson,this)),n.noDebug||((n.useInstrumentMode??!0)&&n.factorioArgs.push("--instrument-mod","debugadapter"),n.factorioArgs.push("--enable-unsafe-lua-debug-api"),(n.checkPrototypes??!0)&&!n.factorioArgs.includes("--check-unused-prototype-data")&&n.factorioArgs.push("--check-unused-prototype-data")),this.activeVersion.configPathIsOverriden()&&n.factorioArgs.push("--config",await this.activeVersion.configPath()),n.adjustModSettings){let m=Je.joinPath(Ae.file(n.modsPath),"mod-settings.dat"),y=new Xr(new ir(await this.fs.readFile(m)));for(let g of n.adjustModSettings)if(g.value===void 0)y.set(g.scope,g.name);else switch(typeof g.value){case"string":y.set(g.scope,g.name,{type:"string",value:g.value});break;case"number":y.set(g.scope,g.name,{type:"number",value:g.value});break;case"boolean":y.set(g.scope,g.name,{type:"bool",value:g.value});break}await this.fs.writeFile(m,y.save())}this.factorio=new Lo(this.activeVersion.factorioPath,n.factorioArgs,this.activeVersion.nativeDebugger,n.env),this.factorio.on("exit",(m,y)=>{m&&this.sendEvent(new B.Event("exited",{exitCode:m})),this.sendEvent(new B.TerminatedEvent)});let s,u=new Promise(m=>{s=m});this.factorio.on("stderr",m=>{let y=m.toString();y&&this.sendEvent(new B.OutputEvent(y+`
3347
- `,"stderr"))});let f=(m,y)=>{switch(typeof y){case"string":switch(y.charCodeAt(0)){case 64976:return _t.basename(y.slice(1));case 64977:return this.convertDebuggerPathToClient(y.slice(1));case 64978:return this.convertDebuggerLineToClient(Number.parseInt(y.slice(1)));case 64980:{let g=Number.parseInt(y.slice(1));return this.translations.get(g)??`{Missing Translation ID ${g}}`}case 64981:{let g=Number.parseInt(y.slice(1));return this.buffers.get(g)??`{Missing Buffer ID ${g}}`}}}return y},d=m=>{let y=m.indexOf(1,3),g=Number.parseInt(m.subarray(3,y).toString().trim()),w=m.subarray(y+1),R=[],k=w.indexOf(239);for(;k>=0;){if(w[k+1]>=160&&w[k+1]<=163&&w[k+2]>=128&&w[k+2]<=191){let E=w.subarray(k,k+4).toString("utf8").charCodeAt(0)-63488;R.push(w.subarray(0,k),Buffer.from([E])),w=w.subarray(k+3)}else R.push(w.subarray(0,k+1)),w=w.subarray(k+1);k=w.indexOf(239)}R.push(w);let I=Buffer.concat(R);this.buffers.set(g,I)},c=async m=>{if(m[2]===151){d(m);return}let y=m.toString();switch(y.charCodeAt(0)){case 64976:switch(this.inPrompt++,y.charCodeAt(1)){case 57344:await u,this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#settings"):this.continueRequire(this.launchArgs.hookSettings??!1,"#settings");return;case 57345:this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#data"):this.continueRequire(this.launchArgs.hookData??!1,"#data");return;case 57346:{let g=y.slice(2).trim();this.clearQueuedStdin();let w=this.launchArgs.hookControl??!0,R=g==="debugadapter"?Array.isArray(w)&&w.includes(g):w!==!1&&(w===!0||w.includes(g));this.launchArgs.hookMode==="profile"?this.continueProfile(R):this.launchArgs.hookMode==="profile2"?this.continueProfile(R,2):this.continueRequire(R,g);return}case 57347:{let g=this.launchArgs.hookControl??!0,w=Array.isArray(g)&&g.includes("debugadapter")||g===!1;this.launchArgs.hookMode==="profile"?this.continueProfile(!w):this.launchArgs.hookMode==="profile2"?this.continueProfile(!w,2):this.continueRequire(!1,"debugadapter");return}case 57348:this.sendClassData(),this.writeStdin("cont"),this.inPrompt--;return;case 57349:this.allocateRefBlock(),this.continue();return;case 57351:await this.configDone;case 57352:this.clearQueuedStdin(),this.allocateRefBlock(),this.continue(!0);return;case 57350:case 57353:case 57354:await this.runQueuedStdin(),this.continue(!0);return;case 57356:await this.terminate();return;default:return}case 64977:{this.inPrompt++;let g=JSON.parse(y.slice(1),f);switch(g.event){case"source":let w=this.loadedSourceEvent(g.body),R=g.body.source;this.breakPoints.has(R.sourceReference??R.name)&&await w,this.continue();return;case"running":await this.runQueuedStdin(),this.pauseRequested?(this.pauseRequested=!1,this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new sn("pause",g.body.threadId))):this.continue();return;case"exception":await this.runQueuedStdin(),g.body.filter==="manual"||this.exceptionFilters.has(g.body.filter)?this.sendEvent(new sn("exception",g.body.threadId,g.body.mesg)):this.continue();return;case"stopped":await this.runQueuedStdin(),this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new sn(g.body.reason,g.body.threadId));return;default:return}}case 64980:{let g=y.indexOf(""),w=Number.parseInt(y.slice(1,g).trim()),R=y.slice(g+1);this.translations.set(w,R);return}case 64981:{let g=JSON.parse(y.slice(1),f);switch(g.event){case"modules":await this.updateModules(g.body),s(),this.sendEvent(new B.InitializedEvent);return;case"output":{let w=g;w.body.output.endsWith(`
3336
+ `),{start:Buffer.from([239,183,174]),end:Buffer.from([239,183,175])}],Lo=class extends Xd.EventEmitter{factorio;hasNativeDebug;constructor(e,t,n,o){super();let s={cwd:Yd.dirname(e),env:Object.assign({},process.env,o,{SteamAppId:"427520"})};n?(this.hasNativeDebug=!0,this.factorio=(0,Za.spawn)(n,[e,...t],s)):this.factorio=(0,Za.spawn)(e,t,s),this.factorio.on("exit",(...d)=>this.emit("exit",...d)),new kr(this.factorio.stderr,$b).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stderr",d)}),new kr(this.factorio.stdout,Fb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stdout",d)})}writeStdin(e){return this.factorio.stdin.write(e)}kill(){if(this.hasNativeDebug)this.factorio.pid&&(0,Qd.default)(this.factorio.pid);else{this.factorio.kill();try{this.factorio.kill("SIGKILL")}catch{}}}};var es=Buffer.from([27,76,117,97,82,0,1,4,8,4,8,0,25,147,13,10,26,10]);function Ao(a,e){let t=a.readBigUInt64LE(e);e+=8;let n;return t>0?(n=a.subarray(e,e+Number(t)-1),e+=Number(t)):n=Buffer.alloc(0,0),[n,e]}var ts=class{constructor(e,t){this.raw=e;this.line=t}get Op(){return this.raw&63}get A(){return this.raw>>6&255}get B(){return this.raw>>23&511}get C(){return this.raw>>14&511}get Ax(){return this.raw>>6&67108863}get Bx(){return this.raw>>14&262143}get sBx(){return this.Bx-131071}},rs=class{name;instack;idx;constructor(e,t){this.instack=e.readUInt8(t)!==0,this.idx=e.readUInt8(t+1)}},ns=class{name;start;end;dumpsize;constructor(e,t){let n;[n,t]=Ao(e,t),this.name=n.toString("utf8"),this.start=e.readUInt32LE(t),t+=4,this.end=e.readUInt32LE(t),t+=4,this.dumpsize=(n.length===0?8:8+n.length+1)+8}},Tr=class{constructor(e,t){this.type=e;this.value=t;switch(e){case 0:if(t!==void 0)throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 1:if(typeof t!="boolean")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 3:if(typeof t!="number")throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;case 4:if(!(t instanceof Buffer))throw new Error(`Invalid Lua Constant: ${e} ${t}`);break;default:throw new Error(`Invalid Lua Constant Type: ${e}`)}}get label(){switch(this.type){case 0:return"nil";case 1:case 3:return this.value.toString();case 4:return`"${this.value.toString("utf8")}"`;default:throw new Error(`Invalid Lua Constant Type: ${this.type} ${this.value}`)}}},ko=class a{source;nparam;is_vararg;maxstack;locals=[];upvals=[];instruction_count;_instraw;_instlines;constants=[];inner_functions=[];firstline;lastline;nextbyte;constructor(e,t){if(t===void 0){if(!e.subarray(0,es.length).equals(es))throw new Error("Invalid Header");t=es.length}this.firstline=e.readUInt32LE(t),t+=4,this.lastline=e.readUInt32LE(t),t+=4,this.nparam=e[t++],this.is_vararg=e[t++]!==0,this.maxstack=e[t++],this.instruction_count=e.readUInt32LE(t),t+=4,this._instraw=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let n=e.readUInt32LE(t);t+=4;for(let c=0;c<n;c++){let p=e[t++];switch(p){case 0:this.constants.push(new Tr(0));break;case 1:this.constants.push(new Tr(1,e[t++]!==0));break;case 3:this.constants.push(new Tr(3,e.readDoubleLE(t))),t+=8;break;case 4:let m;[m,t]=Ao(e,t),this.constants.push(new Tr(4,m));break;default:throw new Error(`Invalid Lua Constant Type: ${p}`)}}let o=e.readUInt32LE(t);t+=4;for(let c=0;c<o;c++){let p=new a(e,t);t=p.nextbyte,this.inner_functions.push(p)}let s=e.readUInt32LE(t);t+=4;for(let c=0;c<s;c++)this.upvals.push(new rs(e,t)),t+=2;{let c;[c,t]=Ao(e,t),this.source=c.toString("utf8")}let u=e.readUInt32LE(t);if(t+=4,u!==this.instruction_count)throw new Error("line info count mismatch");this._instlines=e.subarray(t,t+this.instruction_count*4),t+=this.instruction_count*4;let f=e.readUInt32LE(t);t+=4;for(let c=0;c<f;c++){let p=new ns(e,t);t+=p.dumpsize,this.locals.push(p)}let d=e.readUInt32LE(t);t+=4;for(let c=0;c<d;c++){let p;[p,t]=Ao(e,t),this.upvals[c].name=p.toString("utf8")}this.nextbyte=t}_baseAddr;get baseAddr(){return this._baseAddr}rebase(e){let t=e;return this._baseAddr=t,t+=this.instruction_count,this.inner_functions.forEach(n=>{t=n.rebase(t)}),t}_instructions=[];instruction(e){if(e>this.instruction_count-1)return;let t=this._instructions[e];return t===void 0&&(t=new ts(this._instraw.readUint32LE(e*4),this._instlines.readUint32LE(e*4)),this._instructions[e]=t),t}get lines(){let e=[];for(let t=0;t<this.instruction_count;t++)e[t]=this._instlines.readUInt32LE(t*4);return e}walk_functions(e){e(this),this.inner_functions.forEach(t=>t.walk_functions(e))}getFunctionAtStartLine(e){if(this.firstline===e)return this;if(this.firstline<e&&(this.lastline===0||this.lastline>e)&&this.inner_functions)for(let t=0;t<this.inner_functions.length;t++){let n=this.inner_functions[t].getFunctionAtStartLine(e);if(n)return n}}getInstructionsAtBase(e,t){if(!(t===0||!this._baseAddr)&&this._baseAddr<=e&&this._baseAddr+this.instruction_count>e){let n=e-this._baseAddr,o=[];n+t>this.instruction_count&&(t=this.instruction_count-n);for(let s=0;s<t;s++){let u=this.instruction(s+n);o.push({address:"0x"+(this._baseAddr+n+s).toString(16),instruction:this.getInstructionLabel(s+n),line:u.line,instructionBytes:u.raw.toString(16).padStart(8,"0"),symbol:s+n===0?this.source+":"+this.firstline:void 0})}return o}}getInstructionLabel(e){let t=this.instruction(e);if(!t)throw new Error("Invalid PC");let n=this.instruction(e+1);switch(t.Op){case 1:return`LOADK ${this.getRegisterLabel(e,t.A)} := ${this.constants[t.Bx].label}`;case 2:if(!n)throw new Error("Invalid PC");return`LOADKX ${this.getRegisterLabel(e,t.A)} := ${this.constants[n.Ax].label}`;case 3:return`LOADBOOL ${this.getRegisterLabel(e,t.A)} := ${t.B!==0}${t.C!==0?" pc++":""}`;case 4:return`LOADNIL ${this.getRegisterLabel(e,t.A)}...${this.getRegisterLabel(e,t.A+t.B)})`;case 5:return`GETUPVAL ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}`;case 6:return`GETTABUP ${this.getRegisterLabel(e,t.A)} := ${this.getUpvalLabel(t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 7:return`GETTABLE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 8:return`SETTABUP ${this.getUpvalLabel(t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 9:return`SETUPVAL ${this.getUpvalLabel(t.B)} := ${this.getRegisterLabel(e,t.A)}`;case 10:return`SETTABLE ${this.getRegisterLabel(e,t.A)}[${this.getRegisterOrConstantLabel(e,t.B)}] := ${this.getRegisterOrConstantLabel(e,t.C)}`;case 11:{let f=t.B,d=this.fb2int(f),c=t.C,p=this.fb2int(c),m=f===d?`${d}`:`${f}->${d}`,y=c===p?`${p}`:`${c}->${p}`;return`NEWTABLE ${this.getRegisterLabel(e,t.A)} := {} size(${m},${y})`}case 12:return`SELF ${this.getRegisterLabel(e,t.A+1)} := ${this.getRegisterLabel(e,t.B)}; ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}[${this.getRegisterOrConstantLabel(e,t.C)}]`;case 13:return`ADD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} + ${this.getRegisterOrConstantLabel(e,t.C)}`;case 14:return`SUB ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} - ${this.getRegisterOrConstantLabel(e,t.C)}`;case 15:return`MUL ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} * ${this.getRegisterOrConstantLabel(e,t.C)}`;case 16:return`DIV ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} / ${this.getRegisterOrConstantLabel(e,t.C)}`;case 17:return`MOD ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} % ${this.getRegisterOrConstantLabel(e,t.C)}`;case 18:return`POW ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterOrConstantLabel(e,t.B)} ^ ${this.getRegisterOrConstantLabel(e,t.C)}`;case 0:return`MOVE ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}`;case 19:return`UNM ${this.getRegisterLabel(e,t.A)} := -${this.getRegisterLabel(e,t.B)}`;case 20:return`NOT ${this.getRegisterLabel(e,t.A)} := not ${this.getRegisterLabel(e,t.B)}`;case 21:return`LEN ${this.getRegisterLabel(e,t.A)} := length of ${this.getRegisterLabel(e,t.B)}`;case 22:return`CONCAT ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)}.. ... ..${this.getRegisterLabel(e,t.C)}`;case 23:return`JMP pc+=${t.sBx}${t.A?`; close >= ${t.A-1}`:""}`;case 24:return`EQ if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?"~=":"=="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 25:return`LT if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">=":"<"} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 26:return`LE if(${this.getRegisterOrConstantLabel(e,t.B)} ${t.A?">":"<="} ${this.getRegisterOrConstantLabel(e,t.B)}) then pc++`;case 27:return`TEST if ${t.C?"not ":""}${this.getRegisterLabel(e,t.A)} then pc++`;case 28:return`TESTSET if ${t.C?"":"not "}${this.getRegisterLabel(e,t.A)} then ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.B)} else pc++`;case 29:return`CALL ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args ${t.C?t.C-1:"var"} returns)`;case 30:return`TAILCALL return ${this.getRegisterLabel(e,t.A)}(${t.B?t.B-1:"var"} args)`;case 31:return`RETURN return ${t.B?t.B-1:"var"} results ${t.B>1?`starting at ${this.getRegisterLabel(e,t.A)}`:""}`;case 32:return`FORLOOP ${this.getRegisterLabel(e,t.A)} += ${this.getRegisterLabel(e,t.A+2)}; if ${this.getRegisterLabel(e,t.A)} <= ${this.getRegisterLabel(e,t.A+1)} then { pc+=${t.sBx}; ${this.getRegisterLabel(e,t.A+3)} := ${this.getRegisterLabel(e,t.A)} }`;case 33:return`FORPREP ${this.getRegisterLabel(e,t.A)} -= ${this.getRegisterLabel(e,t.A+2)}; pc += ${t.sBx}`;case 34:return`TFORCALL ${this.getRegisterLabel(e,t.A+3)}...${this.getRegisterLabel(e,t.A+2+t.C)} := ${this.getRegisterLabel(e,t.A)}(${this.getRegisterLabel(e,t.A+1)},${this.getRegisterLabel(e,t.A+2)})`;case 35:return`TFORLOOP if ${this.getRegisterLabel(e,t.A+1)} ~= nil then { ${this.getRegisterLabel(e,t.A)} := ${this.getRegisterLabel(e,t.A+1)}; pc += ${t.sBx} }`;case 36:let o=t.C-1;if(!t.C){if(!n)throw new Error("Invalid PC");o=n.Ax-1}let s=50;return`SETLIST ${this.getRegisterLabel(e,t.A)}[${o*s+1}...${t.B?o*s+t.B:""}] := ${this.getRegisterLabel(e,t.A+1)}...${t.B?this.getRegisterLabel(e,t.A+t.B):"top"}`;case 37:let u=this.inner_functions[t.Bx];return`CLOSURE ${this.getRegisterLabel(e,t.A)} := closure(${u.source}:${u.firstline}-${u.lastline})`;case 38:return`VARARG ${this.getRegisterLabel(e,t.A)}...${t.B?this.getRegisterLabel(e,t.A+t.B-2):"top"}`;case 39:return"EXTRAARG";default:return`UNKNOWN OP(${t.Op}) A(${t.A}) B(${t.B}) C(${t.C})`}}fb2int(e){let t=e>>3&31;return t===0?e:(e&7)+8<<t-1}getRegisterOrConstantLabel(e,t){return t&256?this.constants[t&255].label:this.getRegisterLabel(e,t)}getUpvalLabel(e){return`Up(${this.upvals[e]?.name??e})`}getRegisterLabel(e,t){let n=0;for(let o=0;o<this.locals.length;o++){let s=this.locals[o];if(s.start<=e+1){if(s.end>=e+1){if(n===t)return`R(${s.name})`;n++}}else break}return`R(${t})`}};var sn=class extends O.StoppedEvent{constructor(e,t,n){super(e,t,n),this.body.allThreadsStopped=!0}},is=class extends O.LoggingDebugSession{constructor(t,n,o){super();this.activeVersion=t;this.fs=n;this.editorInterface=o;this.objectInfoChunks=pi(Ur(this.activeVersion.docs.generate_debuginfo()),3500),this.setDebuggerLinesStartAt1(!0),this.setDebuggerColumnsStartAt1(!0),this.setDebuggerPathFormat("uri"),this.configDone=new Promise(s=>{this._configurationDone=s})}_configurationDone;configDone;nextBreakpointID=1;breakPoints=new Map;breakPointsChanged=new Set;exceptionFilters=new Set(["unhandled"]);_modules=new Map;_responses=new Map;_dumps=new Map;translations=new Map;buffers=new Map;nextRef=1;factorio;stdinQueue=[];launchArgs;inPrompt=0;pauseRequested=!1;workspaceModInfo=[];initializeRequest(t,n){t.body=t.body||{},t.body.supportsConditionalBreakpoints=!0,t.body.supportsHitConditionalBreakpoints=!0,t.body.supportsEvaluateForHovers=!0,t.body.exceptionBreakpointFilters=[{filter:"pcall",label:"Caught by pcall",default:!1},{filter:"xpcall",label:"Caught by xpcall",default:!1},{filter:"unhandled",label:"Unhandled Exceptions",default:!0}],t.body.supportsSetVariable=!0,t.body.supportsModulesRequest=!0,t.body.supportsLogPoints=!0,t.body.supportsConfigurationDoneRequest=!0,t.body.supportsLoadedSourcesRequest=!0,t.body.supportsBreakpointLocationsRequest=!0,t.body.supportsDisassembleRequest=!0,t.body.supportsSteppingGranularity=!0,t.body.supportsInstructionBreakpoints=!1,this.sendResponse(t)}configurationDoneRequest(t,n){super.configurationDoneRequest(t,n),this._configurationDone?.()}async terminateRequest(t,n){return this.sendResponse(t),this.terminate()}async disconnectRequest(t,n){return this.sendResponse(t),this.terminate()}async checkFactorioArgs(t){let n=t.factorioArgs;if(n){if(n.includes("--config"))return this.sendEvent(new O.OutputEvent(`Factorio --config option is set by configPath and should not be included in factorioArgs
3337
+ `,"console")),!1;if(n.includes("--mod-directory"))return this.sendEvent(new O.OutputEvent(`Factorio --mod-directory option is set by modsPath and should not be included in factorioArgs
3338
+ `,"console")),!1}return!0}async resolveModsPath(t){let n;if(t.modsPath){n="launch";let o=_t.posix.normalize(t.modsPath);o.match(/^~[\\\/]/)&&(o=_t.posix.join(or.homedir().replace(/\\/g,"/"),o.replace(/^~[\\\/]/,""))),o.match(/[\\\/]$/)&&(o=o.replace(/[\\\/]+$/,""));try{await Jd.access(o),t.modsPath=o}catch{return this.sendEvent(new O.OutputEvent(`modsPath specified in launch configuration does not exist
3339
+ `,"console")),!1}}else{let o=await this.editorInterface.findWorkspaceFiles("**/mod-list.json");if(o.length===1)t.modsPath=_t.dirname(o[0].fsPath),n="workspace";else{if(o.length>1)return this.sendEvent(new O.OutputEvent(`multiple mod-list.json in workspace, please specify one as modsPath
3340
+ `,"console")),!1;n="config",t.modsPath=await this.activeVersion.defaultModsPath()}}if(or.platform()==="win32"&&t.modsPath.startsWith("/")&&(t.modsPath=t.modsPath.substr(1)),t.modsPath=t.modsPath.replace(/\\/g,"/"),this.sendEvent(new O.OutputEvent(`using modsPath ${t.modsPath} (${n})
3341
+ `,"console")),n!=="config"){let o=t.modsPath;o.endsWith("/")||(o+="/"),t.factorioArgs.push("--mod-directory",o)}return!0}async setupMods(t){if(t.manageMod===!1)this.sendEvent(new O.OutputEvent(`automatic management of mods disabled
3342
+ `,"console"));else{t.adjustMods||(t.adjustMods={}),t.allowDisableBaseMod||(t.adjustMods.base=!0);let n=new Sr(t.modsPath);await n.Loaded,t.disableExtraMods&&n.disableAll();for(let o in t.adjustMods)if(t.adjustMods.hasOwnProperty(o)){let s=t.adjustMods[o];n.set(o,s)}if(t.noDebug)n.set("debugadapter",!1);else{n.set("coverage",!1),n.set("profiler",!1);let o=await n.installMod("debugadapter",{origin:"bundle"});this.sendEvent(new O.OutputEvent(`package install debugadapter ${JSON.stringify(o)}
3343
+ `,"console"))}await n.write(),this.sendEvent(new O.OutputEvent(`debugadapter ${t.noDebug?"disabled":"enabled"} in mod-list.json
3344
+ `,"console"))}}async launchRequest(t,n){if(O.logger.setup(n.trace?O.Logger.LogLevel.Verbose:O.Logger.LogLevel.Stop,_t.join(or.tmpdir(),"fmtk.log"),!0),this.launchArgs=n,n.hookSettings=n.hookSettings??!1,n.hookData=n.hookData??!1,n.hookControl=n.hookControl??!0,n.hookMode=n.hookMode??"debug",n.trace=n.trace??!1,n.factorioArgs=n.factorioArgs||[],n.env&&Object.keys(n.env).length>0&&this.sendEvent(new O.OutputEvent(`using custom environment variables: ${JSON.stringify(n.env)}
3345
+ `,"console")),!await this.checkFactorioArgs(n)){this.sendEvent(new O.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}if(!await this.resolveModsPath(n)){this.sendEvent(new O.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}try{await this.setupMods(n)}catch(m){this.sendEvent(new O.OutputEvent(`Error setting up mods: ${m}
3346
+ `,"console")),this.sendEvent(new O.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}let o=await this.editorInterface.findWorkspaceFiles("**/info.json");if(await Promise.all(o.map(this.updateInfoJson,this)),n.noDebug||((n.useInstrumentMode??!0)&&n.factorioArgs.push("--instrument-mod","debugadapter"),n.factorioArgs.push("--enable-unsafe-lua-debug-api"),(n.checkPrototypes??!0)&&!n.factorioArgs.includes("--check-unused-prototype-data")&&n.factorioArgs.push("--check-unused-prototype-data")),this.activeVersion.configPathIsOverriden()&&n.factorioArgs.push("--config",await this.activeVersion.configPath()),n.adjustModSettings){let m=Je.joinPath(Ae.file(n.modsPath),"mod-settings.dat"),y=new Xr(new ir(await this.fs.readFile(m)));for(let g of n.adjustModSettings)if(g.value===void 0)y.set(g.scope,g.name);else switch(typeof g.value){case"string":y.set(g.scope,g.name,{type:"string",value:g.value});break;case"number":y.set(g.scope,g.name,{type:"number",value:g.value});break;case"boolean":y.set(g.scope,g.name,{type:"bool",value:g.value});break}await this.fs.writeFile(m,y.save())}this.factorio=new Lo(this.activeVersion.factorioPath,n.factorioArgs,this.activeVersion.nativeDebugger,n.env),this.factorio.on("exit",(m,y)=>{m&&this.sendEvent(new O.Event("exited",{exitCode:m})),this.sendEvent(new O.TerminatedEvent)});let s,u=new Promise(m=>{s=m});this.factorio.on("stderr",m=>{let y=m.toString();y&&this.sendEvent(new O.OutputEvent(y+`
3347
+ `,"stderr"))});let f=(m,y)=>{switch(typeof y){case"string":switch(y.charCodeAt(0)){case 64976:return _t.basename(y.slice(1));case 64977:return this.convertDebuggerPathToClient(y.slice(1));case 64978:return this.convertDebuggerLineToClient(Number.parseInt(y.slice(1)));case 64980:{let g=Number.parseInt(y.slice(1));return this.translations.get(g)??`{Missing Translation ID ${g}}`}case 64981:{let g=Number.parseInt(y.slice(1));return this.buffers.get(g)??`{Missing Buffer ID ${g}}`}}}return y},d=m=>{let y=m.indexOf(1,3),g=Number.parseInt(m.subarray(3,y).toString().trim()),w=m.subarray(y+1),R=[],k=w.indexOf(239);for(;k>=0;){if(w[k+1]>=160&&w[k+1]<=163&&w[k+2]>=128&&w[k+2]<=191){let E=w.subarray(k,k+4).toString("utf8").charCodeAt(0)-63488;R.push(w.subarray(0,k),Buffer.from([E])),w=w.subarray(k+3)}else R.push(w.subarray(0,k+1)),w=w.subarray(k+1);k=w.indexOf(239)}R.push(w);let C=Buffer.concat(R);this.buffers.set(g,C)},c=async m=>{if(m[2]===151){d(m);return}let y=m.toString();switch(y.charCodeAt(0)){case 64976:switch(this.inPrompt++,y.charCodeAt(1)){case 57344:await u,this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#settings"):this.continueRequire(this.launchArgs.hookSettings??!1,"#settings");return;case 57345:this.clearQueuedStdin(),this.launchArgs.hookMode==="profile"?this.continueRequire(!1,"#data"):this.continueRequire(this.launchArgs.hookData??!1,"#data");return;case 57346:{let g=y.slice(2).trim();this.clearQueuedStdin();let w=this.launchArgs.hookControl??!0,R=g==="debugadapter"?Array.isArray(w)&&w.includes(g):w!==!1&&(w===!0||w.includes(g));this.launchArgs.hookMode==="profile"?this.continueProfile(R):this.launchArgs.hookMode==="profile2"?this.continueProfile(R,2):this.continueRequire(R,g);return}case 57347:{let g=this.launchArgs.hookControl??!0,w=Array.isArray(g)&&g.includes("debugadapter")||g===!1;this.launchArgs.hookMode==="profile"?this.continueProfile(!w):this.launchArgs.hookMode==="profile2"?this.continueProfile(!w,2):this.continueRequire(!1,"debugadapter");return}case 57348:this.sendClassData(),this.writeStdin("cont"),this.inPrompt--;return;case 57349:this.allocateRefBlock(),this.continue();return;case 57351:await this.configDone;case 57352:this.clearQueuedStdin(),this.allocateRefBlock(),this.continue(!0);return;case 57350:case 57353:case 57354:await this.runQueuedStdin(),this.continue(!0);return;case 57356:await this.terminate();return;default:return}case 64977:{this.inPrompt++;let g=JSON.parse(y.slice(1),f);switch(g.event){case"source":let w=this.loadedSourceEvent(g.body),R=g.body.source;this.breakPoints.has(R.sourceReference??R.name)&&await w,this.continue();return;case"running":await this.runQueuedStdin(),this.pauseRequested?(this.pauseRequested=!1,this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new sn("pause",g.body.threadId))):this.continue();return;case"exception":await this.runQueuedStdin(),g.body.filter==="manual"||this.exceptionFilters.has(g.body.filter)?this.sendEvent(new sn("exception",g.body.threadId,g.body.mesg)):this.continue();return;case"stopped":await this.runQueuedStdin(),this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new sn(g.body.reason,g.body.threadId));return;default:return}}case 64980:{let g=y.indexOf(""),w=Number.parseInt(y.slice(1,g).trim()),R=y.slice(g+1);this.translations.set(w,R);return}case 64981:{let g=JSON.parse(y.slice(1),f);switch(g.event){case"modules":await this.updateModules(g.body),s(),this.sendEvent(new O.InitializedEvent);return;case"output":{let w=g;w.body.output.endsWith(`
3348
3348
  `)||(w.body.output+=`
3349
- `),this.sendEvent(w);return}default:return}}case 64982:{let g=JSON.parse(y.slice(1),f);this._responses.get(g.seq)(g.body),this._responses.delete(g.seq);return}case 64984:{this.sendEvent(new B.InvalidatedEvent);return}}},p=m=>{switch(m.toString("utf8").charCodeAt(0)){case 64992:case 64993:case 64994:case 64995:return}};this.factorio.on("stdout",async m=>{if(m[0]===239&&m[1]===183)switch(m[2]){case 144:case 145:case 148:case 149:case 150:case 151:case 152:await c(m);return;case 160:case 161:case 162:case 163:p(m);return;case 173:this.sendEvent(new B.Event("x-Factorio-Profile",m.toString().slice(1)));return}m.toString()&&this.sendEvent(new B.OutputEvent(m.toString()+`
3350
- `,"stdout"))}),this.sendResponse(t)}allocateRefBlock(){let t=this.nextRef;this.nextRef+=4096,this.writeStdin(`__DebugAdapter.__dap.transferRef(${t})`)}convertClientPathToDebugger(t){if(t=Ae.parse(super.convertClientPathToDebugger(t)).toString(),t.startsWith("output:"))return t;let n;return this._modules.forEach(o=>{o.symbolFilePath&&t.startsWith(o.symbolFilePath)&&o.symbolFilePath.length>(n?.symbolFilePath||"").length&&(n=o)}),n?.name==="#user"&&t.startsWith(n.symbolFilePath+"/mods")&&(n=void 0),n?t.replace(n.symbolFilePath,"@__"+n.name+"__"):t}convertDebuggerPathToClient(t){let n=t.match(/^@__(.*?)__\/(.*)$/);if(n){let o=this._modules.get(n[1]);if(o?.symbolFilePath)return super.convertDebuggerPathToClient(Je.joinPath(Ae.parse(o.symbolFilePath),n[2]).toString())}return t}async customRequest(t,n,o,s){switch(t){case"x-Factorio-ConvertPath":n.body=this.convertDebuggerPathToClient(o.path);break;case"modules":return this.modulesRequest(n,o);default:n.success=!1,n.message="Unknown request";break}this.sendResponse(n)}setBreakPointsRequest(t,n){let o;if(n.source.path){let d=n.source.path;o=this.convertClientPathToDebugger(d)}else o=`&ref ${n.source.sourceReference}`;let s=this.lines_by_source.get(n.source.sourceReference??o),u=this.breakPoints.get(o)??[],f=(n.breakpoints??[]).map(d=>{d.line=this.convertClientLineToDebugger(d.line);let c=u.find(m=>d.line===m.line&&d.column===m.column);if(c)return c.condition=d.condition,c.hitCondition=d.hitCondition,c.logMessage=d.logMessage,c;let p=!1;if(s){let m=0;for(let y of s){if(y>=d.line){d.line=y,p=!0;break}y>m&&(m=y)}!p&&m>0&&(d.line=m,p=!0)}return Object.assign(d,{id:this.nextBreakpointID++,verified:p})});this.breakPoints.set(o,f),this.breakPointsChanged.add(o),t.body={breakpoints:f},this.sendResponse(t)}revalidateBreakpoints(t){let n=typeof t=="number"?`&ref ${t}`:t,o=this.breakPoints.get(n);if(!o)return;this.breakPointsChanged.add(n);let s=this.lines_by_source.get(t);for(let u of o){let f=0;for(let d of s){if(d>=u.line){u.line=d,u.verified=!0,this.sendEvent(new B.BreakpointEvent("changed",u));break}d>f&&(f=d)}!u.verified&&f>0&&(u.line=f,u.verified=!0,this.sendEvent(new B.BreakpointEvent("changed",u)))}}async threadsRequest(t){this.inPrompt>0?(t.body=await new Promise(n=>{this._responses.set(t.request_seq,n),this.writeStdin(`__DebugAdapter.__dap.threads(${t.request_seq})
3349
+ `),this.sendEvent(w);return}default:return}}case 64982:{let g=JSON.parse(y.slice(1),f);this._responses.get(g.seq)(g.body),this._responses.delete(g.seq);return}case 64984:{this.sendEvent(new O.InvalidatedEvent);return}}},p=m=>{switch(m.toString("utf8").charCodeAt(0)){case 64992:case 64993:case 64994:case 64995:return}};this.factorio.on("stdout",async m=>{if(m[0]===239&&m[1]===183)switch(m[2]){case 144:case 145:case 148:case 149:case 150:case 151:case 152:await c(m);return;case 160:case 161:case 162:case 163:p(m);return;case 173:this.sendEvent(new O.Event("x-Factorio-Profile",m.toString().slice(1)));return}m.toString()&&this.sendEvent(new O.OutputEvent(m.toString()+`
3350
+ `,"stdout"))}),this.sendResponse(t)}allocateRefBlock(){let t=this.nextRef;this.nextRef+=4096,this.writeStdin(`__DebugAdapter.__dap.transferRef(${t})`)}convertClientPathToDebugger(t){if(t=Ae.parse(super.convertClientPathToDebugger(t)).toString(),t.startsWith("output:"))return t;let n;return this._modules.forEach(o=>{o.symbolFilePath&&t.startsWith(o.symbolFilePath)&&o.symbolFilePath.length>(n?.symbolFilePath||"").length&&(n=o)}),n?.name==="#user"&&t.startsWith(n.symbolFilePath+"/mods")&&(n=void 0),n?t.replace(n.symbolFilePath,"@__"+n.name+"__"):t}convertDebuggerPathToClient(t){let n=t.match(/^@__(.*?)__\/(.*)$/);if(n){let o=this._modules.get(n[1]);if(o?.symbolFilePath)return super.convertDebuggerPathToClient(Je.joinPath(Ae.parse(o.symbolFilePath),n[2]).toString())}return t}async customRequest(t,n,o,s){switch(t){case"x-Factorio-ConvertPath":n.body=this.convertDebuggerPathToClient(o.path);break;case"modules":return this.modulesRequest(n,o);default:n.success=!1,n.message="Unknown request";break}this.sendResponse(n)}setBreakPointsRequest(t,n){let o;if(n.source.path){let d=n.source.path;o=this.convertClientPathToDebugger(d)}else o=`&ref ${n.source.sourceReference}`;let s=this.lines_by_source.get(n.source.sourceReference??o),u=this.breakPoints.get(o)??[],f=(n.breakpoints??[]).map(d=>{d.line=this.convertClientLineToDebugger(d.line);let c=u.find(m=>d.line===m.line&&d.column===m.column);if(c)return c.condition=d.condition,c.hitCondition=d.hitCondition,c.logMessage=d.logMessage,c;let p=!1;if(s){let m=0;for(let y of s){if(y>=d.line){d.line=y,p=!0;break}y>m&&(m=y)}!p&&m>0&&(d.line=m,p=!0)}return Object.assign(d,{id:this.nextBreakpointID++,verified:p})});this.breakPoints.set(o,f),this.breakPointsChanged.add(o),t.body={breakpoints:f},this.sendResponse(t)}revalidateBreakpoints(t){let n=typeof t=="number"?`&ref ${t}`:t,o=this.breakPoints.get(n);if(!o)return;this.breakPointsChanged.add(n);let s=this.lines_by_source.get(t);for(let u of o){let f=0;for(let d of s){if(d>=u.line){u.line=d,u.verified=!0,this.sendEvent(new O.BreakpointEvent("changed",u));break}d>f&&(f=d)}!u.verified&&f>0&&(u.line=f,u.verified=!0,this.sendEvent(new O.BreakpointEvent("changed",u)))}}async threadsRequest(t){this.inPrompt>0?(t.body=await new Promise(n=>{this._responses.set(t.request_seq,n),this.writeStdin(`__DebugAdapter.__dap.threads(${t.request_seq})
3351
3351
  `)}),this.sendResponse(t)):(t.body={threads:[{id:1,name:"thread"}]},this.sendResponse(t))}async stackTraceRequest(t,n){let o=typeof n.startFrame=="number"?n.startFrame:0,s=await new Promise(u=>{this._responses.set(t.request_seq,u),this.writeStdin(`__DebugAdapter.__dap.stackTrace(${n.threadId},${o},${t.request_seq})
3352
3352
  `)});t.body={stackFrames:s.map(u=>{if(u&&u.source){u.source.path&&(u.source.path=this.convertDebuggerPathToClient(u.source.path));let f=u.source.sourceReference??u.source.name;if(f){let d=this.dumps_by_source.get(f)?.get(u.linedefined);d&&d.baseAddr&&(u.instructionPointerReference="0x"+(d.baseAddr+u.currentpc).toString(16))}}return u})},this.sendResponse(t)}async modulesRequest(t,n){let o=Array.from(this._modules.values());t.body={modules:o},this.sendResponse(t)}async scopesRequest(t,n){let o=new Promise(s=>{this._responses.set(t.request_seq,s),this.writeStdin(`__DebugAdapter.__dap.scopes(${n.frameId}, ${t.request_seq})
3353
3353
  `)});t.body={scopes:await o},this.sendResponse(t)}async variablesRequest(t,n,o){let s,u=new Promise(c=>s=c),f=new AbortController,d=await Promise.race([new Promise(async c=>{this._responses.set(t.request_seq,c),await this.writeOrQueueStdin(`__DebugAdapter.__dap.variables(${n.variablesReference},${t.request_seq},${n.filter?`"${n.filter}"`:"nil"},${n.start||"nil"},${n.count||"nil"})
3354
- `,u,f.signal)||(this._responses.delete(t.request_seq),s(),c([{name:"",value:`Expired variablesReference ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}]))}),new Promise(c=>{setTimeout(()=>{f.abort(),c([{name:"",value:`No Lua State Available ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}])},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={variables:d},d.length===1&&d[0].type==="error"&&(t.success=!1,t.message=d[0].value),this.sendResponse(t)}async setVariableRequest(t,n,o){let s=await new Promise(u=>{this._responses.set(t.request_seq,u),this.writeStdin(`__DebugAdapter.__dap.setVariable(${n.variablesReference},${It(Buffer.from(n.name))},${It(Buffer.from(n.value))},${t.request_seq})
3355
- `)});s.type==="error"?(t.success=!1,t.message=s.value):t.body=s,this.sendResponse(t)}async evaluateRequest(t,n,o){let s,u=new Promise(g=>s=g),f=new AbortController,d=n.expression.match(/^__(.+?)__ (.*)$/),c;d&&(c=d[1],n.expression=d[2]);let p=c?It(Buffer.from(c)):n.frameId?n.frameId:"nil",m=It(Buffer.from(n.expression.replace(/\n/g," "))),y=await Promise.race([new Promise(async g=>{this._responses.set(t.request_seq,g),await this.writeOrQueueStdin(`__DebugAdapter.__dap.evaluate(${p},"${n.context}",${m},${t.request_seq})
3354
+ `,u,f.signal)||(this._responses.delete(t.request_seq),s(),c([{name:"",value:`Expired variablesReference ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}]))}),new Promise(c=>{setTimeout(()=>{f.abort(),c([{name:"",value:`No Lua State Available ref=${n.variablesReference} seq=${t.request_seq}`,type:"error",variablesReference:0}])},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={variables:d},d.length===1&&d[0].type==="error"&&(t.success=!1,t.message=d[0].value),this.sendResponse(t)}async setVariableRequest(t,n,o){let s=await new Promise(u=>{this._responses.set(t.request_seq,u),this.writeStdin(`__DebugAdapter.__dap.setVariable(${n.variablesReference},${Ct(Buffer.from(n.name))},${Ct(Buffer.from(n.value))},${t.request_seq})
3355
+ `)});s.type==="error"?(t.success=!1,t.message=s.value):t.body=s,this.sendResponse(t)}async evaluateRequest(t,n,o){let s,u=new Promise(g=>s=g),f=new AbortController,d=n.expression.match(/^__(.+?)__ (.*)$/),c;d&&(c=d[1],n.expression=d[2]);let p=c?Ct(Buffer.from(c)):n.frameId?n.frameId:"nil",m=Ct(Buffer.from(n.expression.replace(/\n/g," "))),y=await Promise.race([new Promise(async g=>{this._responses.set(t.request_seq,g),await this.writeOrQueueStdin(`__DebugAdapter.__dap.evaluate(${p},"${n.context}",${m},${t.request_seq})
3356
3356
  `,u,f.signal)||(this._responses.delete(t.request_seq),s(),g({result:`Expired evaluate seq=${t.request_seq}`,type:"error",variablesReference:0}))}),new Promise(g=>{setTimeout(()=>{f.abort(),g({result:`No Lua State Available seq=${t.request_seq}`,type:"error",variablesReference:0})},this.launchArgs.runningTimeout??2e3)})]);if(s(),y.type==="error"&&(t.success=!1,t.message=y.result),t.body=y,y.timer){let g=y.timer.replace(/^.*: /,"");y.result+=`
3357
- \u23F1\uFE0F `+g}this.sendResponse(t)}continueRequest(t,n){this.writeStdin("__DebugAdapter.__dap.step_enabled(false)"),this.continue(),this.sendResponse(t)}pauseRequest(t,n,o){this.pauseRequested=!0,this.sendResponse(t)}step(t="in",n="statement"){let o={in:-1,over:0,out:1};this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.writeStdin("__DebugAdapter.__dap.step_enabled(true)"),this.writeStdin(`__DebugAdapter.__dap.step(${o[t]},${n==="instruction"})`),this.writeStdin("cont"),this.inPrompt--}nextRequest(t,n){this.step("over",n.granularity),this.sendResponse(t)}stepInRequest(t,n){this.step("in",n.granularity),this.sendResponse(t)}stepOutRequest(t,n){this.step("out",n.granularity),this.sendResponse(t)}setExceptionBreakPointsRequest(t,n,o){this.exceptionFilters.clear(),n.filters.forEach(s=>this.exceptionFilters.add(s)),this.sendResponse(t)}nextdump=1;dumps_by_source=new Map;dumps_by_address=[];lines_by_source=new Map;loadedSources=[];async loadedSourceEvent(t){let n=t.source;if(t.dump){let o=n.sourceReference??n.name,s;s=new ko(t.dump),this.nextdump=s.rebase(this.nextdump);let u=new Set,f=new Map;s.walk_functions(d=>{if(d.baseAddr){let c=this.dumps_by_address.findIndex(p=>d.baseAddr<p.baseAddr);c===-1?this.dumps_by_address.push(d):this.dumps_by_address.splice(c,0,d)}f.set(d.firstline,d),d.lines.forEach(c=>u.add(c))}),this.dumps_by_source.set(o,f),this.lines_by_source.set(o,Array.from(u).sort((d,c)=>d-c)),this.revalidateBreakpoints(o)}this.loadedSources.push(n),this.sendEvent(new B.LoadedSourceEvent("new",n))}async disassembleRequest(t,n,o){let s=parseInt(n.memoryReference),u=[];t.body={instructions:u};let f=s+(n.instructionOffset??0),d=n.instructionCount;for(;f<1;)u.push({address:"0x"+f.toString(16),instruction:"<no instruction>"}),f++,d--;let c=this.dumps_by_address.findIndex(p=>p.baseAddr&&p.baseAddr<f&&p.baseAddr+p.instruction_count>=f);do{let m=this.dumps_by_address[c].getInstructionsAtBase(f,d);m&&(u.push(...m),d-=m.length,f+=m.length),c++}while(d>0&&f<this.nextdump&&c<this.dumps_by_address.length);for(;d>0;)u.push({address:"0x"+f.toString(16),instruction:"<no instruction>"}),d--;this.nextdump+=d,this.sendResponse(t)}async breakpointLocationsRequest(t,n,o){let s=n.source.sourceReference??n.source.path;if(s){typeof s=="string"&&(s=this.convertClientPathToDebugger(s));let u=this.lines_by_source?.get(s);u&&(t.body={breakpoints:u.map(f=>({line:f})).filter(f=>f.line>=n.line&&f.line<=(n.endLine??n.line))})}this.sendResponse(t)}async loadedSourcesRequest(t,n,o){t.body={sources:this.loadedSources},this.sendResponse(t)}async sourceRequest(t,n){let o=n.source?.sourceReference;if(o){let s,u=new Promise(c=>s=c),f=new AbortController,d=await Promise.race([new Promise(async c=>{this._responses.set(t.request_seq,c),await this.writeOrQueueStdin(`__DebugAdapter.__dap.source(${o},${t.request_seq})
3358
- `,u,f.signal)||(this._dumps.delete(o),s(),c(`Expired source ref=${o}`))}),new Promise(c=>{setTimeout(()=>{f.abort(),c(`No Lua State Available ref=${o} seq=${t.request_seq}`)},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={content:d??"Invalid Source ID"}}this.sendResponse(t)}async updateInfoJson(t){try{let n=t.path;or.platform()==="win32"&&n.startsWith("/")&&(n=n.substr(1));let o=Buffer.from(await this.fs.readFile(t)).toString("utf8");if(o){let s=JSON.parse(o);if(s){let u={uri:Je.dirname(t),name:s.name,version:s.version,info:s};this.workspaceModInfo.push(u)}}}catch(n){this.sendEvent(new B.OutputEvent(`failed to read ${t} ${n}
3359
- `,"stderr"))}}objectInfoChunks;sendClassData(){for(let t of this.objectInfoChunks)this.writeStdin(Buffer.concat([Buffer.from("__DebugAdapter.loadObjectInfo("),It(t),Buffer.from(")")]));this.writeStdin("__DebugAdapter.loadObjectInfo()")}writeStdin(t){if(this.inPrompt<=0){this.sendEvent(new B.OutputEvent(`!! Attempted to writeStdin "${t instanceof Buffer?`Buffer[${t.length}]`:t}" while not in a prompt
3357
+ \u23F1\uFE0F `+g}this.sendResponse(t)}continueRequest(t,n){this.writeStdin("__DebugAdapter.__dap.step_enabled(false)"),this.continue(),this.sendResponse(t)}pauseRequest(t,n,o){this.pauseRequested=!0,this.sendResponse(t)}step(t="in",n="statement"){let o={in:-1,over:0,out:1};this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.writeStdin("__DebugAdapter.__dap.step_enabled(true)"),this.writeStdin(`__DebugAdapter.__dap.step(${o[t]},${n==="instruction"})`),this.writeStdin("cont"),this.inPrompt--}nextRequest(t,n){this.step("over",n.granularity),this.sendResponse(t)}stepInRequest(t,n){this.step("in",n.granularity),this.sendResponse(t)}stepOutRequest(t,n){this.step("out",n.granularity),this.sendResponse(t)}setExceptionBreakPointsRequest(t,n,o){this.exceptionFilters.clear(),n.filters.forEach(s=>this.exceptionFilters.add(s)),this.sendResponse(t)}nextdump=1;dumps_by_source=new Map;dumps_by_address=[];lines_by_source=new Map;loadedSources=[];async loadedSourceEvent(t){let n=t.source;if(t.dump){let o=n.sourceReference??n.name,s;s=new ko(t.dump),this.nextdump=s.rebase(this.nextdump);let u=new Set,f=new Map;s.walk_functions(d=>{if(d.baseAddr){let c=this.dumps_by_address.findIndex(p=>d.baseAddr<p.baseAddr);c===-1?this.dumps_by_address.push(d):this.dumps_by_address.splice(c,0,d)}f.set(d.firstline,d),d.lines.forEach(c=>u.add(c))}),this.dumps_by_source.set(o,f),this.lines_by_source.set(o,Array.from(u).sort((d,c)=>d-c)),this.revalidateBreakpoints(o)}this.loadedSources.push(n),this.sendEvent(new O.LoadedSourceEvent("new",n))}async disassembleRequest(t,n,o){let s=parseInt(n.memoryReference),u=[];t.body={instructions:u};let f=s+(n.instructionOffset??0),d=n.instructionCount;for(;f<1;)u.push({address:"0x"+f.toString(16),instruction:"<no instruction>"}),f++,d--;let c=this.dumps_by_address.findIndex(p=>p.baseAddr&&p.baseAddr<f&&p.baseAddr+p.instruction_count>=f);do{let m=this.dumps_by_address[c].getInstructionsAtBase(f,d);m&&(u.push(...m),d-=m.length,f+=m.length),c++}while(d>0&&f<this.nextdump&&c<this.dumps_by_address.length);for(;d>0;)u.push({address:"0x"+f.toString(16),instruction:"<no instruction>"}),d--;this.nextdump+=d,this.sendResponse(t)}async breakpointLocationsRequest(t,n,o){let s=n.source.sourceReference??n.source.path;if(s){typeof s=="string"&&(s=this.convertClientPathToDebugger(s));let u=this.lines_by_source?.get(s);u&&(t.body={breakpoints:u.map(f=>({line:f})).filter(f=>f.line>=n.line&&f.line<=(n.endLine??n.line))})}this.sendResponse(t)}async loadedSourcesRequest(t,n,o){t.body={sources:this.loadedSources},this.sendResponse(t)}async sourceRequest(t,n){let o=n.source?.sourceReference;if(o){let s,u=new Promise(c=>s=c),f=new AbortController,d=await Promise.race([new Promise(async c=>{this._responses.set(t.request_seq,c),await this.writeOrQueueStdin(`__DebugAdapter.__dap.source(${o},${t.request_seq})
3358
+ `,u,f.signal)||(this._dumps.delete(o),s(),c(`Expired source ref=${o}`))}),new Promise(c=>{setTimeout(()=>{f.abort(),c(`No Lua State Available ref=${o} seq=${t.request_seq}`)},this.launchArgs.runningTimeout??2e3)})]);s(),t.body={content:d??"Invalid Source ID"}}this.sendResponse(t)}async updateInfoJson(t){try{let n=t.path;or.platform()==="win32"&&n.startsWith("/")&&(n=n.substr(1));let o=Buffer.from(await this.fs.readFile(t)).toString("utf8");if(o){let s=JSON.parse(o);if(s){let u={uri:Je.dirname(t),name:s.name,version:s.version,info:s};this.workspaceModInfo.push(u)}}}catch(n){this.sendEvent(new O.OutputEvent(`failed to read ${t} ${n}
3359
+ `,"stderr"))}}objectInfoChunks;sendClassData(){for(let t of this.objectInfoChunks)this.writeStdin(Buffer.concat([Buffer.from("__DebugAdapter.loadObjectInfo("),Ct(t),Buffer.from(")")]));this.writeStdin("__DebugAdapter.loadObjectInfo()")}writeStdin(t){if(this.inPrompt<=0){this.sendEvent(new O.OutputEvent(`!! Attempted to writeStdin "${t instanceof Buffer?`Buffer[${t.length}]`:t}" while not in a prompt
3360
3360
  `,"console"));return}this.factorio?.writeStdin(Buffer.concat([t instanceof Buffer?t:Buffer.from(t),Buffer.from(`
3361
- `)]))}async writeOrQueueStdin(t,n,o){return this.inPrompt>0?(this.writeStdin(t),n&&await n,!0):new Promise(u=>this.stdinQueue.push({mesg:t,resolve:u,consumed:n,signal:o}))}async runQueuedStdin(){if(this.stdinQueue.length>0){for await(let t of this.stdinQueue)t.signal?.aborted?t.resolve(!1):(this.writeStdin(t.mesg),t.resolve(!0),t.consumed&&await t.consumed);this.stdinQueue=[]}}clearQueuedStdin(){this.stdinQueue.length>0&&(this.stdinQueue.forEach(t=>{t.resolve(!1)}),this.stdinQueue=[])}continue(t){if(this.inPrompt<=0){this.sendEvent(new B.OutputEvent(`!! Attempted to continue while not in a prompt
3362
- `,"console"));return}(t||this.breakPointsChanged.size!==0)&&this.updateBreakpoints(t),this.writeStdin("cont"),this.inPrompt--}continueRequire(t,n){if(this.inPrompt<=0){this.sendEvent(new B.OutputEvent(`!! Attempted to continueRequire while not in a prompt
3363
- `,"console"));return}if(t){let o="";this.launchArgs.hookLog!==void 0&&(o+=`hooklog=${this.launchArgs.hookLog},`),this.launchArgs.keepOldLog!==void 0&&(o+=`keepoldlog=${this.launchArgs.keepOldLog},`),this.launchArgs.runningBreak!==void 0&&(o+=`runningBreak=${this.launchArgs.runningBreak},`),this.writeStdin(`__DebugAdapter={__config={${o}}}`)}this.writeStdin("cont"),this.inPrompt--}continueProfile(t,n){if(this.inPrompt<=0){this.sendEvent(new B.OutputEvent(`!! Attempted to continueProfile while not in a prompt
3364
- `,"console"));return}if(t){let o="";this.launchArgs.profileSlowStart!==void 0&&(o+=`slowStart=${this.launchArgs.profileSlowStart},`),this.launchArgs.profileUpdateRate!==void 0&&(o+=`updateRate=${this.launchArgs.profileUpdateRate},`),this.launchArgs.profileLines!==void 0&&(o+=`trackLines=${this.launchArgs.profileLines},`),this.launchArgs.profileFuncs!==void 0&&(o+=`trackFuncs=${this.launchArgs.profileFuncs},`),this.launchArgs.profileTree!==void 0&&(o+=`trackTree=${this.launchArgs.profileTree},`),this.writeStdin(`__Profiler${n||""}={${o}}`)}this.writeStdin("cont"),this.inPrompt--}async trydir(t,n){try{if((await this.fs.stat(t)).type&2){let s=JSON.parse(Buffer.from(await this.fs.readFile(Je.joinPath(t,"info.json"))).toString("utf8"));if(s.name===n.name&&os.eq(s.version,n.version,{loose:!0}))return n.symbolFilePath=t.toString(),n.symbolStatus="Loaded Mod Directory",this.sendEvent(new B.OutputEvent(`loaded ${n.name} ${n.version} from modspath ${n.symbolFilePath}
3365
- `,"console")),!0}}catch(o){return o.code!=="FileNotFound"&&o.code!=="ENOENT"&&this.sendEvent(new B.OutputEvent(`failed loading ${n.name} ${n.version} from modspath: ${o}
3366
- `,"console")),!1}return!1}async updateModules(t){let n=this.editorInterface.getExtension?.("slevesque.vscode-zipexplorer");n&&(await n.activate(),await this.editorInterface.executeCommand("zipexplorer.clear"));for(let o of t)try{if(this._modules.set(o.name,o),o.name==="#user"){o.symbolFilePath=Ae.file(await this.activeVersion.writeDataPath()).toString(),o.symbolStatus="Loaded Write Data Directory",this.sendEvent(new B.OutputEvent(`loaded ${o.name} from config ${o.symbolFilePath}
3367
- `,"console"));continue}if(o.name==="level"){o.symbolStatus="No Symbols (Level)";continue}try{let u=Je.joinPath(Ae.file(await this.activeVersion.dataPath()),o.name);if(JSON.parse(Buffer.from(await this.fs.readFile(Je.joinPath(u,"info.json"))).toString("utf8")).name===o.name){o.symbolFilePath=u.toString(),o.symbolStatus="Loaded Data Directory",this.sendEvent(new B.OutputEvent(`loaded ${o.name} from data ${o.symbolFilePath}
3368
- `,"console"));continue}}catch{}let s=this.workspaceModInfo.find(u=>u.name===o.name&&os.eq(u.version,o.version,{loose:!0}));if(s){o.symbolFilePath=s.uri.toString(),o.symbolStatus="Loaded Workspace Directory",this.sendEvent(new B.OutputEvent(`loaded ${o.name} ${o.version} from workspace ${o.symbolFilePath}
3369
- `,"console"));continue}if(this.launchArgs.modsPath){let u=Je.joinPath(Ae.file(this.launchArgs.modsPath),o.name);if(await this.trydir(u,o)||(u=Je.joinPath(Ae.file(this.launchArgs.modsPath),o.name+"_"+o.version),await this.trydir(u,o)))continue;if(n){let f=Je.joinPath(Ae.file(this.launchArgs.modsPath),o.name+"_"+o.version+".zip"),d;try{d=await this.fs.stat(f)}catch(c){c.code!=="FileNotFound"&&this.sendEvent(new B.OutputEvent(`${c}
3370
- `,"stderr"))}if(d&&d.type&1)try{await this.editorInterface.executeCommand("zipexplorer.exploreZipFile",f);let c=Je.joinPath(f,o.name+"_"+o.version).with({scheme:"zip"});o.symbolFilePath=c.toString(),o.symbolStatus="Loaded Zip",this.sendEvent(new B.OutputEvent(`loaded ${o.name} ${o.version} from mod zip ${f.toString()}
3371
- `,"console"));continue}catch(c){this.sendEvent(new B.OutputEvent(`failed loading ${o.name} ${o.version} from mod zip ${f.toString()}: ${c}
3372
- `,"console"))}}}o.symbolStatus="Unknown",this.sendEvent(new B.OutputEvent(`no source found for ${o.name} ${o.version}
3373
- `,"console"))}catch(s){o.symbolStatus="Error",this.sendEvent(new B.OutputEvent(`failed locating source for ${o.name} ${o.version}: ${s}
3374
- `,"console"))}this._modules.forEach(o=>{this.sendEvent(new B.ModuleEvent("new",o))})}updateBreakpoints(t=!1){let n=Array();this.breakPoints.forEach((o,s)=>{(t||this.breakPointsChanged.has(s))&&n.push(Buffer.concat([Buffer.from("__DebugAdapter.__dap.updateBreakpoints("),It(hi(s,o)),Buffer.from(`)
3375
- `)]))}),this.breakPointsChanged.clear(),this.writeStdin(Buffer.concat(n))}async terminate(){this.factorio?.kill?.();let t=this.launchArgs?.modsPath;if(t)if(this.launchArgs.manageMod===!1)this.sendEvent(new B.OutputEvent(`automatic management of mods disabled by launch config
3376
- `,"console"));else try{let n=new Sr(t);await n.Loaded,n.set("debugadapter",!1),await n.write(),this.sendEvent(new B.OutputEvent(`debugadapter disabled in mod-list.json
3377
- `,"console"))}catch(n){this.sendEvent(new B.OutputEvent(`failed to disable debugadapter in mod-list.json:
3361
+ `)]))}async writeOrQueueStdin(t,n,o){return this.inPrompt>0?(this.writeStdin(t),n&&await n,!0):new Promise(u=>this.stdinQueue.push({mesg:t,resolve:u,consumed:n,signal:o}))}async runQueuedStdin(){if(this.stdinQueue.length>0){for await(let t of this.stdinQueue)t.signal?.aborted?t.resolve(!1):(this.writeStdin(t.mesg),t.resolve(!0),t.consumed&&await t.consumed);this.stdinQueue=[]}}clearQueuedStdin(){this.stdinQueue.length>0&&(this.stdinQueue.forEach(t=>{t.resolve(!1)}),this.stdinQueue=[])}continue(t){if(this.inPrompt<=0){this.sendEvent(new O.OutputEvent(`!! Attempted to continue while not in a prompt
3362
+ `,"console"));return}(t||this.breakPointsChanged.size!==0)&&this.updateBreakpoints(t),this.writeStdin("cont"),this.inPrompt--}continueRequire(t,n){if(this.inPrompt<=0){this.sendEvent(new O.OutputEvent(`!! Attempted to continueRequire while not in a prompt
3363
+ `,"console"));return}if(t){let o="";this.launchArgs.hookLog!==void 0&&(o+=`hooklog=${this.launchArgs.hookLog},`),this.launchArgs.keepOldLog!==void 0&&(o+=`keepoldlog=${this.launchArgs.keepOldLog},`),this.launchArgs.runningBreak!==void 0&&(o+=`runningBreak=${this.launchArgs.runningBreak},`),this.writeStdin(`__DebugAdapter={__config={${o}}}`)}this.writeStdin("cont"),this.inPrompt--}continueProfile(t,n){if(this.inPrompt<=0){this.sendEvent(new O.OutputEvent(`!! Attempted to continueProfile while not in a prompt
3364
+ `,"console"));return}if(t){let o="";this.launchArgs.profileSlowStart!==void 0&&(o+=`slowStart=${this.launchArgs.profileSlowStart},`),this.launchArgs.profileUpdateRate!==void 0&&(o+=`updateRate=${this.launchArgs.profileUpdateRate},`),this.launchArgs.profileLines!==void 0&&(o+=`trackLines=${this.launchArgs.profileLines},`),this.launchArgs.profileFuncs!==void 0&&(o+=`trackFuncs=${this.launchArgs.profileFuncs},`),this.launchArgs.profileTree!==void 0&&(o+=`trackTree=${this.launchArgs.profileTree},`),this.writeStdin(`__Profiler${n||""}={${o}}`)}this.writeStdin("cont"),this.inPrompt--}async trydir(t,n){try{if((await this.fs.stat(t)).type&2){let s=JSON.parse(Buffer.from(await this.fs.readFile(Je.joinPath(t,"info.json"))).toString("utf8"));if(s.name===n.name&&os.eq(s.version,n.version,{loose:!0}))return n.symbolFilePath=t.toString(),n.symbolStatus="Loaded Mod Directory",this.sendEvent(new O.OutputEvent(`loaded ${n.name} ${n.version} from modspath ${n.symbolFilePath}
3365
+ `,"console")),!0}}catch(o){return o.code!=="FileNotFound"&&o.code!=="ENOENT"&&this.sendEvent(new O.OutputEvent(`failed loading ${n.name} ${n.version} from modspath: ${o}
3366
+ `,"console")),!1}return!1}async updateModules(t){let n=this.editorInterface.getExtension?.("slevesque.vscode-zipexplorer");n&&(await n.activate(),await this.editorInterface.executeCommand("zipexplorer.clear"));for(let o of t)try{if(this._modules.set(o.name,o),o.name==="#user"){o.symbolFilePath=Ae.file(await this.activeVersion.writeDataPath()).toString(),o.symbolStatus="Loaded Write Data Directory",this.sendEvent(new O.OutputEvent(`loaded ${o.name} from config ${o.symbolFilePath}
3367
+ `,"console"));continue}if(o.name==="level"){o.symbolStatus="No Symbols (Level)";continue}try{let u=Je.joinPath(Ae.file(await this.activeVersion.dataPath()),o.name);if(JSON.parse(Buffer.from(await this.fs.readFile(Je.joinPath(u,"info.json"))).toString("utf8")).name===o.name){o.symbolFilePath=u.toString(),o.symbolStatus="Loaded Data Directory",this.sendEvent(new O.OutputEvent(`loaded ${o.name} from data ${o.symbolFilePath}
3368
+ `,"console"));continue}}catch{}let s=this.workspaceModInfo.find(u=>u.name===o.name&&os.eq(u.version,o.version,{loose:!0}));if(s){o.symbolFilePath=s.uri.toString(),o.symbolStatus="Loaded Workspace Directory",this.sendEvent(new O.OutputEvent(`loaded ${o.name} ${o.version} from workspace ${o.symbolFilePath}
3369
+ `,"console"));continue}if(this.launchArgs.modsPath){let u=Je.joinPath(Ae.file(this.launchArgs.modsPath),o.name);if(await this.trydir(u,o)||(u=Je.joinPath(Ae.file(this.launchArgs.modsPath),o.name+"_"+o.version),await this.trydir(u,o)))continue;if(n){let f=Je.joinPath(Ae.file(this.launchArgs.modsPath),o.name+"_"+o.version+".zip"),d;try{d=await this.fs.stat(f)}catch(c){c.code!=="FileNotFound"&&this.sendEvent(new O.OutputEvent(`${c}
3370
+ `,"stderr"))}if(d&&d.type&1)try{await this.editorInterface.executeCommand("zipexplorer.exploreZipFile",f);let c=Je.joinPath(f,o.name+"_"+o.version).with({scheme:"zip"});o.symbolFilePath=c.toString(),o.symbolStatus="Loaded Zip",this.sendEvent(new O.OutputEvent(`loaded ${o.name} ${o.version} from mod zip ${f.toString()}
3371
+ `,"console"));continue}catch(c){this.sendEvent(new O.OutputEvent(`failed loading ${o.name} ${o.version} from mod zip ${f.toString()}: ${c}
3372
+ `,"console"))}}}o.symbolStatus="Unknown",this.sendEvent(new O.OutputEvent(`no source found for ${o.name} ${o.version}
3373
+ `,"console"))}catch(s){o.symbolStatus="Error",this.sendEvent(new O.OutputEvent(`failed locating source for ${o.name} ${o.version}: ${s}
3374
+ `,"console"))}this._modules.forEach(o=>{this.sendEvent(new O.ModuleEvent("new",o))})}updateBreakpoints(t=!1){let n=Array();this.breakPoints.forEach((o,s)=>{(t||this.breakPointsChanged.has(s))&&n.push(Buffer.concat([Buffer.from("__DebugAdapter.__dap.updateBreakpoints("),Ct(hi(s,o)),Buffer.from(`)
3375
+ `)]))}),this.breakPointsChanged.clear(),this.writeStdin(Buffer.concat(n))}async terminate(){this.factorio?.kill?.();let t=this.launchArgs?.modsPath;if(t)if(this.launchArgs.manageMod===!1)this.sendEvent(new O.OutputEvent(`automatic management of mods disabled by launch config
3376
+ `,"console"));else try{let n=new Sr(t);await n.Loaded,n.set("debugadapter",!1),await n.write(),this.sendEvent(new O.OutputEvent(`debugadapter disabled in mod-list.json
3377
+ `,"console"))}catch(n){this.sendEvent(new O.OutputEvent(`failed to disable debugadapter in mod-list.json:
3378
3378
  ${n}
3379
- `,"console"))}this.sendEvent(new B.TerminatedEvent),!this._isRunningInline()&&process.env.NODE_V8_COVERAGE&&process.exit()}};var ss=(c=>(c[c.Nil=0]="Nil",c[c.BoolFalse=1]="BoolFalse",c[c.BoolTrue=2]="BoolTrue",c[c.Number=3]="Number",c[c.String=4]="String",c[c.Table=5]="Table",c[c.ExistingGCObject=6]="ExistingGCObject",c[c.LuaObject=7]="LuaObject",c[c.TableWithMeta=8]="TableWithMeta",c))(ss||{}),ls=(_=>(_[_.LuaEntity=0]="LuaEntity",_[_.LuaInvalidObject=1]="LuaInvalidObject",_[_.LuaRecipe=2]="LuaRecipe",_[_.LuaTechnology=3]="LuaTechnology",_[_.LuaRandomGenerator=4]="LuaRandomGenerator",_[_.LuaForce=5]="LuaForce",_[_.LuaBurner=6]="LuaBurner",_[_.LuaLogisticPoint=7]="LuaLogisticPoint",_[_.LuaDecorativePrototype=8]="LuaDecorativePrototype",_[_.LuaCustomChartTag=9]="LuaCustomChartTag",_[_.LuaPermissionGroups=10]="LuaPermissionGroups",_[_.LuaPermissionGroup=11]="LuaPermissionGroup",_[_.LuaUnitGroup=12]="LuaUnitGroup",_[_.LuaTrain=13]="LuaTrain",_[_.LuaFluidBox=14]="LuaFluidBox",_[_.LuaEntityPrototype=15]="LuaEntityPrototype",_[_.LuaItemPrototype=16]="LuaItemPrototype",_[_.LuaEquipmentGrid=18]="LuaEquipmentGrid",_[_.LuaEquipment=19]="LuaEquipment",_[_.LuaItemStack=20]="LuaItemStack",_[_.LuaPlayer=21]="LuaPlayer",_[_.LuaGui=22]="LuaGui",_[_.LuaGuiElement=23]="LuaGuiElement",_[_.LuaStyle=24]="LuaStyle",_[_.LuaSurface=25]="LuaSurface",_[_.LuaFluidPrototype=26]="LuaFluidPrototype",_[_.LuaGroup=27]="LuaGroup",_[_.LuaTile=28]="LuaTile",_[_.LuaChunkIterator=29]="LuaChunkIterator",_[_.LuaStructMapSettings=30]="LuaStructMapSettings",_[_.LuaTransportLine=31]="LuaTransportLine",_[_.LuaLogisticNetwork=32]="LuaLogisticNetwork",_[_.LuaLogisticCell=33]="LuaLogisticCell",_[_.LuaInventory=34]="LuaInventory",_[_.LuaControlBehavior=35]="LuaControlBehavior",_[_.LuaFlowStatistics=36]="LuaFlowStatistics",_[_.LuaTilePrototype=37]="LuaTilePrototype",_[_.LuaEquipmentPrototype=38]="LuaEquipmentPrototype",_[_.LuaCircuitNetwork=39]="LuaCircuitNetwork",_[_.LuaDamagePrototype=40]="LuaDamagePrototype",_[_.LuaVirtualSignalPrototype=41]="LuaVirtualSignalPrototype",_[_.LuaEquipmentGridPrototype=42]="LuaEquipmentGridPrototype",_[_.LuaRecipePrototype=43]="LuaRecipePrototype",_[_.LuaTechnologyPrototype=44]="LuaTechnologyPrototype",_[_.LuaBurnerPrototype=45]="LuaBurnerPrototype",_[_.LuaElectricEnergySourcePrototype=46]="LuaElectricEnergySourcePrototype",_[_.LuaCustomInputPrototype=47]="LuaCustomInputPrototype",_[_.LuaNoiseLayerPrototype=48]="LuaNoiseLayerPrototype",_[_.LuaAutoplaceControlPrototype=49]="LuaAutoplaceControlPrototype",_[_.LuaModSettingPrototype=50]="LuaModSettingPrototype",_[_.LuaAmmoCategoryPrototype=51]="LuaAmmoCategoryPrototype",_[_.LuaRailPath=52]="LuaRailPath",_[_.LuaFluidBoxPrototype=53]="LuaFluidBoxPrototype",_[_.LuaAISettings=54]="LuaAISettings",_[_.LuaProfiler=55]="LuaProfiler",_[_.LuaNamedNoiseExpression=56]="LuaNamedNoiseExpression",_[_.LuaFuelCategoryPrototype=57]="LuaFuelCategoryPrototype",_[_.LuaResourceCategoryPrototype=58]="LuaResourceCategoryPrototype",_[_.LuaAchievementPrototype=59]="LuaAchievementPrototype",_[_.LuaModuleCategoryPrototype=60]="LuaModuleCategoryPrototype",_[_.LuaEquipmentCategoryPrototype=61]="LuaEquipmentCategoryPrototype",_[_.LuaTrivialSmokePrototype=62]="LuaTrivialSmokePrototype",_[_.LuaShortcutPrototype=63]="LuaShortcutPrototype",_[_.LuaRecipeCategoryPrototype=64]="LuaRecipeCategoryPrototype",_[_.LuaParticlePrototype=65]="LuaParticlePrototype",_[_.LuaFluidEnergySourcePrototype=66]="LuaFluidEnergySourcePrototype",_[_.LuaHeatEnergySourcePrototype=67]="LuaHeatEnergySourcePrototype",_[_.LuaVoidEnergySourcePrototype=68]="LuaVoidEnergySourcePrototype",_[_.LuaFontPrototype=69]="LuaFontPrototype",_[_.LuaQualityPrototype=70]="LuaQualityPrototype",_[_.LuaSpaceLocationPrototype=71]="LuaSpaceLocationPrototype",_[_.LuaPlanetType=72]="LuaPlanetType",_[_.LuaUndoRedoStackType=73]="LuaUndoRedoStackType",_[_.LuaSurfacePropertyPrototype=74]="LuaSurfacePropertyPrototype",_[_.LuaCustomEventPrototype=75]="LuaCustomEventPrototype",_[_.LuaSpaceConnectionPrototype=76]="LuaSpaceConnectionPrototype",_[_.LuaActiveTriggerPrototype=77]="LuaActiveTriggerPrototype",_[_.LuaSpacePlatformType=78]="LuaSpacePlatformType",_[_.LuaHeatBufferPrototype=79]="LuaHeatBufferPrototype",_[_.LuaWireConnectorType=80]="LuaWireConnectorType",_[_.LuaAsteroidChunkPrototype=81]="LuaAsteroidChunkPrototype",_[_.LuaLogisticSection=82]="LuaLogisticSection",_[_.LuaRailEnd=83]="LuaRailEnd",_[_.LuaNamedNoiseFunction=84]="LuaNamedNoiseFunction",_[_.LuaCollisionLayerPrototype=85]="LuaCollisionLayerPrototype",_[_.LuaSimulationType=86]="LuaSimulationType",_[_.LuaAirbornePollutionPrototype=87]="LuaAirbornePollutionPrototype",_[_.LuaItem=88]="LuaItem",_[_.LuaTrainManager=89]="LuaTrainManager",_[_.LuaRenderObject=90]="LuaRenderObject",_[_.LuaRecord=91]="LuaRecord",_[_.LuaBurnerUsagePrototype=92]="LuaBurnerUsagePrototype",_[_.LuaSurfacePrototype=93]="LuaSurfacePrototype",_[_.LuaProcessionPrototype=94]="LuaProcessionPrototype",_[_.LuaProcessionLayerInheritanceGroupPrototype=95]="LuaProcessionLayerInheritanceGroupPrototype",_[_.LuaLogisticSections=96]="LuaLogisticSections",_[_.xLuaFutureObject=-1]="xLuaFutureObject",_))(ls||{}),bt=(R=>(R[R.None=0]="None",R[R.EntityInventory=1]="EntityInventory",R[R.ControllerInventory=2]="ControllerInventory",R[R.ItemEntity=3]="ItemEntity",R[R.EntityCursorStack=4]="EntityCursorStack",R[R.ControllerCursorStack=5]="ControllerCursorStack",R[R.Inserter=6]="Inserter",R[R.ItemWithInventory=7]="ItemWithInventory",R[R.BeltConnectable=8]="BeltConnectable",R[R.Equipment=9]="Equipment",R[R.TargetableInventory=10]="TargetableInventory",R[R.TargetableItemStack=11]="TargetableItemStack",R[R.PlayerBlueprint=12]="PlayerBlueprint",R[R.ScriptInventory=13]="ScriptInventory",R[R.LinkedInventory=14]="LinkedInventory",R))(bt||{}),us=(E=>(E[E.Container=1]="Container",E[E.GenericOnOff=2]="GenericOnOff",E[E.Inserter=3]="Inserter",E[E.Lamp=4]="Lamp",E[E.LogisticContainer=5]="LogisticContainer",E[E.Roboport=6]="Roboport",E[E.StorageTank=7]="StorageTank",E[E.TrainStop=8]="TrainStop",E[E.DeciderCombinator=9]="DeciderCombinator",E[E.ArithmeticCombinator=10]="ArithmeticCombinator",E[E.ConstantCombinator=11]="ConstantCombinator",E[E.TransportBelt=12]="TransportBelt",E[E.Accumulator=13]="Accumulator",E[E.RailSignal=14]="RailSignal",E[E.Wall=15]="Wall",E[E.MiningDrill=16]="MiningDrill",E[E.ProgrammableSpeaker=17]="ProgrammableSpeaker",E[E.RailChainSignal=18]="RailChainSignal",E))(us||{}),ln=(u=>(u[u.ItemProduction=1]="ItemProduction",u[u.FluidProduction=2]="FluidProduction",u[u.KillCount=3]="KillCount",u[u.EntityBuild=6]="EntityBuild",u[u.ElectricNetwork=7]="ElectricNetwork",u[u.Pollution=8]="Pollution",u))(ln||{}),as=class{version;data;gcid=0;gcidmap=[];gcidmaps;constructor(e){this.version=Dt.load(e.read(9)),this.data={},this.gcidmaps={};let t=e.readUInt32LE();for(let n=0;n<t;n++){let o=e.readPackedUInt_8_32(),s=e.readString(o),u=e.readPackedUInt_8_32(),f=new ir(e.read(u));Dt.load(f.read(9)),this.gcid=0,this.gcidmap=[];let d=this.loadLuaValue(f);if(f.readableLength>0)throw new Error(`Data for ${s} not fully consumed, ${f.readableLength} bytes left`);e.readUInt8(),this.data[s]=d,this.gcidmaps[s]=this.gcidmap}}find(e,t){return this.gcidmaps[e][t]}loadLuaValue(e){let t=e.readUInt8(),n=ss[t];switch(n){case"Nil":case"BoolFalse":case"BoolTrue":return{type:n};case"Number":{let s=e.readDoubleLE();return{type:n,value:s}}case"String":{let s=e.readPackedUInt_8_32(),u=e.readString(s);return{type:n,value:u}}case"TableWithMeta":case"Table":{let s=this.gcid++,u;if(n==="TableWithMeta"){let p=e.readPackedUInt_8_32();u=e.readString(p)}let f=e.readPackedUInt_8_32(),d=[];for(let p=0;p<f;p++){let m=this.loadLuaValue(e),y=this.loadLuaValue(e);d.push({key:m,value:y})}let c={type:n,id:s,values:d,meta:u};return this.gcidmap[s]=c,c}case"ExistingGCObject":let o=e.readPackedUInt_16_32();return{type:n,id:o};case"LuaObject":{let s="LuaObject",u=this.gcid++,f=e.readUInt32LE(),d=ls[f],c=this.loadLuaObjectData(f,e);return{type:s,id:u,value:Object.assign({type:d},c)}}default:throw new Error(`Invalid type ${n} in saved lua value`)}}loadLuaObjectData(e,t){switch(e){case 0:case 11:case 12:case 13:case 14:case 18:case 19:case 21:case 22:case 32:case 33:case 52:case 54:return{target:t.readUInt32LE()};case 10:return{};case 2:case 3:{let n=t.readUInt8(),o=t.readUInt16LE();return{force:n,id:o}}case 4:return{seed:[t.readUInt32LE(),t.readUInt32LE(),t.readUInt32LE()]};case 6:{let n=t.readUInt32LE(),o=t.readUInt32LE();return{entity:n,equipment:o}}case 7:{let n=t.readUInt8(),o=t.readUInt32LE();return{index:n,owner:o}}case 9:{let n=t.readUInt8(),o=t.readPackedUInt_8_32(),s=t.readUInt32LE();return{force:n,surface:o,target:s}}case 8:return this.version.isBeyond(1,2,1,4)?{id:t.readUInt16LE()}:{id:t.readUInt8()};case 37:return this.version.isBeyond(1,2,0,3)?{id:t.readUInt16LE()}:{id:t.readUInt8()};case 5:case 40:case 42:case 49:case 51:case 57:case 58:case 60:case 61:case 62:return{id:t.readUInt8()};case 15:case 16:case 26:case 38:case 41:case 43:case 44:case 47:case 48:case 50:case 59:case 63:case 64:case 65:case 66:case 67:case 68:case 79:return{id:t.readUInt16LE()};case 56:case 84:return{id:t.readUInt32LE()};case 28:{let n={x:t.readInt32LE(),y:t.readInt32LE()},o=t.readPackedUInt_8_32();return{position:n,surface:o}}case 23:case 24:{let n=t.readUInt32LE(),o=t.readUInt32LE();return{player:n,index:o}}case 25:return this.version.isBeyond(1,2,7,1)?{target:t.readUInt32LE()}:{surface:t.readPackedUInt_8_32()};case 27:{let n=t.readUInt8(),o=t.readUInt16LE();return{group:n,subgroup:o}}case 29:{let n=t.readPackedUInt_8_32(),o={x:t.readInt32LE(),y:t.readInt32LE()};return{surface:n,position:o}}case 31:{let n=t.readUInt32LE(),o=t.readUInt8();return{target:n,index:o}}case 34:{let n=t.readUInt32LE(),o=t.readUInt32LE(),s=t.readUInt32LE(),u=t.readUInt32LE(),f=t.readUInt32LE(),d=t.readUInt8()!==0,c;if(d){let m=t.readUInt8(),y=t.readUInt16LE(),g=t.readUInt32LE();c={force:m,proto:y,linkid:g}}let p=t.readUInt8();return{entity:n,controller:o,item:s,equipment:u,scriptinv:f,link:c,index:p}}case 45:case 46:{let n=t.readUInt16LE(),o=t.readUInt16LE();return{entity:n,equipment:o}}case 53:{let n=t.readUInt16LE(),o=t.readUInt32LE(),s=t.readUInt8();return{entity:n,index:o,targettype:s}}case 55:return{stopped:t.readUInt8()!==0};case 69:{let n=t.readUInt8()!==0,o;if(n){let s=t.readPackedUInt_8_32();o=t.readString(s)}return{name:o}}case 39:{let n=t.readUInt32LE(),o=t.readUInt8(),s=t.readUInt8();return{target:n,connector:o,wire:s}}case 20:return this.loadLuaItemStack(t);case 35:return this.loadLuaControlBehavior(t);case 36:return this.loadLuaFlowStatistics(t);case 30:throw new Error(`LuaObject of type ${e} cannot have been saved`);default:throw new Error(`Unknown LuaObject type ${e}`)}}loadItemStackLocation(e){let t=this.version.isBeyond(1,2,0,33)?e.readUInt8():0;if(t!==0)return{standaloneStack:t};let n=e.readUInt8(),o=e.readUInt16LE();return{inventoryIndex:n,slotIndex:o}}loadLuaItemStack(e){let t=this.version.isBeyond(1,2,0,359)?e.readUInt8():e.readUInt32LE();switch(t){case 0:return{stacktype:bt[t]};case 1:case 2:case 7:case 9:{let n=e.readUInt32LE(),o;if(this.version.isBeyond(1,2,0,361))o=this.loadItemStackLocation(e);else{let s=e.readUInt8(),u=e.readUInt16LE();o={inventoryIndex:s,slotIndex:u}}return{stacktype:bt[t],target:n,location:o}}case 3:case 4:case 5:case 6:case 12:{let n=e.readUInt32LE();return{stacktype:bt[t],target:n}}case 8:{let n=e.readUInt32LE(),o=e.readUInt8(),s=e.readUInt8();return{stacktype:bt[t],target:n,line:o,item:s}}case 10:throw new Error(`LuaItemStack type ${t} cannot have been saved`);case 11:return{stacktype:bt[t]};case 13:{let n=e.readUInt32LE(),o=e.readUInt16LE();return{stacktype:bt[t],target:n,slot:o}}case 14:{let n=e.readUInt8(),o=e.readUInt16LE(),s=e.readUInt32LE();return{stacktype:bt[t],force:n,proto:o,linkid:s}}default:throw new Error(`Unknown LuaItemStack type ${t}`)}}loadLuaControlBehavior(e){let t=e.readUInt32LE(),n=e.readUInt32LE();return{behavior:us[t],target:n}}loadLuaFlowStatistics(e){let t=e.readUInt32LE();switch(t){case 1:case 2:case 3:case 6:let n=e.readUInt8();return{flow:ln[t],force:n};case 7:let o=e.readUInt32LE();return{flow:ln[t],target:o};case 8:return{flow:ln[t]};default:throw new Error(`Unknown LuaFlowStatistics type ${t}`)}}};var Zd=require("stream"),ir=class extends Zd.Readable{constructor(e){super(),this.push(e),this.push(null)}readUInt8(){return this.read(1).readUInt8()}readUInt16LE(){return this.read(2).readUInt16LE()}readUInt32LE(){return this.read(4).readUInt32LE()}readInt32LE(){return this.read(4).readInt32LE()}readBigInt64LE(){return this.read(8).readBigInt64LE()}readBigUInt64LE(){return this.read(8).readBigUInt64LE()}readDoubleLE(){return this.read(8).readDoubleLE()}readPackedUInt_8_32(){let e=this.readUInt8();return e===255&&(e=this.readUInt32LE()),e}readPackedUInt_16_32(){let e=this.readUInt16LE();return e===65535&&(e=this.readUInt32LE()),e}readString(e){return e===0?"":this.read(e).toString("utf8")}};var un=le(of()),Oe=le(require("os")),te=le(require("path"));var af=require("child_process");function Io(a,e){return a.match(/^~[\\\/]/)&&(a=te.posix.join(Oe.homedir().replace(/\\/g,"/"),a.replace(/^~[\\\/]/,""))),a=a.replace("${userHome}",Oe.homedir()),e?.[0]&&(a=a.replace("${workspaceFolder}",e[0].uri.fsPath)),a=a.replace(/\$\{env:(\w+)}/g,(t,n)=>process.env[n]??t),a}var fs=class{constructor(e,t,n,o){this.fs=e;this.fv=t;this.docs=n;this.workspaceFolders=o}async getBinaryVersion(){return new Promise((e,t)=>{(0,af.execFile)(this.factorioPath,["--version"],{env:Object.assign({},process.env,{SteamAppId:"427520"})},(n,o,s)=>{n&&t(n);let u=o?.match(/^Version: ([0-9\.]+) /m);u&&e(u[1]),t(new Error(`Unable to read version:
3379
+ `,"console"))}this.sendEvent(new O.TerminatedEvent),!this._isRunningInline()&&process.env.NODE_V8_COVERAGE&&process.exit()}};var ss=(c=>(c[c.Nil=0]="Nil",c[c.BoolFalse=1]="BoolFalse",c[c.BoolTrue=2]="BoolTrue",c[c.Number=3]="Number",c[c.String=4]="String",c[c.Table=5]="Table",c[c.ExistingGCObject=6]="ExistingGCObject",c[c.LuaObject=7]="LuaObject",c[c.TableWithMeta=8]="TableWithMeta",c))(ss||{}),ls=(_=>(_[_.LuaEntity=0]="LuaEntity",_[_.LuaInvalidObject=1]="LuaInvalidObject",_[_.LuaRecipe=2]="LuaRecipe",_[_.LuaTechnology=3]="LuaTechnology",_[_.LuaRandomGenerator=4]="LuaRandomGenerator",_[_.LuaForce=5]="LuaForce",_[_.LuaBurner=6]="LuaBurner",_[_.LuaLogisticPoint=7]="LuaLogisticPoint",_[_.LuaDecorativePrototype=8]="LuaDecorativePrototype",_[_.LuaCustomChartTag=9]="LuaCustomChartTag",_[_.LuaPermissionGroups=10]="LuaPermissionGroups",_[_.LuaPermissionGroup=11]="LuaPermissionGroup",_[_.LuaUnitGroup=12]="LuaUnitGroup",_[_.LuaTrain=13]="LuaTrain",_[_.LuaFluidBox=14]="LuaFluidBox",_[_.LuaEntityPrototype=15]="LuaEntityPrototype",_[_.LuaItemPrototype=16]="LuaItemPrototype",_[_.LuaEquipmentGrid=18]="LuaEquipmentGrid",_[_.LuaEquipment=19]="LuaEquipment",_[_.LuaItemStack=20]="LuaItemStack",_[_.LuaPlayer=21]="LuaPlayer",_[_.LuaGui=22]="LuaGui",_[_.LuaGuiElement=23]="LuaGuiElement",_[_.LuaStyle=24]="LuaStyle",_[_.LuaSurface=25]="LuaSurface",_[_.LuaFluidPrototype=26]="LuaFluidPrototype",_[_.LuaGroup=27]="LuaGroup",_[_.LuaTile=28]="LuaTile",_[_.LuaChunkIterator=29]="LuaChunkIterator",_[_.LuaStructMapSettings=30]="LuaStructMapSettings",_[_.LuaTransportLine=31]="LuaTransportLine",_[_.LuaLogisticNetwork=32]="LuaLogisticNetwork",_[_.LuaLogisticCell=33]="LuaLogisticCell",_[_.LuaInventory=34]="LuaInventory",_[_.LuaControlBehavior=35]="LuaControlBehavior",_[_.LuaFlowStatistics=36]="LuaFlowStatistics",_[_.LuaTilePrototype=37]="LuaTilePrototype",_[_.LuaEquipmentPrototype=38]="LuaEquipmentPrototype",_[_.LuaCircuitNetwork=39]="LuaCircuitNetwork",_[_.LuaDamagePrototype=40]="LuaDamagePrototype",_[_.LuaVirtualSignalPrototype=41]="LuaVirtualSignalPrototype",_[_.LuaEquipmentGridPrototype=42]="LuaEquipmentGridPrototype",_[_.LuaRecipePrototype=43]="LuaRecipePrototype",_[_.LuaTechnologyPrototype=44]="LuaTechnologyPrototype",_[_.LuaBurnerPrototype=45]="LuaBurnerPrototype",_[_.LuaElectricEnergySourcePrototype=46]="LuaElectricEnergySourcePrototype",_[_.LuaCustomInputPrototype=47]="LuaCustomInputPrototype",_[_.LuaNoiseLayerPrototype=48]="LuaNoiseLayerPrototype",_[_.LuaAutoplaceControlPrototype=49]="LuaAutoplaceControlPrototype",_[_.LuaModSettingPrototype=50]="LuaModSettingPrototype",_[_.LuaAmmoCategoryPrototype=51]="LuaAmmoCategoryPrototype",_[_.LuaRailPath=52]="LuaRailPath",_[_.LuaFluidBoxPrototype=53]="LuaFluidBoxPrototype",_[_.LuaAISettings=54]="LuaAISettings",_[_.LuaProfiler=55]="LuaProfiler",_[_.LuaNamedNoiseExpression=56]="LuaNamedNoiseExpression",_[_.LuaFuelCategoryPrototype=57]="LuaFuelCategoryPrototype",_[_.LuaResourceCategoryPrototype=58]="LuaResourceCategoryPrototype",_[_.LuaAchievementPrototype=59]="LuaAchievementPrototype",_[_.LuaModuleCategoryPrototype=60]="LuaModuleCategoryPrototype",_[_.LuaEquipmentCategoryPrototype=61]="LuaEquipmentCategoryPrototype",_[_.LuaTrivialSmokePrototype=62]="LuaTrivialSmokePrototype",_[_.LuaShortcutPrototype=63]="LuaShortcutPrototype",_[_.LuaRecipeCategoryPrototype=64]="LuaRecipeCategoryPrototype",_[_.LuaParticlePrototype=65]="LuaParticlePrototype",_[_.LuaFluidEnergySourcePrototype=66]="LuaFluidEnergySourcePrototype",_[_.LuaHeatEnergySourcePrototype=67]="LuaHeatEnergySourcePrototype",_[_.LuaVoidEnergySourcePrototype=68]="LuaVoidEnergySourcePrototype",_[_.LuaFontPrototype=69]="LuaFontPrototype",_[_.LuaQualityPrototype=70]="LuaQualityPrototype",_[_.LuaSpaceLocationPrototype=71]="LuaSpaceLocationPrototype",_[_.LuaPlanetType=72]="LuaPlanetType",_[_.LuaUndoRedoStackType=73]="LuaUndoRedoStackType",_[_.LuaSurfacePropertyPrototype=74]="LuaSurfacePropertyPrototype",_[_.LuaCustomEventPrototype=75]="LuaCustomEventPrototype",_[_.LuaSpaceConnectionPrototype=76]="LuaSpaceConnectionPrototype",_[_.LuaActiveTriggerPrototype=77]="LuaActiveTriggerPrototype",_[_.LuaSpacePlatformType=78]="LuaSpacePlatformType",_[_.LuaHeatBufferPrototype=79]="LuaHeatBufferPrototype",_[_.LuaWireConnectorType=80]="LuaWireConnectorType",_[_.LuaAsteroidChunkPrototype=81]="LuaAsteroidChunkPrototype",_[_.LuaLogisticSection=82]="LuaLogisticSection",_[_.LuaRailEnd=83]="LuaRailEnd",_[_.LuaNamedNoiseFunction=84]="LuaNamedNoiseFunction",_[_.LuaCollisionLayerPrototype=85]="LuaCollisionLayerPrototype",_[_.LuaSimulationType=86]="LuaSimulationType",_[_.LuaAirbornePollutionPrototype=87]="LuaAirbornePollutionPrototype",_[_.LuaItem=88]="LuaItem",_[_.LuaTrainManager=89]="LuaTrainManager",_[_.LuaRenderObject=90]="LuaRenderObject",_[_.LuaRecord=91]="LuaRecord",_[_.LuaBurnerUsagePrototype=92]="LuaBurnerUsagePrototype",_[_.LuaSurfacePrototype=93]="LuaSurfacePrototype",_[_.LuaProcessionPrototype=94]="LuaProcessionPrototype",_[_.LuaProcessionLayerInheritanceGroupPrototype=95]="LuaProcessionLayerInheritanceGroupPrototype",_[_.LuaLogisticSections=96]="LuaLogisticSections",_[_.xLuaFutureObject=-1]="xLuaFutureObject",_))(ls||{}),bt=(R=>(R[R.None=0]="None",R[R.EntityInventory=1]="EntityInventory",R[R.ControllerInventory=2]="ControllerInventory",R[R.ItemEntity=3]="ItemEntity",R[R.EntityCursorStack=4]="EntityCursorStack",R[R.ControllerCursorStack=5]="ControllerCursorStack",R[R.Inserter=6]="Inserter",R[R.ItemWithInventory=7]="ItemWithInventory",R[R.BeltConnectable=8]="BeltConnectable",R[R.Equipment=9]="Equipment",R[R.TargetableInventory=10]="TargetableInventory",R[R.TargetableItemStack=11]="TargetableItemStack",R[R.PlayerBlueprint=12]="PlayerBlueprint",R[R.ScriptInventory=13]="ScriptInventory",R[R.LinkedInventory=14]="LinkedInventory",R))(bt||{}),us=(E=>(E[E.Container=1]="Container",E[E.GenericOnOff=2]="GenericOnOff",E[E.Inserter=3]="Inserter",E[E.Lamp=4]="Lamp",E[E.LogisticContainer=5]="LogisticContainer",E[E.Roboport=6]="Roboport",E[E.StorageTank=7]="StorageTank",E[E.TrainStop=8]="TrainStop",E[E.DeciderCombinator=9]="DeciderCombinator",E[E.ArithmeticCombinator=10]="ArithmeticCombinator",E[E.ConstantCombinator=11]="ConstantCombinator",E[E.TransportBelt=12]="TransportBelt",E[E.Accumulator=13]="Accumulator",E[E.RailSignal=14]="RailSignal",E[E.Wall=15]="Wall",E[E.MiningDrill=16]="MiningDrill",E[E.ProgrammableSpeaker=17]="ProgrammableSpeaker",E[E.RailChainSignal=18]="RailChainSignal",E))(us||{}),ln=(u=>(u[u.ItemProduction=1]="ItemProduction",u[u.FluidProduction=2]="FluidProduction",u[u.KillCount=3]="KillCount",u[u.EntityBuild=6]="EntityBuild",u[u.ElectricNetwork=7]="ElectricNetwork",u[u.Pollution=8]="Pollution",u))(ln||{}),as=class{version;data;gcid=0;gcidmap=[];gcidmaps;constructor(e){this.version=Dt.load(e.read(9)),this.data={},this.gcidmaps={};let t=e.readUInt32LE();for(let n=0;n<t;n++){let o=e.readPackedUInt_8_32(),s=e.readString(o),u=e.readPackedUInt_8_32(),f=new ir(e.read(u));Dt.load(f.read(9)),this.gcid=0,this.gcidmap=[];let d=this.loadLuaValue(f);if(f.readableLength>0)throw new Error(`Data for ${s} not fully consumed, ${f.readableLength} bytes left`);e.readUInt8(),this.data[s]=d,this.gcidmaps[s]=this.gcidmap}}find(e,t){return this.gcidmaps[e][t]}loadLuaValue(e){let t=e.readUInt8(),n=ss[t];switch(n){case"Nil":case"BoolFalse":case"BoolTrue":return{type:n};case"Number":{let s=e.readDoubleLE();return{type:n,value:s}}case"String":{let s=e.readPackedUInt_8_32(),u=e.readString(s);return{type:n,value:u}}case"TableWithMeta":case"Table":{let s=this.gcid++,u;if(n==="TableWithMeta"){let p=e.readPackedUInt_8_32();u=e.readString(p)}let f=e.readPackedUInt_8_32(),d=[];for(let p=0;p<f;p++){let m=this.loadLuaValue(e),y=this.loadLuaValue(e);d.push({key:m,value:y})}let c={type:n,id:s,values:d,meta:u};return this.gcidmap[s]=c,c}case"ExistingGCObject":let o=e.readPackedUInt_16_32();return{type:n,id:o};case"LuaObject":{let s="LuaObject",u=this.gcid++,f=e.readUInt32LE(),d=ls[f],c=this.loadLuaObjectData(f,e);return{type:s,id:u,value:Object.assign({type:d},c)}}default:throw new Error(`Invalid type ${n} in saved lua value`)}}loadLuaObjectData(e,t){switch(e){case 0:case 11:case 12:case 13:case 14:case 18:case 19:case 21:case 22:case 32:case 33:case 52:case 54:return{target:t.readUInt32LE()};case 10:return{};case 2:case 3:{let n=t.readUInt8(),o=t.readUInt16LE();return{force:n,id:o}}case 4:return{seed:[t.readUInt32LE(),t.readUInt32LE(),t.readUInt32LE()]};case 6:{let n=t.readUInt32LE(),o=t.readUInt32LE();return{entity:n,equipment:o}}case 7:{let n=t.readUInt8(),o=t.readUInt32LE();return{index:n,owner:o}}case 9:{let n=t.readUInt8(),o=t.readPackedUInt_8_32(),s=t.readUInt32LE();return{force:n,surface:o,target:s}}case 8:return this.version.isBeyond(1,2,1,4)?{id:t.readUInt16LE()}:{id:t.readUInt8()};case 37:return this.version.isBeyond(1,2,0,3)?{id:t.readUInt16LE()}:{id:t.readUInt8()};case 5:case 40:case 42:case 49:case 51:case 57:case 58:case 60:case 61:case 62:return{id:t.readUInt8()};case 15:case 16:case 26:case 38:case 41:case 43:case 44:case 47:case 48:case 50:case 59:case 63:case 64:case 65:case 66:case 67:case 68:case 79:return{id:t.readUInt16LE()};case 56:case 84:return{id:t.readUInt32LE()};case 28:{let n={x:t.readInt32LE(),y:t.readInt32LE()},o=t.readPackedUInt_8_32();return{position:n,surface:o}}case 23:case 24:{let n=t.readUInt32LE(),o=t.readUInt32LE();return{player:n,index:o}}case 25:return this.version.isBeyond(1,2,7,1)?{target:t.readUInt32LE()}:{surface:t.readPackedUInt_8_32()};case 27:{let n=t.readUInt8(),o=t.readUInt16LE();return{group:n,subgroup:o}}case 29:{let n=t.readPackedUInt_8_32(),o={x:t.readInt32LE(),y:t.readInt32LE()};return{surface:n,position:o}}case 31:{let n=t.readUInt32LE(),o=t.readUInt8();return{target:n,index:o}}case 34:{let n=t.readUInt32LE(),o=t.readUInt32LE(),s=t.readUInt32LE(),u=t.readUInt32LE(),f=t.readUInt32LE(),d=t.readUInt8()!==0,c;if(d){let m=t.readUInt8(),y=t.readUInt16LE(),g=t.readUInt32LE();c={force:m,proto:y,linkid:g}}let p=t.readUInt8();return{entity:n,controller:o,item:s,equipment:u,scriptinv:f,link:c,index:p}}case 45:case 46:{let n=t.readUInt16LE(),o=t.readUInt16LE();return{entity:n,equipment:o}}case 53:{let n=t.readUInt16LE(),o=t.readUInt32LE(),s=t.readUInt8();return{entity:n,index:o,targettype:s}}case 55:return{stopped:t.readUInt8()!==0};case 69:{let n=t.readUInt8()!==0,o;if(n){let s=t.readPackedUInt_8_32();o=t.readString(s)}return{name:o}}case 39:{let n=t.readUInt32LE(),o=t.readUInt8(),s=t.readUInt8();return{target:n,connector:o,wire:s}}case 20:return this.loadLuaItemStack(t);case 35:return this.loadLuaControlBehavior(t);case 36:return this.loadLuaFlowStatistics(t);case 30:throw new Error(`LuaObject of type ${e} cannot have been saved`);default:throw new Error(`Unknown LuaObject type ${e}`)}}loadItemStackLocation(e){let t=this.version.isBeyond(1,2,0,33)?e.readUInt8():0;if(t!==0)return{standaloneStack:t};let n=e.readUInt8(),o=e.readUInt16LE();return{inventoryIndex:n,slotIndex:o}}loadLuaItemStack(e){let t=this.version.isBeyond(1,2,0,359)?e.readUInt8():e.readUInt32LE();switch(t){case 0:return{stacktype:bt[t]};case 1:case 2:case 7:case 9:{let n=e.readUInt32LE(),o;if(this.version.isBeyond(1,2,0,361))o=this.loadItemStackLocation(e);else{let s=e.readUInt8(),u=e.readUInt16LE();o={inventoryIndex:s,slotIndex:u}}return{stacktype:bt[t],target:n,location:o}}case 3:case 4:case 5:case 6:case 12:{let n=e.readUInt32LE();return{stacktype:bt[t],target:n}}case 8:{let n=e.readUInt32LE(),o=e.readUInt8(),s=e.readUInt8();return{stacktype:bt[t],target:n,line:o,item:s}}case 10:throw new Error(`LuaItemStack type ${t} cannot have been saved`);case 11:return{stacktype:bt[t]};case 13:{let n=e.readUInt32LE(),o=e.readUInt16LE();return{stacktype:bt[t],target:n,slot:o}}case 14:{let n=e.readUInt8(),o=e.readUInt16LE(),s=e.readUInt32LE();return{stacktype:bt[t],force:n,proto:o,linkid:s}}default:throw new Error(`Unknown LuaItemStack type ${t}`)}}loadLuaControlBehavior(e){let t=e.readUInt32LE(),n=e.readUInt32LE();return{behavior:us[t],target:n}}loadLuaFlowStatistics(e){let t=e.readUInt32LE();switch(t){case 1:case 2:case 3:case 6:let n=e.readUInt8();return{flow:ln[t],force:n};case 7:let o=e.readUInt32LE();return{flow:ln[t],target:o};case 8:return{flow:ln[t]};default:throw new Error(`Unknown LuaFlowStatistics type ${t}`)}}};var Zd=require("stream"),ir=class extends Zd.Readable{constructor(e){super(),this.push(e),this.push(null)}readUInt8(){return this.read(1).readUInt8()}readUInt16LE(){return this.read(2).readUInt16LE()}readUInt32LE(){return this.read(4).readUInt32LE()}readInt32LE(){return this.read(4).readInt32LE()}readBigInt64LE(){return this.read(8).readBigInt64LE()}readBigUInt64LE(){return this.read(8).readBigUInt64LE()}readDoubleLE(){return this.read(8).readDoubleLE()}readPackedUInt_8_32(){let e=this.readUInt8();return e===255&&(e=this.readUInt32LE()),e}readPackedUInt_16_32(){let e=this.readUInt16LE();return e===65535&&(e=this.readUInt32LE()),e}readString(e){return e===0?"":this.read(e).toString("utf8")}};var un=le(of()),Be=le(require("os")),te=le(require("path"));var af=require("child_process");function Co(a,e){return a.match(/^~[\\\/]/)&&(a=te.posix.join(Be.homedir().replace(/\\/g,"/"),a.replace(/^~[\\\/]/,""))),a=a.replace("${userHome}",Be.homedir()),e?.[0]&&(a=a.replace("${workspaceFolder}",e[0].uri.fsPath)),a=a.replace(/\$\{env:(\w+)}/g,(t,n)=>process.env[n]??t),a}var fs=class{constructor(e,t,n,o){this.fs=e;this.fv=t;this.docs=n;this.workspaceFolders=o}async getBinaryVersion(){return new Promise((e,t)=>{(0,af.execFile)(this.factorioPath,["--version"],{env:Object.assign({},process.env,{SteamAppId:"427520"})},(n,o,s)=>{n&&t(n);let u=o?.match(/^Version: ([0-9\.]+) /m);u&&e(u[1]),t(new Error(`Unable to read version:
3380
3380
  stdout: ${o}
3381
- stderr: ${s}`))})})}async debugLaunchArgs(){let e=[];return e.push(this.factorioPath),this.fv.docsPath&&e.push("--docs",this.fv.docsPath),this.configPathIsOverriden()&&e.push("--config",await this.configPath()),this.workspaceFolders&&e.push("--workspace",...this.workspaceFolders.map(t=>t.uri.fsPath)),e}get name(){return this.fv.name}get factorioPath(){return Io(this.fv.factorioPath,this.workspaceFolders)}get docArgs(){return this.fv.onlineDocs?["luals-addon","-o",this.fv.onlineDocs===!0?"latest":this.fv.onlineDocs]:["luals-addon","-d",this.docsPath,"-p",this.protosPath]}get docsPath(){return te.join(this.factorioPath,this.fv.docsPath?this.fv.docsPath:Oe.platform()==="darwin"?"../../doc-html/runtime-api.json":"../../../doc-html/runtime-api.json")}get protosPath(){return te.join(this.factorioPath,this.fv.protosPath?this.fv.protosPath:this.fv.docsPath?te.join(this.fv.docsPath,"../prototype-api.json"):Oe.platform()==="darwin"?"../../doc-html/prototype-api.json":"../../../doc-html/prototype-api.json")}configPathIsOverriden(){return!!this.fv.configPath}async configPath(){if(this.fv.configPath)return Io(this.fv.configPath,this.workspaceFolders);let e=te.resolve(te.dirname(this.factorioPath),"../../config-path.cfg");try{let t=un.parse((await this.fs.readFile(Ae.file(e))).toString());return te.resolve(this.translatePath(t["config-path"]),"./config.ini")}catch{}return this.translatePath("__PATH__system-write-data__/config/config.ini")}get nativeDebugger(){return this.fv.nativeDebugger&&Io(this.fv.nativeDebugger,this.workspaceFolders)}get nativeDAP(){return this.fv.nativeDAP}iniData;async configIni(){return this.iniData||(this.iniData=this.fs.readFile(Ae.file(await this.configPath())).then(e=>un.parse(e.toString()))),this.iniData}async isPrototypeCacheEnabled(){try{return(await this.configIni()).other?.["cache-prototype-data"]}catch{return}}async disablePrototypeCache(){this.iniData=void 0;let e=Ae.file(await this.configPath()),t=(await this.fs.readFile(e)).toString();t=t.replace("cache-prototype-data=","; cache-prototype-data="),await this.fs.writeFile(e,Buffer.from(t)),this.iniData=un.parse(t)}async isMouseAutoCaptureDisabled(){try{return(await this.configIni()).other?.["disable-mouse-auto-capture"]}catch{return}}async disableMouseAutoCapture(){this.iniData=void 0;let e=Ae.file(await this.configPath()),t=(await this.fs.readFile(e)).toString(),n=t.match(/^;? *disable-mouse-auto-capture=.*$/m);if(n)t=t.slice(0,n.index)+`
3381
+ stderr: ${s}`))})})}async debugLaunchArgs(){let e=[];return e.push(this.factorioPath),this.fv.docsPath&&e.push("--docs",this.fv.docsPath),this.configPathIsOverriden()&&e.push("--config",await this.configPath()),this.workspaceFolders&&e.push("--workspace",...this.workspaceFolders.map(t=>t.uri.fsPath)),e}get name(){return this.fv.name}get factorioPath(){return Co(this.fv.factorioPath,this.workspaceFolders)}get docArgs(){return this.fv.onlineDocs?["luals-addon","-o",this.fv.onlineDocs===!0?"latest":this.fv.onlineDocs]:["luals-addon","-d",this.docsPath,"-p",this.protosPath]}get docsPath(){return te.join(this.factorioPath,this.fv.docsPath?this.fv.docsPath:Be.platform()==="darwin"?"../../doc-html/runtime-api.json":"../../../doc-html/runtime-api.json")}get protosPath(){return te.join(this.factorioPath,this.fv.protosPath?this.fv.protosPath:this.fv.docsPath?te.join(this.fv.docsPath,"../prototype-api.json"):Be.platform()==="darwin"?"../../doc-html/prototype-api.json":"../../../doc-html/prototype-api.json")}configPathIsOverriden(){return!!this.fv.configPath}async configPath(){if(this.fv.configPath)return Co(this.fv.configPath,this.workspaceFolders);let e=te.resolve(te.dirname(this.factorioPath),"../../config-path.cfg");try{let t=un.parse((await this.fs.readFile(Ae.file(e))).toString());return te.resolve(this.translatePath(t["config-path"]),"./config.ini")}catch{}return this.translatePath("__PATH__system-write-data__/config/config.ini")}get nativeDebugger(){return this.fv.nativeDebugger&&Co(this.fv.nativeDebugger,this.workspaceFolders)}get nativeDAP(){return this.fv.nativeDAP}iniData;async configIni(){return this.iniData||(this.iniData=this.fs.readFile(Ae.file(await this.configPath())).then(e=>un.parse(e.toString()))),this.iniData}async isPrototypeCacheEnabled(){try{return(await this.configIni()).other?.["cache-prototype-data"]}catch{return}}async disablePrototypeCache(){this.iniData=void 0;let e=Ae.file(await this.configPath()),t=(await this.fs.readFile(e)).toString();t=t.replace("cache-prototype-data=","; cache-prototype-data="),await this.fs.writeFile(e,Buffer.from(t)),this.iniData=un.parse(t)}async isMouseAutoCaptureDisabled(){try{return(await this.configIni()).other?.["disable-mouse-auto-capture"]}catch{return}}async disableMouseAutoCapture(){this.iniData=void 0;let e=Ae.file(await this.configPath()),t=(await this.fs.readFile(e)).toString(),n=t.match(/^;? *disable-mouse-auto-capture=.*$/m);if(n)t=t.slice(0,n.index)+`
3382
3382
  disable-mouse-auto-capture=true
3383
3383
  `+t.slice(n.index+n[0].length);else{let o=t.match(/^\[other\]$/m);t=t.slice(0,o.index+o[0].length)+`
3384
3384
  disable-mouse-auto-capture=true
3385
- `+t.slice(o.index+o[0].length)}await this.fs.writeFile(e,Buffer.from(t)),this.iniData=un.parse(t)}async defaultModsPath(){let e=(await this.configIni())?.path?.["write-data"];if(!e)throw"path.write-data missing in config.ini";return te.posix.normalize(te.resolve(this.translatePath(e),"mods"))}async dataPath(){let e=(await this.configIni().catch(()=>({path:{"read-data":"__PATH__executable__/../../data"}}))).path?.["read-data"];if(!e)throw"path.read-data missing in config.ini";return te.posix.normalize(this.translatePath(e))}async lualibPath(){return te.posix.normalize(te.resolve(await this.dataPath(),"core","lualib"))}async writeDataPath(){let e=(await this.configIni()).path?.["write-data"];if(!e)throw"path.write-data missing in config.ini";return te.posix.normalize(this.translatePath(e))}translatePath(e){if(e.startsWith("__PATH__executable__"))return te.join(te.dirname(this.factorioPath),e.replace("__PATH__executable__",""));if(e.startsWith("__PATH__system-write-data__")){let t=Oe.platform()==="win32"?te.resolve(process.env.APPDATA,"Factorio"):Oe.platform()==="linux"?te.resolve(Oe.homedir(),".factorio"):Oe.platform()==="darwin"?te.resolve(Oe.homedir(),"Library/Application Support/factorio"):"??";return te.join(t,e.replace("__PATH__system-write-data__",""))}if(e.startsWith("__PATH__system-read-data__")){let t=Oe.platform()==="linux"?"/usr/share/factorio":Oe.platform()==="darwin"?te.resolve(te.dirname(this.factorioPath),"../data"):te.resolve(te.dirname(this.factorioPath),"../../data");return te.join(t,e.replace("__PATH__system-read-data__",""))}return e}is(e){let t=this.fv;return t.name===e.name&&t.factorioPath===e.factorioPath&&t.nativeDebugger===e.nativeDebugger&&t.docsPath===e.docsPath&&t.protosPath===e.protosPath&&t.configPath===e.configPath}};0&&(module.exports={ActiveFactorioVersion,ApiDocGenerator,BufferSplitter,BufferStream,EncodingUtil,FactorioModDebugSession,LuaControlBehaviorType,LuaFlowStatisticsType,LuaItemStackType,LuaLSAddon,LuaObjectType,MapVersion,ModManager,ModSettings,PropertyTree,PropertyTreeType,ProtoDocGenerator,SavedLuaTypeTag,ScriptDat,getModInfo,substitutePathVariables});
3385
+ `+t.slice(o.index+o[0].length)}await this.fs.writeFile(e,Buffer.from(t)),this.iniData=un.parse(t)}async defaultModsPath(){let e=(await this.configIni())?.path?.["write-data"];if(!e)throw"path.write-data missing in config.ini";return te.posix.normalize(te.resolve(this.translatePath(e),"mods"))}async dataPath(){let e=(await this.configIni().catch(()=>({path:{"read-data":"__PATH__executable__/../../data"}}))).path?.["read-data"];if(!e)throw"path.read-data missing in config.ini";return te.posix.normalize(this.translatePath(e))}async lualibPath(){return te.posix.normalize(te.resolve(await this.dataPath(),"core","lualib"))}async writeDataPath(){let e=(await this.configIni()).path?.["write-data"];if(!e)throw"path.write-data missing in config.ini";return te.posix.normalize(this.translatePath(e))}translatePath(e){if(e.startsWith("__PATH__executable__"))return te.join(te.dirname(this.factorioPath),e.replace("__PATH__executable__",""));if(e.startsWith("__PATH__system-write-data__")){let t=Be.platform()==="win32"?te.resolve(process.env.APPDATA,"Factorio"):Be.platform()==="linux"?te.resolve(Be.homedir(),".factorio"):Be.platform()==="darwin"?te.resolve(Be.homedir(),"Library/Application Support/factorio"):"??";return te.join(t,e.replace("__PATH__system-write-data__",""))}if(e.startsWith("__PATH__system-read-data__")){let t=Be.platform()==="linux"?"/usr/share/factorio":Be.platform()==="darwin"?te.resolve(te.dirname(this.factorioPath),"../data"):te.resolve(te.dirname(this.factorioPath),"../../data");return te.join(t,e.replace("__PATH__system-read-data__",""))}return e}is(e){let t=this.fv;return t.name===e.name&&t.factorioPath===e.factorioPath&&t.nativeDebugger===e.nativeDebugger&&t.docsPath===e.docsPath&&t.protosPath===e.protosPath&&t.configPath===e.configPath}};0&&(module.exports={ActiveFactorioVersion,ApiDocGenerator,BufferSplitter,BufferStream,EncodingUtil,FactorioModDebugSession,LuaControlBehaviorType,LuaFlowStatisticsType,LuaItemStackType,LuaLSAddon,LuaObjectType,MapVersion,ModManager,ModSettings,PropertyTree,PropertyTreeType,ProtoDocGenerator,SavedLuaTypeTag,ScriptDat,getModInfo,substitutePathVariables});
3386
3386
  /*! Bundled license information:
3387
3387
 
3388
3388
  web-streams-polyfill/dist/ponyfill.es2018.js: