factoriomod-debug 2.0.1 → 2.0.3

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 Vp=Object.create;var Nn=Object.defineProperty;var zp=Object.getOwnPropertyDescriptor;var Wp=Object.getOwnPropertyNames;var Hp=Object.getPrototypeOf,Kp=Object.prototype.hasOwnProperty;var te=(a,e)=>()=>(a&&(e=a(a=0)),e);var F=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),ne=(a,e)=>{for(var t in e)Nn(a,t,{get:e[t],enumerable:!0})},Sl=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Wp(e))!Kp.call(a,i)&&i!==t&&Nn(a,i,{get:()=>e[i],enumerable:!(n=zp(e,i))||n.enumerable});return a};var le=(a,e,t)=>(t=a!=null?Vp(Hp(a)):{},Sl(e||!a||!a.__esModule?Nn(t,"default",{value:a,enumerable:!0}):t,a)),Gp=a=>Sl(Nn({},"__esModule",{value:!0}),a);var jn=a=>new Uint8Array(Buffer.from(a,"base64"));var _o={};ne(_o,{default:()=>Qp});var Qp,Rl=te(()=>{Qp=`
1
+ "use strict";var Kp=Object.create;var Un=Object.defineProperty;var Gp=Object.getOwnPropertyDescriptor;var Xp=Object.getOwnPropertyNames;var Yp=Object.getPrototypeOf,Qp=Object.prototype.hasOwnProperty;var J=(a,e)=>()=>(a&&(e=a(a=0)),e);var O=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),Z=(a,e)=>{for(var t in e)Un(a,t,{get:e[t],enumerable:!0})},Pl=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Xp(e))!Qp.call(a,o)&&o!==t&&Un(a,o,{get:()=>e[o],enumerable:!(n=Gp(e,o))||n.enumerable});return a};var le=(a,e,t)=>(t=a!=null?Kp(Yp(a)):{},Pl(e||!a||!a.__esModule?Un(t,"default",{value:a,enumerable:!0}):t,a)),Jp=a=>Pl(Un({},"__esModule",{value:!0}),a);var jn=a=>new Uint8Array(Buffer.from(a,"base64"));var gi={};Z(gi,{default:()=>th});var th,El=J(()=>{th=`
2
2
  --[[
3
3
  Arg parser from: https://github.com/JanSharp/LuaArgParser
4
4
 
@@ -449,7 +449,7 @@ return {
449
449
  get_help_string = get_help_string,
450
450
  help_option = help_option, -- one can modify this table by reference
451
451
  }
452
- `});var bo={};ne(bo,{default:()=>Zp});var Zp,Pl=te(()=>{Zp=`--##
452
+ `});var _i={};Z(_i,{default:()=>nh});var nh,Ll=J(()=>{nh=`--##
453
453
 
454
454
  local util = require("factorio-plugin.util")
455
455
  local command_line_module_flag = util.module_flags.command_line
@@ -486,7 +486,7 @@ end
486
486
  return {
487
487
  replace = replace,
488
488
  }
489
- `});var yo={};ne(yo,{default:()=>th});var th,El=te(()=>{th=`--##
489
+ `});var bi={};Z(bi,{default:()=>ih});var ih,xl=J(()=>{ih=`--##
490
490
 
491
491
  local util = require("factorio-plugin.util")
492
492
  local object_name_module_flag = util.module_flags.object_name
@@ -520,7 +520,7 @@ end
520
520
  return {
521
521
  replace = replace,
522
522
  }
523
- `});var wo={};ne(wo,{default:()=>nh});var nh,Ll=te(()=>{nh=`--##
523
+ `});var yi={};Z(yi,{default:()=>sh});var sh,Al=J(()=>{sh=`--##
524
524
 
525
525
  local util = require("factorio-plugin.util")
526
526
  local remote_add_module_flag = util.module_flags.remote_add
@@ -648,7 +648,7 @@ end
648
648
  return {
649
649
  replace = replace,
650
650
  }
651
- `});var vo={};ne(vo,{default:()=>oh});var oh,xl=te(()=>{oh=`--##
651
+ `});var wi={};Z(wi,{default:()=>uh});var uh,Tl=J(()=>{uh=`--##
652
652
 
653
653
  local util = require("factorio-plugin.util")
654
654
  local require_module_flag = util.module_flags.require
@@ -700,7 +700,7 @@ end
700
700
  return {
701
701
  replace = replace,
702
702
  }
703
- `});var So={};ne(So,{default:()=>sh});var sh,Al=te(()=>{sh=`--##
703
+ `});var vi={};Z(vi,{default:()=>dh});var dh,kl=J(()=>{dh=`--##
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 Ro={};ne(Ro,{default:()=>uh});var uh,Tl=te(()=>{uh=`--##
822
+ `});var Si={};Z(Si,{default:()=>ph});var ph,Il=J(()=>{ph=`--##
823
823
 
824
824
  local floor_div = __plugin_dev
825
825
  and function(left, right) return math.floor(left / right) end
@@ -1432,7 +1432,7 @@ return {
1432
1432
  on_pre_process_file = on_pre_process_file,
1433
1433
  on_post_process_file = on_post_process_file,
1434
1434
  }
1435
- `});var Po={};ne(Po,{default:()=>dh});var dh,kl=te(()=>{dh=`---@meta _\r
1435
+ `});var Ri={};Z(Ri,{default:()=>mh});var mh,Cl=J(()=>{mh=`---@meta _\r
1436
1436
  \r
1437
1437
  ---@class event_handler\r
1438
1438
  ---@field events? event_handler.events\r
@@ -1452,7 +1452,7 @@ handler.add_lib = function(lib) end\r
1452
1452
  ---@param libs event_handler[]\r
1453
1453
  handler.add_libraries = function(libs) end\r
1454
1454
  \r
1455
- return handler`});var Eo={};ne(Eo,{default:()=>ph});var ph,Il=te(()=>{ph=`---@meta\r
1455
+ return handler`});var Pi={};Z(Pi,{default:()=>_h});var _h,Dl=J(()=>{_h=`---@meta\r
1456
1456
  \r
1457
1457
  --[[\r
1458
1458
  Hello script explorer, if you are looking to upgrade your mod to use the mod gui, its pretty simple.\r
@@ -1486,7 +1486,7 @@ function mod_gui.get_button_flow(player) end\r
1486
1486
  ---@return LuaGuiElement #The mod_gui frame flow\r
1487
1487
  function mod_gui.get_frame_flow(player) end\r
1488
1488
  \r
1489
- return mod_gui`});var Lo={};ne(Lo,{default:()=>mh});var mh,Cl=te(()=>{mh=`---@meta\r
1489
+ return mod_gui`});var Ei={};Z(Ei,{default:()=>yh});var yh,$l=J(()=>{yh=`---@meta\r
1490
1490
  \r
1491
1491
  ---@class util\r
1492
1492
  util = {\r
@@ -1828,7 +1828,7 @@ meter = 1\r
1828
1828
  kilometer = 1000\r
1829
1829
  \r
1830
1830
  return util\r
1831
- `});var xo={};ne(xo,{default:()=>_h});var _h,Dl=te(()=>{_h=`---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#The_setting_type_property)
1831
+ `});var Li={};Z(Li,{default:()=>vh});var vh,Ol=J(()=>{vh=`---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#The_setting_type_property)
1832
1832
  ---@alias data.ModSettingSettingType ("startup")|("runtime-global")|("double-setting")|("runtime-per-user")
1833
1833
 
1834
1834
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings)
@@ -1836,7 +1836,7 @@ return util\r
1836
1836
 
1837
1837
  do
1838
1838
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings)
1839
- ---@class data.ModSettingPrototype:data.PrototypeBase
1839
+ ---@class (exact) data.ModSettingPrototype:data.PrototypeBase
1840
1840
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#The_hidden_property)
1841
1841
  ---@field hidden? boolean
1842
1842
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#The_setting_type_property)
@@ -1847,7 +1847,7 @@ end
1847
1847
 
1848
1848
  do
1849
1849
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#bool-setting)
1850
- ---@class data.ModBoolSettingPrototype:data.ModSettingPrototype
1850
+ ---@class (exact) data.ModBoolSettingPrototype:data.ModSettingPrototype
1851
1851
  ---@field type "bool-setting"
1852
1852
  ---@field default_value boolean
1853
1853
  ---@field forced_value? boolean
@@ -1857,7 +1857,7 @@ end
1857
1857
 
1858
1858
  do
1859
1859
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#int-setting)
1860
- ---@class data.ModIntSettingPrototype:data.ModSettingPrototype
1860
+ ---@class (exact) data.ModIntSettingPrototype:data.ModSettingPrototype
1861
1861
  ---@field type "int-setting"
1862
1862
  ---@field default_value int64
1863
1863
  ---@field minimum_value? int64
@@ -1869,7 +1869,7 @@ end
1869
1869
 
1870
1870
  do
1871
1871
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#double-setting)
1872
- ---@class data.ModDoubleSettingPrototype:data.ModSettingPrototype
1872
+ ---@class (exact) data.ModDoubleSettingPrototype:data.ModSettingPrototype
1873
1873
  ---@field type "double-setting"
1874
1874
  ---@field default_value double
1875
1875
  ---@field minimum_value? double
@@ -1881,7 +1881,7 @@ end
1881
1881
 
1882
1882
  do
1883
1883
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#string-setting)
1884
- ---@class data.ModStringSettingPrototype:data.ModSettingPrototype
1884
+ ---@class (exact) data.ModStringSettingPrototype:data.ModSettingPrototype
1885
1885
  ---@field type "string-setting"
1886
1886
  ---@field default_value string
1887
1887
  ---@field allow_blank? boolean
@@ -1893,19 +1893,19 @@ end
1893
1893
 
1894
1894
  do
1895
1895
  ---[View Documentation](https://wiki.factorio.com/Tutorial:Mod_settings#color-setting)
1896
- ---@class data.ModColorSettingPrototype:data.ModSettingPrototype
1896
+ ---@class (exact) data.ModColorSettingPrototype:data.ModSettingPrototype
1897
1897
  ---@field type "color-setting"
1898
1898
  ---@field default_value data.Color
1899
1899
  local data_ModBoolSetting={
1900
1900
  }
1901
1901
  end
1902
1902
 
1903
- `});var Ao={};ne(Ao,{default:()=>yh});var yh,$l=te(()=>{yh=`---@meta _\r
1903
+ `});var xi={};Z(xi,{default:()=>Rh});var Rh,Fl=J(()=>{Rh=`---@meta _\r
1904
1904
  \r
1905
1905
  ---@see LuaBootstrap.active_mods\r
1906
1906
  ---@type {[string]: string}\r
1907
1907
  mods = {}\r
1908
- `});var To={};ne(To,{default:()=>vh});var vh,Ol=te(()=>{vh=`---@meta _\r
1908
+ `});var Ai={};Z(Ai,{default:()=>Eh});var Eh,Bl=J(()=>{Eh=`---@meta _\r
1909
1909
  \r
1910
1910
  ---Double precision floating point numbers. May not be NaN in prototypes.\r
1911
1911
  ---@alias double number\r
@@ -1931,7 +1931,7 @@ mods = {}\r
1931
1931
  ---64 bit signed integer.\r
1932
1932
  ---@alias int64 integer\r
1933
1933
  ---64 bit unsigned integer.\r
1934
- ---@alias uint64 integer`});var ko={};ne(ko,{default:()=>Rh});var Rh,Fl=te(()=>{Rh=`---@meta _
1934
+ ---@alias uint64 integer`});var Ti={};Z(Ti,{default:()=>xh});var xh,ql=J(()=>{xh=`---@meta _
1935
1935
 
1936
1936
  ---
1937
1937
  ---
@@ -2175,7 +2175,7 @@ function debug.upvalueid(f, n) end
2175
2175
  function debug.upvaluejoin(f1, n1, f2, n2) end
2176
2176
 
2177
2177
  return debug
2178
- `});var Io={};ne(Io,{default:()=>Eh});var Eh,Bl=te(()=>{Eh=`---@meta _\r
2178
+ `});var ki={};Z(ki,{default:()=>Th});var Th,Ml=J(()=>{Th=`---@meta _\r
2179
2179
  \r
2180
2180
  ---\r
2181
2181
  ---\r
@@ -2538,7 +2538,7 @@ function math.random(m, n) end\r
2538
2538
  function math.randomseed(x) end\r
2539
2539
  \r
2540
2540
  return math\r
2541
- `});var Co={};ne(Co,{default:()=>xh});var xh,ql=te(()=>{xh=`---@meta _\r
2541
+ `});var Ii={};Z(Ii,{default:()=>Ih});var Ih,Ul=J(()=>{Ih=`---@meta _\r
2542
2542
  \r
2543
2543
  ---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
2544
2544
  ---\r
@@ -2556,7 +2556,7 @@ function require(modname) end\r
2556
2556
  ---@field loaded table\r
2557
2557
  package = {}\r
2558
2558
  \r
2559
- return package`});var Do={};ne(Do,{default:()=>Th});var Th,Ml=te(()=>{Th=`---@meta _\r
2559
+ return package`});var Ci={};Z(Ci,{default:()=>Dh});var Dh,jl=J(()=>{Dh=`---@meta _\r
2560
2560
  ---Lua serializer and pretty printer.\\\r
2561
2561
  ---Author: [Paul Kulchenko](mailto:paul@kulchenko.com)\\\r
2562
2562
  ---https://github.com/pkulchenko/serpent\r
@@ -2702,7 +2702,44 @@ function serpent.load(str, options) end\r
2702
2702
  ---\r
2703
2703
  ---print(serpent.block(ast, { comment = false, custom = formatter }))\r
2704
2704
  ---\`\`\`\r
2705
- ---@alias serpent.formater fun(tag: string, head: string, body: string, tail: string, level: number)`});var $o={};ne($o,{default:()=>Ih});var Ih,Ul=te(()=>{Ih=`---@meta _\r
2705
+ ---@alias serpent.formater fun(tag: string, head: string, body: string, tail: string, level: number)`});var Di={};Z(Di,{default:()=>Oh});var Oh,Nl=J(()=>{Oh=`---@meta string\r
2706
+ \r
2707
+ ---\r
2708
+ ---Returns a binary string containing the values \`v1\`, \`v2\`, etc. packed (that is, serialized in binary form) according to the format string \`fmt\` (see [\xA76.4.2](command:extension.lua.doc?["en-us/52/manual.html/6.4.2"])) .\r
2709
+ ---\r
2710
+ ---[View documents](command:extension.lua.doc?["en-us/52/manual.html/pdf-string.pack"])\r
2711
+ ---\r
2712
+ ---@param fmt string\r
2713
+ ---@param v1 string|number\r
2714
+ ---@param v2? string|number\r
2715
+ ---@param ... string|number\r
2716
+ ---@return string binary\r
2717
+ ---@nodiscard\r
2718
+ function string.pack(fmt, v1, v2, ...) end\r
2719
+ \r
2720
+ ---\r
2721
+ ---Returns the size of a string resulting from \`string.pack\` with the given format string \`fmt\` (see [\xA76.4.2](command:extension.lua.doc?["en-us/52/manual.html/6.4.2"])) .\r
2722
+ ---\r
2723
+ ---[View documents](command:extension.lua.doc?["en-us/52/manual.html/pdf-string.packsize"])\r
2724
+ ---\r
2725
+ ---@param fmt string\r
2726
+ ---@return integer\r
2727
+ ---@nodiscard\r
2728
+ function string.packsize(fmt) end\r
2729
+ \r
2730
+ ---\r
2731
+ ---Returns the values packed in string according to the format string \`fmt\` (see [\xA76.4.2](command:extension.lua.doc?["en-us/52/manual.html/6.4.2"])) .\r
2732
+ ---\r
2733
+ ---[View documents](command:extension.lua.doc?["en-us/52/manual.html/pdf-string.unpack"])\r
2734
+ ---\r
2735
+ ---@param fmt string\r
2736
+ ---@param s string\r
2737
+ ---@param pos? integer\r
2738
+ ---@return any ...\r
2739
+ ---@return integer offset\r
2740
+ ---@nodiscard\r
2741
+ function string.unpack(fmt, s, pos) end\r
2742
+ `});var $i={};Z($i,{default:()=>Bh});var Bh,zl=J(()=>{Bh=`---@meta _\r
2706
2743
  \r
2707
2744
  ---@param object LuaObject\r
2708
2745
  ---@return LuaObject.object_name object_name\r
@@ -2712,7 +2749,7 @@ function __object_name(object) end\r
2712
2749
  ---@class LuaObject\r
2713
2750
  ---@field valid boolean\r
2714
2751
  ---@field object_name LuaObject.object_name\r
2715
- `});var Oo={};ne(Oo,{default:()=>Dh});var Dh,Nl=te(()=>{Dh=`---@meta _\r
2752
+ `});var Oi={};Z(Oi,{default:()=>Mh});var Mh,Vl=J(()=>{Mh=`---@meta _\r
2716
2753
  \r
2717
2754
  ---@class BlueprintCircuitConnection\r
2718
2755
  \r
@@ -2753,10 +2790,190 @@ function __object_name(object) end\r
2753
2790
  ---@field circuit_open_gate? boolean\r
2754
2791
  ---@field circuit_read_sensor? boolean\r
2755
2792
  ---@field circuit_parameters? ProgrammableSpeakerCircuitParameters\r
2756
- `});var Fo={};ne(Fo,{default:()=>Oh});var Oh,jl=te(()=>{Oh=`---@meta _\r
2793
+ `});var Fi={};Z(Fi,{default:()=>jh});var jh,Wl=J(()=>{jh=`---@meta _\r
2794
+ \r
2795
+ ---@see storage\r
2796
+ ---@deprecated use \`storage\`\r
2797
+ global = nil\r
2798
+ \r
2799
+ ---@class LuaBootstrap\r
2800
+ local scriptdep = {\r
2801
+ \r
2802
+ ---@deprecated use \`script.register_on_object_destroyed\`\r
2803
+ ---@see script.register_on_object_destroyed\r
2804
+ register_on_entity_destroyed = nil\r
2805
+ }\r
2806
+ \r
2807
+ ---@class LuaGameScript\r
2808
+ local gamedep = {\r
2809
+ ---@deprecated use \`script.active_mods\`\r
2810
+ ---@see script.active_mods\r
2811
+ active_mods = nil,\r
2812
+ \r
2813
+ ---@deprecated use \`helpers.table_to_json\`\r
2814
+ ---@see helpers.table_to_json\r
2815
+ table_to_json = nil,\r
2816
+ ---@deprecated use \`helpers.json_to_table\`\r
2817
+ ---@see helpers.json_to_table\r
2818
+ json_to_table = nil,\r
2819
+ ---@deprecated use \`helpers.write_file\`\r
2820
+ ---@see helpers.write_file\r
2821
+ write_file = nil,\r
2822
+ ---@deprecated use \`helpers.remove_path\`\r
2823
+ ---@see helpers.remove_path\r
2824
+ remove_path = nil,\r
2825
+ ---@deprecated use \`helpers.direction_to_string\`\r
2826
+ ---@see helpers.direction_to_string\r
2827
+ direction_to_string = nil,\r
2828
+ ---@deprecated use \`helpers.evaluate_expression\`\r
2829
+ ---@see helpers.evaluate_expression\r
2830
+ evaluate_expression = nil,\r
2831
+ ---@deprecated use \`helpers.encode_string\`\r
2832
+ ---@see helpers.encode_string\r
2833
+ encode_string = nil,\r
2834
+ ---@deprecated use \`helpers.decode_string\`\r
2835
+ ---@see helpers.decode_string\r
2836
+ decode_string = nil,\r
2837
+ ---@deprecated use \`helpers.parse_map_exchange_string\`\r
2838
+ ---@see helpers.parse_map_exchange_string\r
2839
+ parse_map_exchange_string = nil,\r
2840
+ ---@deprecated use \`helpers.check_prototype_translations\`\r
2841
+ ---@see helpers.check_prototype_translations\r
2842
+ check_prototype_translations = nil,\r
2843
+ ---@deprecated use \`helpers.is_valid_sound_path\`\r
2844
+ ---@see helpers.is_valid_sound_path\r
2845
+ is_valid_sound_path = nil,\r
2846
+ ---@deprecated use \`helpers.is_valid_sprite_path\`\r
2847
+ ---@see helpers.is_valid_sprite_path\r
2848
+ is_valid_sprite_path = nil,\r
2849
+ \r
2850
+ ---@deprecated use \`prototypes.get_entity_filtered\`\r
2851
+ ---@see prototypes.get_entity_filtered\r
2852
+ get_filtered_entity_prototypes = nil,\r
2853
+ ---@deprecated use \`prototypes.get_item_filtered\`\r
2854
+ ---@see prototypes.get_item_filtered\r
2855
+ get_filtered_item_prototypes = nil,\r
2856
+ ---@deprecated use \`prototypes.get_equipment_filtered\`\r
2857
+ ---@see prototypes.get_equipment_filtered\r
2858
+ get_filtered_equipment_prototypes = nil,\r
2859
+ ---@deprecated use \`prototypes.get_mod_setting_filtered\`\r
2860
+ ---@see prototypes.get_mod_setting_filtered\r
2861
+ get_filtered_mod_setting_prototypes = nil,\r
2862
+ ---@deprecated use \`prototypes.get_achievement_filtered\`\r
2863
+ ---@see prototypes.get_achievement_filtered\r
2864
+ get_filtered_achievement_prototypes = nil,\r
2865
+ ---@deprecated use \`prototypes.get_tile_filtered\`\r
2866
+ ---@see prototypes.get_tile_filtered\r
2867
+ get_filtered_tile_prototypes = nil,\r
2868
+ ---@deprecated use \`prototypes.get_decorative_filtered\`\r
2869
+ ---@see prototypes.get_decorative_filtered\r
2870
+ get_filtered_decorative_prototypes = nil,\r
2871
+ ---@deprecated use \`prototypes.get_fluid_filtered\`\r
2872
+ ---@see prototypes.get_fluid_filtered\r
2873
+ get_filtered_fluid_prototypes = nil,\r
2874
+ ---@deprecated use \`prototypes.get_recipe_filtered\`\r
2875
+ ---@see prototypes.get_recipe_filtered\r
2876
+ get_filtered_recipe_prototypes = nil,\r
2877
+ ---@deprecated use \`prototypes.get_technology_filtered\`\r
2878
+ ---@see prototypes.get_technology_filtered\r
2879
+ get_filtered_technology_prototypes = nil,\r
2880
+ \r
2881
+ \r
2882
+ ---@deprecated use \`prototypes.entity\`\r
2883
+ ---@see prototypes.entity\r
2884
+ entity_prototypes = nil,\r
2885
+ \r
2886
+ \r
2887
+ ---@deprecated use \`prototypes.item\`\r
2888
+ ---@see prototypes.item\r
2889
+ item_prototypes = nil,\r
2890
+ ---@deprecated use \`prototypes.fluid\`\r
2891
+ ---@see prototypes.fluid\r
2892
+ fluid_prototypes = nil,\r
2893
+ ---@deprecated use \`prototypes.tile\`\r
2894
+ ---@see prototypes.tile\r
2895
+ tile_prototypes = nil,\r
2896
+ ---@deprecated use \`prototypes.equipment\`\r
2897
+ ---@see prototypes.equipment\r
2898
+ equipment_prototypes = nil,\r
2899
+ ---@deprecated use \`prototypes.damage\`\r
2900
+ ---@see prototypes.damage\r
2901
+ damage_prototypes = nil,\r
2902
+ ---@deprecated use \`prototypes.virtual_signal\`\r
2903
+ ---@see prototypes.virtual_signal\r
2904
+ virtual_signal_prototypes = nil,\r
2905
+ ---@deprecated use \`prototypes.equipment_grid\`\r
2906
+ ---@see prototypes.equipment_grid\r
2907
+ equipment_grid_prototypes = nil,\r
2908
+ ---@deprecated use \`prototypes.recipe\`\r
2909
+ ---@see prototypes.recipe\r
2910
+ recipe_prototypes = nil,\r
2911
+ ---@deprecated use \`prototypes.technology\`\r
2912
+ ---@see prototypes.technology\r
2913
+ technology_prototypes = nil,\r
2914
+ ---@deprecated use \`prototypes.decorative\`\r
2915
+ ---@see prototypes.decorative\r
2916
+ decorative_prototypes = nil,\r
2917
+ ---@deprecated use \`prototypes.particle\`\r
2918
+ ---@see prototypes.particle\r
2919
+ particle_prototypes = nil,\r
2920
+ ---@deprecated use \`prototypes.autoplace_control\`\r
2921
+ ---@see prototypes.autoplace_control\r
2922
+ autoplace_control_prototypes = nil,\r
2923
+ ---@deprecated use \`prototypes.noise_layer\`\r
2924
+ ---@see prototypes.noise_layer\r
2925
+ noise_layer_prototypes = nil,\r
2926
+ ---@deprecated use \`prototypes.mod_setting\`\r
2927
+ ---@see prototypes.mod_setting\r
2928
+ mod_setting_prototypes = nil,\r
2929
+ ---@deprecated use \`prototypes.custom_input\`\r
2930
+ ---@see prototypes.custom_input\r
2931
+ custom_input_prototypes = nil,\r
2932
+ ---@deprecated use \`prototypes.ammo_category\`\r
2933
+ ---@see prototypes.ammo_category\r
2934
+ ammo_category_prototypes = nil,\r
2935
+ ---@deprecated use \`prototypes.named_noise_expression\`\r
2936
+ ---@see prototypes.named_noise_expression\r
2937
+ named_noise_expressions = nil,\r
2938
+ ---@deprecated use \`prototypes.item_subgroup\`\r
2939
+ ---@see prototypes.item_subgroup\r
2940
+ item_subgroup_prototypes = nil,\r
2941
+ ---@deprecated use \`prototypes.item_group\`\r
2942
+ ---@see prototypes.item_group\r
2943
+ item_group_prototypes = nil,\r
2944
+ ---@deprecated use \`prototypes.fuel_category\`\r
2945
+ ---@see prototypes.fuel_category\r
2946
+ fuel_category_prototypes = nil,\r
2947
+ ---@deprecated use \`prototypes.resource_category\`\r
2948
+ ---@see prototypes.resource_category\r
2949
+ resource_category_prototypes = nil,\r
2950
+ ---@deprecated use \`prototypes.achievement\`\r
2951
+ ---@see prototypes.achievement\r
2952
+ achievement_prototypes = nil,\r
2953
+ ---@deprecated use \`prototypes.module_category\`\r
2954
+ ---@see prototypes.module_category\r
2955
+ module_category_prototypes = nil,\r
2956
+ ---@deprecated use \`prototypes.equipment_category\`\r
2957
+ ---@see prototypes.equipment_category\r
2958
+ equipment_category_prototypes = nil,\r
2959
+ ---@deprecated use \`prototypes.trivial_smoke\`\r
2960
+ ---@see prototypes.trivial_smoke\r
2961
+ trivial_smoke_prototypes = nil,\r
2962
+ ---@deprecated use \`prototypes.shortcut\`\r
2963
+ ---@see prototypes.shortcut\r
2964
+ shortcut_prototypes = nil,\r
2965
+ ---@deprecated use \`prototypes.recipe_category\`\r
2966
+ ---@see prototypes.recipe_category\r
2967
+ recipe_category_prototypes = nil,\r
2968
+ ---@deprecated use \`prototypes.font\`\r
2969
+ ---@see prototypes.font\r
2970
+ font_prototypes = nil,\r
2971
+ \r
2972
+ }`});var Bi={};Z(Bi,{default:()=>zh});var zh,Hl=J(()=>{zh=`---@meta _\r
2757
2973
  \r
2758
2974
  ---@type table\r
2759
- storage = {}`});var Bo={};ne(Bo,{default:()=>Bh});var Bh,Vl=te(()=>{Bh=`--##
2975
+ storage = {}\r
2976
+ `});var qi={};Z(qi,{default:()=>Wh});var Wh,Kl=J(()=>{Wh=`--##
2760
2977
  ---cSpell:ignore userdata, nups, nparams
2761
2978
 
2762
2979
  -- (this should probably be in some better location, maybe the readme? i'm not sure)
@@ -2976,34 +3193,34 @@ function OnSetText(uri, text)
2976
3193
  diffs.count = nil
2977
3194
  return diffs
2978
3195
  end
2979
- `});var zl={};ne(zl,{default:()=>Mh,filenames:()=>Uh});var qh,Mh,Uh,Wl=te(()=>{"use strict";Rl();Pl();El();Ll();xl();Al();Tl();kl();Il();Cl();Dl();$l();Ol();Fl();Bl();ql();Ml();Ul();Nl();jl();Vl();qh=[_o,bo,yo,wo,vo,So,Ro,Po,Eo,Lo,xo,Ao,To,ko,Io,Co,Do,$o,Oo,Fo,Bo],Mh=qh,Uh=["../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/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/runtime/LuaObject.lua","../luals-addon/factorio/library/runtime/blueprint.lua","../luals-addon/factorio/library/runtime/storage.lua","../luals-addon/factorio/plugin.lua"]});var Hl=F((xb,Nh)=>{Nh.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 Xl=F((Hn,Gl)=>{"use strict";(function(a,e){typeof Hn=="object"&&typeof Gl<"u"?e(Hn):typeof define=="function"&&define.amd?define(["exports"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.WebStreamsPolyfill={}))})(Hn,function(a){"use strict";function e(){}function t(r){return typeof r=="object"&&r!==null||typeof r=="function"}let n=e;function i(r,o){try{Object.defineProperty(r,"name",{value:o,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(o=>o(r))}function p(r){return f(r)}function _(r,o,l){return u.call(r,o,l)}function b(r,o,l){_(_(r,o,l),void 0,n)}function g(r,o){b(r,o)}function y(r,o){b(r,void 0,o)}function S(r,o,l){return _(r,o,l)}function A(r){_(r,void 0,n)}let E=r=>{if(typeof queueMicrotask=="function")E=queueMicrotask;else{let o=c(void 0);E=l=>_(o,l)}return E(r)};function L(r,o,l){if(typeof r!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(r,o,l)}function Q(r,o,l){try{return c(L(r,o,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(o){let l=this._back,h=l;l._elements.length===G-1&&(h={_elements:[],_next:void 0}),l._elements.push(o),h!==l&&(this._back=h,l._next=h),++this._size}shift(){let o=this._front,l=o,h=this._cursor,m=h+1,w=o._elements,R=w[h];return m===G&&(l=o._next,m=0),--this._size,this._cursor=m,o!==l&&(this._front=l),w[h]=void 0,R}forEach(o){let l=this._cursor,h=this._front,m=h._elements;for(;(l!==m.length||h._next!==void 0)&&!(l===m.length&&(h=h._next,m=h._elements,l=0,m.length===0));)o(m[l]),++l}peek(){let o=this._front,l=this._cursor;return o._elements[l]}}let J=Symbol("[[AbortSteps]]"),We=Symbol("[[ErrorSteps]]"),He=Symbol("[[CancelSteps]]"),wt=Symbol("[[PullSteps]]"),Mt=Symbol("[[ReleaseSteps]]");function C(r,o){r._ownerReadableStream=o,o._reader=r,o._state==="readable"?Y(r):o._state==="closed"?z(r):H(r,o._storedError)}function P(r,o){let l=r._ownerReadableStream;return Ge(l,o)}function $(r){let o=r._ownerReadableStream;o._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")),o._readableStreamController[Mt](),o._reader=void 0,r._ownerReadableStream=void 0}function O(r){return new TypeError("Cannot "+r+" a stream using a released reader")}function Y(r){r._closedPromise=d((o,l)=>{r._closedPromise_resolve=o,r._closedPromise_reject=l})}function H(r,o){Y(r),we(r,o)}function z(r){Y(r),ue(r)}function we(r,o){r._closedPromise_reject!==void 0&&(A(r._closedPromise),r._closedPromise_reject(o),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0)}function ve(r,o){H(r,o)}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)},ef=Math.trunc||function(r){return r<0?Math.ceil(r):Math.floor(r)};function tf(r){return typeof r=="object"||typeof r=="function"}function Ze(r,o){if(r!==void 0&&!tf(r))throw new TypeError(`${o} is not an object.`)}function Fe(r,o){if(typeof r!="function")throw new TypeError(`${o} is not a function.`)}function rf(r){return typeof r=="object"&&r!==null||typeof r=="function"}function cs(r,o){if(!rf(r))throw new TypeError(`${o} is not an object.`)}function ot(r,o,l){if(r===void 0)throw new TypeError(`Parameter ${o} is required in '${l}'.`)}function Di(r,o,l){if(r===void 0)throw new TypeError(`${o} is required in '${l}'.`)}function $i(r){return Number(r)}function ds(r){return r===0?0:r}function nf(r){return ds(ef(r))}function Oi(r,o){let h=Number.MAX_SAFE_INTEGER,m=Number(r);if(m=ds(m),!Ut(m))throw new TypeError(`${o} is not a finite number`);if(m=nf(m),m<0||m>h)throw new TypeError(`${o} is outside the accepted range of 0 to ${h}, inclusive`);return!Ut(m)||m===0?0:m}function Fi(r,o){if(!xt(r))throw new TypeError(`${o} is not a ReadableStream.`)}function sr(r){return new vt(r)}function fs(r,o){r._reader._readRequests.push(o)}function Bi(r,o,l){let m=r._reader._readRequests.shift();l?m._closeSteps():m._chunkSteps(o)}function fn(r){return r._reader._readRequests.length}function ps(r){let o=r._reader;return!(o===void 0||!St(o))}class vt{constructor(o){if(ot(o,1,"ReadableStreamDefaultReader"),Fi(o,"First parameter"),At(o))throw new TypeError("This stream has already been locked for exclusive reading by another reader");C(this,o),this._readRequests=new X}get closed(){return St(this)?this._closedPromise:p(pn("closed"))}cancel(o=void 0){return St(this)?this._ownerReadableStream===void 0?p(O("cancel")):P(this,o):p(pn("cancel"))}read(){if(!St(this))return p(pn("read"));if(this._ownerReadableStream===void 0)return p(O("read from"));let o,l,h=d((w,R)=>{o=w,l=R});return Cr(this,{_chunkSteps:w=>o({value:w,done:!1}),_closeSteps:()=>o({value:void 0,done:!0}),_errorSteps:w=>l(w)}),h}releaseLock(){if(!St(this))throw pn("releaseLock");this._ownerReadableStream!==void 0&&of(this)}}Object.defineProperties(vt.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),i(vt.prototype.cancel,"cancel"),i(vt.prototype.read,"read"),i(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,o){let l=r._ownerReadableStream;l._disturbed=!0,l._state==="closed"?o._closeSteps():l._state==="errored"?o._errorSteps(l._storedError):l._readableStreamController[wt](o)}function of(r){$(r);let o=new TypeError("Reader was released");hs(r,o)}function hs(r,o){let l=r._readRequests;r._readRequests=new X,l.forEach(h=>{h._errorSteps(o)})}function pn(r){return new TypeError(`ReadableStreamDefaultReader.prototype.${r} can only be used on a ReadableStreamDefaultReader`)}let af=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class ms{constructor(o,l){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=o,this._preventCancel=l}next(){let o=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?S(this._ongoingPromise,o,o):o(),this._ongoingPromise}return(o){let l=()=>this._returnSteps(o);return this._ongoingPromise?S(this._ongoingPromise,l,l):l()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let o=this._reader,l,h,m=d((R,x)=>{l=R,h=x});return Cr(o,{_chunkSteps:R=>{this._ongoingPromise=void 0,E(()=>l({value:R,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,$(o),l({value:void 0,done:!0})},_errorSteps:R=>{this._ongoingPromise=void 0,this._isFinished=!0,$(o),h(R)}}),m}_returnSteps(o){if(this._isFinished)return Promise.resolve({value:o,done:!0});this._isFinished=!0;let l=this._reader;if(!this._preventCancel){let h=P(l,o);return $(l),S(h,()=>({value:o,done:!0}))}return $(l),c({value:o,done:!0})}}let gs={next(){return _s(this)?this._asyncIteratorImpl.next():p(bs("next"))},return(r){return _s(this)?this._asyncIteratorImpl.return(r):p(bs("return"))}};Object.setPrototypeOf(gs,af);function sf(r,o){let l=sr(r),h=new ms(l,o),m=Object.create(gs);return m._asyncIteratorImpl=h,m}function _s(r){if(!t(r)||!Object.prototype.hasOwnProperty.call(r,"_asyncIteratorImpl"))return!1;try{return r._asyncIteratorImpl instanceof ms}catch{return!1}}function bs(r){return new TypeError(`ReadableStreamAsyncIterator.${r} can only be used on a ReadableSteamAsyncIterator`)}let ys=Number.isNaN||function(r){return r!==r};var qi,v,Mi;function Dr(r){return r.slice()}function ws(r,o,l,h,m){new Uint8Array(r).set(new Uint8Array(l,h,m),o)}let at=r=>(typeof r.transfer=="function"?at=o=>o.transfer():typeof structuredClone=="function"?at=o=>structuredClone(o,{transfer:[o]}):at=o=>o,at(r)),Rt=r=>(typeof r.detached=="boolean"?Rt=o=>o.detached:Rt=o=>o.byteLength===0,Rt(r));function vs(r,o,l){if(r.slice)return r.slice(o,l);let h=l-o,m=new ArrayBuffer(h);return ws(m,0,r,o,h),m}function hn(r,o){let l=r[o];if(l!=null){if(typeof l!="function")throw new TypeError(`${String(o)} is not a function`);return l}}function lf(r){let o={[Symbol.iterator]:()=>r.iterator},l=async function*(){return yield*o}(),h=l.next;return{iterator:l,nextMethod:h,done:!1}}let Ui=(Mi=(qi=Symbol.asyncIterator)!==null&&qi!==void 0?qi:(v=Symbol.for)===null||v===void 0?void 0:v.call(Symbol,"Symbol.asyncIterator"))!==null&&Mi!==void 0?Mi:"@@asyncIterator";function Ss(r,o="sync",l){if(l===void 0)if(o==="async"){if(l=hn(r,Ui),l===void 0){let w=hn(r,Symbol.iterator),R=Ss(r,"sync",w);return lf(R)}}else l=hn(r,Symbol.iterator);if(l===void 0)throw new TypeError("The object is not iterable");let h=L(l,r,[]);if(!t(h))throw new TypeError("The iterator method must return an object");let m=h.next;return{iterator:h,nextMethod:m,done:!1}}function uf(r){let o=L(r.nextMethod,r.iterator,[]);if(!t(o))throw new TypeError("The iterator.next() method must return an object");return o}function cf(r){return!!r.done}function df(r){return r.value}function ff(r){return!(typeof r!="number"||ys(r)||r<0)}function Rs(r){let o=vs(r.buffer,r.byteOffset,r.byteOffset+r.byteLength);return new Uint8Array(o)}function Ni(r){let o=r._queue.shift();return r._queueTotalSize-=o.size,r._queueTotalSize<0&&(r._queueTotalSize=0),o.value}function ji(r,o,l){if(!ff(l)||l===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");r._queue.push({value:o,size:l}),r._queueTotalSize+=l}function pf(r){return r._queue.peek().value}function Pt(r){r._queue=new X,r._queueTotalSize=0}function Ps(r){return r===DataView}function hf(r){return Ps(r.constructor)}function mf(r){return Ps(r)?1:r.BYTES_PER_ELEMENT}class Nt{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Vi(this))throw Gi("view");return this._view}respond(o){if(!Vi(this))throw Gi("respond");if(ot(o,1,"respond"),o=Oi(o,"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");bn(this._associatedReadableByteStreamController,o)}respondWithNewView(o){if(!Vi(this))throw Gi("respondWithNewView");if(ot(o,1,"respondWithNewView"),!ArrayBuffer.isView(o))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(o.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");yn(this._associatedReadableByteStreamController,o)}}Object.defineProperties(Nt.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),i(Nt.prototype.respond,"respond"),i(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 Or("byobRequest");return Ki(this)}get desiredSize(){if(!jt(this))throw Or("desiredSize");return $s(this)}close(){if(!jt(this))throw Or("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let o=this._controlledReadableByteStream._state;if(o!=="readable")throw new TypeError(`The stream (in ${o} state) is not in the readable state and cannot be closed`);$r(this)}enqueue(o){if(!jt(this))throw Or("enqueue");if(ot(o,1,"enqueue"),!ArrayBuffer.isView(o))throw new TypeError("chunk must be an array buffer view");if(o.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(o.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`);_n(this,o)}error(o=void 0){if(!jt(this))throw Or("error");Be(this,o)}[He](o){Es(this),Pt(this);let l=this._cancelAlgorithm(o);return gn(this),l}[wt](o){let l=this._controlledReadableByteStream;if(this._queueTotalSize>0){Ds(this,o);return}let h=this._autoAllocateChunkSize;if(h!==void 0){let m;try{m=new ArrayBuffer(h)}catch(R){o._errorSteps(R);return}let w={buffer:m,bufferByteLength:h,byteOffset:0,byteLength:h,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(w)}fs(l,o),Vt(this)}[Mt](){if(this._pendingPullIntos.length>0){let o=this._pendingPullIntos.peek();o.readerType="none",this._pendingPullIntos=new X,this._pendingPullIntos.push(o)}}}Object.defineProperties(st.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),i(st.prototype.close,"close"),i(st.prototype.enqueue,"enqueue"),i(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 Vi(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_associatedReadableByteStreamController")?!1:r instanceof Nt}function Vt(r){if(!wf(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,Vt(r)),null),h=>(Be(r,h),null))}function Es(r){Wi(r),r._pendingPullIntos=new X}function zi(r,o){let l=!1;r._state==="closed"&&(l=!0);let h=Ls(o);o.readerType==="default"?Bi(r,h,l):Lf(r,h,l)}function Ls(r){let o=r.bytesFilled,l=r.elementSize;return new r.viewConstructor(r.buffer,r.byteOffset,o/l)}function mn(r,o,l,h){r._queue.push({buffer:o,byteOffset:l,byteLength:h}),r._queueTotalSize+=h}function xs(r,o,l,h){let m;try{m=vs(o,l,l+h)}catch(w){throw Be(r,w),w}mn(r,m,0,h)}function As(r,o){o.bytesFilled>0&&xs(r,o.buffer,o.byteOffset,o.bytesFilled),lr(r)}function Ts(r,o){let l=Math.min(r._queueTotalSize,o.byteLength-o.bytesFilled),h=o.bytesFilled+l,m=l,w=!1,R=h%o.elementSize,x=h-R;x>=o.minimumFill&&(m=x-o.bytesFilled,w=!0);let N=r._queue;for(;m>0;){let B=N.peek(),j=Math.min(m,B.byteLength),W=o.byteOffset+o.bytesFilled;ws(o.buffer,W,B.buffer,B.byteOffset,j),B.byteLength===j?N.shift():(B.byteOffset+=j,B.byteLength-=j),r._queueTotalSize-=j,ks(r,j,o),m-=j}return w}function ks(r,o,l){l.bytesFilled+=o}function Is(r){r._queueTotalSize===0&&r._closeRequested?(gn(r),Nr(r._controlledReadableByteStream)):Vt(r)}function Wi(r){r._byobRequest!==null&&(r._byobRequest._associatedReadableByteStreamController=void 0,r._byobRequest._view=null,r._byobRequest=null)}function Hi(r){for(;r._pendingPullIntos.length>0;){if(r._queueTotalSize===0)return;let o=r._pendingPullIntos.peek();Ts(r,o)&&(lr(r),zi(r._controlledReadableByteStream,o))}}function gf(r){let o=r._controlledReadableByteStream._reader;for(;o._readRequests.length>0;){if(r._queueTotalSize===0)return;let l=o._readRequests.shift();Ds(r,l)}}function _f(r,o,l,h){let m=r._controlledReadableByteStream,w=o.constructor,R=mf(w),{byteOffset:x,byteLength:N}=o,B=l*R,j;try{j=at(o.buffer)}catch(ee){h._errorSteps(ee);return}let W={buffer:j,bufferByteLength:j.byteLength,byteOffset:x,byteLength:N,bytesFilled:0,minimumFill:B,elementSize:R,viewConstructor:w,readerType:"byob"};if(r._pendingPullIntos.length>0){r._pendingPullIntos.push(W),Bs(m,h);return}if(m._state==="closed"){let ee=new w(W.buffer,W.byteOffset,0);h._closeSteps(ee);return}if(r._queueTotalSize>0){if(Ts(r,W)){let ee=Ls(W);Is(r),h._chunkSteps(ee);return}if(r._closeRequested){let ee=new TypeError("Insufficient bytes to fill elements in the given buffer");Be(r,ee),h._errorSteps(ee);return}}r._pendingPullIntos.push(W),Bs(m,h),Vt(r)}function bf(r,o){o.readerType==="none"&&lr(r);let l=r._controlledReadableByteStream;if(Xi(l))for(;qs(l)>0;){let h=lr(r);zi(l,h)}}function yf(r,o,l){if(ks(r,o,l),l.readerType==="none"){As(r,l),Hi(r);return}if(l.bytesFilled<l.minimumFill)return;lr(r);let h=l.bytesFilled%l.elementSize;if(h>0){let m=l.byteOffset+l.bytesFilled;xs(r,l.buffer,m-h,h)}l.bytesFilled-=h,zi(r._controlledReadableByteStream,l),Hi(r)}function Cs(r,o){let l=r._pendingPullIntos.peek();Wi(r),r._controlledReadableByteStream._state==="closed"?bf(r,l):yf(r,o,l),Vt(r)}function lr(r){return r._pendingPullIntos.shift()}function wf(r){let o=r._controlledReadableByteStream;return o._state!=="readable"||r._closeRequested||!r._started?!1:!!(ps(o)&&fn(o)>0||Xi(o)&&qs(o)>0||$s(r)>0)}function gn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0}function $r(r){let o=r._controlledReadableByteStream;if(!(r._closeRequested||o._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 Be(r,h),h}}gn(r),Nr(o)}}function _n(r,o){let l=r._controlledReadableByteStream;if(r._closeRequested||l._state!=="readable")return;let{buffer:h,byteOffset:m,byteLength:w}=o;if(Rt(h))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let R=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");Wi(r),x.buffer=at(x.buffer),x.readerType==="none"&&As(r,x)}if(ps(l))if(gf(r),fn(l)===0)mn(r,R,m,w);else{r._pendingPullIntos.length>0&&lr(r);let x=new Uint8Array(R,m,w);Bi(l,x,!1)}else Xi(l)?(mn(r,R,m,w),Hi(r)):mn(r,R,m,w);Vt(r)}function Be(r,o){let l=r._controlledReadableByteStream;l._state==="readable"&&(Es(r),Pt(r),gn(r),ll(l,o))}function Ds(r,o){let l=r._queue.shift();r._queueTotalSize-=l.byteLength,Is(r);let h=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);o._chunkSteps(h)}function Ki(r){if(r._byobRequest===null&&r._pendingPullIntos.length>0){let o=r._pendingPullIntos.peek(),l=new Uint8Array(o.buffer,o.byteOffset+o.bytesFilled,o.byteLength-o.bytesFilled),h=Object.create(Nt.prototype);Sf(h,r,l),r._byobRequest=h}return r._byobRequest}function $s(r){let o=r._controlledReadableByteStream._state;return o==="errored"?null:o==="closed"?0:r._strategyHWM-r._queueTotalSize}function bn(r,o){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(o===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(l.bytesFilled+o>l.byteLength)throw new RangeError("bytesWritten out of range")}l.buffer=at(l.buffer),Cs(r,o)}function yn(r,o){let l=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(o.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(o.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!==o.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(l.bufferByteLength!==o.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(l.bytesFilled+o.byteLength>l.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let m=o.byteLength;l.buffer=at(o.buffer),Cs(r,m)}function Os(r,o,l,h,m,w,R){o._controlledReadableByteStream=r,o._pullAgain=!1,o._pulling=!1,o._byobRequest=null,o._queue=o._queueTotalSize=void 0,Pt(o),o._closeRequested=!1,o._started=!1,o._strategyHWM=w,o._pullAlgorithm=h,o._cancelAlgorithm=m,o._autoAllocateChunkSize=R,o._pendingPullIntos=new X,r._readableStreamController=o;let x=l();b(c(x),()=>(o._started=!0,Vt(o),null),N=>(Be(o,N),null))}function vf(r,o,l){let h=Object.create(st.prototype),m,w,R;o.start!==void 0?m=()=>o.start(h):m=()=>{},o.pull!==void 0?w=()=>o.pull(h):w=()=>c(void 0),o.cancel!==void 0?R=N=>o.cancel(N):R=()=>c(void 0);let x=o.autoAllocateChunkSize;if(x===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Os(r,h,m,w,R,l,x)}function Sf(r,o,l){r._associatedReadableByteStreamController=o,r._view=l}function Gi(r){return new TypeError(`ReadableStreamBYOBRequest.prototype.${r} can only be used on a ReadableStreamBYOBRequest`)}function Or(r){return new TypeError(`ReadableByteStreamController.prototype.${r} can only be used on a ReadableByteStreamController`)}function Rf(r,o){Ze(r,o);let l=r?.mode;return{mode:l===void 0?void 0:Pf(l,`${o} has member 'mode' that`)}}function Pf(r,o){if(r=`${r}`,r!=="byob")throw new TypeError(`${o} '${r}' is not a valid enumeration value for ReadableStreamReaderMode`);return r}function Ef(r,o){var l;Ze(r,o);let h=(l=r?.min)!==null&&l!==void 0?l:1;return{min:Oi(h,`${o} has member 'min' that`)}}function Fs(r){return new Et(r)}function Bs(r,o){r._reader._readIntoRequests.push(o)}function Lf(r,o,l){let m=r._reader._readIntoRequests.shift();l?m._closeSteps(o):m._chunkSteps(o)}function qs(r){return r._reader._readIntoRequests.length}function Xi(r){let o=r._reader;return!(o===void 0||!zt(o))}class Et{constructor(o){if(ot(o,1,"ReadableStreamBYOBReader"),Fi(o,"First parameter"),At(o))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!jt(o._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");C(this,o),this._readIntoRequests=new X}get closed(){return zt(this)?this._closedPromise:p(wn("closed"))}cancel(o=void 0){return zt(this)?this._ownerReadableStream===void 0?p(O("cancel")):P(this,o):p(wn("cancel"))}read(o,l={}){if(!zt(this))return p(wn("read"));if(!ArrayBuffer.isView(o))return p(new TypeError("view must be an array buffer view"));if(o.byteLength===0)return p(new TypeError("view must have non-zero byteLength"));if(o.buffer.byteLength===0)return p(new TypeError("view's buffer must have non-zero byteLength"));if(Rt(o.buffer))return p(new TypeError("view's buffer has been detached"));let h;try{h=Ef(l,"options")}catch(B){return p(B)}let m=h.min;if(m===0)return p(new TypeError("options.min must be greater than 0"));if(hf(o)){if(m>o.byteLength)return p(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(m>o.length)return p(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return p(O("read from"));let w,R,x=d((B,j)=>{w=B,R=j});return Ms(this,o,m,{_chunkSteps:B=>w({value:B,done:!1}),_closeSteps:B=>w({value:B,done:!0}),_errorSteps:B=>R(B)}),x}releaseLock(){if(!zt(this))throw wn("releaseLock");this._ownerReadableStream!==void 0&&xf(this)}}Object.defineProperties(Et.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),i(Et.prototype.cancel,"cancel"),i(Et.prototype.read,"read"),i(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 Ms(r,o,l,h){let m=r._ownerReadableStream;m._disturbed=!0,m._state==="errored"?h._errorSteps(m._storedError):_f(m._readableStreamController,o,l,h)}function xf(r){$(r);let o=new TypeError("Reader was released");Us(r,o)}function Us(r,o){let l=r._readIntoRequests;r._readIntoRequests=new X,l.forEach(h=>{h._errorSteps(o)})}function wn(r){return new TypeError(`ReadableStreamBYOBReader.prototype.${r} can only be used on a ReadableStreamBYOBReader`)}function Fr(r,o){let{highWaterMark:l}=r;if(l===void 0)return o;if(ys(l)||l<0)throw new RangeError("Invalid highWaterMark");return l}function vn(r){let{size:o}=r;return o||(()=>1)}function Sn(r,o){Ze(r,o);let l=r?.highWaterMark,h=r?.size;return{highWaterMark:l===void 0?void 0:$i(l),size:h===void 0?void 0:Af(h,`${o} has member 'size' that`)}}function Af(r,o){return Fe(r,o),l=>$i(r(l))}function Tf(r,o){Ze(r,o);let l=r?.abort,h=r?.close,m=r?.start,w=r?.type,R=r?.write;return{abort:l===void 0?void 0:kf(l,r,`${o} has member 'abort' that`),close:h===void 0?void 0:If(h,r,`${o} has member 'close' that`),start:m===void 0?void 0:Cf(m,r,`${o} has member 'start' that`),write:R===void 0?void 0:Df(R,r,`${o} has member 'write' that`),type:w}}function kf(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function If(r,o,l){return Fe(r,l),()=>Q(r,o,[])}function Cf(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Df(r,o,l){return Fe(r,l),(h,m)=>Q(r,o,[h,m])}function Ns(r,o){if(!ur(r))throw new TypeError(`${o} is not a WritableStream.`)}function $f(r){if(typeof r!="object"||r===null)return!1;try{return typeof r.aborted=="boolean"}catch{return!1}}let Of=typeof AbortController=="function";function Ff(){if(Of)return new AbortController}class Lt{constructor(o={},l={}){o===void 0?o=null:cs(o,"First parameter");let h=Sn(l,"Second parameter"),m=Tf(o,"First parameter");if(Vs(this),m.type!==void 0)throw new RangeError("Invalid type is specified");let R=vn(h),x=Fr(h,1);Yf(this,m,x,R)}get locked(){if(!ur(this))throw xn("locked");return cr(this)}abort(o=void 0){return ur(this)?cr(this)?p(new TypeError("Cannot abort a stream that already has a writer")):Rn(this,o):p(xn("abort"))}close(){return ur(this)?cr(this)?p(new TypeError("Cannot close a stream that already has a writer")):et(this)?p(new TypeError("Cannot close an already-closing stream")):zs(this):p(xn("close"))}getWriter(){if(!ur(this))throw xn("getWriter");return js(this)}}Object.defineProperties(Lt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),i(Lt.prototype.abort,"abort"),i(Lt.prototype.close,"close"),i(Lt.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Lt.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function js(r){return new lt(r)}function Bf(r,o,l,h,m=1,w=()=>1){let R=Object.create(Lt.prototype);Vs(R);let x=Object.create(dr.prototype);return Ys(R,x,r,o,l,h,m,w),R}function Vs(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 ur(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_writableStreamController")?!1:r instanceof Lt}function cr(r){return r._writer!==void 0}function Rn(r,o){var l;if(r._state==="closed"||r._state==="errored")return c(void 0);r._writableStreamController._abortReason=o,(l=r._writableStreamController._abortController)===null||l===void 0||l.abort(o);let h=r._state;if(h==="closed"||h==="errored")return c(void 0);if(r._pendingAbortRequest!==void 0)return r._pendingAbortRequest._promise;let m=!1;h==="erroring"&&(m=!0,o=void 0);let w=d((R,x)=>{r._pendingAbortRequest={_promise:void 0,_resolve:R,_reject:x,_reason:o,_wasAlreadyErroring:m}});return r._pendingAbortRequest._promise=w,m||Qi(r,o),w}function zs(r){let o=r._state;if(o==="closed"||o==="errored")return p(new TypeError(`The stream (in ${o} state) is not in the writable state and cannot be closed`));let l=d((m,w)=>{let R={_resolve:m,_reject:w};r._closeRequest=R}),h=r._writer;return h!==void 0&&r._backpressure&&o==="writable"&&oo(h),Qf(r._writableStreamController),l}function qf(r){return d((l,h)=>{let m={_resolve:l,_reject:h};r._writeRequests.push(m)})}function Yi(r,o){if(r._state==="writable"){Qi(r,o);return}Ji(r)}function Qi(r,o){let l=r._writableStreamController;r._state="erroring",r._storedError=o;let h=r._writer;h!==void 0&&Hs(h,o),!Vf(r)&&l._started&&Ji(r)}function Ji(r){r._state="errored",r._writableStreamController[We]();let o=r._storedError;if(r._writeRequests.forEach(m=>{m._reject(o)}),r._writeRequests=new X,r._pendingAbortRequest===void 0){Pn(r);return}let l=r._pendingAbortRequest;if(r._pendingAbortRequest=void 0,l._wasAlreadyErroring){l._reject(o),Pn(r);return}let h=r._writableStreamController[J](l._reason);b(h,()=>(l._resolve(),Pn(r),null),m=>(l._reject(m),Pn(r),null))}function Mf(r){r._inFlightWriteRequest._resolve(void 0),r._inFlightWriteRequest=void 0}function Uf(r,o){r._inFlightWriteRequest._reject(o),r._inFlightWriteRequest=void 0,Yi(r,o)}function Nf(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&&el(l)}function jf(r,o){r._inFlightCloseRequest._reject(o),r._inFlightCloseRequest=void 0,r._pendingAbortRequest!==void 0&&(r._pendingAbortRequest._reject(o),r._pendingAbortRequest=void 0),Yi(r,o)}function et(r){return!(r._closeRequest===void 0&&r._inFlightCloseRequest===void 0)}function Vf(r){return!(r._inFlightWriteRequest===void 0&&r._inFlightCloseRequest===void 0)}function zf(r){r._inFlightCloseRequest=r._closeRequest,r._closeRequest=void 0}function Wf(r){r._inFlightWriteRequest=r._writeRequests.shift()}function Pn(r){r._closeRequest!==void 0&&(r._closeRequest._reject(r._storedError),r._closeRequest=void 0);let o=r._writer;o!==void 0&&no(o,r._storedError)}function Zi(r,o){let l=r._writer;l!==void 0&&o!==r._backpressure&&(o?ip(l):oo(l)),r._backpressure=o}class lt{constructor(o){if(ot(o,1,"WritableStreamDefaultWriter"),Ns(o,"First parameter"),cr(o))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=o,o._writer=this;let l=o._state;if(l==="writable")!et(o)&&o._backpressure?Tn(this):tl(this),An(this);else if(l==="erroring")io(this,o._storedError),An(this);else if(l==="closed")tl(this),rp(this);else{let h=o._storedError;io(this,h),Zs(this,h)}}get closed(){return Wt(this)?this._closedPromise:p(Ht("closed"))}get desiredSize(){if(!Wt(this))throw Ht("desiredSize");if(this._ownerWritableStream===void 0)throw qr("desiredSize");return Xf(this)}get ready(){return Wt(this)?this._readyPromise:p(Ht("ready"))}abort(o=void 0){return Wt(this)?this._ownerWritableStream===void 0?p(qr("abort")):Hf(this,o):p(Ht("abort"))}close(){if(!Wt(this))return p(Ht("close"));let o=this._ownerWritableStream;return o===void 0?p(qr("close")):et(o)?p(new TypeError("Cannot close an already-closing stream")):Ws(this)}releaseLock(){if(!Wt(this))throw Ht("releaseLock");this._ownerWritableStream!==void 0&&Ks(this)}write(o=void 0){return Wt(this)?this._ownerWritableStream===void 0?p(qr("write to")):Gs(this,o):p(Ht("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}}),i(lt.prototype.abort,"abort"),i(lt.prototype.close,"close"),i(lt.prototype.releaseLock,"releaseLock"),i(lt.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(lt.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function Wt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_ownerWritableStream")?!1:r instanceof lt}function Hf(r,o){let l=r._ownerWritableStream;return Rn(l,o)}function Ws(r){let o=r._ownerWritableStream;return zs(o)}function Kf(r){let o=r._ownerWritableStream,l=o._state;return et(o)||l==="closed"?c(void 0):l==="errored"?p(o._storedError):Ws(r)}function Gf(r,o){r._closedPromiseState==="pending"?no(r,o):np(r,o)}function Hs(r,o){r._readyPromiseState==="pending"?rl(r,o):op(r,o)}function Xf(r){let o=r._ownerWritableStream,l=o._state;return l==="errored"||l==="erroring"?null:l==="closed"?0:Qs(o._writableStreamController)}function Ks(r){let o=r._ownerWritableStream,l=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Hs(r,l),Gf(r,l),o._writer=void 0,r._ownerWritableStream=void 0}function Gs(r,o){let l=r._ownerWritableStream,h=l._writableStreamController,m=Jf(h,o);if(l!==r._ownerWritableStream)return p(qr("write to"));let w=l._state;if(w==="errored")return p(l._storedError);if(et(l)||w==="closed")return p(new TypeError("The stream is closing or closed and cannot be written to"));if(w==="erroring")return p(l._storedError);let R=qf(l);return Zf(h,o,m),R}let Xs={};class dr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!eo(this))throw ro("abortReason");return this._abortReason}get signal(){if(!eo(this))throw ro("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(o=void 0){if(!eo(this))throw ro("error");this._controlledWritableStream._state==="writable"&&Js(this,o)}[J](o){let l=this._abortAlgorithm(o);return En(this),l}[We](){Pt(this)}}Object.defineProperties(dr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(dr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function eo(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledWritableStream")?!1:r instanceof dr}function Ys(r,o,l,h,m,w,R,x){o._controlledWritableStream=r,r._writableStreamController=o,o._queue=void 0,o._queueTotalSize=void 0,Pt(o),o._abortReason=void 0,o._abortController=Ff(),o._started=!1,o._strategySizeAlgorithm=x,o._strategyHWM=R,o._writeAlgorithm=h,o._closeAlgorithm=m,o._abortAlgorithm=w;let N=to(o);Zi(r,N);let B=l(),j=c(B);b(j,()=>(o._started=!0,Ln(o),null),W=>(o._started=!0,Yi(r,W),null))}function Yf(r,o,l,h){let m=Object.create(dr.prototype),w,R,x,N;o.start!==void 0?w=()=>o.start(m):w=()=>{},o.write!==void 0?R=B=>o.write(B,m):R=()=>c(void 0),o.close!==void 0?x=()=>o.close():x=()=>c(void 0),o.abort!==void 0?N=B=>o.abort(B):N=()=>c(void 0),Ys(r,m,w,R,x,N,l,h)}function En(r){r._writeAlgorithm=void 0,r._closeAlgorithm=void 0,r._abortAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Qf(r){ji(r,Xs,0),Ln(r)}function Jf(r,o){try{return r._strategySizeAlgorithm(o)}catch(l){return Br(r,l),1}}function Qs(r){return r._strategyHWM-r._queueTotalSize}function Zf(r,o,l){try{ji(r,o,l)}catch(m){Br(r,m);return}let h=r._controlledWritableStream;if(!et(h)&&h._state==="writable"){let m=to(r);Zi(h,m)}Ln(r)}function Ln(r){let o=r._controlledWritableStream;if(!r._started||o._inFlightWriteRequest!==void 0)return;if(o._state==="erroring"){Ji(o);return}if(r._queue.length===0)return;let h=pf(r);h===Xs?ep(r):tp(r,h)}function Br(r,o){r._controlledWritableStream._state==="writable"&&Js(r,o)}function ep(r){let o=r._controlledWritableStream;zf(o),Ni(r);let l=r._closeAlgorithm();En(r),b(l,()=>(Nf(o),null),h=>(jf(o,h),null))}function tp(r,o){let l=r._controlledWritableStream;Wf(l);let h=r._writeAlgorithm(o);b(h,()=>{Mf(l);let m=l._state;if(Ni(r),!et(l)&&m==="writable"){let w=to(r);Zi(l,w)}return Ln(r),null},m=>(l._state==="writable"&&En(r),Uf(l,m),null))}function to(r){return Qs(r)<=0}function Js(r,o){let l=r._controlledWritableStream;En(r),Qi(l,o)}function xn(r){return new TypeError(`WritableStream.prototype.${r} can only be used on a WritableStream`)}function ro(r){return new TypeError(`WritableStreamDefaultController.prototype.${r} can only be used on a WritableStreamDefaultController`)}function Ht(r){return new TypeError(`WritableStreamDefaultWriter.prototype.${r} can only be used on a WritableStreamDefaultWriter`)}function qr(r){return new TypeError("Cannot "+r+" a stream using a released writer")}function An(r){r._closedPromise=d((o,l)=>{r._closedPromise_resolve=o,r._closedPromise_reject=l,r._closedPromiseState="pending"})}function Zs(r,o){An(r),no(r,o)}function rp(r){An(r),el(r)}function no(r,o){r._closedPromise_reject!==void 0&&(A(r._closedPromise),r._closedPromise_reject(o),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="rejected")}function np(r,o){Zs(r,o)}function el(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 Tn(r){r._readyPromise=d((o,l)=>{r._readyPromise_resolve=o,r._readyPromise_reject=l}),r._readyPromiseState="pending"}function io(r,o){Tn(r),rl(r,o)}function tl(r){Tn(r),oo(r)}function rl(r,o){r._readyPromise_reject!==void 0&&(A(r._readyPromise),r._readyPromise_reject(o),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="rejected")}function ip(r){Tn(r)}function op(r,o){io(r,o)}function oo(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 ap(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let ao=ap();function sp(r){if(!(typeof r=="function"||typeof r=="object")||r.name!=="DOMException")return!1;try{return new r,!0}catch{return!1}}function lp(){let r=ao?.DOMException;return sp(r)?r:void 0}function up(){let r=function(l,h){this.message=l||"",this.name=h||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return i(r,"DOMException"),r.prototype=Object.create(Error.prototype),Object.defineProperty(r.prototype,"constructor",{value:r,writable:!0,configurable:!0}),r}let cp=lp()||up();function nl(r,o,l,h,m,w){let R=sr(r),x=js(o);r._disturbed=!0;let N=!1,B=c(void 0);return d((j,W)=>{let ee;if(w!==void 0){if(ee=()=>{let M=w.reason!==void 0?w.reason:new cp("Aborted","AbortError"),K=[];h||K.push(()=>o._state==="writable"?Rn(o,M):c(void 0)),m||K.push(()=>r._state==="readable"?Ge(r,M):c(void 0)),Se(()=>Promise.all(K.map(re=>re())),!0,M)},w.aborted){ee();return}w.addEventListener("abort",ee)}function Xe(){return d((M,K)=>{function re(Ae){Ae?M():_(mr(),re,K)}re(!1)})}function mr(){return N?c(!0):_(x._readyPromise,()=>d((M,K)=>{Cr(R,{_chunkSteps:re=>{B=_(Gs(x,re),void 0,e),M(!1)},_closeSteps:()=>M(!0),_errorSteps:K})}))}if(ct(r,R._closedPromise,M=>(h?qe(!0,M):Se(()=>Rn(o,M),!0,M),null)),ct(o,x._closedPromise,M=>(m?qe(!0,M):Se(()=>Ge(r,M),!0,M),null)),_e(r,R._closedPromise,()=>(l?qe():Se(()=>Kf(x)),null)),et(o)||o._state==="closed"){let M=new TypeError("the destination writable stream closed before all data could be piped to it");m?qe(!0,M):Se(()=>Ge(r,M),!0,M)}A(Xe());function kt(){let M=B;return _(B,()=>M!==B?kt():void 0)}function ct(M,K,re){M._state==="errored"?re(M._storedError):y(K,re)}function _e(M,K,re){M._state==="closed"?re():g(K,re)}function Se(M,K,re){if(N)return;N=!0,o._state==="writable"&&!et(o)?g(kt(),Ae):Ae();function Ae(){return b(M(),()=>dt(K,re),gr=>dt(!0,gr)),null}}function qe(M,K){N||(N=!0,o._state==="writable"&&!et(o)?g(kt(),()=>dt(M,K)):dt(M,K))}function dt(M,K){return Ks(x),$(R),w!==void 0&&w.removeEventListener("abort",ee),M?W(K):j(void 0),null}})}class ut{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!kn(this))throw Cn("desiredSize");return so(this)}close(){if(!kn(this))throw Cn("close");if(!pr(this))throw new TypeError("The stream is not in a state that permits close");Kt(this)}enqueue(o=void 0){if(!kn(this))throw Cn("enqueue");if(!pr(this))throw new TypeError("The stream is not in a state that permits enqueue");return fr(this,o)}error(o=void 0){if(!kn(this))throw Cn("error");Ke(this,o)}[He](o){Pt(this);let l=this._cancelAlgorithm(o);return In(this),l}[wt](o){let l=this._controlledReadableStream;if(this._queue.length>0){let h=Ni(this);this._closeRequested&&this._queue.length===0?(In(this),Nr(l)):Mr(this),o._chunkSteps(h)}else fs(l,o),Mr(this)}[Mt](){}}Object.defineProperties(ut.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),i(ut.prototype.close,"close"),i(ut.prototype.enqueue,"enqueue"),i(ut.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ut.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function kn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableStream")?!1:r instanceof ut}function Mr(r){if(!il(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,Mr(r)),null),h=>(Ke(r,h),null))}function il(r){let o=r._controlledReadableStream;return!pr(r)||!r._started?!1:!!(At(o)&&fn(o)>0||so(r)>0)}function In(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Kt(r){if(!pr(r))return;let o=r._controlledReadableStream;r._closeRequested=!0,r._queue.length===0&&(In(r),Nr(o))}function fr(r,o){if(!pr(r))return;let l=r._controlledReadableStream;if(At(l)&&fn(l)>0)Bi(l,o,!1);else{let h;try{h=r._strategySizeAlgorithm(o)}catch(m){throw Ke(r,m),m}try{ji(r,o,h)}catch(m){throw Ke(r,m),m}}Mr(r)}function Ke(r,o){let l=r._controlledReadableStream;l._state==="readable"&&(Pt(r),In(r),ll(l,o))}function so(r){let o=r._controlledReadableStream._state;return o==="errored"?null:o==="closed"?0:r._strategyHWM-r._queueTotalSize}function dp(r){return!il(r)}function pr(r){let o=r._controlledReadableStream._state;return!r._closeRequested&&o==="readable"}function ol(r,o,l,h,m,w,R){o._controlledReadableStream=r,o._queue=void 0,o._queueTotalSize=void 0,Pt(o),o._started=!1,o._closeRequested=!1,o._pullAgain=!1,o._pulling=!1,o._strategySizeAlgorithm=R,o._strategyHWM=w,o._pullAlgorithm=h,o._cancelAlgorithm=m,r._readableStreamController=o;let x=l();b(c(x),()=>(o._started=!0,Mr(o),null),N=>(Ke(o,N),null))}function fp(r,o,l,h){let m=Object.create(ut.prototype),w,R,x;o.start!==void 0?w=()=>o.start(m):w=()=>{},o.pull!==void 0?R=()=>o.pull(m):R=()=>c(void 0),o.cancel!==void 0?x=N=>o.cancel(N):x=()=>c(void 0),ol(r,m,w,R,x,l,h)}function Cn(r){return new TypeError(`ReadableStreamDefaultController.prototype.${r} can only be used on a ReadableStreamDefaultController`)}function pp(r,o){return jt(r._readableStreamController)?mp(r):hp(r)}function hp(r,o){let l=sr(r),h=!1,m=!1,w=!1,R=!1,x,N,B,j,W,ee=d(_e=>{W=_e});function Xe(){return h?(m=!0,c(void 0)):(h=!0,Cr(l,{_chunkSteps:Se=>{E(()=>{m=!1;let qe=Se,dt=Se;w||fr(B._readableStreamController,qe),R||fr(j._readableStreamController,dt),h=!1,m&&Xe()})},_closeSteps:()=>{h=!1,w||Kt(B._readableStreamController),R||Kt(j._readableStreamController),(!w||!R)&&W(void 0)},_errorSteps:()=>{h=!1}}),c(void 0))}function mr(_e){if(w=!0,x=_e,R){let Se=Dr([x,N]),qe=Ge(r,Se);W(qe)}return ee}function kt(_e){if(R=!0,N=_e,w){let Se=Dr([x,N]),qe=Ge(r,Se);W(qe)}return ee}function ct(){}return B=Ur(ct,Xe,mr),j=Ur(ct,Xe,kt),y(l._closedPromise,_e=>(Ke(B._readableStreamController,_e),Ke(j._readableStreamController,_e),(!w||!R)&&W(void 0),null)),[B,j]}function mp(r){let o=sr(r),l=!1,h=!1,m=!1,w=!1,R=!1,x,N,B,j,W,ee=d(M=>{W=M});function Xe(M){y(M._closedPromise,K=>(M!==o||(Be(B._readableStreamController,K),Be(j._readableStreamController,K),(!w||!R)&&W(void 0)),null))}function mr(){zt(o)&&($(o),o=sr(r),Xe(o)),Cr(o,{_chunkSteps:K=>{E(()=>{h=!1,m=!1;let re=K,Ae=K;if(!w&&!R)try{Ae=Rs(K)}catch(gr){Be(B._readableStreamController,gr),Be(j._readableStreamController,gr),W(Ge(r,gr));return}w||_n(B._readableStreamController,re),R||_n(j._readableStreamController,Ae),l=!1,h?ct():m&&_e()})},_closeSteps:()=>{l=!1,w||$r(B._readableStreamController),R||$r(j._readableStreamController),B._readableStreamController._pendingPullIntos.length>0&&bn(B._readableStreamController,0),j._readableStreamController._pendingPullIntos.length>0&&bn(j._readableStreamController,0),(!w||!R)&&W(void 0)},_errorSteps:()=>{l=!1}})}function kt(M,K){St(o)&&($(o),o=Fs(r),Xe(o));let re=K?j:B,Ae=K?B:j;Ms(o,M,1,{_chunkSteps:_r=>{E(()=>{h=!1,m=!1;let br=K?R:w;if(K?w:R)br||yn(re._readableStreamController,_r);else{let vl;try{vl=Rs(_r)}catch(po){Be(re._readableStreamController,po),Be(Ae._readableStreamController,po),W(Ge(r,po));return}br||yn(re._readableStreamController,_r),_n(Ae._readableStreamController,vl)}l=!1,h?ct():m&&_e()})},_closeSteps:_r=>{l=!1;let br=K?R:w,Un=K?w:R;br||$r(re._readableStreamController),Un||$r(Ae._readableStreamController),_r!==void 0&&(br||yn(re._readableStreamController,_r),!Un&&Ae._readableStreamController._pendingPullIntos.length>0&&bn(Ae._readableStreamController,0)),(!br||!Un)&&W(void 0)},_errorSteps:()=>{l=!1}})}function ct(){if(l)return h=!0,c(void 0);l=!0;let M=Ki(B._readableStreamController);return M===null?mr():kt(M._view,!1),c(void 0)}function _e(){if(l)return m=!0,c(void 0);l=!0;let M=Ki(j._readableStreamController);return M===null?mr():kt(M._view,!0),c(void 0)}function Se(M){if(w=!0,x=M,R){let K=Dr([x,N]),re=Ge(r,K);W(re)}return ee}function qe(M){if(R=!0,N=M,w){let K=Dr([x,N]),re=Ge(r,K);W(re)}return ee}function dt(){}return B=sl(dt,ct,Se),j=sl(dt,_e,qe),Xe(o),[B,j]}function gp(r){return t(r)&&typeof r.getReader<"u"}function _p(r){return gp(r)?yp(r.getReader()):bp(r)}function bp(r){let o,l=Ss(r,"async"),h=e;function m(){let R;try{R=uf(l)}catch(N){return p(N)}let x=c(R);return S(x,N=>{if(!t(N))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(cf(N))Kt(o._readableStreamController);else{let j=df(N);fr(o._readableStreamController,j)}})}function w(R){let x=l.iterator,N;try{N=hn(x,"return")}catch(W){return p(W)}if(N===void 0)return c(void 0);let B;try{B=L(N,x,[R])}catch(W){return p(W)}let j=c(B);return S(j,W=>{if(!t(W))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return o=Ur(h,m,w,0),o}function yp(r){let o,l=e;function h(){let w;try{w=r.read()}catch(R){return p(R)}return S(w,R=>{if(!t(R))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(R.done)Kt(o._readableStreamController);else{let x=R.value;fr(o._readableStreamController,x)}})}function m(w){try{return c(r.cancel(w))}catch(R){return p(R)}}return o=Ur(l,h,m,0),o}function wp(r,o){Ze(r,o);let l=r,h=l?.autoAllocateChunkSize,m=l?.cancel,w=l?.pull,R=l?.start,x=l?.type;return{autoAllocateChunkSize:h===void 0?void 0:Oi(h,`${o} has member 'autoAllocateChunkSize' that`),cancel:m===void 0?void 0:vp(m,l,`${o} has member 'cancel' that`),pull:w===void 0?void 0:Sp(w,l,`${o} has member 'pull' that`),start:R===void 0?void 0:Rp(R,l,`${o} has member 'start' that`),type:x===void 0?void 0:Pp(x,`${o} has member 'type' that`)}}function vp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function Sp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function Rp(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Pp(r,o){if(r=`${r}`,r!=="bytes")throw new TypeError(`${o} '${r}' is not a valid enumeration value for ReadableStreamType`);return r}function Ep(r,o){return Ze(r,o),{preventCancel:!!r?.preventCancel}}function al(r,o){Ze(r,o);let l=r?.preventAbort,h=r?.preventCancel,m=r?.preventClose,w=r?.signal;return w!==void 0&&Lp(w,`${o} has member 'signal' that`),{preventAbort:!!l,preventCancel:!!h,preventClose:!!m,signal:w}}function Lp(r,o){if(!$f(r))throw new TypeError(`${o} is not an AbortSignal.`)}function xp(r,o){Ze(r,o);let l=r?.readable;Di(l,"readable","ReadableWritablePair"),Fi(l,`${o} has member 'readable' that`);let h=r?.writable;return Di(h,"writable","ReadableWritablePair"),Ns(h,`${o} has member 'writable' that`),{readable:l,writable:h}}class me{constructor(o={},l={}){o===void 0?o=null:cs(o,"First parameter");let h=Sn(l,"Second parameter"),m=wp(o,"First parameter");if(lo(this),m.type==="bytes"){if(h.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let w=Fr(h,0);vf(this,m,w)}else{let w=vn(h),R=Fr(h,1);fp(this,m,R,w)}}get locked(){if(!xt(this))throw Gt("locked");return At(this)}cancel(o=void 0){return xt(this)?At(this)?p(new TypeError("Cannot cancel a stream that already has a reader")):Ge(this,o):p(Gt("cancel"))}getReader(o=void 0){if(!xt(this))throw Gt("getReader");return Rf(o,"First parameter").mode===void 0?sr(this):Fs(this)}pipeThrough(o,l={}){if(!xt(this))throw Gt("pipeThrough");ot(o,1,"pipeThrough");let h=xp(o,"First parameter"),m=al(l,"Second parameter");if(At(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(cr(h.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let w=nl(this,h.writable,m.preventClose,m.preventAbort,m.preventCancel,m.signal);return A(w),h.readable}pipeTo(o,l={}){if(!xt(this))return p(Gt("pipeTo"));if(o===void 0)return p("Parameter 1 is required in 'pipeTo'.");if(!ur(o))return p(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let h;try{h=al(l,"Second parameter")}catch(m){return p(m)}return At(this)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):cr(o)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):nl(this,o,h.preventClose,h.preventAbort,h.preventCancel,h.signal)}tee(){if(!xt(this))throw Gt("tee");let o=pp(this);return Dr(o)}values(o=void 0){if(!xt(this))throw Gt("values");let l=Ep(o,"First parameter");return sf(this,l.preventCancel)}[Ui](o){return this.values(o)}static from(o){return _p(o)}}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}}),i(me.from,"from"),i(me.prototype.cancel,"cancel"),i(me.prototype.getReader,"getReader"),i(me.prototype.pipeThrough,"pipeThrough"),i(me.prototype.pipeTo,"pipeTo"),i(me.prototype.tee,"tee"),i(me.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(me.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(me.prototype,Ui,{value:me.prototype.values,writable:!0,configurable:!0});function Ur(r,o,l,h=1,m=()=>1){let w=Object.create(me.prototype);lo(w);let R=Object.create(ut.prototype);return ol(w,R,r,o,l,h,m),w}function sl(r,o,l){let h=Object.create(me.prototype);lo(h);let m=Object.create(st.prototype);return Os(h,m,r,o,l,0,void 0),h}function lo(r){r._state="readable",r._reader=void 0,r._storedError=void 0,r._disturbed=!1}function xt(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,o){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&&zt(l)){let m=l._readIntoRequests;l._readIntoRequests=new X,m.forEach(w=>{w._closeSteps(void 0)})}let h=r._readableStreamController[He](o);return S(h,e)}function Nr(r){r._state="closed";let o=r._reader;if(o!==void 0&&(ue(o),St(o))){let l=o._readRequests;o._readRequests=new X,l.forEach(h=>{h._closeSteps()})}}function ll(r,o){r._state="errored",r._storedError=o;let l=r._reader;l!==void 0&&(we(l,o),St(l)?hs(l,o):Us(l,o))}function Gt(r){return new TypeError(`ReadableStream.prototype.${r} can only be used on a ReadableStream`)}function ul(r,o){Ze(r,o);let l=r?.highWaterMark;return Di(l,"highWaterMark","QueuingStrategyInit"),{highWaterMark:$i(l)}}let cl=r=>r.byteLength;i(cl,"size");class Dn{constructor(o){ot(o,1,"ByteLengthQueuingStrategy"),o=ul(o,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=o.highWaterMark}get highWaterMark(){if(!fl(this))throw dl("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!fl(this))throw dl("size");return cl}}Object.defineProperties(Dn.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Dn.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function dl(r){return new TypeError(`ByteLengthQueuingStrategy.prototype.${r} can only be used on a ByteLengthQueuingStrategy`)}function fl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_byteLengthQueuingStrategyHighWaterMark")?!1:r instanceof Dn}let pl=()=>1;i(pl,"size");class $n{constructor(o){ot(o,1,"CountQueuingStrategy"),o=ul(o,"First parameter"),this._countQueuingStrategyHighWaterMark=o.highWaterMark}get highWaterMark(){if(!ml(this))throw hl("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!ml(this))throw hl("size");return pl}}Object.defineProperties($n.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty($n.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function hl(r){return new TypeError(`CountQueuingStrategy.prototype.${r} can only be used on a CountQueuingStrategy`)}function ml(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_countQueuingStrategyHighWaterMark")?!1:r instanceof $n}function Ap(r,o){Ze(r,o);let l=r?.cancel,h=r?.flush,m=r?.readableType,w=r?.start,R=r?.transform,x=r?.writableType;return{cancel:l===void 0?void 0:Cp(l,r,`${o} has member 'cancel' that`),flush:h===void 0?void 0:Tp(h,r,`${o} has member 'flush' that`),readableType:m,start:w===void 0?void 0:kp(w,r,`${o} has member 'start' that`),transform:R===void 0?void 0:Ip(R,r,`${o} has member 'transform' that`),writableType:x}}function Tp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}function kp(r,o,l){return Fe(r,l),h=>L(r,o,[h])}function Ip(r,o,l){return Fe(r,l),(h,m)=>Q(r,o,[h,m])}function Cp(r,o,l){return Fe(r,l),h=>Q(r,o,[h])}class On{constructor(o={},l={},h={}){o===void 0&&(o=null);let m=Sn(l,"Second parameter"),w=Sn(h,"Third parameter"),R=Ap(o,"First parameter");if(R.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(R.writableType!==void 0)throw new RangeError("Invalid writableType specified");let x=Fr(w,0),N=vn(w),B=Fr(m,1),j=vn(m),W,ee=d(Xe=>{W=Xe});Dp(this,ee,B,j,x,N),Op(this,R),R.start!==void 0?W(R.start(this._transformStreamController)):W(void 0)}get readable(){if(!gl(this))throw wl("readable");return this._readable}get writable(){if(!gl(this))throw wl("writable");return this._writable}}Object.defineProperties(On.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(On.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function Dp(r,o,l,h,m,w){function R(){return o}function x(ee){return qp(r,ee)}function N(ee){return Mp(r,ee)}function B(){return Up(r)}r._writable=Bf(R,x,B,N,l,h);function j(){return Np(r)}function W(ee){return jp(r,ee)}r._readable=Ur(R,j,W,m,w),r._backpressure=void 0,r._backpressureChangePromise=void 0,r._backpressureChangePromise_resolve=void 0,Fn(r,!0),r._transformStreamController=void 0}function gl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_transformStreamController")?!1:r instanceof On}function _l(r,o){Ke(r._readable._readableStreamController,o),uo(r,o)}function uo(r,o){qn(r._transformStreamController),Br(r._writable._writableStreamController,o),co(r)}function co(r){r._backpressure&&Fn(r,!1)}function Fn(r,o){r._backpressureChangePromise!==void 0&&r._backpressureChangePromise_resolve(),r._backpressureChangePromise=d(l=>{r._backpressureChangePromise_resolve=l}),r._backpressure=o}class Tt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Bn(this))throw Mn("desiredSize");let o=this._controlledTransformStream._readable._readableStreamController;return so(o)}enqueue(o=void 0){if(!Bn(this))throw Mn("enqueue");bl(this,o)}error(o=void 0){if(!Bn(this))throw Mn("error");Fp(this,o)}terminate(){if(!Bn(this))throw Mn("terminate");Bp(this)}}Object.defineProperties(Tt.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),i(Tt.prototype.enqueue,"enqueue"),i(Tt.prototype.error,"error"),i(Tt.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Tt.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function Bn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledTransformStream")?!1:r instanceof Tt}function $p(r,o,l,h,m){o._controlledTransformStream=r,r._transformStreamController=o,o._transformAlgorithm=l,o._flushAlgorithm=h,o._cancelAlgorithm=m,o._finishPromise=void 0,o._finishPromise_resolve=void 0,o._finishPromise_reject=void 0}function Op(r,o){let l=Object.create(Tt.prototype),h,m,w;o.transform!==void 0?h=R=>o.transform(R,l):h=R=>{try{return bl(l,R),c(void 0)}catch(x){return p(x)}},o.flush!==void 0?m=()=>o.flush(l):m=()=>c(void 0),o.cancel!==void 0?w=R=>o.cancel(R):w=()=>c(void 0),$p(r,l,h,m,w)}function qn(r){r._transformAlgorithm=void 0,r._flushAlgorithm=void 0,r._cancelAlgorithm=void 0}function bl(r,o){let l=r._controlledTransformStream,h=l._readable._readableStreamController;if(!pr(h))throw new TypeError("Readable side is not in a state that permits enqueue");try{fr(h,o)}catch(w){throw uo(l,w),l._readable._storedError}dp(h)!==l._backpressure&&Fn(l,!0)}function Fp(r,o){_l(r._controlledTransformStream,o)}function yl(r,o){let l=r._transformAlgorithm(o);return S(l,void 0,h=>{throw _l(r._controlledTransformStream,h),h})}function Bp(r){let o=r._controlledTransformStream,l=o._readable._readableStreamController;Kt(l);let h=new TypeError("TransformStream terminated");uo(o,h)}function qp(r,o){let l=r._transformStreamController;if(r._backpressure){let h=r._backpressureChangePromise;return S(h,()=>{let m=r._writable;if(m._state==="erroring")throw m._storedError;return yl(l,o)})}return yl(l,o)}function Mp(r,o){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._readable;l._finishPromise=d((w,R)=>{l._finishPromise_resolve=w,l._finishPromise_reject=R});let m=l._cancelAlgorithm(o);return qn(l),b(m,()=>(h._state==="errored"?hr(l,h._storedError):(Ke(h._readableStreamController,o),fo(l)),null),w=>(Ke(h._readableStreamController,w),hr(l,w),null)),l._finishPromise}function Up(r){let o=r._transformStreamController;if(o._finishPromise!==void 0)return o._finishPromise;let l=r._readable;o._finishPromise=d((m,w)=>{o._finishPromise_resolve=m,o._finishPromise_reject=w});let h=o._flushAlgorithm();return qn(o),b(h,()=>(l._state==="errored"?hr(o,l._storedError):(Kt(l._readableStreamController),fo(o)),null),m=>(Ke(l._readableStreamController,m),hr(o,m),null)),o._finishPromise}function Np(r){return Fn(r,!1),r._backpressureChangePromise}function jp(r,o){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._writable;l._finishPromise=d((w,R)=>{l._finishPromise_resolve=w,l._finishPromise_reject=R});let m=l._cancelAlgorithm(o);return qn(l),b(m,()=>(h._state==="errored"?hr(l,h._storedError):(Br(h._writableStreamController,o),co(r),fo(l)),null),w=>(Br(h._writableStreamController,w),co(r),hr(l,w),null)),l._finishPromise}function Mn(r){return new TypeError(`TransformStreamDefaultController.prototype.${r} can only be used on a TransformStreamDefaultController`)}function fo(r){r._finishPromise_resolve!==void 0&&(r._finishPromise_resolve(),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function hr(r,o){r._finishPromise_reject!==void 0&&(A(r._finishPromise),r._finishPromise_reject(o),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function wl(r){return new TypeError(`TransformStream.prototype.${r} can only be used on a TransformStream`)}a.ByteLengthQueuingStrategy=Dn,a.CountQueuingStrategy=$n,a.ReadableByteStreamController=st,a.ReadableStream=me,a.ReadableStreamBYOBReader=Et,a.ReadableStreamBYOBRequest=Nt,a.ReadableStreamDefaultController=ut,a.ReadableStreamDefaultReader=vt,a.TransformStream=On,a.TransformStreamDefaultController=Tt,a.WritableStream=Lt,a.WritableStreamDefaultController=dr,a.WritableStreamDefaultWriter=lt})});var Yl=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,Xl())}try{let{Blob:a}=require("buffer");a&&!a.prototype.stream&&(a.prototype.stream=function(t){let n=0,i=this;return new ReadableStream({type:"bytes",async pull(s){let f=await i.slice(n,Math.min(i.size,n+65536)).arrayBuffer();n+=f.byteLength,s.enqueue(new Uint8Array(f)),n===i.size&&s.close()}})})}catch{}});async function*Mo(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,i=t.byteOffset+t.byteLength;for(;n!==i;){let s=Math.min(i-n,Ql),u=t.buffer.slice(n,n+s);n+=u.byteLength,yield new Uint8Array(u)}}else yield t;else{let n=0,i=t;for(;n!==i.size;){let u=await i.slice(n,Math.min(i.size,n+Ql)).arrayBuffer();n+=u.byteLength,yield new Uint8Array(u)}}}var Cb,Ql,Jl,Wh,ft,Vr=te(()=>{"use strict";Cb=le(Yl(),1);Ql=65536;Jl=class Uo{#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 Uo?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 i=t.type===void 0?"":String(t.type);this.#t=/^[\x20-\x7E]*$/.test(i)?i:""}get size(){return this.#r}get type(){return this.#t}async text(){let e=new TextDecoder,t="";for await(let n of Mo(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 Mo(this.#e,!1))e.set(n,t),t+=n.length;return e.buffer}stream(){let e=Mo(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:i}=this,s=e<0?Math.max(i+e,0):Math.min(e,i),u=t<0?Math.max(i+t,0):Math.min(t,i),f=Math.max(u-s,0),d=this.#e,c=[],p=0;for(let b of d){if(p>=f)break;let g=ArrayBuffer.isView(b)?b.byteLength:b.size;if(s&&g<=s)s-=g,u-=g;else{let y;ArrayBuffer.isView(b)?(y=b.subarray(s,Math.min(g,u)),p+=y.byteLength):(y=b.slice(s,Math.min(g,u)),p+=y.size),u-=g,c.push(y),s=0}}let _=new Uo([],{type:String(n).toLowerCase()});return _.#r=f,_.#e=c,_}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(Jl.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Wh=Jl,ft=Wh});var Hh,Kh,yr,No=te(()=>{"use strict";Vr();Hh=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 i=n.lastModified===void 0?Date.now():Number(n.lastModified);Number.isNaN(i)||(this.#e=i),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])}},Kh=Hh,yr=Kh});function tu(a,e=ft){var t=`${Zl()}${Zl()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),n=[],i=`--${t}\r
2980
- Content-Disposition: form-data; name="`;return a.forEach((s,u)=>typeof s=="string"?n.push(i+jo(u)+`"\r
3196
+ `});var Gl={};Z(Gl,{default:()=>Kh,filenames:()=>Gh});var Hh,Kh,Gh,Xl=J(()=>{"use strict";El();Ll();xl();Al();Tl();kl();Il();Cl();Dl();$l();Ol();Fl();Bl();ql();Ml();Ul();jl();Nl();zl();Vl();Wl();Hl();Kl();Hh=[gi,_i,bi,yi,wi,vi,Si,Ri,Pi,Ei,Li,xi,Ai,Ti,ki,Ii,Ci,Di,$i,Oi,Fi,Bi,qi],Kh=Hh,Gh=["../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/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 Yl=O((Ob,Xh)=>{Xh.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 Zl=O((Wn,Jl)=>{"use strict";(function(a,e){typeof Wn=="object"&&typeof Jl<"u"?e(Wn):typeof define=="function"&&define.amd?define(["exports"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a.WebStreamsPolyfill={}))})(Wn,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 b(r,i,l){m(m(r,i,l),void 0,n)}function g(r,i){b(r,i)}function y(r,i){b(r,void 0,i)}function R(r,i,l){return m(r,i,l)}function T(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 te(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,_=h+1,w=i._elements,S=w[h];return _===G&&(l=i._next,_=0),--this._size,this._cursor=_,i!==l&&(this._front=l),w[h]=void 0,S}forEach(i){let l=this._cursor,h=this._front,_=h._elements;for(;(l!==_.length||h._next!==void 0)&&!(l===_.length&&(h=h._next,_=h._elements,l=0,_.length===0));)i(_[l]),++l}peek(){let i=this._front,l=this._cursor;return i._elements[l]}}let Q=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&&(T(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)},of=Math.trunc||function(r){return r<0?Math.ceil(r):Math.floor(r)};function af(r){return typeof r=="object"||typeof r=="function"}function Ze(r,i){if(r!==void 0&&!af(r))throw new TypeError(`${i} is not an object.`)}function Fe(r,i){if(typeof r!="function")throw new TypeError(`${i} is not a function.`)}function sf(r){return typeof r=="object"&&r!==null||typeof r=="function"}function fs(r,i){if(!sf(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 Do(r,i,l){if(r===void 0)throw new TypeError(`${i} is required in '${l}'.`)}function $o(r){return Number(r)}function ps(r){return r===0?0:r}function lf(r){return ps(of(r))}function Oo(r,i){let h=Number.MAX_SAFE_INTEGER,_=Number(r);if(_=ps(_),!Ut(_))throw new TypeError(`${i} is not a finite number`);if(_=lf(_),_<0||_>h)throw new TypeError(`${i} is outside the accepted range of 0 to ${h}, inclusive`);return!Ut(_)||_===0?0:_}function Fo(r,i){if(!xt(r))throw new TypeError(`${i} is not a ReadableStream.`)}function sr(r){return new vt(r)}function hs(r,i){r._reader._readRequests.push(i)}function Bo(r,i,l){let _=r._reader._readRequests.shift();l?_._closeSteps():_._chunkSteps(i)}function dn(r){return r._reader._readRequests.length}function ms(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(fn("closed"))}cancel(i=void 0){return St(this)?this._ownerReadableStream===void 0?p($("cancel")):P(this,i):p(fn("cancel"))}read(){if(!St(this))return p(fn("read"));if(this._ownerReadableStream===void 0)return p($("read from"));let i,l,h=d((w,S)=>{i=w,l=S});return Cr(this,{_chunkSteps:w=>i({value:w,done:!1}),_closeSteps:()=>i({value:void 0,done:!0}),_errorSteps:w=>l(w)}),h}releaseLock(){if(!St(this))throw fn("releaseLock");this._ownerReadableStream!==void 0&&uf(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 uf(r){D(r);let i=new TypeError("Reader was released");gs(r,i)}function gs(r,i){let l=r._readRequests;r._readRequests=new X,l.forEach(h=>{h._errorSteps(i)})}function fn(r){return new TypeError(`ReadableStreamDefaultReader.prototype.${r} can only be used on a ReadableStreamDefaultReader`)}let cf=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class _s{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,_=d((S,L)=>{l=S,h=L});return Cr(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)}}),_}_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 bs={next(){return ys(this)?this._asyncIteratorImpl.next():p(ws("next"))},return(r){return ys(this)?this._asyncIteratorImpl.return(r):p(ws("return"))}};Object.setPrototypeOf(bs,cf);function df(r,i){let l=sr(r),h=new _s(l,i),_=Object.create(bs);return _._asyncIteratorImpl=h,_}function ys(r){if(!t(r)||!Object.prototype.hasOwnProperty.call(r,"_asyncIteratorImpl"))return!1;try{return r._asyncIteratorImpl instanceof _s}catch{return!1}}function ws(r){return new TypeError(`ReadableStreamAsyncIterator.${r} can only be used on a ReadableSteamAsyncIterator`)}let vs=Number.isNaN||function(r){return r!==r};var qo,v,Mo;function Dr(r){return r.slice()}function Ss(r,i,l,h,_){new Uint8Array(r).set(new Uint8Array(l,h,_),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 Rs(r,i,l){if(r.slice)return r.slice(i,l);let h=l-i,_=new ArrayBuffer(h);return Ss(_,0,r,i,h),_}function pn(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 ff(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=(qo=Symbol.asyncIterator)!==null&&qo!==void 0?qo:(v=Symbol.for)===null||v===void 0?void 0:v.call(Symbol,"Symbol.asyncIterator"))!==null&&Mo!==void 0?Mo:"@@asyncIterator";function Ps(r,i="sync",l){if(l===void 0)if(i==="async"){if(l=pn(r,Uo),l===void 0){let w=pn(r,Symbol.iterator),S=Ps(r,"sync",w);return ff(S)}}else l=pn(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 _=h.next;return{iterator:h,nextMethod:_,done:!1}}function pf(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 hf(r){return!!r.done}function mf(r){return r.value}function gf(r){return!(typeof r!="number"||vs(r)||r<0)}function Es(r){let i=Rs(r.buffer,r.byteOffset,r.byteOffset+r.byteLength);return new Uint8Array(i)}function jo(r){let i=r._queue.shift();return r._queueTotalSize-=i.size,r._queueTotalSize<0&&(r._queueTotalSize=0),i.value}function No(r,i,l){if(!gf(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 _f(r){return r._queue.peek().value}function Pt(r){r._queue=new X,r._queueTotalSize=0}function Ls(r){return r===DataView}function bf(r){return Ls(r.constructor)}function yf(r){return Ls(r)?1:r.BYTES_PER_ELEMENT}class jt{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=Oo(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");_n(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");bn(this._associatedReadableByteStreamController,i)}}Object.defineProperties(jt.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),o(jt.prototype.respond,"respond"),o(jt.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(jt.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class st{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!Nt(this))throw Or("byobRequest");return Ko(this)}get desiredSize(){if(!Nt(this))throw Or("desiredSize");return Fs(this)}close(){if(!Nt(this))throw Or("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`);$r(this)}enqueue(i){if(!Nt(this))throw Or("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`);gn(this,i)}error(i=void 0){if(!Nt(this))throw Or("error");Be(this,i)}[He](i){xs(this),Pt(this);let l=this._cancelAlgorithm(i);return mn(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 _;try{_=new ArrayBuffer(h)}catch(S){i._errorSteps(S);return}let w={buffer:_,bufferByteLength:h,byteOffset:0,byteLength:h,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(w)}hs(l,i),zt(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 Nt(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 jt}function zt(r){if(!Pf(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,zt(r)),null),h=>(Be(r,h),null))}function xs(r){Wo(r),r._pendingPullIntos=new X}function Vo(r,i){let l=!1;r._state==="closed"&&(l=!0);let h=As(i);i.readerType==="default"?Bo(r,h,l):kf(r,h,l)}function As(r){let i=r.bytesFilled,l=r.elementSize;return new r.viewConstructor(r.buffer,r.byteOffset,i/l)}function hn(r,i,l,h){r._queue.push({buffer:i,byteOffset:l,byteLength:h}),r._queueTotalSize+=h}function Ts(r,i,l,h){let _;try{_=Rs(i,l,l+h)}catch(w){throw Be(r,w),w}hn(r,_,0,h)}function ks(r,i){i.bytesFilled>0&&Ts(r,i.buffer,i.byteOffset,i.bytesFilled),lr(r)}function Is(r,i){let l=Math.min(r._queueTotalSize,i.byteLength-i.bytesFilled),h=i.bytesFilled+l,_=l,w=!1,S=h%i.elementSize,L=h-S;L>=i.minimumFill&&(_=L-i.bytesFilled,w=!0);let j=r._queue;for(;_>0;){let B=j.peek(),N=Math.min(_,B.byteLength),W=i.byteOffset+i.bytesFilled;Ss(i.buffer,W,B.buffer,B.byteOffset,N),B.byteLength===N?j.shift():(B.byteOffset+=N,B.byteLength-=N),r._queueTotalSize-=N,Cs(r,N,i),_-=N}return w}function Cs(r,i,l){l.bytesFilled+=i}function Ds(r){r._queueTotalSize===0&&r._closeRequested?(mn(r),jr(r._controlledReadableByteStream)):zt(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();Is(r,i)&&(lr(r),Vo(r._controlledReadableByteStream,i))}}function wf(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 vf(r,i,l,h){let _=r._controlledReadableByteStream,w=i.constructor,S=yf(w),{byteOffset:L,byteLength:j}=i,B=l*S,N;try{N=at(i.buffer)}catch(re){h._errorSteps(re);return}let W={buffer:N,bufferByteLength:N.byteLength,byteOffset:L,byteLength:j,bytesFilled:0,minimumFill:B,elementSize:S,viewConstructor:w,readerType:"byob"};if(r._pendingPullIntos.length>0){r._pendingPullIntos.push(W),Ms(_,h);return}if(_._state==="closed"){let re=new w(W.buffer,W.byteOffset,0);h._closeSteps(re);return}if(r._queueTotalSize>0){if(Is(r,W)){let re=As(W);Ds(r),h._chunkSteps(re);return}if(r._closeRequested){let re=new TypeError("Insufficient bytes to fill elements in the given buffer");Be(r,re),h._errorSteps(re);return}}r._pendingPullIntos.push(W),Ms(_,h),zt(r)}function Sf(r,i){i.readerType==="none"&&lr(r);let l=r._controlledReadableByteStream;if(Xo(l))for(;Us(l)>0;){let h=lr(r);Vo(l,h)}}function Rf(r,i,l){if(Cs(r,i,l),l.readerType==="none"){ks(r,l),Ho(r);return}if(l.bytesFilled<l.minimumFill)return;lr(r);let h=l.bytesFilled%l.elementSize;if(h>0){let _=l.byteOffset+l.bytesFilled;Ts(r,l.buffer,_-h,h)}l.bytesFilled-=h,Vo(r._controlledReadableByteStream,l),Ho(r)}function $s(r,i){let l=r._pendingPullIntos.peek();Wo(r),r._controlledReadableByteStream._state==="closed"?Sf(r,l):Rf(r,i,l),zt(r)}function lr(r){return r._pendingPullIntos.shift()}function Pf(r){let i=r._controlledReadableByteStream;return i._state!=="readable"||r._closeRequested||!r._started?!1:!!(ms(i)&&dn(i)>0||Xo(i)&&Us(i)>0||Fs(r)>0)}function mn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0}function $r(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 Be(r,h),h}}mn(r),jr(i)}}function gn(r,i){let l=r._controlledReadableByteStream;if(r._closeRequested||l._state!=="readable")return;let{buffer:h,byteOffset:_,byteLength:w}=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 L=r._pendingPullIntos.peek();if(Rt(L.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");Wo(r),L.buffer=at(L.buffer),L.readerType==="none"&&ks(r,L)}if(ms(l))if(wf(r),dn(l)===0)hn(r,S,_,w);else{r._pendingPullIntos.length>0&&lr(r);let L=new Uint8Array(S,_,w);Bo(l,L,!1)}else Xo(l)?(hn(r,S,_,w),Ho(r)):hn(r,S,_,w);zt(r)}function Be(r,i){let l=r._controlledReadableByteStream;l._state==="readable"&&(xs(r),Pt(r),mn(r),cl(l,i))}function Os(r,i){let l=r._queue.shift();r._queueTotalSize-=l.byteLength,Ds(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(jt.prototype);Lf(h,r,l),r._byobRequest=h}return r._byobRequest}function Fs(r){let i=r._controlledReadableByteStream._state;return i==="errored"?null:i==="closed"?0:r._strategyHWM-r._queueTotalSize}function _n(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),$s(r,i)}function bn(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 _=i.byteLength;l.buffer=at(i.buffer),$s(r,_)}function Bs(r,i,l,h,_,w,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=w,i._pullAlgorithm=h,i._cancelAlgorithm=_,i._autoAllocateChunkSize=S,i._pendingPullIntos=new X,r._readableStreamController=i;let L=l();b(c(L),()=>(i._started=!0,zt(i),null),j=>(Be(i,j),null))}function Ef(r,i,l){let h=Object.create(st.prototype),_,w,S;i.start!==void 0?_=()=>i.start(h):_=()=>{},i.pull!==void 0?w=()=>i.pull(h):w=()=>c(void 0),i.cancel!==void 0?S=j=>i.cancel(j):S=()=>c(void 0);let L=i.autoAllocateChunkSize;if(L===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Bs(r,h,_,w,S,l,L)}function Lf(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 Or(r){return new TypeError(`ReadableByteStreamController.prototype.${r} can only be used on a ReadableByteStreamController`)}function xf(r,i){Ze(r,i);let l=r?.mode;return{mode:l===void 0?void 0:Af(l,`${i} has member 'mode' that`)}}function Af(r,i){if(r=`${r}`,r!=="byob")throw new TypeError(`${i} '${r}' is not a valid enumeration value for ReadableStreamReaderMode`);return r}function Tf(r,i){var l;Ze(r,i);let h=(l=r?.min)!==null&&l!==void 0?l:1;return{min:Oo(h,`${i} has member 'min' that`)}}function qs(r){return new Et(r)}function Ms(r,i){r._reader._readIntoRequests.push(i)}function kf(r,i,l){let _=r._reader._readIntoRequests.shift();l?_._closeSteps(i):_._chunkSteps(i)}function Us(r){return r._reader._readIntoRequests.length}function Xo(r){let i=r._reader;return!(i===void 0||!Vt(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(!Nt(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 Vt(this)?this._closedPromise:p(yn("closed"))}cancel(i=void 0){return Vt(this)?this._ownerReadableStream===void 0?p($("cancel")):P(this,i):p(yn("cancel"))}read(i,l={}){if(!Vt(this))return p(yn("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=Tf(l,"options")}catch(B){return p(B)}let _=h.min;if(_===0)return p(new TypeError("options.min must be greater than 0"));if(bf(i)){if(_>i.byteLength)return p(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(_>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 w,S,L=d((B,N)=>{w=B,S=N});return js(this,i,_,{_chunkSteps:B=>w({value:B,done:!1}),_closeSteps:B=>w({value:B,done:!0}),_errorSteps:B=>S(B)}),L}releaseLock(){if(!Vt(this))throw yn("releaseLock");this._ownerReadableStream!==void 0&&If(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 Vt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_readIntoRequests")?!1:r instanceof Et}function js(r,i,l,h){let _=r._ownerReadableStream;_._disturbed=!0,_._state==="errored"?h._errorSteps(_._storedError):vf(_._readableStreamController,i,l,h)}function If(r){D(r);let i=new TypeError("Reader was released");Ns(r,i)}function Ns(r,i){let l=r._readIntoRequests;r._readIntoRequests=new X,l.forEach(h=>{h._errorSteps(i)})}function yn(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(vs(l)||l<0)throw new RangeError("Invalid highWaterMark");return l}function wn(r){let{size:i}=r;return i||(()=>1)}function vn(r,i){Ze(r,i);let l=r?.highWaterMark,h=r?.size;return{highWaterMark:l===void 0?void 0:$o(l),size:h===void 0?void 0:Cf(h,`${i} has member 'size' that`)}}function Cf(r,i){return Fe(r,i),l=>$o(r(l))}function Df(r,i){Ze(r,i);let l=r?.abort,h=r?.close,_=r?.start,w=r?.type,S=r?.write;return{abort:l===void 0?void 0:$f(l,r,`${i} has member 'abort' that`),close:h===void 0?void 0:Of(h,r,`${i} has member 'close' that`),start:_===void 0?void 0:Ff(_,r,`${i} has member 'start' that`),write:S===void 0?void 0:Bf(S,r,`${i} has member 'write' that`),type:w}}function $f(r,i,l){return Fe(r,l),h=>te(r,i,[h])}function Of(r,i,l){return Fe(r,l),()=>te(r,i,[])}function Ff(r,i,l){return Fe(r,l),h=>E(r,i,[h])}function Bf(r,i,l){return Fe(r,l),(h,_)=>te(r,i,[h,_])}function zs(r,i){if(!ur(r))throw new TypeError(`${i} is not a WritableStream.`)}function qf(r){if(typeof r!="object"||r===null)return!1;try{return typeof r.aborted=="boolean"}catch{return!1}}let Mf=typeof AbortController=="function";function Uf(){if(Mf)return new AbortController}class Lt{constructor(i={},l={}){i===void 0?i=null:fs(i,"First parameter");let h=vn(l,"Second parameter"),_=Df(i,"First parameter");if(Ws(this),_.type!==void 0)throw new RangeError("Invalid type is specified");let S=wn(h),L=Fr(h,1);ep(this,_,L,S)}get locked(){if(!ur(this))throw Ln("locked");return cr(this)}abort(i=void 0){return ur(this)?cr(this)?p(new TypeError("Cannot abort a stream that already has a writer")):Sn(this,i):p(Ln("abort"))}close(){return ur(this)?cr(this)?p(new TypeError("Cannot close a stream that already has a writer")):et(this)?p(new TypeError("Cannot close an already-closing stream")):Hs(this):p(Ln("close"))}getWriter(){if(!ur(this))throw Ln("getWriter");return Vs(this)}}Object.defineProperties(Lt.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),o(Lt.prototype.abort,"abort"),o(Lt.prototype.close,"close"),o(Lt.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Lt.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function Vs(r){return new lt(r)}function jf(r,i,l,h,_=1,w=()=>1){let S=Object.create(Lt.prototype);Ws(S);let L=Object.create(dr.prototype);return Js(S,L,r,i,l,h,_,w),S}function Ws(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 ur(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_writableStreamController")?!1:r instanceof Lt}function cr(r){return r._writer!==void 0}function Sn(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 _=!1;h==="erroring"&&(_=!0,i=void 0);let w=d((S,L)=>{r._pendingAbortRequest={_promise:void 0,_resolve:S,_reject:L,_reason:i,_wasAlreadyErroring:_}});return r._pendingAbortRequest._promise=w,_||Qo(r,i),w}function Hs(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((_,w)=>{let S={_resolve:_,_reject:w};r._closeRequest=S}),h=r._writer;return h!==void 0&&r._backpressure&&i==="writable"&&ii(h),tp(r._writableStreamController),l}function Nf(r){return d((l,h)=>{let _={_resolve:l,_reject:h};r._writeRequests.push(_)})}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&&Gs(h,i),!Kf(r)&&l._started&&Jo(r)}function Jo(r){r._state="errored",r._writableStreamController[We]();let i=r._storedError;if(r._writeRequests.forEach(_=>{_._reject(i)}),r._writeRequests=new X,r._pendingAbortRequest===void 0){Rn(r);return}let l=r._pendingAbortRequest;if(r._pendingAbortRequest=void 0,l._wasAlreadyErroring){l._reject(i),Rn(r);return}let h=r._writableStreamController[Q](l._reason);b(h,()=>(l._resolve(),Rn(r),null),_=>(l._reject(_),Rn(r),null))}function zf(r){r._inFlightWriteRequest._resolve(void 0),r._inFlightWriteRequest=void 0}function Vf(r,i){r._inFlightWriteRequest._reject(i),r._inFlightWriteRequest=void 0,Yo(r,i)}function Wf(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&&rl(l)}function Hf(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 Kf(r){return!(r._inFlightWriteRequest===void 0&&r._inFlightCloseRequest===void 0)}function Gf(r){r._inFlightCloseRequest=r._closeRequest,r._closeRequest=void 0}function Xf(r){r._inFlightWriteRequest=r._writeRequests.shift()}function Rn(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?lp(l):ii(l)),r._backpressure=i}class lt{constructor(i){if(it(i,1,"WritableStreamDefaultWriter"),zs(i,"First parameter"),cr(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?An(this):nl(this),xn(this);else if(l==="erroring")oi(this,i._storedError),xn(this);else if(l==="closed")nl(this),ap(this);else{let h=i._storedError;oi(this,h),tl(this,h)}}get closed(){return Wt(this)?this._closedPromise:p(Ht("closed"))}get desiredSize(){if(!Wt(this))throw Ht("desiredSize");if(this._ownerWritableStream===void 0)throw qr("desiredSize");return Zf(this)}get ready(){return Wt(this)?this._readyPromise:p(Ht("ready"))}abort(i=void 0){return Wt(this)?this._ownerWritableStream===void 0?p(qr("abort")):Yf(this,i):p(Ht("abort"))}close(){if(!Wt(this))return p(Ht("close"));let i=this._ownerWritableStream;return i===void 0?p(qr("close")):et(i)?p(new TypeError("Cannot close an already-closing stream")):Ks(this)}releaseLock(){if(!Wt(this))throw Ht("releaseLock");this._ownerWritableStream!==void 0&&Xs(this)}write(i=void 0){return Wt(this)?this._ownerWritableStream===void 0?p(qr("write to")):Ys(this,i):p(Ht("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 Wt(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_ownerWritableStream")?!1:r instanceof lt}function Yf(r,i){let l=r._ownerWritableStream;return Sn(l,i)}function Ks(r){let i=r._ownerWritableStream;return Hs(i)}function Qf(r){let i=r._ownerWritableStream,l=i._state;return et(i)||l==="closed"?c(void 0):l==="errored"?p(i._storedError):Ks(r)}function Jf(r,i){r._closedPromiseState==="pending"?ni(r,i):sp(r,i)}function Gs(r,i){r._readyPromiseState==="pending"?ol(r,i):up(r,i)}function Zf(r){let i=r._ownerWritableStream,l=i._state;return l==="errored"||l==="erroring"?null:l==="closed"?0:Zs(i._writableStreamController)}function Xs(r){let i=r._ownerWritableStream,l=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");Gs(r,l),Jf(r,l),i._writer=void 0,r._ownerWritableStream=void 0}function Ys(r,i){let l=r._ownerWritableStream,h=l._writableStreamController,_=rp(h,i);if(l!==r._ownerWritableStream)return p(qr("write to"));let w=l._state;if(w==="errored")return p(l._storedError);if(et(l)||w==="closed")return p(new TypeError("The stream is closing or closed and cannot be written to"));if(w==="erroring")return p(l._storedError);let S=Nf(l);return np(h,i,_),S}let Qs={};class dr{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"&&el(this,i)}[Q](i){let l=this._abortAlgorithm(i);return Pn(this),l}[We](){Pt(this)}}Object.defineProperties(dr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(dr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function ei(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledWritableStream")?!1:r instanceof dr}function Js(r,i,l,h,_,w,S,L){i._controlledWritableStream=r,r._writableStreamController=i,i._queue=void 0,i._queueTotalSize=void 0,Pt(i),i._abortReason=void 0,i._abortController=Uf(),i._started=!1,i._strategySizeAlgorithm=L,i._strategyHWM=S,i._writeAlgorithm=h,i._closeAlgorithm=_,i._abortAlgorithm=w;let j=ti(i);Zo(r,j);let B=l(),N=c(B);b(N,()=>(i._started=!0,En(i),null),W=>(i._started=!0,Yo(r,W),null))}function ep(r,i,l,h){let _=Object.create(dr.prototype),w,S,L,j;i.start!==void 0?w=()=>i.start(_):w=()=>{},i.write!==void 0?S=B=>i.write(B,_):S=()=>c(void 0),i.close!==void 0?L=()=>i.close():L=()=>c(void 0),i.abort!==void 0?j=B=>i.abort(B):j=()=>c(void 0),Js(r,_,w,S,L,j,l,h)}function Pn(r){r._writeAlgorithm=void 0,r._closeAlgorithm=void 0,r._abortAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function tp(r){No(r,Qs,0),En(r)}function rp(r,i){try{return r._strategySizeAlgorithm(i)}catch(l){return Br(r,l),1}}function Zs(r){return r._strategyHWM-r._queueTotalSize}function np(r,i,l){try{No(r,i,l)}catch(_){Br(r,_);return}let h=r._controlledWritableStream;if(!et(h)&&h._state==="writable"){let _=ti(r);Zo(h,_)}En(r)}function En(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=_f(r);h===Qs?op(r):ip(r,h)}function Br(r,i){r._controlledWritableStream._state==="writable"&&el(r,i)}function op(r){let i=r._controlledWritableStream;Gf(i),jo(r);let l=r._closeAlgorithm();Pn(r),b(l,()=>(Wf(i),null),h=>(Hf(i,h),null))}function ip(r,i){let l=r._controlledWritableStream;Xf(l);let h=r._writeAlgorithm(i);b(h,()=>{zf(l);let _=l._state;if(jo(r),!et(l)&&_==="writable"){let w=ti(r);Zo(l,w)}return En(r),null},_=>(l._state==="writable"&&Pn(r),Vf(l,_),null))}function ti(r){return Zs(r)<=0}function el(r,i){let l=r._controlledWritableStream;Pn(r),Qo(l,i)}function Ln(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 Ht(r){return new TypeError(`WritableStreamDefaultWriter.prototype.${r} can only be used on a WritableStreamDefaultWriter`)}function qr(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 tl(r,i){xn(r),ni(r,i)}function ap(r){xn(r),rl(r)}function ni(r,i){r._closedPromise_reject!==void 0&&(T(r._closedPromise),r._closedPromise_reject(i),r._closedPromise_resolve=void 0,r._closedPromise_reject=void 0,r._closedPromiseState="rejected")}function sp(r,i){tl(r,i)}function rl(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 An(r){r._readyPromise=d((i,l)=>{r._readyPromise_resolve=i,r._readyPromise_reject=l}),r._readyPromiseState="pending"}function oi(r,i){An(r),ol(r,i)}function nl(r){An(r),ii(r)}function ol(r,i){r._readyPromise_reject!==void 0&&(T(r._readyPromise),r._readyPromise_reject(i),r._readyPromise_resolve=void 0,r._readyPromise_reject=void 0,r._readyPromiseState="rejected")}function lp(r){An(r)}function up(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 cp(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let ai=cp();function dp(r){if(!(typeof r=="function"||typeof r=="object")||r.name!=="DOMException")return!1;try{return new r,!0}catch{return!1}}function fp(){let r=ai?.DOMException;return dp(r)?r:void 0}function pp(){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 hp=fp()||pp();function il(r,i,l,h,_,w){let S=sr(r),L=Vs(i);r._disturbed=!0;let j=!1,B=c(void 0);return d((N,W)=>{let re;if(w!==void 0){if(re=()=>{let M=w.reason!==void 0?w.reason:new hp("Aborted","AbortError"),K=[];h||K.push(()=>i._state==="writable"?Sn(i,M):c(void 0)),_||K.push(()=>r._state==="readable"?Ge(r,M):c(void 0)),Se(()=>Promise.all(K.map(ne=>ne())),!0,M)},w.aborted){re();return}w.addEventListener("abort",re)}function Xe(){return d((M,K)=>{function ne(Ae){Ae?M():m(mr(),ne,K)}ne(!1)})}function mr(){return j?c(!0):m(L._readyPromise,()=>d((M,K)=>{Cr(S,{_chunkSteps:ne=>{B=m(Ys(L,ne),void 0,e),M(!1)},_closeSteps:()=>M(!0),_errorSteps:K})}))}if(ct(r,S._closedPromise,M=>(h?qe(!0,M):Se(()=>Sn(i,M),!0,M),null)),ct(i,L._closedPromise,M=>(_?qe(!0,M):Se(()=>Ge(r,M),!0,M),null)),_e(r,S._closedPromise,()=>(l?qe():Se(()=>Qf(L)),null)),et(i)||i._state==="closed"){let M=new TypeError("the destination writable stream closed before all data could be piped to it");_?qe(!0,M):Se(()=>Ge(r,M),!0,M)}T(Xe());function kt(){let M=B;return m(B,()=>M!==B?kt():void 0)}function ct(M,K,ne){M._state==="errored"?ne(M._storedError):y(K,ne)}function _e(M,K,ne){M._state==="closed"?ne():g(K,ne)}function Se(M,K,ne){if(j)return;j=!0,i._state==="writable"&&!et(i)?g(kt(),Ae):Ae();function Ae(){return b(M(),()=>dt(K,ne),gr=>dt(!0,gr)),null}}function qe(M,K){j||(j=!0,i._state==="writable"&&!et(i)?g(kt(),()=>dt(M,K)):dt(M,K))}function dt(M,K){return Xs(L),D(S),w!==void 0&&w.removeEventListener("abort",re),M?W(K):N(void 0),null}})}class ut{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Tn(this))throw In("desiredSize");return si(this)}close(){if(!Tn(this))throw In("close");if(!pr(this))throw new TypeError("The stream is not in a state that permits close");Kt(this)}enqueue(i=void 0){if(!Tn(this))throw In("enqueue");if(!pr(this))throw new TypeError("The stream is not in a state that permits enqueue");return fr(this,i)}error(i=void 0){if(!Tn(this))throw In("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=jo(this);this._closeRequested&&this._queue.length===0?(kn(this),jr(l)):Mr(this),i._chunkSteps(h)}else hs(l,i),Mr(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 Tn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledReadableStream")?!1:r instanceof ut}function Mr(r){if(!al(r))return;if(r._pulling){r._pullAgain=!0;return}r._pulling=!0;let l=r._pullAlgorithm();b(l,()=>(r._pulling=!1,r._pullAgain&&(r._pullAgain=!1,Mr(r)),null),h=>(Ke(r,h),null))}function al(r){let i=r._controlledReadableStream;return!pr(r)||!r._started?!1:!!(At(i)&&dn(i)>0||si(r)>0)}function kn(r){r._pullAlgorithm=void 0,r._cancelAlgorithm=void 0,r._strategySizeAlgorithm=void 0}function Kt(r){if(!pr(r))return;let i=r._controlledReadableStream;r._closeRequested=!0,r._queue.length===0&&(kn(r),jr(i))}function fr(r,i){if(!pr(r))return;let l=r._controlledReadableStream;if(At(l)&&dn(l)>0)Bo(l,i,!1);else{let h;try{h=r._strategySizeAlgorithm(i)}catch(_){throw Ke(r,_),_}try{No(r,i,h)}catch(_){throw Ke(r,_),_}}Mr(r)}function Ke(r,i){let l=r._controlledReadableStream;l._state==="readable"&&(Pt(r),kn(r),cl(l,i))}function si(r){let i=r._controlledReadableStream._state;return i==="errored"?null:i==="closed"?0:r._strategyHWM-r._queueTotalSize}function mp(r){return!al(r)}function pr(r){let i=r._controlledReadableStream._state;return!r._closeRequested&&i==="readable"}function sl(r,i,l,h,_,w,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=w,i._pullAlgorithm=h,i._cancelAlgorithm=_,r._readableStreamController=i;let L=l();b(c(L),()=>(i._started=!0,Mr(i),null),j=>(Ke(i,j),null))}function gp(r,i,l,h){let _=Object.create(ut.prototype),w,S,L;i.start!==void 0?w=()=>i.start(_):w=()=>{},i.pull!==void 0?S=()=>i.pull(_):S=()=>c(void 0),i.cancel!==void 0?L=j=>i.cancel(j):L=()=>c(void 0),sl(r,_,w,S,L,l,h)}function In(r){return new TypeError(`ReadableStreamDefaultController.prototype.${r} can only be used on a ReadableStreamDefaultController`)}function _p(r,i){return Nt(r._readableStreamController)?yp(r):bp(r)}function bp(r,i){let l=sr(r),h=!1,_=!1,w=!1,S=!1,L,j,B,N,W,re=d(_e=>{W=_e});function Xe(){return h?(_=!0,c(void 0)):(h=!0,Cr(l,{_chunkSteps:Se=>{I(()=>{_=!1;let qe=Se,dt=Se;w||fr(B._readableStreamController,qe),S||fr(N._readableStreamController,dt),h=!1,_&&Xe()})},_closeSteps:()=>{h=!1,w||Kt(B._readableStreamController),S||Kt(N._readableStreamController),(!w||!S)&&W(void 0)},_errorSteps:()=>{h=!1}}),c(void 0))}function mr(_e){if(w=!0,L=_e,S){let Se=Dr([L,j]),qe=Ge(r,Se);W(qe)}return re}function kt(_e){if(S=!0,j=_e,w){let Se=Dr([L,j]),qe=Ge(r,Se);W(qe)}return re}function ct(){}return B=Ur(ct,Xe,mr),N=Ur(ct,Xe,kt),y(l._closedPromise,_e=>(Ke(B._readableStreamController,_e),Ke(N._readableStreamController,_e),(!w||!S)&&W(void 0),null)),[B,N]}function yp(r){let i=sr(r),l=!1,h=!1,_=!1,w=!1,S=!1,L,j,B,N,W,re=d(M=>{W=M});function Xe(M){y(M._closedPromise,K=>(M!==i||(Be(B._readableStreamController,K),Be(N._readableStreamController,K),(!w||!S)&&W(void 0)),null))}function mr(){Vt(i)&&(D(i),i=sr(r),Xe(i)),Cr(i,{_chunkSteps:K=>{I(()=>{h=!1,_=!1;let ne=K,Ae=K;if(!w&&!S)try{Ae=Es(K)}catch(gr){Be(B._readableStreamController,gr),Be(N._readableStreamController,gr),W(Ge(r,gr));return}w||gn(B._readableStreamController,ne),S||gn(N._readableStreamController,Ae),l=!1,h?ct():_&&_e()})},_closeSteps:()=>{l=!1,w||$r(B._readableStreamController),S||$r(N._readableStreamController),B._readableStreamController._pendingPullIntos.length>0&&_n(B._readableStreamController,0),N._readableStreamController._pendingPullIntos.length>0&&_n(N._readableStreamController,0),(!w||!S)&&W(void 0)},_errorSteps:()=>{l=!1}})}function kt(M,K){St(i)&&(D(i),i=qs(r),Xe(i));let ne=K?N:B,Ae=K?B:N;js(i,M,1,{_chunkSteps:_r=>{I(()=>{h=!1,_=!1;let br=K?S:w;if(K?w:S)br||bn(ne._readableStreamController,_r);else{let Rl;try{Rl=Es(_r)}catch(fi){Be(ne._readableStreamController,fi),Be(Ae._readableStreamController,fi),W(Ge(r,fi));return}br||bn(ne._readableStreamController,_r),gn(Ae._readableStreamController,Rl)}l=!1,h?ct():_&&_e()})},_closeSteps:_r=>{l=!1;let br=K?S:w,Mn=K?w:S;br||$r(ne._readableStreamController),Mn||$r(Ae._readableStreamController),_r!==void 0&&(br||bn(ne._readableStreamController,_r),!Mn&&Ae._readableStreamController._pendingPullIntos.length>0&&_n(Ae._readableStreamController,0)),(!br||!Mn)&&W(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?mr():kt(M._view,!1),c(void 0)}function _e(){if(l)return _=!0,c(void 0);l=!0;let M=Ko(N._readableStreamController);return M===null?mr():kt(M._view,!0),c(void 0)}function Se(M){if(w=!0,L=M,S){let K=Dr([L,j]),ne=Ge(r,K);W(ne)}return re}function qe(M){if(S=!0,j=M,w){let K=Dr([L,j]),ne=Ge(r,K);W(ne)}return re}function dt(){}return B=ul(dt,ct,Se),N=ul(dt,_e,qe),Xe(i),[B,N]}function wp(r){return t(r)&&typeof r.getReader<"u"}function vp(r){return wp(r)?Rp(r.getReader()):Sp(r)}function Sp(r){let i,l=Ps(r,"async"),h=e;function _(){let S;try{S=pf(l)}catch(j){return p(j)}let L=c(S);return R(L,j=>{if(!t(j))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(hf(j))Kt(i._readableStreamController);else{let N=mf(j);fr(i._readableStreamController,N)}})}function w(S){let L=l.iterator,j;try{j=pn(L,"return")}catch(W){return p(W)}if(j===void 0)return c(void 0);let B;try{B=E(j,L,[S])}catch(W){return p(W)}let N=c(B);return R(N,W=>{if(!t(W))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return i=Ur(h,_,w,0),i}function Rp(r){let i,l=e;function h(){let w;try{w=r.read()}catch(S){return p(S)}return R(w,S=>{if(!t(S))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(S.done)Kt(i._readableStreamController);else{let L=S.value;fr(i._readableStreamController,L)}})}function _(w){try{return c(r.cancel(w))}catch(S){return p(S)}}return i=Ur(l,h,_,0),i}function Pp(r,i){Ze(r,i);let l=r,h=l?.autoAllocateChunkSize,_=l?.cancel,w=l?.pull,S=l?.start,L=l?.type;return{autoAllocateChunkSize:h===void 0?void 0:Oo(h,`${i} has member 'autoAllocateChunkSize' that`),cancel:_===void 0?void 0:Ep(_,l,`${i} has member 'cancel' that`),pull:w===void 0?void 0:Lp(w,l,`${i} has member 'pull' that`),start:S===void 0?void 0:xp(S,l,`${i} has member 'start' that`),type:L===void 0?void 0:Ap(L,`${i} has member 'type' that`)}}function Ep(r,i,l){return Fe(r,l),h=>te(r,i,[h])}function Lp(r,i,l){return Fe(r,l),h=>te(r,i,[h])}function xp(r,i,l){return Fe(r,l),h=>E(r,i,[h])}function Ap(r,i){if(r=`${r}`,r!=="bytes")throw new TypeError(`${i} '${r}' is not a valid enumeration value for ReadableStreamType`);return r}function Tp(r,i){return Ze(r,i),{preventCancel:!!r?.preventCancel}}function ll(r,i){Ze(r,i);let l=r?.preventAbort,h=r?.preventCancel,_=r?.preventClose,w=r?.signal;return w!==void 0&&kp(w,`${i} has member 'signal' that`),{preventAbort:!!l,preventCancel:!!h,preventClose:!!_,signal:w}}function kp(r,i){if(!qf(r))throw new TypeError(`${i} is not an AbortSignal.`)}function Ip(r,i){Ze(r,i);let l=r?.readable;Do(l,"readable","ReadableWritablePair"),Fo(l,`${i} has member 'readable' that`);let h=r?.writable;return Do(h,"writable","ReadableWritablePair"),zs(h,`${i} has member 'writable' that`),{readable:l,writable:h}}class me{constructor(i={},l={}){i===void 0?i=null:fs(i,"First parameter");let h=vn(l,"Second parameter"),_=Pp(i,"First parameter");if(li(this),_.type==="bytes"){if(h.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let w=Fr(h,0);Ef(this,_,w)}else{let w=wn(h),S=Fr(h,1);gp(this,_,S,w)}}get locked(){if(!xt(this))throw Gt("locked");return At(this)}cancel(i=void 0){return xt(this)?At(this)?p(new TypeError("Cannot cancel a stream that already has a reader")):Ge(this,i):p(Gt("cancel"))}getReader(i=void 0){if(!xt(this))throw Gt("getReader");return xf(i,"First parameter").mode===void 0?sr(this):qs(this)}pipeThrough(i,l={}){if(!xt(this))throw Gt("pipeThrough");it(i,1,"pipeThrough");let h=Ip(i,"First parameter"),_=ll(l,"Second parameter");if(At(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(cr(h.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let w=il(this,h.writable,_.preventClose,_.preventAbort,_.preventCancel,_.signal);return T(w),h.readable}pipeTo(i,l={}){if(!xt(this))return p(Gt("pipeTo"));if(i===void 0)return p("Parameter 1 is required in 'pipeTo'.");if(!ur(i))return p(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let h;try{h=ll(l,"Second parameter")}catch(_){return p(_)}return At(this)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):cr(i)?p(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):il(this,i,h.preventClose,h.preventAbort,h.preventCancel,h.signal)}tee(){if(!xt(this))throw Gt("tee");let i=_p(this);return Dr(i)}values(i=void 0){if(!xt(this))throw Gt("values");let l=Tp(i,"First parameter");return df(this,l.preventCancel)}[Uo](i){return this.values(i)}static from(i){return vp(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 Ur(r,i,l,h=1,_=()=>1){let w=Object.create(me.prototype);li(w);let S=Object.create(ut.prototype);return sl(w,S,r,i,l,h,_),w}function ul(r,i,l){let h=Object.create(me.prototype);li(h);let _=Object.create(st.prototype);return Bs(h,_,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 xt(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);jr(r);let l=r._reader;if(l!==void 0&&Vt(l)){let _=l._readIntoRequests;l._readIntoRequests=new X,_.forEach(w=>{w._closeSteps(void 0)})}let h=r._readableStreamController[He](i);return R(h,e)}function jr(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 cl(r,i){r._state="errored",r._storedError=i;let l=r._reader;l!==void 0&&(we(l,i),St(l)?gs(l,i):Ns(l,i))}function Gt(r){return new TypeError(`ReadableStream.prototype.${r} can only be used on a ReadableStream`)}function dl(r,i){Ze(r,i);let l=r?.highWaterMark;return Do(l,"highWaterMark","QueuingStrategyInit"),{highWaterMark:$o(l)}}let fl=r=>r.byteLength;o(fl,"size");class Cn{constructor(i){it(i,1,"ByteLengthQueuingStrategy"),i=dl(i,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=i.highWaterMark}get highWaterMark(){if(!hl(this))throw pl("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!hl(this))throw pl("size");return fl}}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 pl(r){return new TypeError(`ByteLengthQueuingStrategy.prototype.${r} can only be used on a ByteLengthQueuingStrategy`)}function hl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_byteLengthQueuingStrategyHighWaterMark")?!1:r instanceof Cn}let ml=()=>1;o(ml,"size");class Dn{constructor(i){it(i,1,"CountQueuingStrategy"),i=dl(i,"First parameter"),this._countQueuingStrategyHighWaterMark=i.highWaterMark}get highWaterMark(){if(!_l(this))throw gl("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!_l(this))throw gl("size");return ml}}Object.defineProperties(Dn.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Dn.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function gl(r){return new TypeError(`CountQueuingStrategy.prototype.${r} can only be used on a CountQueuingStrategy`)}function _l(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_countQueuingStrategyHighWaterMark")?!1:r instanceof Dn}function Cp(r,i){Ze(r,i);let l=r?.cancel,h=r?.flush,_=r?.readableType,w=r?.start,S=r?.transform,L=r?.writableType;return{cancel:l===void 0?void 0:Fp(l,r,`${i} has member 'cancel' that`),flush:h===void 0?void 0:Dp(h,r,`${i} has member 'flush' that`),readableType:_,start:w===void 0?void 0:$p(w,r,`${i} has member 'start' that`),transform:S===void 0?void 0:Op(S,r,`${i} has member 'transform' that`),writableType:L}}function Dp(r,i,l){return Fe(r,l),h=>te(r,i,[h])}function $p(r,i,l){return Fe(r,l),h=>E(r,i,[h])}function Op(r,i,l){return Fe(r,l),(h,_)=>te(r,i,[h,_])}function Fp(r,i,l){return Fe(r,l),h=>te(r,i,[h])}class $n{constructor(i={},l={},h={}){i===void 0&&(i=null);let _=vn(l,"Second parameter"),w=vn(h,"Third parameter"),S=Cp(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 L=Fr(w,0),j=wn(w),B=Fr(_,1),N=wn(_),W,re=d(Xe=>{W=Xe});Bp(this,re,B,N,L,j),Mp(this,S),S.start!==void 0?W(S.start(this._transformStreamController)):W(void 0)}get readable(){if(!bl(this))throw Sl("readable");return this._readable}get writable(){if(!bl(this))throw Sl("writable");return this._writable}}Object.defineProperties($n.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty($n.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function Bp(r,i,l,h,_,w){function S(){return i}function L(re){return Np(r,re)}function j(re){return zp(r,re)}function B(){return Vp(r)}r._writable=jf(S,L,B,j,l,h);function N(){return Wp(r)}function W(re){return Hp(r,re)}r._readable=Ur(S,N,W,_,w),r._backpressure=void 0,r._backpressureChangePromise=void 0,r._backpressureChangePromise_resolve=void 0,On(r,!0),r._transformStreamController=void 0}function bl(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_transformStreamController")?!1:r instanceof $n}function yl(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&&On(r,!1)}function On(r,i){r._backpressureChangePromise!==void 0&&r._backpressureChangePromise_resolve(),r._backpressureChangePromise=d(l=>{r._backpressureChangePromise_resolve=l}),r._backpressure=i}class Tt{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!Fn(this))throw qn("desiredSize");let i=this._controlledTransformStream._readable._readableStreamController;return si(i)}enqueue(i=void 0){if(!Fn(this))throw qn("enqueue");wl(this,i)}error(i=void 0){if(!Fn(this))throw qn("error");Up(this,i)}terminate(){if(!Fn(this))throw qn("terminate");jp(this)}}Object.defineProperties(Tt.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),o(Tt.prototype.enqueue,"enqueue"),o(Tt.prototype.error,"error"),o(Tt.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Tt.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function Fn(r){return!t(r)||!Object.prototype.hasOwnProperty.call(r,"_controlledTransformStream")?!1:r instanceof Tt}function qp(r,i,l,h,_){i._controlledTransformStream=r,r._transformStreamController=i,i._transformAlgorithm=l,i._flushAlgorithm=h,i._cancelAlgorithm=_,i._finishPromise=void 0,i._finishPromise_resolve=void 0,i._finishPromise_reject=void 0}function Mp(r,i){let l=Object.create(Tt.prototype),h,_,w;i.transform!==void 0?h=S=>i.transform(S,l):h=S=>{try{return wl(l,S),c(void 0)}catch(L){return p(L)}},i.flush!==void 0?_=()=>i.flush(l):_=()=>c(void 0),i.cancel!==void 0?w=S=>i.cancel(S):w=()=>c(void 0),qp(r,l,h,_,w)}function Bn(r){r._transformAlgorithm=void 0,r._flushAlgorithm=void 0,r._cancelAlgorithm=void 0}function wl(r,i){let l=r._controlledTransformStream,h=l._readable._readableStreamController;if(!pr(h))throw new TypeError("Readable side is not in a state that permits enqueue");try{fr(h,i)}catch(w){throw ui(l,w),l._readable._storedError}mp(h)!==l._backpressure&&On(l,!0)}function Up(r,i){yl(r._controlledTransformStream,i)}function vl(r,i){let l=r._transformAlgorithm(i);return R(l,void 0,h=>{throw yl(r._controlledTransformStream,h),h})}function jp(r){let i=r._controlledTransformStream,l=i._readable._readableStreamController;Kt(l);let h=new TypeError("TransformStream terminated");ui(i,h)}function Np(r,i){let l=r._transformStreamController;if(r._backpressure){let h=r._backpressureChangePromise;return R(h,()=>{let _=r._writable;if(_._state==="erroring")throw _._storedError;return vl(l,i)})}return vl(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((w,S)=>{l._finishPromise_resolve=w,l._finishPromise_reject=S});let _=l._cancelAlgorithm(i);return Bn(l),b(_,()=>(h._state==="errored"?hr(l,h._storedError):(Ke(h._readableStreamController,i),di(l)),null),w=>(Ke(h._readableStreamController,w),hr(l,w),null)),l._finishPromise}function Vp(r){let i=r._transformStreamController;if(i._finishPromise!==void 0)return i._finishPromise;let l=r._readable;i._finishPromise=d((_,w)=>{i._finishPromise_resolve=_,i._finishPromise_reject=w});let h=i._flushAlgorithm();return Bn(i),b(h,()=>(l._state==="errored"?hr(i,l._storedError):(Kt(l._readableStreamController),di(i)),null),_=>(Ke(l._readableStreamController,_),hr(i,_),null)),i._finishPromise}function Wp(r){return On(r,!1),r._backpressureChangePromise}function Hp(r,i){let l=r._transformStreamController;if(l._finishPromise!==void 0)return l._finishPromise;let h=r._writable;l._finishPromise=d((w,S)=>{l._finishPromise_resolve=w,l._finishPromise_reject=S});let _=l._cancelAlgorithm(i);return Bn(l),b(_,()=>(h._state==="errored"?hr(l,h._storedError):(Br(h._writableStreamController,i),ci(r),di(l)),null),w=>(Br(h._writableStreamController,w),ci(r),hr(l,w),null)),l._finishPromise}function qn(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 hr(r,i){r._finishPromise_reject!==void 0&&(T(r._finishPromise),r._finishPromise_reject(i),r._finishPromise_resolve=void 0,r._finishPromise_reject=void 0)}function Sl(r){return new TypeError(`TransformStream.prototype.${r} can only be used on a TransformStream`)}a.ByteLengthQueuingStrategy=Cn,a.CountQueuingStrategy=Dn,a.ReadableByteStreamController=st,a.ReadableStream=me,a.ReadableStreamBYOBReader=Et,a.ReadableStreamBYOBRequest=jt,a.ReadableStreamDefaultController=ut,a.ReadableStreamDefaultReader=vt,a.TransformStream=$n,a.TransformStreamDefaultController=Tt,a.WritableStream=Lt,a.WritableStreamDefaultController=dr,a.WritableStreamDefaultWriter=lt})});var eu=O(()=>{"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,Zl())}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,tu),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+tu)).arrayBuffer();n+=u.byteLength,yield new Uint8Array(u)}}}var Ub,tu,ru,Zh,ft,zr=J(()=>{"use strict";Ub=le(eu(),1);tu=65536;ru=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 b of d){if(p>=f)break;let g=ArrayBuffer.isView(b)?b.byteLength:b.size;if(s&&g<=s)s-=g,u-=g;else{let y;ArrayBuffer.isView(b)?(y=b.subarray(s,Math.min(g,u)),p+=y.byteLength):(y=b.slice(s,Math.min(g,u)),p+=y.size),u-=g,c.push(y),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(ru.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});Zh=ru,ft=Zh});var em,tm,yr,Ni=J(()=>{"use strict";zr();em=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])}},tm=em,yr=tm});function iu(a,e=ft){var t=`${nu()}${nu()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),n=[],o=`--${t}\r
3197
+ Content-Disposition: form-data; name="`;return a.forEach((s,u)=>typeof s=="string"?n.push(o+zi(u)+`"\r
2981
3198
  \r
2982
3199
  ${s.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
2983
3200
  `)}\r
2984
- `):n.push(i+jo(u)+`"; filename="${jo(s.name,1)}"\r
3201
+ `):n.push(o+zi(u)+`"; filename="${zi(s.name,1)}"\r
2985
3202
  Content-Type: ${s.type||"application/octet-stream"}\r
2986
3203
  \r
2987
3204
  `,s,`\r
2988
- `)),n.push(`--${t}--`),new e(n,{type:"multipart/form-data; boundary="+t})}var zr,Gh,Xh,Zl,Yh,eu,jo,Qt,Jt,Kn=te(()=>{"use strict";Vr();No();({toStringTag:zr,iterator:Gh,hasInstance:Xh}=Symbol),Zl=Math.random,Yh="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),eu=(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 yr([e],t,e):e]:[a,e+""]),jo=(a,e)=>(e?a:a.replace(/\r?\n|\r/g,`\r
2989
- `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Qt=(a,e,t)=>{if(e.length<t)throw new TypeError(`Failed to execute '${a}' on 'FormData': ${t} arguments required, but only ${e.length} present.`)},Jt=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"}[Gh](){return this.entries()}static[Xh](e){return e&&typeof e=="object"&&e[zr]==="FormData"&&!Yh.some(t=>typeof e[t]!="function")}append(...e){Qt("append",arguments,2),this.#e.push(eu(...e))}delete(e){Qt("delete",arguments,1),e+="",this.#e=this.#e.filter(([t])=>t!==e)}get(e){Qt("get",arguments,1),e+="";for(var t=this.#e,n=t.length,i=0;i<n;i++)if(t[i][0]===e)return t[i][1];return null}getAll(e,t){return Qt("getAll",arguments,1),t=[],e+="",this.#e.forEach(n=>n[0]===e&&t.push(n[1])),t}has(e){return Qt("has",arguments,1),e+="",this.#e.some(t=>t[0]===e)}forEach(e,t){Qt("forEach",arguments,1);for(var[n,i]of this)e.call(t,i,n,this)}set(...e){Qt("set",arguments,2);var t=[],n=!0;e=eu(...e),this.#e.forEach(i=>{i[0]===e[0]?n&&(n=!t.push(e)):t.push(i)}),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 au=F((Wb,ou)=>{"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)}ou.exports=globalThis.DOMException});var Xn,Qh,Gb,zo=te(()=>{"use strict";Xn=require("node:fs"),Qh=le(au(),1);No();Vr();({stat:Gb}=Xn.promises)});var lu={};ne(lu,{toFormData:()=>im});function nm(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,(i,s)=>String.fromCharCode(s)),n}async function im(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 Wo(t[1]||t[2]),i,s,u,f,d,c,p=[],_=new Jt,b=E=>{u+=A.decode(E,{stream:!0})},g=E=>{p.push(E)},y=()=>{let E=new yr(p,c,{type:d});_.append(f,E)},S=()=>{_.append(f,u)},A=new TextDecoder("utf-8");A.decode(),n.onPartBegin=function(){n.onPartData=b,n.onPartEnd=S,i="",s="",u="",f="",d="",c=null,p.length=0},n.onHeaderField=function(E){i+=A.decode(E,{stream:!0})},n.onHeaderValue=function(E){s+=A.decode(E,{stream:!0})},n.onHeaderEnd=function(){if(s+=A.decode(),i=i.toLowerCase(),i==="content-disposition"){let E=s.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);E&&(f=E[2]||E[3]||""),c=nm(s),c&&(n.onPartData=g,n.onPartEnd=y)}else i==="content-type"&&(d=s);s="",i=""};for await(let E of a)n.write(E);return n.end(),_}var tt,ie,su,Ct,Yn,Qn,Jh,Hr,Zh,em,tm,rm,Zt,Wo,uu=te(()=>{"use strict";zo();Kn();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++},su=1,Ct={PART_BOUNDARY:su,LAST_BOUNDARY:su*=2},Yn=10,Qn=13,Jh=32,Hr=45,Zh=58,em=97,tm=122,rm=a=>a|32,Zt=()=>{},Wo=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=Zt,this.onHeaderField=Zt,this.onHeadersEnd=Zt,this.onHeaderValue=Zt,this.onPartBegin=Zt,this.onPartData=Zt,this.onPartEnd=Zt,this.boundaryChars={},e=`\r
2990
- --`+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,i=this.index,{lookbehind:s,boundary:u,boundaryChars:f,index:d,state:c,flags:p}=this,_=this.boundary.length,b=_-1,g=e.length,y,S,A=G=>{this[G+"Mark"]=t},E=G=>{delete this[G+"Mark"]},L=(G,X,J,We)=>{(X===void 0||X!==J)&&this[G](We&&We.subarray(X,J))},Q=(G,X)=>{let J=G+"Mark";J in this&&(X?(L(G,this[J],t,e),delete this[J]):(L(G,this[J],e.length,e),this[J]=0))};for(t=0;t<n;t++)switch(y=e[t],c){case ie.START_BOUNDARY:if(d===u.length-2){if(y===Hr)p|=Ct.LAST_BOUNDARY;else if(y!==Qn)return;d++;break}else if(d-1===u.length-2){if(p&Ct.LAST_BOUNDARY&&y===Hr)c=ie.END,p=0;else if(!(p&Ct.LAST_BOUNDARY)&&y===Yn)d=0,L("onPartBegin"),c=ie.HEADER_FIELD_START;else return;break}y!==u[d+2]&&(d=-2),y===u[d+2]&&d++;break;case ie.HEADER_FIELD_START:c=ie.HEADER_FIELD,A("onHeaderField"),d=0;case ie.HEADER_FIELD:if(y===Qn){E("onHeaderField"),c=ie.HEADERS_ALMOST_DONE;break}if(d++,y===Hr)break;if(y===Zh){if(d===1)return;Q("onHeaderField",!0),c=ie.HEADER_VALUE_START;break}if(S=rm(y),S<em||S>tm)return;break;case ie.HEADER_VALUE_START:if(y===Jh)break;A("onHeaderValue"),c=ie.HEADER_VALUE;case ie.HEADER_VALUE:y===Qn&&(Q("onHeaderValue",!0),L("onHeaderEnd"),c=ie.HEADER_VALUE_ALMOST_DONE);break;case ie.HEADER_VALUE_ALMOST_DONE:if(y!==Yn)return;c=ie.HEADER_FIELD_START;break;case ie.HEADERS_ALMOST_DONE:if(y!==Yn)return;L("onHeadersEnd"),c=ie.PART_DATA_START;break;case ie.PART_DATA_START:c=ie.PART_DATA,A("onPartData");case ie.PART_DATA:if(i=d,d===0){for(t+=b;t<g&&!(e[t]in f);)t+=_;t-=b,y=e[t]}if(d<u.length)u[d]===y?(d===0&&Q("onPartData",!0),d++):d=0;else if(d===u.length)d++,y===Qn?p|=Ct.PART_BOUNDARY:y===Hr?p|=Ct.LAST_BOUNDARY:d=0;else if(d-1===u.length)if(p&Ct.PART_BOUNDARY){if(d=0,y===Yn){p&=~Ct.PART_BOUNDARY,L("onPartEnd"),L("onPartBegin"),c=ie.HEADER_FIELD_START;break}}else p&Ct.LAST_BOUNDARY&&y===Hr?(L("onPartEnd"),c=ie.END,p=0):d=0;if(d>0)s[d-1]=y;else if(i>0){let G=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);L("onPartData",0,i,G),i=0,A("onPartData"),t--}break;case ie.END:break;default:throw new Error(`Unexpected state entered: ${c}`)}Q("onHeaderField"),Q("onHeaderValue"),Q("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 Lu=F((By,fm)=>{fm.exports=jn("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")});var xu=F((My,pm)=>{pm.exports=jn("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vHBBuEm4KNwsXBIuC1eEq8I14bpwB+ON8KPwVngnvBc+CD8JH4WfhU/CZ+GL8FX4JnwX/mCCEWEUwYrgRPAiBBEmEaIIswhJhCxCEaGK0EToIhzMZMQ0ismKyYnJiymIaRJTFNMspiSmLKYipiqmJqYupoOJRsRRRCuiE9GLGEScRIwiziImEbOIRcQqYhOxi3gwsxHzKGYrZidmL+Yg5knMUcyzmJOYs5iLmKuYm5i7mA8mGZFGkaxITiQvUhBpEimKNIuURMoiFZGqSE2kLtLBZCPyKLIV2YnsRQ4iTyJHkWeRk8hZ5CJyFbmJ3EU+mGJEGUWxojhRvChBlEmUKMosShIli1JEqaI0UbooB1ONqKOoVlQnqhc1iDqJGkWdRU2iZlGLqFXUJmoX9WCaEW0UzYrmRPOiBdEm0aJos2hJtCxaEa2K1kTroh1MN6KPolvRnehe9CD6JHoUfRY9iZ5FL6JX0ZvoXfSDWYxYRrFYsTixeLEEsUxiiWKZxZLEksVSxFLF0sTSxbLcffoXUEsHCPayQzc8AwAACQYAAFBLAQItAxQACAAIALCKTlnZ9YQOsQIAANAIAAAkAAAAAAAAAAAAIAC2gQAAAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjEvY29udHJvbC5sdWFQSwECLQMUAAgACAC0vUVYjnqNvQUBAAAQAgAAIQAAAAAAAAAAACAAtoEDAwAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4xL2RhdGEubHVhUEsBAi0DFAAIAAgA7GZVWXyB3ISaAAAA2AAAACIAAAAAAAAAAAAgALaBVwQAAGRlYnVnYWRhcHRlci10ZXN0c18yLjAuMS9pbmZvLmpzb25QSwECLQMUAAgACAAlra1WUqj09c4AAAAwAQAAMgAAAAAAAAAAACAAtoFBBQAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4xL3NjZW5hcmlvcy9ydW4vY29udHJvbC5sdWFQSwECLQMUAAgACABpiTBWlI5GUD4AAAA+AAAAOAAAAAAAAAAAACAAtoFvBgAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4xL3NjZW5hcmlvcy90ZXJtaW5hdGUvY29udHJvbC5sdWFQSwECLQMUAAgACABNgopY9MHnEycBAAByBAAANAAAAAAAAAAAACAAtoETBwAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4xL3NjZW5hcmlvcy90aHJvdy9jb250cm9sLmx1YVBLAQItAxQACAAIAA8TfVf2skM3PAMAAAkGAAAlAAAAAAAAAAAAIAC2gZwIAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjEvc2V0dGluZ3MubHVhUEsFBgAAAAAHAAcAbAIAACsMAAAAAA==")});var ai=F(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.Event=Bt.Response=Bt.Message=void 0;var Jr=class{constructor(e){this.seq=0,this.type=e}};Bt.Message=Jr;var ta=class extends Jr{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=ta;var ra=class extends Jr{constructor(e,t){super("event"),this.event=e,t&&(this.body=t)}};Bt.Event=ra});var ku=F(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});li.ProtocolServer=void 0;var gm=require("events"),Zr=ai(),na=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}},si=class a extends gm.EventEmitter{constructor(){super(),this._sendMessage=new na,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 Zr.Event("close"))}),e.on("error",n=>{this._emitEvent(new Zr.Event("error","inStream error: "+(n&&n.message)))}),t.on("error",n=>{this._emitEvent(new Zr.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,i){let s={command:e};if(t&&Object.keys(t).length>0&&(s.arguments=t),this._send("request",s),i){this._pendingRequests.set(s.seq,i);let u=setTimeout(()=>{clearTimeout(u);let f=this._pendingRequests.get(s.seq);f&&(this._pendingRequests.delete(s.seq),f(new Zr.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
3205
+ `)),n.push(`--${t}--`),new e(n,{type:"multipart/form-data; boundary="+t})}var Vr,rm,nm,nu,om,ou,zi,Qt,Jt,Hn=J(()=>{"use strict";zr();Ni();({toStringTag:Vr,iterator:rm,hasInstance:nm}=Symbol),nu=Math.random,om="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),ou=(a,e,t)=>(a+="",/^(Blob|File)$/.test(e&&e[Vr])?[(t=t!==void 0?t+"":e[Vr]=="File"?e.name:"blob",a),e.name!==t||e[Vr]=="blob"?new yr([e],t,e):e]:[a,e+""]),zi=(a,e)=>(e?a:a.replace(/\r?\n|\r/g,`\r
3206
+ `)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),Qt=(a,e,t)=>{if(e.length<t)throw new TypeError(`Failed to execute '${a}' on 'FormData': ${t} arguments required, but only ${e.length} present.`)},Jt=class{#e=[];constructor(...e){if(e.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[Vr](){return"FormData"}[rm](){return this.entries()}static[nm](e){return e&&typeof e=="object"&&e[Vr]==="FormData"&&!om.some(t=>typeof e[t]!="function")}append(...e){Qt("append",arguments,2),this.#e.push(ou(...e))}delete(e){Qt("delete",arguments,1),e+="",this.#e=this.#e.filter(([t])=>t!==e)}get(e){Qt("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 Qt("getAll",arguments,1),t=[],e+="",this.#e.forEach(n=>n[0]===e&&t.push(n[1])),t}has(e){return Qt("has",arguments,1),e+="",this.#e.some(t=>t[0]===e)}forEach(e,t){Qt("forEach",arguments,1);for(var[n,o]of this)e.call(t,o,n,this)}set(...e){Qt("set",arguments,2);var t=[],n=!0;e=ou(...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 cu=O((Zb,uu)=>{"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)}uu.exports=globalThis.DOMException});var Gn,im,ry,Wi=J(()=>{"use strict";Gn=require("node:fs"),im=le(cu(),1);Ni();zr();({stat:ry}=Gn.promises)});var fu={};Z(fu,{toFormData:()=>fm});function dm(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 fm(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 Hi(t[1]||t[2]),o,s,u,f,d,c,p=[],m=new Jt,b=I=>{u+=T.decode(I,{stream:!0})},g=I=>{p.push(I)},y=()=>{let I=new yr(p,c,{type:d});m.append(f,I)},R=()=>{m.append(f,u)},T=new TextDecoder("utf-8");T.decode(),n.onPartBegin=function(){n.onPartData=b,n.onPartEnd=R,o="",s="",u="",f="",d="",c=null,p.length=0},n.onHeaderField=function(I){o+=T.decode(I,{stream:!0})},n.onHeaderValue=function(I){s+=T.decode(I,{stream:!0})},n.onHeaderEnd=function(){if(s+=T.decode(),o=o.toLowerCase(),o==="content-disposition"){let I=s.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);I&&(f=I[2]||I[3]||""),c=dm(s),c&&(n.onPartData=g,n.onPartEnd=y)}else o==="content-type"&&(d=s);s="",o=""};for await(let I of a)n.write(I);return n.end(),m}var tt,oe,du,Ct,Xn,Yn,am,Hr,sm,lm,um,cm,Zt,Hi,pu=J(()=>{"use strict";Wi();Hn();tt=0,oe={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++},du=1,Ct={PART_BOUNDARY:du,LAST_BOUNDARY:du*=2},Xn=10,Yn=13,am=32,Hr=45,sm=58,lm=97,um=122,cm=a=>a|32,Zt=()=>{},Hi=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=Zt,this.onHeaderField=Zt,this.onHeadersEnd=Zt,this.onHeaderValue=Zt,this.onPartBegin=Zt,this.onPartData=Zt,this.onPartEnd=Zt,this.boundaryChars={},e=`\r
3207
+ --`+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=oe.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,b=m-1,g=e.length,y,R,T=G=>{this[G+"Mark"]=t},I=G=>{delete this[G+"Mark"]},E=(G,X,Q,We)=>{(X===void 0||X!==Q)&&this[G](We&&We.subarray(X,Q))},te=(G,X)=>{let Q=G+"Mark";Q in this&&(X?(E(G,this[Q],t,e),delete this[Q]):(E(G,this[Q],e.length,e),this[Q]=0))};for(t=0;t<n;t++)switch(y=e[t],c){case oe.START_BOUNDARY:if(d===u.length-2){if(y===Hr)p|=Ct.LAST_BOUNDARY;else if(y!==Yn)return;d++;break}else if(d-1===u.length-2){if(p&Ct.LAST_BOUNDARY&&y===Hr)c=oe.END,p=0;else if(!(p&Ct.LAST_BOUNDARY)&&y===Xn)d=0,E("onPartBegin"),c=oe.HEADER_FIELD_START;else return;break}y!==u[d+2]&&(d=-2),y===u[d+2]&&d++;break;case oe.HEADER_FIELD_START:c=oe.HEADER_FIELD,T("onHeaderField"),d=0;case oe.HEADER_FIELD:if(y===Yn){I("onHeaderField"),c=oe.HEADERS_ALMOST_DONE;break}if(d++,y===Hr)break;if(y===sm){if(d===1)return;te("onHeaderField",!0),c=oe.HEADER_VALUE_START;break}if(R=cm(y),R<lm||R>um)return;break;case oe.HEADER_VALUE_START:if(y===am)break;T("onHeaderValue"),c=oe.HEADER_VALUE;case oe.HEADER_VALUE:y===Yn&&(te("onHeaderValue",!0),E("onHeaderEnd"),c=oe.HEADER_VALUE_ALMOST_DONE);break;case oe.HEADER_VALUE_ALMOST_DONE:if(y!==Xn)return;c=oe.HEADER_FIELD_START;break;case oe.HEADERS_ALMOST_DONE:if(y!==Xn)return;E("onHeadersEnd"),c=oe.PART_DATA_START;break;case oe.PART_DATA_START:c=oe.PART_DATA,T("onPartData");case oe.PART_DATA:if(o=d,d===0){for(t+=b;t<g&&!(e[t]in f);)t+=m;t-=b,y=e[t]}if(d<u.length)u[d]===y?(d===0&&te("onPartData",!0),d++):d=0;else if(d===u.length)d++,y===Yn?p|=Ct.PART_BOUNDARY:y===Hr?p|=Ct.LAST_BOUNDARY:d=0;else if(d-1===u.length)if(p&Ct.PART_BOUNDARY){if(d=0,y===Xn){p&=~Ct.PART_BOUNDARY,E("onPartEnd"),E("onPartBegin"),c=oe.HEADER_FIELD_START;break}}else p&Ct.LAST_BOUNDARY&&y===Hr?(E("onPartEnd"),c=oe.END,p=0):d=0;if(d>0)s[d-1]=y;else if(o>0){let G=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);E("onPartData",0,o,G),o=0,T("onPartData"),t--}break;case oe.END:break;default:throw new Error(`Unexpected state entered: ${c}`)}te("onHeaderField"),te("onHeaderValue"),te("onPartData"),this.index=d,this.state=c,this.flags=p}end(){if(this.state===oe.HEADER_FIELD_START&&this.index===0||this.state===oe.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==oe.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}});var ku=O((Wy,wm)=>{wm.exports=jn("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")});var Iu=O((Ky,vm)=>{vm.exports=jn("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vHBBuEm4KNwsXBIuC1eEq8I14bpwB+ON8KPwVngnvBc+CD8JH4WfhU/CZ+GL8FX4JnwX/mCCEWEUwYrgRPAiBBEmEaIIswhJhCxCEaGK0EToIhzMZMQ0ismKyYnJiymIaRJTFNMspiSmLKYipiqmJqYupoOJRsRRRCuiE9GLGEScRIwiziImEbOIRcQqYhOxi3gwsxHzKGYrZidmL+Yg5knMUcyzmJOYs5iLmKuYm5i7mA8mGZFGkaxITiQvUhBpEimKNIuURMoiFZGqSE2kLtLBZCPyKLIV2YnsRQ4iTyJHkWeRk8hZ5CJyFbmJ3EU+mGJEGUWxojhRvChBlEmUKMosShIli1JEqaI0UbooB1ONqKOoVlQnqhc1iDqJGkWdRU2iZlGLqFXUJmoX9WCaEW0UzYrmRPOiBdEm0aJos2hJtCxaEa2K1kTroh1MN6KPolvRnehe9CD6JHoUfRY9iZ5FL6JX0ZvoXfSDWYxYRrFYsTixeLEEsUxiiWKZxZLEksVSxFLF0sTSxbLcffoXUEsHCPayQzc8AwAACQYAAFBLAQItAxQACAAIALS9RViOeo29BQEAABACAAAhAAAAAAAAAAAAIAC2gQAAAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjMvZGF0YS5sdWFQSwECLQMUAAgACAD4CmRZElVYh5oAAADYAAAAIgAAAAAAAAAAACAAtoFUAQAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4zL2luZm8uanNvblBLAQItAxQACAAIALCKTlnZ9YQOsQIAANAIAAAkAAAAAAAAAAAAIAC2gT4CAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjMvY29udHJvbC5sdWFQSwECLQMUAAgACAAlra1WUqj09c4AAAAwAQAAMgAAAAAAAAAAACAAtoFBBQAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4zL3NjZW5hcmlvcy9ydW4vY29udHJvbC5sdWFQSwECLQMUAAgACABpiTBWlI5GUD4AAAA+AAAAOAAAAAAAAAAAACAAtoFvBgAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4zL3NjZW5hcmlvcy90ZXJtaW5hdGUvY29udHJvbC5sdWFQSwECLQMUAAgACABNgopY9MHnEycBAAByBAAANAAAAAAAAAAAACAAtoETBwAAZGVidWdhZGFwdGVyLXRlc3RzXzIuMC4zL3NjZW5hcmlvcy90aHJvdy9jb250cm9sLmx1YVBLAQItAxQACAAIAA8TfVf2skM3PAMAAAkGAAAlAAAAAAAAAAAAIAC2gZwIAABkZWJ1Z2FkYXB0ZXItdGVzdHNfMi4wLjMvc2V0dGluZ3MubHVhUEsFBgAAAAAHAAcAbAIAACsMAAAAAA==")});var io=O(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.Event=Bt.Response=Bt.Message=void 0;var Jr=class{constructor(e){this.seq=0,this.type=e}};Bt.Message=Jr;var ra=class extends Jr{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=ra;var na=class extends Jr{constructor(e,t){super("event"),this.event=e,t&&(this.body=t)}};Bt.Event=na});var $u=O(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.ProtocolServer=void 0;var Pm=require("events"),Zr=io(),oa=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}},ao=class a extends Pm.EventEmitter{constructor(){super(),this._sendMessage=new oa,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 Zr.Event("close"))}),e.on("error",n=>{this._emitEvent(new Zr.Event("error","inStream error: "+(n&&n.message)))}),t.on("error",n=>{this._emitEvent(new Zr.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 Zr.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
2991
3208
  \r
2992
- ${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 Zr.Event("error","Error handling data: "+(n&&n.message)))}continue}}else{let t=this._rawData.indexOf(a.TWO_CRLF);if(t!==-1){let i=this._rawData.toString("utf8",0,t).split(`\r
2993
- `);for(let s=0;s<i.length;s++){let u=i[s].split(/: +/);u[0]=="Content-Length"&&(this._contentLength=+u[1])}this._rawData=this._rawData.slice(t+a.TWO_CRLF.length);continue}}break}}};li.ProtocolServer=si;si.TWO_CRLF=`\r
3209
+ ${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 Zr.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
3210
+ `);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}}};so.ProtocolServer=ao;ao.TWO_CRLF=`\r
2994
3211
  \r
2995
- `});var Iu=F(ui=>{"use strict";Object.defineProperty(ui,"__esModule",{value:!0});ui.runDebugAdapter=void 0;var _m=require("net");function bm(a){let e=0;if(process.argv.slice(2).forEach(function(n,i,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}`),_m.createServer(n=>{console.error(">> accepted connection from client"),n.on("end",()=>{console.error(`>> client connection closed
2996
- `)});let i=new a(!1,!0);i.setRunAsServer(!0),i.start(n,n)}).listen(e);else{let n=new a(!1);process.on("SIGTERM",()=>{n.shutdown()}),n.start(process.stdin,process.stdout)}}ui.runDebugAdapter=bm});var di=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 ym=ku(),he=ai(),wm=Iu(),Cu=require("url"),ia=class{constructor(e,t,n=0,i,s){this.name=e,this.path=t,this.sourceReference=n,i&&(this.origin=i),s&&(this.adapterData=s)}};q.Source=ia;var oa=class{constructor(e,t,n=!1){this.name=e,this.variablesReference=t,this.expensive=n}};q.Scope=oa;var aa=class{constructor(e,t,n,i=0,s=0){this.id=e,this.source=n,this.line=i,this.column=s,this.name=t}};q.StackFrame=aa;var sa=class{constructor(e,t){this.id=e,t?this.name=t:this.name="Thread #"+e}};q.Thread=sa;var la=class{constructor(e,t,n=0,i,s){this.name=e,this.value=t,this.variablesReference=n,typeof s=="number"&&(this.namedVariables=s),typeof i=="number"&&(this.indexedVariables=i)}};q.Variable=la;var ua=class{constructor(e,t,n,i){this.verified=e;let s=this;typeof t=="number"&&(s.line=t),typeof n=="number"&&(s.column=n),i&&(s.source=i)}setId(e){this.id=e}};q.Breakpoint=ua;var ca=class{constructor(e,t){this.id=e,this.name=t}};q.Module=ca;var da=class{constructor(e,t,n=0){this.label=e,this.start=t,this.length=n}};q.CompletionItem=da;var fa=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=fa;var pa=class extends he.Event{constructor(e,t){super("continued"),this.body={threadId:e},typeof t=="boolean"&&(this.body.allThreadsContinued=t)}};q.ContinuedEvent=pa;var ha=class extends he.Event{constructor(){super("initialized")}};q.InitializedEvent=ha;var ma=class extends he.Event{constructor(e){if(super("terminated"),typeof e=="boolean"||e){let t=this;t.body={restart:e}}}};q.TerminatedEvent=ma;var ga=class extends he.Event{constructor(e){super("exited"),this.body={exitCode:e}}};q.ExitedEvent=ga;var _a=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=_a;var ba=class extends he.Event{constructor(e,t){super("thread"),this.body={reason:e,threadId:t}}};q.ThreadEvent=ba;var ya=class extends he.Event{constructor(e,t){super("breakpoint"),this.body={reason:e,breakpoint:t}}};q.BreakpointEvent=ya;var wa=class extends he.Event{constructor(e,t){super("module"),this.body={reason:e,module:t}}};q.ModuleEvent=wa;var va=class extends he.Event{constructor(e,t){super("loadedSource"),this.body={reason:e,source:t}}};q.LoadedSourceEvent=va;var Sa=class extends he.Event{constructor(e){super("capabilities"),this.body={capabilities:e}}};q.CapabilitiesEvent=Sa;var Ra=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=Ra;var Pa=class extends he.Event{constructor(e,t){super("progressUpdate"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressUpdateEvent=Pa;var Ea=class extends he.Event{constructor(e,t){super("progressEnd"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressEndEvent=Ea;var La=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=La;var xa=class extends he.Event{constructor(e,t,n){super("memory"),this.body={memoryReference:e,offset:t,count:n}}};q.MemoryEvent=xa;var nr;(function(a){a[a.User=1]="User",a[a.Telemetry=2]="Telemetry"})(nr=q.ErrorDestination||(q.ErrorDestination={}));var ci=class a extends ym.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",i=>{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,wm.runDebugAdapter)(e)}shutdown(){this._isServer||this._isRunningInline()||setTimeout(()=>{process.exit(0)},100)}sendErrorResponse(e,t,n,i,s=nr.User){let u;typeof t=="number"?(u={id:t,format:n},i&&(u.variables=i),s&nr.User&&(u.showUser=!0),s&nr.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,nr.Telemetry);else{let i=t;i.body={},this.initializeRequest(i,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(i){this.sendErrorResponse(t,1104,"{_stack}",{_exception:i.message,_stack:i.stack},nr.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,i){this.sendErrorResponse(t,1014,"unrecognized request",null,nr.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 Cu.URL("file:");return t.pathname=e,t.toString()}static uri2path(e){let t=new Cu.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(i,s){return t&&s.length>0&&s[0]!=="_"?i:n[s]&&n.hasOwnProperty(s)?n[s]:i})}};q.DebugSession=ci;ci._formatPIIRegexp=/{([^}]+)}/g});var Fu=F(pi=>{"use strict";Object.defineProperty(pi,"__esModule",{value:!0});pi.InternalLogger=void 0;var Du=require("fs"),$u=require("path"),De=hi(),Aa=class{constructor(e,t){this.beforeExitCallback=()=>this.dispose(),this._logCallback=e,this._logToConsole=t,this._minLogLevel=De.LogLevel.Warn,this.disposeCallback=(n,i)=>{this.dispose(),i=i||2,i+=128,process.exit(i)}}async setup(e){if(this._minLogLevel=e.consoleMinLogLevel,this._prependTimestamp=e.prependTimestamp,e.logFilePath)if(!$u.isAbsolute(e.logFilePath))this.log(`logFilePath must be an absolute path: ${e.logFilePath}`,De.LogLevel.Error);else{let t=n=>this.sendLog(`Error creating log file at path: ${e.logFilePath}. Error: ${n.toString()}
2997
- `,De.LogLevel.Error);try{await Du.promises.mkdir($u.dirname(e.logFilePath),{recursive:!0}),this.log(`Verbose logs are written to:
3212
+ `});var Ou=O(lo=>{"use strict";Object.defineProperty(lo,"__esModule",{value:!0});lo.runDebugAdapter=void 0;var Em=require("net");function Lm(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}`),Em.createServer(n=>{console.error(">> accepted connection from client"),n.on("end",()=>{console.error(`>> client connection closed
3213
+ `)});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)}}lo.runDebugAdapter=Lm});var co=O(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 xm=$u(),he=io(),Am=Ou(),Fu=require("url"),ia=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=ia;var aa=class{constructor(e,t,n=!1){this.name=e,this.variablesReference=t,this.expensive=n}};q.Scope=aa;var sa=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=sa;var la=class{constructor(e,t){this.id=e,t?this.name=t:this.name="Thread #"+e}};q.Thread=la;var ua=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=ua;var ca=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=ca;var da=class{constructor(e,t){this.id=e,this.name=t}};q.Module=da;var fa=class{constructor(e,t,n=0){this.label=e,this.start=t,this.length=n}};q.CompletionItem=fa;var pa=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=pa;var ha=class extends he.Event{constructor(e,t){super("continued"),this.body={threadId:e},typeof t=="boolean"&&(this.body.allThreadsContinued=t)}};q.ContinuedEvent=ha;var ma=class extends he.Event{constructor(){super("initialized")}};q.InitializedEvent=ma;var ga=class extends he.Event{constructor(e){if(super("terminated"),typeof e=="boolean"||e){let t=this;t.body={restart:e}}}};q.TerminatedEvent=ga;var _a=class extends he.Event{constructor(e){super("exited"),this.body={exitCode:e}}};q.ExitedEvent=_a;var ba=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=ba;var ya=class extends he.Event{constructor(e,t){super("thread"),this.body={reason:e,threadId:t}}};q.ThreadEvent=ya;var wa=class extends he.Event{constructor(e,t){super("breakpoint"),this.body={reason:e,breakpoint:t}}};q.BreakpointEvent=wa;var va=class extends he.Event{constructor(e,t){super("module"),this.body={reason:e,module:t}}};q.ModuleEvent=va;var Sa=class extends he.Event{constructor(e,t){super("loadedSource"),this.body={reason:e,source:t}}};q.LoadedSourceEvent=Sa;var Ra=class extends he.Event{constructor(e){super("capabilities"),this.body={capabilities:e}}};q.CapabilitiesEvent=Ra;var Pa=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=Pa;var Ea=class extends he.Event{constructor(e,t){super("progressUpdate"),this.body={progressId:e},typeof t=="string"&&(this.body.message=t)}};q.ProgressUpdateEvent=Ea;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 xa=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=xa;var Aa=class extends he.Event{constructor(e,t,n){super("memory"),this.body={memoryReference:e,offset:t,count:n}}};q.MemoryEvent=Aa;var nr;(function(a){a[a.User=1]="User",a[a.Telemetry=2]="Telemetry"})(nr=q.ErrorDestination||(q.ErrorDestination={}));var uo=class a extends xm.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,Am.runDebugAdapter)(e)}shutdown(){this._isServer||this._isRunningInline()||setTimeout(()=>{process.exit(0)},100)}sendErrorResponse(e,t,n,o,s=nr.User){let u;typeof t=="number"?(u={id:t,format:n},o&&(u.variables=o),s&nr.User&&(u.showUser=!0),s&nr.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,nr.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},nr.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,nr.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 Fu.URL("file:");return t.pathname=e,t.toString()}static uri2path(e){let t=new Fu.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=uo;uo._formatPIIRegexp=/{([^}]+)}/g});var Uu=O(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.InternalLogger=void 0;var Bu=require("fs"),qu=require("path"),De=ho(),Ta=class{constructor(e,t){this.beforeExitCallback=()=>this.dispose(),this._logCallback=e,this._logToConsole=t,this._minLogLevel=De.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(!qu.isAbsolute(e.logFilePath))this.log(`logFilePath must be an absolute path: ${e.logFilePath}`,De.LogLevel.Error);else{let t=n=>this.sendLog(`Error creating log file at path: ${e.logFilePath}. Error: ${n.toString()}
3214
+ `,De.LogLevel.Error);try{await Bu.promises.mkdir(qu.dirname(e.logFilePath),{recursive:!0}),this.log(`Verbose logs are written to:
2998
3215
  `,De.LogLevel.Warn),this.log(e.logFilePath+`
2999
- `,De.LogLevel.Warn),this._logFileStream=Du.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()+", "+Ou();this.log(n+`
3000
- `,De.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!==De.LogLevel.Stop){if(t>=this._minLogLevel&&this.sendLog(e,t),this._logToConsole){let i=t===De.LogLevel.Error?console.error:t===De.LogLevel.Warn?console.warn:null;i&&i((0,De.trimLastNewline)(e))}t===De.LogLevel.Error&&(e=`[${De.LogLevel[t]}] ${e}`),this._prependTimestamp&&n&&(e="["+Ou()+"] "+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+`
3001
- `)}if(this._logCallback){let n=new De.LogOutputEvent(e,t);this._logCallback(n)}}};pi.InternalLogger=Aa;function Ou(){let a=new Date,e=fi(2,String(a.getUTCHours())),t=fi(2,String(a.getUTCMinutes())),n=fi(2,String(a.getUTCSeconds())),i=fi(3,String(a.getUTCMilliseconds()));return e+":"+t+":"+n+"."+i+" UTC"}function fi(a,e){return e.length>=a?e:String("0".repeat(a)+e).slice(-a)}});var hi=F($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.trimLastNewline=$e.LogOutputEvent=$e.logger=$e.Logger=$e.LogLevel=void 0;var vm=Fu(),Sm=di(),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=$e.LogLevel||($e.LogLevel={}));var mi=class{constructor(){this._pendingLogQ=[]}log(e,t=qt.Log){e=e+`
3002
- `,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 i=typeof t=="string"?t:t&&this._logFilePathFromInit;if(this._currentLogger){let s={consoleMinLogLevel:e,logFilePath:i,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 vm.InternalLogger(e,n),this._logFilePathFromInit=t}};$e.Logger=mi;$e.logger=new mi;var Ta=class extends Sm.OutputEvent{constructor(e,t){let n=t===qt.Error?"stderr":t===qt.Warn?"console":"stdout";super(e,n)}};$e.LogOutputEvent=Ta;function Rm(a){return a.replace(/(\n|\r\n)$/,"")}$e.trimLastNewline=Rm});var Mu=F(gi=>{"use strict";Object.defineProperty(gi,"__esModule",{value:!0});gi.LoggingDebugSession=void 0;var qu=hi(),xr=qu.logger,Bu=di(),ka=class extends Bu.DebugSession{constructor(e,t,n){super(t,n),this.obsolete_logFilePath=e,this.on("error",i=>{xr.error(i.body)})}start(e,t){super.start(e,t),xr.init(n=>this.sendEvent(n),this.obsolete_logFilePath,this._isServer)}sendEvent(e){if(!(e instanceof qu.LogOutputEvent)){let t=e;e instanceof Bu.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,i){xr.verbose(`To client: ${JSON.stringify(e)}(${JSON.stringify(t)}), timeout: ${n}`),super.sendRequest(e,t,n,i)}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)}};gi.LoggingDebugSession=ka});var Uu=F(_i=>{"use strict";Object.defineProperty(_i,"__esModule",{value:!0});_i.Handles=void 0;var Ia=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}};_i.Handles=Ia});var Vu=F(I=>{"use strict";Object.defineProperty(I,"__esModule",{value:!0});I.Handles=I.Response=I.Event=I.ErrorDestination=I.CompletionItem=I.Module=I.Source=I.Breakpoint=I.Variable=I.Scope=I.StackFrame=I.Thread=I.MemoryEvent=I.InvalidatedEvent=I.ProgressEndEvent=I.ProgressUpdateEvent=I.ProgressStartEvent=I.CapabilitiesEvent=I.LoadedSourceEvent=I.ModuleEvent=I.BreakpointEvent=I.ThreadEvent=I.OutputEvent=I.ContinuedEvent=I.StoppedEvent=I.ExitedEvent=I.TerminatedEvent=I.InitializedEvent=I.logger=I.Logger=I.LoggingDebugSession=I.DebugSession=void 0;var oe=di();Object.defineProperty(I,"DebugSession",{enumerable:!0,get:function(){return oe.DebugSession}});Object.defineProperty(I,"InitializedEvent",{enumerable:!0,get:function(){return oe.InitializedEvent}});Object.defineProperty(I,"TerminatedEvent",{enumerable:!0,get:function(){return oe.TerminatedEvent}});Object.defineProperty(I,"ExitedEvent",{enumerable:!0,get:function(){return oe.ExitedEvent}});Object.defineProperty(I,"StoppedEvent",{enumerable:!0,get:function(){return oe.StoppedEvent}});Object.defineProperty(I,"ContinuedEvent",{enumerable:!0,get:function(){return oe.ContinuedEvent}});Object.defineProperty(I,"OutputEvent",{enumerable:!0,get:function(){return oe.OutputEvent}});Object.defineProperty(I,"ThreadEvent",{enumerable:!0,get:function(){return oe.ThreadEvent}});Object.defineProperty(I,"BreakpointEvent",{enumerable:!0,get:function(){return oe.BreakpointEvent}});Object.defineProperty(I,"ModuleEvent",{enumerable:!0,get:function(){return oe.ModuleEvent}});Object.defineProperty(I,"LoadedSourceEvent",{enumerable:!0,get:function(){return oe.LoadedSourceEvent}});Object.defineProperty(I,"CapabilitiesEvent",{enumerable:!0,get:function(){return oe.CapabilitiesEvent}});Object.defineProperty(I,"ProgressStartEvent",{enumerable:!0,get:function(){return oe.ProgressStartEvent}});Object.defineProperty(I,"ProgressUpdateEvent",{enumerable:!0,get:function(){return oe.ProgressUpdateEvent}});Object.defineProperty(I,"ProgressEndEvent",{enumerable:!0,get:function(){return oe.ProgressEndEvent}});Object.defineProperty(I,"InvalidatedEvent",{enumerable:!0,get:function(){return oe.InvalidatedEvent}});Object.defineProperty(I,"MemoryEvent",{enumerable:!0,get:function(){return oe.MemoryEvent}});Object.defineProperty(I,"Thread",{enumerable:!0,get:function(){return oe.Thread}});Object.defineProperty(I,"StackFrame",{enumerable:!0,get:function(){return oe.StackFrame}});Object.defineProperty(I,"Scope",{enumerable:!0,get:function(){return oe.Scope}});Object.defineProperty(I,"Variable",{enumerable:!0,get:function(){return oe.Variable}});Object.defineProperty(I,"Breakpoint",{enumerable:!0,get:function(){return oe.Breakpoint}});Object.defineProperty(I,"Source",{enumerable:!0,get:function(){return oe.Source}});Object.defineProperty(I,"Module",{enumerable:!0,get:function(){return oe.Module}});Object.defineProperty(I,"CompletionItem",{enumerable:!0,get:function(){return oe.CompletionItem}});Object.defineProperty(I,"ErrorDestination",{enumerable:!0,get:function(){return oe.ErrorDestination}});var Pm=Mu();Object.defineProperty(I,"LoggingDebugSession",{enumerable:!0,get:function(){return Pm.LoggingDebugSession}});var Nu=hi();I.Logger=Nu;var ju=ai();Object.defineProperty(I,"Event",{enumerable:!0,get:function(){return ju.Event}});Object.defineProperty(I,"Response",{enumerable:!0,get:function(){return ju.Response}});var Em=Uu();Object.defineProperty(I,"Handles",{enumerable:!0,get:function(){return Em.Handles}});var Lm=Nu.logger;I.logger=Lm});var en=F((mw,zu)=>{"use strict";var xm="2.0.0",Am=Number.MAX_SAFE_INTEGER||9007199254740991,Tm=16,km=250,Im=["major","premajor","minor","preminor","patch","prepatch","prerelease"];zu.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Tm,MAX_SAFE_BUILD_LENGTH:km,MAX_SAFE_INTEGER:Am,RELEASE_TYPES:Im,SEMVER_SPEC_VERSION:xm,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var tn=F((gw,Wu)=>{"use strict";var Cm=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...a)=>console.error("SEMVER",...a):()=>{};Wu.exports=Cm});var Ar=F((gt,Hu)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Ca,MAX_SAFE_BUILD_LENGTH:Dm,MAX_LENGTH:$m}=en(),Om=tn();gt=Hu.exports={};var Fm=gt.re=[],Bm=gt.safeRe=[],T=gt.src=[],k=gt.t={},qm=0,Da="[a-zA-Z0-9-]",Mm=[["\\s",1],["\\d",$m],[Da,Dm]],Um=a=>{for(let[e,t]of Mm)a=a.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return a},V=(a,e,t)=>{let n=Um(e),i=qm++;Om(a,i,e),k[a]=i,T[i]=e,Fm[i]=new RegExp(e,t?"g":void 0),Bm[i]=new RegExp(n,t?"g":void 0)};V("NUMERICIDENTIFIER","0|[1-9]\\d*");V("NUMERICIDENTIFIERLOOSE","\\d+");V("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Da}*`);V("MAINVERSION",`(${T[k.NUMERICIDENTIFIER]})\\.(${T[k.NUMERICIDENTIFIER]})\\.(${T[k.NUMERICIDENTIFIER]})`);V("MAINVERSIONLOOSE",`(${T[k.NUMERICIDENTIFIERLOOSE]})\\.(${T[k.NUMERICIDENTIFIERLOOSE]})\\.(${T[k.NUMERICIDENTIFIERLOOSE]})`);V("PRERELEASEIDENTIFIER",`(?:${T[k.NUMERICIDENTIFIER]}|${T[k.NONNUMERICIDENTIFIER]})`);V("PRERELEASEIDENTIFIERLOOSE",`(?:${T[k.NUMERICIDENTIFIERLOOSE]}|${T[k.NONNUMERICIDENTIFIER]})`);V("PRERELEASE",`(?:-(${T[k.PRERELEASEIDENTIFIER]}(?:\\.${T[k.PRERELEASEIDENTIFIER]})*))`);V("PRERELEASELOOSE",`(?:-?(${T[k.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${T[k.PRERELEASEIDENTIFIERLOOSE]})*))`);V("BUILDIDENTIFIER",`${Da}+`);V("BUILD",`(?:\\+(${T[k.BUILDIDENTIFIER]}(?:\\.${T[k.BUILDIDENTIFIER]})*))`);V("FULLPLAIN",`v?${T[k.MAINVERSION]}${T[k.PRERELEASE]}?${T[k.BUILD]}?`);V("FULL",`^${T[k.FULLPLAIN]}$`);V("LOOSEPLAIN",`[v=\\s]*${T[k.MAINVERSIONLOOSE]}${T[k.PRERELEASELOOSE]}?${T[k.BUILD]}?`);V("LOOSE",`^${T[k.LOOSEPLAIN]}$`);V("GTLT","((?:<|>)?=?)");V("XRANGEIDENTIFIERLOOSE",`${T[k.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);V("XRANGEIDENTIFIER",`${T[k.NUMERICIDENTIFIER]}|x|X|\\*`);V("XRANGEPLAIN",`[v=\\s]*(${T[k.XRANGEIDENTIFIER]})(?:\\.(${T[k.XRANGEIDENTIFIER]})(?:\\.(${T[k.XRANGEIDENTIFIER]})(?:${T[k.PRERELEASE]})?${T[k.BUILD]}?)?)?`);V("XRANGEPLAINLOOSE",`[v=\\s]*(${T[k.XRANGEIDENTIFIERLOOSE]})(?:\\.(${T[k.XRANGEIDENTIFIERLOOSE]})(?:\\.(${T[k.XRANGEIDENTIFIERLOOSE]})(?:${T[k.PRERELEASELOOSE]})?${T[k.BUILD]}?)?)?`);V("XRANGE",`^${T[k.GTLT]}\\s*${T[k.XRANGEPLAIN]}$`);V("XRANGELOOSE",`^${T[k.GTLT]}\\s*${T[k.XRANGEPLAINLOOSE]}$`);V("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Ca}})(?:\\.(\\d{1,${Ca}}))?(?:\\.(\\d{1,${Ca}}))?`);V("COERCE",`${T[k.COERCEPLAIN]}(?:$|[^\\d])`);V("COERCEFULL",T[k.COERCEPLAIN]+`(?:${T[k.PRERELEASE]})?(?:${T[k.BUILD]})?(?:$|[^\\d])`);V("COERCERTL",T[k.COERCE],!0);V("COERCERTLFULL",T[k.COERCEFULL],!0);V("LONETILDE","(?:~>?)");V("TILDETRIM",`(\\s*)${T[k.LONETILDE]}\\s+`,!0);gt.tildeTrimReplace="$1~";V("TILDE",`^${T[k.LONETILDE]}${T[k.XRANGEPLAIN]}$`);V("TILDELOOSE",`^${T[k.LONETILDE]}${T[k.XRANGEPLAINLOOSE]}$`);V("LONECARET","(?:\\^)");V("CARETTRIM",`(\\s*)${T[k.LONECARET]}\\s+`,!0);gt.caretTrimReplace="$1^";V("CARET",`^${T[k.LONECARET]}${T[k.XRANGEPLAIN]}$`);V("CARETLOOSE",`^${T[k.LONECARET]}${T[k.XRANGEPLAINLOOSE]}$`);V("COMPARATORLOOSE",`^${T[k.GTLT]}\\s*(${T[k.LOOSEPLAIN]})$|^$`);V("COMPARATOR",`^${T[k.GTLT]}\\s*(${T[k.FULLPLAIN]})$|^$`);V("COMPARATORTRIM",`(\\s*)${T[k.GTLT]}\\s*(${T[k.LOOSEPLAIN]}|${T[k.XRANGEPLAIN]})`,!0);gt.comparatorTrimReplace="$1$2$3";V("HYPHENRANGE",`^\\s*(${T[k.XRANGEPLAIN]})\\s+-\\s+(${T[k.XRANGEPLAIN]})\\s*$`);V("HYPHENRANGELOOSE",`^\\s*(${T[k.XRANGEPLAINLOOSE]})\\s+-\\s+(${T[k.XRANGEPLAINLOOSE]})\\s*$`);V("STAR","(<|>)?=?\\s*\\*");V("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");V("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var bi=F((_w,Ku)=>{"use strict";var Nm=Object.freeze({loose:!0}),jm=Object.freeze({}),Vm=a=>a?typeof a!="object"?Nm:a:jm;Ku.exports=Vm});var $a=F((bw,Yu)=>{"use strict";var Gu=/^[0-9]+$/,Xu=(a,e)=>{let t=Gu.test(a),n=Gu.test(e);return t&&n&&(a=+a,e=+e),a===e?0:t&&!n?-1:n&&!t?1:a<e?-1:1},zm=(a,e)=>Xu(e,a);Yu.exports={compareIdentifiers:Xu,rcompareIdentifiers:zm}});var ge=F((yw,ec)=>{"use strict";var yi=tn(),{MAX_LENGTH:Qu,MAX_SAFE_INTEGER:wi}=en(),{safeRe:Ju,t:Zu}=Ar(),Wm=bi(),{compareIdentifiers:Tr}=$a(),Oa=class a{constructor(e,t){if(t=Wm(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>Qu)throw new TypeError(`version is longer than ${Qu} characters`);yi("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?Ju[Zu.LOOSE]:Ju[Zu.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>wi||this.major<0)throw new TypeError("Invalid major version");if(this.minor>wi||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>wi||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&s<wi)return s}return i}):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(yi("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)),Tr(this.major,e.major)||Tr(this.minor,e.minor)||Tr(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],i=e.prerelease[t];if(yi("prerelease compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Tr(n,i)}while(++t)}compareBuild(e){e instanceof a||(e=new a(e,this.options));let t=0;do{let n=this.build[t],i=e.build[t];if(yi("build compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Tr(n,i)}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 i=Number(n)?1:0;if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[i];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(i)}}if(t){let s=[t,i];n===!1&&(s=[t]),Tr(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}};ec.exports=Oa});var ir=F((ww,rc)=>{"use strict";var tc=ge(),Hm=(a,e,t=!1)=>{if(a instanceof tc)return a;try{return new tc(a,e)}catch(n){if(!t)return null;throw n}};rc.exports=Hm});var ic=F((vw,nc)=>{"use strict";var Km=ir(),Gm=(a,e)=>{let t=Km(a,e);return t?t.version:null};nc.exports=Gm});var ac=F((Sw,oc)=>{"use strict";var Xm=ir(),Ym=(a,e)=>{let t=Xm(a.trim().replace(/^[=v]+/,""),e);return t?t.version:null};oc.exports=Ym});var uc=F((Rw,lc)=>{"use strict";var sc=ge(),Qm=(a,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new sc(a instanceof sc?a.version:a,t).inc(e,n,i).version}catch{return null}};lc.exports=Qm});var fc=F((Pw,dc)=>{"use strict";var cc=ir(),Jm=(a,e)=>{let t=cc(a,null,!0),n=cc(e,null,!0),i=t.compare(n);if(i===0)return null;let s=i>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"};dc.exports=Jm});var hc=F((Ew,pc)=>{"use strict";var Zm=ge(),eg=(a,e)=>new Zm(a,e).major;pc.exports=eg});var gc=F((Lw,mc)=>{"use strict";var tg=ge(),rg=(a,e)=>new tg(a,e).minor;mc.exports=rg});var bc=F((xw,_c)=>{"use strict";var ng=ge(),ig=(a,e)=>new ng(a,e).patch;_c.exports=ig});var wc=F((Aw,yc)=>{"use strict";var og=ir(),ag=(a,e)=>{let t=og(a,e);return t&&t.prerelease.length?t.prerelease:null};yc.exports=ag});var Ve=F((Tw,Sc)=>{"use strict";var vc=ge(),sg=(a,e,t)=>new vc(a,t).compare(new vc(e,t));Sc.exports=sg});var Pc=F((kw,Rc)=>{"use strict";var lg=Ve(),ug=(a,e,t)=>lg(e,a,t);Rc.exports=ug});var Lc=F((Iw,Ec)=>{"use strict";var cg=Ve(),dg=(a,e)=>cg(a,e,!0);Ec.exports=dg});var vi=F((Cw,Ac)=>{"use strict";var xc=ge(),fg=(a,e,t)=>{let n=new xc(a,t),i=new xc(e,t);return n.compare(i)||n.compareBuild(i)};Ac.exports=fg});var kc=F((Dw,Tc)=>{"use strict";var pg=vi(),hg=(a,e)=>a.sort((t,n)=>pg(t,n,e));Tc.exports=hg});var Cc=F(($w,Ic)=>{"use strict";var mg=vi(),gg=(a,e)=>a.sort((t,n)=>mg(n,t,e));Ic.exports=gg});var rn=F((Ow,Dc)=>{"use strict";var _g=Ve(),bg=(a,e,t)=>_g(a,e,t)>0;Dc.exports=bg});var Si=F((Fw,$c)=>{"use strict";var yg=Ve(),wg=(a,e,t)=>yg(a,e,t)<0;$c.exports=wg});var Fa=F((Bw,Oc)=>{"use strict";var vg=Ve(),Sg=(a,e,t)=>vg(a,e,t)===0;Oc.exports=Sg});var Ba=F((qw,Fc)=>{"use strict";var Rg=Ve(),Pg=(a,e,t)=>Rg(a,e,t)!==0;Fc.exports=Pg});var Ri=F((Mw,Bc)=>{"use strict";var Eg=Ve(),Lg=(a,e,t)=>Eg(a,e,t)>=0;Bc.exports=Lg});var Pi=F((Uw,qc)=>{"use strict";var xg=Ve(),Ag=(a,e,t)=>xg(a,e,t)<=0;qc.exports=Ag});var qa=F((Nw,Mc)=>{"use strict";var Tg=Fa(),kg=Ba(),Ig=rn(),Cg=Ri(),Dg=Si(),$g=Pi(),Og=(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 Tg(a,t,n);case"!=":return kg(a,t,n);case">":return Ig(a,t,n);case">=":return Cg(a,t,n);case"<":return Dg(a,t,n);case"<=":return $g(a,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Mc.exports=Og});var Nc=F((jw,Uc)=>{"use strict";var Fg=ge(),Bg=ir(),{safeRe:Ei,t:Li}=Ar(),qg=(a,e)=>{if(a instanceof Fg)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?Ei[Li.COERCEFULL]:Ei[Li.COERCE]);else{let d=e.includePrerelease?Ei[Li.COERCERTLFULL]:Ei[Li.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],i=t[3]||"0",s=t[4]||"0",u=e.includePrerelease&&t[5]?`-${t[5]}`:"",f=e.includePrerelease&&t[6]?`+${t[6]}`:"";return Bg(`${n}.${i}.${s}${u}${f}`,e)};Uc.exports=qg});var Vc=F((Vw,jc)=>{"use strict";var Ma=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 i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};jc.exports=Ma});var ze=F((zw,Kc)=>{"use strict";var Mg=/\s+/g,Ua=class a{constructor(e,t){if(t=Ng(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof Na)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(Mg," "),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(i=>!Wc(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&Gg(i[0])){this.set=[i];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&&Hg)|(this.options.loose&&Kg))+":"+e,i=zc.get(n);if(i)return i;let s=this.options.loose,u=s?Le[be.HYPHENRANGELOOSE]:Le[be.HYPHENRANGE];e=e.replace(u,i_(this.options.includePrerelease)),se("hyphen replace",e),e=e.replace(Le[be.COMPARATORTRIM],Vg),se("comparator trim",e),e=e.replace(Le[be.TILDETRIM],zg),se("tilde trim",e),e=e.replace(Le[be.CARETTRIM],Wg),se("caret trim",e);let f=e.split(" ").map(_=>Xg(_,this.options)).join(" ").split(/\s+/).map(_=>n_(_,this.options));s&&(f=f.filter(_=>(se("loose invalid filter",_,this.options),!!_.match(Le[be.COMPARATORLOOSE])))),se("range list",f);let d=new Map,c=f.map(_=>new Na(_,this.options));for(let _ of c){if(Wc(_))return[_];d.set(_.value,_)}d.size>1&&d.has("")&&d.delete("");let p=[...d.values()];return zc.set(n,p),p}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>Hc(n,t)&&e.set.some(i=>Hc(i,t)&&n.every(s=>i.every(u=>s.intersects(u,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new jg(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(o_(this.set[t],e,this.options))return!0;return!1}};Kc.exports=Ua;var Ug=Vc(),zc=new Ug,Ng=bi(),Na=nn(),se=tn(),jg=ge(),{safeRe:Le,t:be,comparatorTrimReplace:Vg,tildeTrimReplace:zg,caretTrimReplace:Wg}=Ar(),{FLAG_INCLUDE_PRERELEASE:Hg,FLAG_LOOSE:Kg}=en(),Wc=a=>a.value==="<0.0.0-0",Gg=a=>a.value==="",Hc=(a,e)=>{let t=!0,n=a.slice(),i=n.pop();for(;t&&n.length;)t=n.every(s=>i.intersects(s,e)),i=n.pop();return t},Xg=(a,e)=>(se("comp",a,e),a=Jg(a,e),se("caret",a),a=Yg(a,e),se("tildes",a),a=e_(a,e),se("xrange",a),a=r_(a,e),se("stars",a),a),ye=a=>!a||a.toLowerCase()==="x"||a==="*",Yg=(a,e)=>a.trim().split(/\s+/).map(t=>Qg(t,e)).join(" "),Qg=(a,e)=>{let t=e.loose?Le[be.TILDELOOSE]:Le[be.TILDE];return a.replace(t,(n,i,s,u,f)=>{se("tilde",a,n,i,s,u,f);let d;return ye(i)?d="":ye(s)?d=`>=${i}.0.0 <${+i+1}.0.0-0`:ye(u)?d=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:f?(se("replaceTilde pr",f),d=`>=${i}.${s}.${u}-${f} <${i}.${+s+1}.0-0`):d=`>=${i}.${s}.${u} <${i}.${+s+1}.0-0`,se("tilde return",d),d})},Jg=(a,e)=>a.trim().split(/\s+/).map(t=>Zg(t,e)).join(" "),Zg=(a,e)=>{se("caret",a,e);let t=e.loose?Le[be.CARETLOOSE]:Le[be.CARET],n=e.includePrerelease?"-0":"";return a.replace(t,(i,s,u,f,d)=>{se("caret",a,i,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})},e_=(a,e)=>(se("replaceXRanges",a,e),a.split(/\s+/).map(t=>t_(t,e)).join(" ")),t_=(a,e)=>{a=a.trim();let t=e.loose?Le[be.XRANGELOOSE]:Le[be.XRANGE];return a.replace(t,(n,i,s,u,f,d)=>{se("xRange",a,n,i,s,u,f,d);let c=ye(s),p=c||ye(u),_=p||ye(f),b=_;return i==="="&&b&&(i=""),d=e.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&b?(p&&(u=0),f=0,i===">"?(i=">=",p?(s=+s+1,u=0,f=0):(u=+u+1,f=0)):i==="<="&&(i="<",p?s=+s+1:u=+u+1),i==="<"&&(d="-0"),n=`${i+s}.${u}.${f}${d}`):p?n=`>=${s}.0.0${d} <${+s+1}.0.0-0`:_&&(n=`>=${s}.${u}.0${d} <${s}.${+u+1}.0-0`),se("xRange return",n),n})},r_=(a,e)=>(se("replaceStars",a,e),a.trim().replace(Le[be.STAR],"")),n_=(a,e)=>(se("replaceGTE0",a,e),a.trim().replace(Le[e.includePrerelease?be.GTE0PRE:be.GTE0],"")),i_=a=>(e,t,n,i,s,u,f,d,c,p,_,b)=>(ye(n)?t="":ye(i)?t=`>=${n}.0.0${a?"-0":""}`:ye(s)?t=`>=${n}.${i}.0${a?"-0":""}`:u?t=`>=${t}`:t=`>=${t}${a?"-0":""}`,ye(c)?d="":ye(p)?d=`<${+c+1}.0.0-0`:ye(_)?d=`<${c}.${+p+1}.0-0`:b?d=`<=${c}.${p}.${_}-${b}`:a?d=`<${c}.${p}.${+_+1}-0`:d=`<=${d}`,`${t} ${d}`.trim()),o_=(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!==Na.ANY&&a[n].semver.prerelease.length>0){let i=a[n].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var nn=F((Ww,Zc)=>{"use strict";var on=Symbol("SemVer ANY"),za=class a{static get ANY(){return on}constructor(e,t){if(t=Gc(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Va("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===on?this.value="":this.value=this.operator+this.semver.version,Va("comp",this)}parse(e){let t=this.options.loose?Xc[Yc.COMPARATORLOOSE]:Xc[Yc.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 Qc(n[2],this.options.loose):this.semver=on}toString(){return this.value}test(e){if(Va("Comparator.test",e,this.options.loose),this.semver===on||e===on)return!0;if(typeof e=="string")try{e=new Qc(e,this.options)}catch{return!1}return ja(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 Jc(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Jc(this.value,t).test(e.semver):(t=Gc(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("=")||ja(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||ja(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Zc.exports=za;var Gc=bi(),{safeRe:Xc,t:Yc}=Ar(),ja=qa(),Va=tn(),Qc=ge(),Jc=ze()});var an=F((Hw,ed)=>{"use strict";var a_=ze(),s_=(a,e,t)=>{try{e=new a_(e,t)}catch{return!1}return e.test(a)};ed.exports=s_});var rd=F((Kw,td)=>{"use strict";var l_=ze(),u_=(a,e)=>new l_(a,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));td.exports=u_});var id=F((Gw,nd)=>{"use strict";var c_=ge(),d_=ze(),f_=(a,e,t)=>{let n=null,i=null,s=null;try{s=new d_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||i.compare(u)===-1)&&(n=u,i=new c_(n,t))}),n};nd.exports=f_});var ad=F((Xw,od)=>{"use strict";var p_=ge(),h_=ze(),m_=(a,e,t)=>{let n=null,i=null,s=null;try{s=new h_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||i.compare(u)===1)&&(n=u,i=new p_(n,t))}),n};od.exports=m_});var ud=F((Yw,ld)=>{"use strict";var Wa=ge(),g_=ze(),sd=rn(),__=(a,e)=>{a=new g_(a,e);let t=new Wa("0.0.0");if(a.test(t)||(t=new Wa("0.0.0-0"),a.test(t)))return t;t=null;for(let n=0;n<a.set.length;++n){let i=a.set[n],s=null;i.forEach(u=>{let f=new Wa(u.semver.version);switch(u.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!s||sd(f,s))&&(s=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),s&&(!t||sd(t,s))&&(t=s)}return t&&a.test(t)?t:null};ld.exports=__});var dd=F((Qw,cd)=>{"use strict";var b_=ze(),y_=(a,e)=>{try{return new b_(a,e).range||"*"}catch{return null}};cd.exports=y_});var xi=F((Jw,md)=>{"use strict";var w_=ge(),hd=nn(),{ANY:v_}=hd,S_=ze(),R_=an(),fd=rn(),pd=Si(),P_=Pi(),E_=Ri(),L_=(a,e,t,n)=>{a=new w_(a,n),e=new S_(e,n);let i,s,u,f,d;switch(t){case">":i=fd,s=P_,u=pd,f=">",d=">=";break;case"<":i=pd,s=E_,u=fd,f="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(R_(a,e,n))return!1;for(let c=0;c<e.set.length;++c){let p=e.set[c],_=null,b=null;if(p.forEach(g=>{g.semver===v_&&(g=new hd(">=0.0.0")),_=_||g,b=b||g,i(g.semver,_.semver,n)?_=g:u(g.semver,b.semver,n)&&(b=g)}),_.operator===f||_.operator===d||(!b.operator||b.operator===f)&&s(a,b.semver))return!1;if(b.operator===d&&u(a,b.semver))return!1}return!0};md.exports=L_});var _d=F((Zw,gd)=>{"use strict";var x_=xi(),A_=(a,e,t)=>x_(a,e,">",t);gd.exports=A_});var yd=F((ev,bd)=>{"use strict";var T_=xi(),k_=(a,e,t)=>T_(a,e,"<",t);bd.exports=k_});var Sd=F((tv,vd)=>{"use strict";var wd=ze(),I_=(a,e,t)=>(a=new wd(a,t),e=new wd(e,t),a.intersects(e,t));vd.exports=I_});var Pd=F((rv,Rd)=>{"use strict";var C_=an(),D_=Ve();Rd.exports=(a,e,t)=>{let n=[],i=null,s=null,u=a.sort((p,_)=>D_(p,_,t));for(let p of u)C_(p,e,t)?(s=p,i||(i=p)):(s&&n.push([i,s]),s=null,i=null);i&&n.push([i,null]);let f=[];for(let[p,_]of n)p===_?f.push(p):!_&&p===u[0]?f.push("*"):_?p===u[0]?f.push(`<=${_}`):f.push(`${p} - ${_}`):f.push(`>=${p}`);let d=f.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return d.length<c.length?d:e}});var kd=F((nv,Td)=>{"use strict";var Ed=ze(),Ka=nn(),{ANY:Ha}=Ka,sn=an(),Ga=Ve(),$_=(a,e,t={})=>{if(a===e)return!0;a=new Ed(a,t),e=new Ed(e,t);let n=!1;e:for(let i of a.set){for(let s of e.set){let u=F_(i,s,t);if(n=n||u!==null,u)continue e}if(n)return!1}return!0},O_=[new Ka(">=0.0.0-0")],Ld=[new Ka(">=0.0.0")],F_=(a,e,t)=>{if(a===e)return!0;if(a.length===1&&a[0].semver===Ha){if(e.length===1&&e[0].semver===Ha)return!0;t.includePrerelease?a=O_:a=Ld}if(e.length===1&&e[0].semver===Ha){if(t.includePrerelease)return!0;e=Ld}let n=new Set,i,s;for(let g of a)g.operator===">"||g.operator===">="?i=xd(i,g,t):g.operator==="<"||g.operator==="<="?s=Ad(s,g,t):n.add(g.semver);if(n.size>1)return null;let u;if(i&&s){if(u=Ga(i.semver,s.semver,t),u>0)return null;if(u===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let g of n){if(i&&!sn(g,String(i),t)||s&&!sn(g,String(s),t))return null;for(let y of e)if(!sn(g,String(y),t))return!1;return!0}let f,d,c,p,_=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,b=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;_&&_.prerelease.length===1&&s.operator==="<"&&_.prerelease[0]===0&&(_=!1);for(let g of e){if(p=p||g.operator===">"||g.operator===">=",c=c||g.operator==="<"||g.operator==="<=",i){if(b&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===b.major&&g.semver.minor===b.minor&&g.semver.patch===b.patch&&(b=!1),g.operator===">"||g.operator===">="){if(f=xd(i,g,t),f===g&&f!==i)return!1}else if(i.operator===">="&&!sn(i.semver,String(g),t))return!1}if(s){if(_&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===_.major&&g.semver.minor===_.minor&&g.semver.patch===_.patch&&(_=!1),g.operator==="<"||g.operator==="<="){if(d=Ad(s,g,t),d===g&&d!==s)return!1}else if(s.operator==="<="&&!sn(s.semver,String(g),t))return!1}if(!g.operator&&(s||i)&&u!==0)return!1}return!(i&&c&&!s&&u!==0||s&&p&&!i&&u!==0||b||_)},xd=(a,e,t)=>{if(!a)return e;let n=Ga(a.semver,e.semver,t);return n>0?a:n<0||e.operator===">"&&a.operator===">="?e:a},Ad=(a,e,t)=>{if(!a)return e;let n=Ga(a.semver,e.semver,t);return n<0?a:n>0||e.operator==="<"&&a.operator==="<="?e:a};Td.exports=$_});var $d=F((iv,Dd)=>{"use strict";var Xa=Ar(),Id=en(),B_=ge(),Cd=$a(),q_=ir(),M_=ic(),U_=ac(),N_=uc(),j_=fc(),V_=hc(),z_=gc(),W_=bc(),H_=wc(),K_=Ve(),G_=Pc(),X_=Lc(),Y_=vi(),Q_=kc(),J_=Cc(),Z_=rn(),eb=Si(),tb=Fa(),rb=Ba(),nb=Ri(),ib=Pi(),ob=qa(),ab=Nc(),sb=nn(),lb=ze(),ub=an(),cb=rd(),db=id(),fb=ad(),pb=ud(),hb=dd(),mb=xi(),gb=_d(),_b=yd(),bb=Sd(),yb=Pd(),wb=kd();Dd.exports={parse:q_,valid:M_,clean:U_,inc:N_,diff:j_,major:V_,minor:z_,patch:W_,prerelease:H_,compare:K_,rcompare:G_,compareLoose:X_,compareBuild:Y_,sort:Q_,rsort:J_,gt:Z_,lt:eb,eq:tb,neq:rb,gte:nb,lte:ib,cmp:ob,coerce:ab,Comparator:sb,Range:lb,satisfies:ub,toComparators:cb,maxSatisfying:db,minSatisfying:fb,minVersion:pb,validRange:hb,outside:mb,gtr:gb,ltr:_b,intersects:bb,simplifyRange:yb,subset:wb,SemVer:B_,re:Xa.re,src:Xa.src,tokens:Xa.t,SEMVER_SPEC_VERSION:Id.SEMVER_SPEC_VERSION,RELEASE_TYPES:Id.RELEASE_TYPES,compareIdentifiers:Cd.compareIdentifiers,rcompareIdentifiers:Cd.rcompareIdentifiers}});var jd=F((sv,Nd)=>{"use strict";var Ud=require("child_process"),Bd=Ud.spawn,vb=Ud.exec;Nd.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={},i={};switch(n[a]=[],i[a]=1,process.platform){case"win32":vb("taskkill /pid "+a+" /T /F",t);break;case"darwin":Ya(a,n,i,function(s){return Bd("pgrep",["-P",s])},function(){qd(n,e,t)});break;default:Ya(a,n,i,function(s){return Bd("ps",["-o","pid","--no-headers","--ppid",s])},function(){qd(n,e,t)});break}};function qd(a,e,t){var n={};try{Object.keys(a).forEach(function(i){a[i].forEach(function(s){n[s]||(Md(s,e),n[s]=1)}),n[i]||(Md(i,e),n[i]=1)})}catch(i){if(t)return t(i);throw i}if(t)return t()}function Md(a,e){try{process.kill(parseInt(a,10),e)}catch(t){if(t.code!=="ESRCH")throw t}}function Ya(a,e,t,n,i){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&&i();return}u.match(/\d+/g).forEach(function(c){c=parseInt(c,10),e[a].push(c),e[c]=[],t[c]=1,Ya(c,e,t,n,i)})};s.on("close",f)}});var Jd=F((Ev,Qd)=>{"use strict";var{hasOwnProperty:ss}=Object.prototype,ls=(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
3216
+ `,De.LogLevel.Warn),this._logFileStream=Bu.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()+", "+Mu();this.log(n+`
3217
+ `,De.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!==De.LogLevel.Stop){if(t>=this._minLogLevel&&this.sendLog(e,t),this._logToConsole){let o=t===De.LogLevel.Error?console.error:t===De.LogLevel.Warn?console.warn:null;o&&o((0,De.trimLastNewline)(e))}t===De.LogLevel.Error&&(e=`[${De.LogLevel[t]}] ${e}`),this._prependTimestamp&&n&&(e="["+Mu()+"] "+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+`
3218
+ `)}if(this._logCallback){let n=new De.LogOutputEvent(e,t);this._logCallback(n)}}};po.InternalLogger=Ta;function Mu(){let a=new Date,e=fo(2,String(a.getUTCHours())),t=fo(2,String(a.getUTCMinutes())),n=fo(2,String(a.getUTCSeconds())),o=fo(3,String(a.getUTCMilliseconds()));return e+":"+t+":"+n+"."+o+" UTC"}function fo(a,e){return e.length>=a?e:String("0".repeat(a)+e).slice(-a)}});var ho=O($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.trimLastNewline=$e.LogOutputEvent=$e.logger=$e.Logger=$e.LogLevel=void 0;var Tm=Uu(),km=co(),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=$e.LogLevel||($e.LogLevel={}));var mo=class{constructor(){this._pendingLogQ=[]}log(e,t=qt.Log){e=e+`
3219
+ `,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 Tm.InternalLogger(e,n),this._logFilePathFromInit=t}};$e.Logger=mo;$e.logger=new mo;var ka=class extends km.OutputEvent{constructor(e,t){let n=t===qt.Error?"stderr":t===qt.Warn?"console":"stdout";super(e,n)}};$e.LogOutputEvent=ka;function Im(a){return a.replace(/(\n|\r\n)$/,"")}$e.trimLastNewline=Im});var zu=O(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.LoggingDebugSession=void 0;var Nu=ho(),xr=Nu.logger,ju=co(),Ia=class extends ju.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 Nu.LogOutputEvent)){let t=e;e instanceof ju.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)}};go.LoggingDebugSession=Ia});var Vu=O(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.Handles=void 0;var Ca=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}};_o.Handles=Ca});var Ku=O(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.Handles=k.Response=k.Event=k.ErrorDestination=k.CompletionItem=k.Module=k.Source=k.Breakpoint=k.Variable=k.Scope=k.StackFrame=k.Thread=k.MemoryEvent=k.InvalidatedEvent=k.ProgressEndEvent=k.ProgressUpdateEvent=k.ProgressStartEvent=k.CapabilitiesEvent=k.LoadedSourceEvent=k.ModuleEvent=k.BreakpointEvent=k.ThreadEvent=k.OutputEvent=k.ContinuedEvent=k.StoppedEvent=k.ExitedEvent=k.TerminatedEvent=k.InitializedEvent=k.logger=k.Logger=k.LoggingDebugSession=k.DebugSession=void 0;var ie=co();Object.defineProperty(k,"DebugSession",{enumerable:!0,get:function(){return ie.DebugSession}});Object.defineProperty(k,"InitializedEvent",{enumerable:!0,get:function(){return ie.InitializedEvent}});Object.defineProperty(k,"TerminatedEvent",{enumerable:!0,get:function(){return ie.TerminatedEvent}});Object.defineProperty(k,"ExitedEvent",{enumerable:!0,get:function(){return ie.ExitedEvent}});Object.defineProperty(k,"StoppedEvent",{enumerable:!0,get:function(){return ie.StoppedEvent}});Object.defineProperty(k,"ContinuedEvent",{enumerable:!0,get:function(){return ie.ContinuedEvent}});Object.defineProperty(k,"OutputEvent",{enumerable:!0,get:function(){return ie.OutputEvent}});Object.defineProperty(k,"ThreadEvent",{enumerable:!0,get:function(){return ie.ThreadEvent}});Object.defineProperty(k,"BreakpointEvent",{enumerable:!0,get:function(){return ie.BreakpointEvent}});Object.defineProperty(k,"ModuleEvent",{enumerable:!0,get:function(){return ie.ModuleEvent}});Object.defineProperty(k,"LoadedSourceEvent",{enumerable:!0,get:function(){return ie.LoadedSourceEvent}});Object.defineProperty(k,"CapabilitiesEvent",{enumerable:!0,get:function(){return ie.CapabilitiesEvent}});Object.defineProperty(k,"ProgressStartEvent",{enumerable:!0,get:function(){return ie.ProgressStartEvent}});Object.defineProperty(k,"ProgressUpdateEvent",{enumerable:!0,get:function(){return ie.ProgressUpdateEvent}});Object.defineProperty(k,"ProgressEndEvent",{enumerable:!0,get:function(){return ie.ProgressEndEvent}});Object.defineProperty(k,"InvalidatedEvent",{enumerable:!0,get:function(){return ie.InvalidatedEvent}});Object.defineProperty(k,"MemoryEvent",{enumerable:!0,get:function(){return ie.MemoryEvent}});Object.defineProperty(k,"Thread",{enumerable:!0,get:function(){return ie.Thread}});Object.defineProperty(k,"StackFrame",{enumerable:!0,get:function(){return ie.StackFrame}});Object.defineProperty(k,"Scope",{enumerable:!0,get:function(){return ie.Scope}});Object.defineProperty(k,"Variable",{enumerable:!0,get:function(){return ie.Variable}});Object.defineProperty(k,"Breakpoint",{enumerable:!0,get:function(){return ie.Breakpoint}});Object.defineProperty(k,"Source",{enumerable:!0,get:function(){return ie.Source}});Object.defineProperty(k,"Module",{enumerable:!0,get:function(){return ie.Module}});Object.defineProperty(k,"CompletionItem",{enumerable:!0,get:function(){return ie.CompletionItem}});Object.defineProperty(k,"ErrorDestination",{enumerable:!0,get:function(){return ie.ErrorDestination}});var Cm=zu();Object.defineProperty(k,"LoggingDebugSession",{enumerable:!0,get:function(){return Cm.LoggingDebugSession}});var Wu=ho();k.Logger=Wu;var Hu=io();Object.defineProperty(k,"Event",{enumerable:!0,get:function(){return Hu.Event}});Object.defineProperty(k,"Response",{enumerable:!0,get:function(){return Hu.Response}});var Dm=Vu();Object.defineProperty(k,"Handles",{enumerable:!0,get:function(){return Dm.Handles}});var $m=Wu.logger;k.logger=$m});var en=O((Rw,Gu)=>{"use strict";var Om="2.0.0",Fm=Number.MAX_SAFE_INTEGER||9007199254740991,Bm=16,qm=250,Mm=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Gu.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Bm,MAX_SAFE_BUILD_LENGTH:qm,MAX_SAFE_INTEGER:Fm,RELEASE_TYPES:Mm,SEMVER_SPEC_VERSION:Om,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var tn=O((Pw,Xu)=>{"use strict";var Um=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...a)=>console.error("SEMVER",...a):()=>{};Xu.exports=Um});var Ar=O((gt,Yu)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Da,MAX_SAFE_BUILD_LENGTH:jm,MAX_LENGTH:Nm}=en(),zm=tn();gt=Yu.exports={};var Vm=gt.re=[],Wm=gt.safeRe=[],x=gt.src=[],A=gt.t={},Hm=0,$a="[a-zA-Z0-9-]",Km=[["\\s",1],["\\d",Nm],[$a,jm]],Gm=a=>{for(let[e,t]of Km)a=a.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return a},z=(a,e,t)=>{let n=Gm(e),o=Hm++;zm(a,o,e),A[a]=o,x[o]=e,Vm[o]=new RegExp(e,t?"g":void 0),Wm[o]=new RegExp(n,t?"g":void 0)};z("NUMERICIDENTIFIER","0|[1-9]\\d*");z("NUMERICIDENTIFIERLOOSE","\\d+");z("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${$a}*`);z("MAINVERSION",`(${x[A.NUMERICIDENTIFIER]})\\.(${x[A.NUMERICIDENTIFIER]})\\.(${x[A.NUMERICIDENTIFIER]})`);z("MAINVERSIONLOOSE",`(${x[A.NUMERICIDENTIFIERLOOSE]})\\.(${x[A.NUMERICIDENTIFIERLOOSE]})\\.(${x[A.NUMERICIDENTIFIERLOOSE]})`);z("PRERELEASEIDENTIFIER",`(?:${x[A.NUMERICIDENTIFIER]}|${x[A.NONNUMERICIDENTIFIER]})`);z("PRERELEASEIDENTIFIERLOOSE",`(?:${x[A.NUMERICIDENTIFIERLOOSE]}|${x[A.NONNUMERICIDENTIFIER]})`);z("PRERELEASE",`(?:-(${x[A.PRERELEASEIDENTIFIER]}(?:\\.${x[A.PRERELEASEIDENTIFIER]})*))`);z("PRERELEASELOOSE",`(?:-?(${x[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${x[A.PRERELEASEIDENTIFIERLOOSE]})*))`);z("BUILDIDENTIFIER",`${$a}+`);z("BUILD",`(?:\\+(${x[A.BUILDIDENTIFIER]}(?:\\.${x[A.BUILDIDENTIFIER]})*))`);z("FULLPLAIN",`v?${x[A.MAINVERSION]}${x[A.PRERELEASE]}?${x[A.BUILD]}?`);z("FULL",`^${x[A.FULLPLAIN]}$`);z("LOOSEPLAIN",`[v=\\s]*${x[A.MAINVERSIONLOOSE]}${x[A.PRERELEASELOOSE]}?${x[A.BUILD]}?`);z("LOOSE",`^${x[A.LOOSEPLAIN]}$`);z("GTLT","((?:<|>)?=?)");z("XRANGEIDENTIFIERLOOSE",`${x[A.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);z("XRANGEIDENTIFIER",`${x[A.NUMERICIDENTIFIER]}|x|X|\\*`);z("XRANGEPLAIN",`[v=\\s]*(${x[A.XRANGEIDENTIFIER]})(?:\\.(${x[A.XRANGEIDENTIFIER]})(?:\\.(${x[A.XRANGEIDENTIFIER]})(?:${x[A.PRERELEASE]})?${x[A.BUILD]}?)?)?`);z("XRANGEPLAINLOOSE",`[v=\\s]*(${x[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${x[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${x[A.XRANGEIDENTIFIERLOOSE]})(?:${x[A.PRERELEASELOOSE]})?${x[A.BUILD]}?)?)?`);z("XRANGE",`^${x[A.GTLT]}\\s*${x[A.XRANGEPLAIN]}$`);z("XRANGELOOSE",`^${x[A.GTLT]}\\s*${x[A.XRANGEPLAINLOOSE]}$`);z("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Da}})(?:\\.(\\d{1,${Da}}))?(?:\\.(\\d{1,${Da}}))?`);z("COERCE",`${x[A.COERCEPLAIN]}(?:$|[^\\d])`);z("COERCEFULL",x[A.COERCEPLAIN]+`(?:${x[A.PRERELEASE]})?(?:${x[A.BUILD]})?(?:$|[^\\d])`);z("COERCERTL",x[A.COERCE],!0);z("COERCERTLFULL",x[A.COERCEFULL],!0);z("LONETILDE","(?:~>?)");z("TILDETRIM",`(\\s*)${x[A.LONETILDE]}\\s+`,!0);gt.tildeTrimReplace="$1~";z("TILDE",`^${x[A.LONETILDE]}${x[A.XRANGEPLAIN]}$`);z("TILDELOOSE",`^${x[A.LONETILDE]}${x[A.XRANGEPLAINLOOSE]}$`);z("LONECARET","(?:\\^)");z("CARETTRIM",`(\\s*)${x[A.LONECARET]}\\s+`,!0);gt.caretTrimReplace="$1^";z("CARET",`^${x[A.LONECARET]}${x[A.XRANGEPLAIN]}$`);z("CARETLOOSE",`^${x[A.LONECARET]}${x[A.XRANGEPLAINLOOSE]}$`);z("COMPARATORLOOSE",`^${x[A.GTLT]}\\s*(${x[A.LOOSEPLAIN]})$|^$`);z("COMPARATOR",`^${x[A.GTLT]}\\s*(${x[A.FULLPLAIN]})$|^$`);z("COMPARATORTRIM",`(\\s*)${x[A.GTLT]}\\s*(${x[A.LOOSEPLAIN]}|${x[A.XRANGEPLAIN]})`,!0);gt.comparatorTrimReplace="$1$2$3";z("HYPHENRANGE",`^\\s*(${x[A.XRANGEPLAIN]})\\s+-\\s+(${x[A.XRANGEPLAIN]})\\s*$`);z("HYPHENRANGELOOSE",`^\\s*(${x[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${x[A.XRANGEPLAINLOOSE]})\\s*$`);z("STAR","(<|>)?=?\\s*\\*");z("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");z("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var bo=O((Ew,Qu)=>{"use strict";var Xm=Object.freeze({loose:!0}),Ym=Object.freeze({}),Qm=a=>a?typeof a!="object"?Xm:a:Ym;Qu.exports=Qm});var Oa=O((Lw,ec)=>{"use strict";var Ju=/^[0-9]+$/,Zu=(a,e)=>{let t=Ju.test(a),n=Ju.test(e);return t&&n&&(a=+a,e=+e),a===e?0:t&&!n?-1:n&&!t?1:a<e?-1:1},Jm=(a,e)=>Zu(e,a);ec.exports={compareIdentifiers:Zu,rcompareIdentifiers:Jm}});var ge=O((xw,oc)=>{"use strict";var yo=tn(),{MAX_LENGTH:tc,MAX_SAFE_INTEGER:wo}=en(),{safeRe:rc,t:nc}=Ar(),Zm=bo(),{compareIdentifiers:Tr}=Oa(),Fa=class a{constructor(e,t){if(t=Zm(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>tc)throw new TypeError(`version is longer than ${tc} characters`);yo("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?rc[nc.LOOSE]:rc[nc.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>wo||this.major<0)throw new TypeError("Invalid major version");if(this.minor>wo||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>wo||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<wo)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(yo("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)),Tr(this.major,e.major)||Tr(this.minor,e.minor)||Tr(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(yo("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 Tr(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(yo("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 Tr(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]),Tr(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}};oc.exports=Fa});var or=O((Aw,ac)=>{"use strict";var ic=ge(),eg=(a,e,t=!1)=>{if(a instanceof ic)return a;try{return new ic(a,e)}catch(n){if(!t)return null;throw n}};ac.exports=eg});var lc=O((Tw,sc)=>{"use strict";var tg=or(),rg=(a,e)=>{let t=tg(a,e);return t?t.version:null};sc.exports=rg});var cc=O((kw,uc)=>{"use strict";var ng=or(),og=(a,e)=>{let t=ng(a.trim().replace(/^[=v]+/,""),e);return t?t.version:null};uc.exports=og});var pc=O((Iw,fc)=>{"use strict";var dc=ge(),ig=(a,e,t,n,o)=>{typeof t=="string"&&(o=n,n=t,t=void 0);try{return new dc(a instanceof dc?a.version:a,t).inc(e,n,o).version}catch{return null}};fc.exports=ig});var gc=O((Cw,mc)=>{"use strict";var hc=or(),ag=(a,e)=>{let t=hc(a,null,!0),n=hc(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"};mc.exports=ag});var bc=O((Dw,_c)=>{"use strict";var sg=ge(),lg=(a,e)=>new sg(a,e).major;_c.exports=lg});var wc=O(($w,yc)=>{"use strict";var ug=ge(),cg=(a,e)=>new ug(a,e).minor;yc.exports=cg});var Sc=O((Ow,vc)=>{"use strict";var dg=ge(),fg=(a,e)=>new dg(a,e).patch;vc.exports=fg});var Pc=O((Fw,Rc)=>{"use strict";var pg=or(),hg=(a,e)=>{let t=pg(a,e);return t&&t.prerelease.length?t.prerelease:null};Rc.exports=hg});var ze=O((Bw,Lc)=>{"use strict";var Ec=ge(),mg=(a,e,t)=>new Ec(a,t).compare(new Ec(e,t));Lc.exports=mg});var Ac=O((qw,xc)=>{"use strict";var gg=ze(),_g=(a,e,t)=>gg(e,a,t);xc.exports=_g});var kc=O((Mw,Tc)=>{"use strict";var bg=ze(),yg=(a,e)=>bg(a,e,!0);Tc.exports=yg});var vo=O((Uw,Cc)=>{"use strict";var Ic=ge(),wg=(a,e,t)=>{let n=new Ic(a,t),o=new Ic(e,t);return n.compare(o)||n.compareBuild(o)};Cc.exports=wg});var $c=O((jw,Dc)=>{"use strict";var vg=vo(),Sg=(a,e)=>a.sort((t,n)=>vg(t,n,e));Dc.exports=Sg});var Fc=O((Nw,Oc)=>{"use strict";var Rg=vo(),Pg=(a,e)=>a.sort((t,n)=>Rg(n,t,e));Oc.exports=Pg});var rn=O((zw,Bc)=>{"use strict";var Eg=ze(),Lg=(a,e,t)=>Eg(a,e,t)>0;Bc.exports=Lg});var So=O((Vw,qc)=>{"use strict";var xg=ze(),Ag=(a,e,t)=>xg(a,e,t)<0;qc.exports=Ag});var Ba=O((Ww,Mc)=>{"use strict";var Tg=ze(),kg=(a,e,t)=>Tg(a,e,t)===0;Mc.exports=kg});var qa=O((Hw,Uc)=>{"use strict";var Ig=ze(),Cg=(a,e,t)=>Ig(a,e,t)!==0;Uc.exports=Cg});var Ro=O((Kw,jc)=>{"use strict";var Dg=ze(),$g=(a,e,t)=>Dg(a,e,t)>=0;jc.exports=$g});var Po=O((Gw,Nc)=>{"use strict";var Og=ze(),Fg=(a,e,t)=>Og(a,e,t)<=0;Nc.exports=Fg});var Ma=O((Xw,zc)=>{"use strict";var Bg=Ba(),qg=qa(),Mg=rn(),Ug=Ro(),jg=So(),Ng=Po(),zg=(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 Bg(a,t,n);case"!=":return qg(a,t,n);case">":return Mg(a,t,n);case">=":return Ug(a,t,n);case"<":return jg(a,t,n);case"<=":return Ng(a,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};zc.exports=zg});var Wc=O((Yw,Vc)=>{"use strict";var Vg=ge(),Wg=or(),{safeRe:Eo,t:Lo}=Ar(),Hg=(a,e)=>{if(a instanceof Vg)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?Eo[Lo.COERCEFULL]:Eo[Lo.COERCE]);else{let d=e.includePrerelease?Eo[Lo.COERCERTLFULL]:Eo[Lo.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 Wg(`${n}.${o}.${s}${u}${f}`,e)};Vc.exports=Hg});var Kc=O((Qw,Hc)=>{"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}};Hc.exports=Ua});var Ve=O((Jw,Qc)=>{"use strict";var Kg=/\s+/g,ja=class a{constructor(e,t){if(t=Xg(t),e instanceof a)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new a(e.raw,t);if(e instanceof Na)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(Kg," "),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=>!Xc(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&&r_(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&&e_)|(this.options.loose&&t_))+":"+e,o=Gc.get(n);if(o)return o;let s=this.options.loose,u=s?Le[be.HYPHENRANGELOOSE]:Le[be.HYPHENRANGE];e=e.replace(u,f_(this.options.includePrerelease)),se("hyphen replace",e),e=e.replace(Le[be.COMPARATORTRIM],Qg),se("comparator trim",e),e=e.replace(Le[be.TILDETRIM],Jg),se("tilde trim",e),e=e.replace(Le[be.CARETTRIM],Zg),se("caret trim",e);let f=e.split(" ").map(m=>n_(m,this.options)).join(" ").split(/\s+/).map(m=>d_(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 Na(m,this.options));for(let m of c){if(Xc(m))return[m];d.set(m.value,m)}d.size>1&&d.has("")&&d.delete("");let p=[...d.values()];return Gc.set(n,p),p}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Range is required");return this.set.some(n=>Yc(n,t)&&e.set.some(o=>Yc(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 Yg(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(p_(this.set[t],e,this.options))return!0;return!1}};Qc.exports=ja;var Gg=Kc(),Gc=new Gg,Xg=bo(),Na=nn(),se=tn(),Yg=ge(),{safeRe:Le,t:be,comparatorTrimReplace:Qg,tildeTrimReplace:Jg,caretTrimReplace:Zg}=Ar(),{FLAG_INCLUDE_PRERELEASE:e_,FLAG_LOOSE:t_}=en(),Xc=a=>a.value==="<0.0.0-0",r_=a=>a.value==="",Yc=(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},n_=(a,e)=>(se("comp",a,e),a=a_(a,e),se("caret",a),a=o_(a,e),se("tildes",a),a=l_(a,e),se("xrange",a),a=c_(a,e),se("stars",a),a),ye=a=>!a||a.toLowerCase()==="x"||a==="*",o_=(a,e)=>a.trim().split(/\s+/).map(t=>i_(t,e)).join(" "),i_=(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})},a_=(a,e)=>a.trim().split(/\s+/).map(t=>s_(t,e)).join(" "),s_=(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})},l_=(a,e)=>(se("replaceXRanges",a,e),a.split(/\s+/).map(t=>u_(t,e)).join(" ")),u_=(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),b=m;return o==="="&&b&&(o=""),d=e.includePrerelease?"-0":"",c?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&b?(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})},c_=(a,e)=>(se("replaceStars",a,e),a.trim().replace(Le[be.STAR],"")),d_=(a,e)=>(se("replaceGTE0",a,e),a.trim().replace(Le[e.includePrerelease?be.GTE0PRE:be.GTE0],"")),f_=a=>(e,t,n,o,s,u,f,d,c,p,m,b)=>(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`:b?d=`<=${c}.${p}.${m}-${b}`:a?d=`<${c}.${p}.${+m+1}-0`:d=`<=${d}`,`${t} ${d}`.trim()),p_=(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!==Na.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 nn=O((Zw,nd)=>{"use strict";var on=Symbol("SemVer ANY"),Wa=class a{static get ANY(){return on}constructor(e,t){if(t=Jc(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Va("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===on?this.value="":this.value=this.operator+this.semver.version,Va("comp",this)}parse(e){let t=this.options.loose?Zc[ed.COMPARATORLOOSE]:Zc[ed.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 td(n[2],this.options.loose):this.semver=on}toString(){return this.value}test(e){if(Va("Comparator.test",e,this.options.loose),this.semver===on||e===on)return!0;if(typeof e=="string")try{e=new td(e,this.options)}catch{return!1}return za(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 rd(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new rd(this.value,t).test(e.semver):(t=Jc(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("=")||za(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||za(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};nd.exports=Wa;var Jc=bo(),{safeRe:Zc,t:ed}=Ar(),za=Ma(),Va=tn(),td=ge(),rd=Ve()});var an=O((ev,od)=>{"use strict";var h_=Ve(),m_=(a,e,t)=>{try{e=new h_(e,t)}catch{return!1}return e.test(a)};od.exports=m_});var ad=O((tv,id)=>{"use strict";var g_=Ve(),__=(a,e)=>new g_(a,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));id.exports=__});var ld=O((rv,sd)=>{"use strict";var b_=ge(),y_=Ve(),w_=(a,e,t)=>{let n=null,o=null,s=null;try{s=new y_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||o.compare(u)===-1)&&(n=u,o=new b_(n,t))}),n};sd.exports=w_});var cd=O((nv,ud)=>{"use strict";var v_=ge(),S_=Ve(),R_=(a,e,t)=>{let n=null,o=null,s=null;try{s=new S_(e,t)}catch{return null}return a.forEach(u=>{s.test(u)&&(!n||o.compare(u)===1)&&(n=u,o=new v_(n,t))}),n};ud.exports=R_});var pd=O((ov,fd)=>{"use strict";var Ha=ge(),P_=Ve(),dd=rn(),E_=(a,e)=>{a=new P_(a,e);let t=new Ha("0.0.0");if(a.test(t)||(t=new Ha("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 Ha(u.semver.version);switch(u.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!s||dd(f,s))&&(s=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),s&&(!t||dd(t,s))&&(t=s)}return t&&a.test(t)?t:null};fd.exports=E_});var md=O((iv,hd)=>{"use strict";var L_=Ve(),x_=(a,e)=>{try{return new L_(a,e).range||"*"}catch{return null}};hd.exports=x_});var xo=O((av,yd)=>{"use strict";var A_=ge(),bd=nn(),{ANY:T_}=bd,k_=Ve(),I_=an(),gd=rn(),_d=So(),C_=Po(),D_=Ro(),$_=(a,e,t,n)=>{a=new A_(a,n),e=new k_(e,n);let o,s,u,f,d;switch(t){case">":o=gd,s=C_,u=_d,f=">",d=">=";break;case"<":o=_d,s=D_,u=gd,f="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(I_(a,e,n))return!1;for(let c=0;c<e.set.length;++c){let p=e.set[c],m=null,b=null;if(p.forEach(g=>{g.semver===T_&&(g=new bd(">=0.0.0")),m=m||g,b=b||g,o(g.semver,m.semver,n)?m=g:u(g.semver,b.semver,n)&&(b=g)}),m.operator===f||m.operator===d||(!b.operator||b.operator===f)&&s(a,b.semver))return!1;if(b.operator===d&&u(a,b.semver))return!1}return!0};yd.exports=$_});var vd=O((sv,wd)=>{"use strict";var O_=xo(),F_=(a,e,t)=>O_(a,e,">",t);wd.exports=F_});var Rd=O((lv,Sd)=>{"use strict";var B_=xo(),q_=(a,e,t)=>B_(a,e,"<",t);Sd.exports=q_});var Ld=O((uv,Ed)=>{"use strict";var Pd=Ve(),M_=(a,e,t)=>(a=new Pd(a,t),e=new Pd(e,t),a.intersects(e,t));Ed.exports=M_});var Ad=O((cv,xd)=>{"use strict";var U_=an(),j_=ze();xd.exports=(a,e,t)=>{let n=[],o=null,s=null,u=a.sort((p,m)=>j_(p,m,t));for(let p of u)U_(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 $d=O((dv,Dd)=>{"use strict";var Td=Ve(),Ga=nn(),{ANY:Ka}=Ga,sn=an(),Xa=ze(),N_=(a,e,t={})=>{if(a===e)return!0;a=new Td(a,t),e=new Td(e,t);let n=!1;e:for(let o of a.set){for(let s of e.set){let u=V_(o,s,t);if(n=n||u!==null,u)continue e}if(n)return!1}return!0},z_=[new Ga(">=0.0.0-0")],kd=[new Ga(">=0.0.0")],V_=(a,e,t)=>{if(a===e)return!0;if(a.length===1&&a[0].semver===Ka){if(e.length===1&&e[0].semver===Ka)return!0;t.includePrerelease?a=z_:a=kd}if(e.length===1&&e[0].semver===Ka){if(t.includePrerelease)return!0;e=kd}let n=new Set,o,s;for(let g of a)g.operator===">"||g.operator===">="?o=Id(o,g,t):g.operator==="<"||g.operator==="<="?s=Cd(s,g,t):n.add(g.semver);if(n.size>1)return null;let u;if(o&&s){if(u=Xa(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&&!sn(g,String(o),t)||s&&!sn(g,String(s),t))return null;for(let y of e)if(!sn(g,String(y),t))return!1;return!0}let f,d,c,p,m=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,b=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(b&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===b.major&&g.semver.minor===b.minor&&g.semver.patch===b.patch&&(b=!1),g.operator===">"||g.operator===">="){if(f=Id(o,g,t),f===g&&f!==o)return!1}else if(o.operator===">="&&!sn(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=Cd(s,g,t),d===g&&d!==s)return!1}else if(s.operator==="<="&&!sn(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||b||m)},Id=(a,e,t)=>{if(!a)return e;let n=Xa(a.semver,e.semver,t);return n>0?a:n<0||e.operator===">"&&a.operator===">="?e:a},Cd=(a,e,t)=>{if(!a)return e;let n=Xa(a.semver,e.semver,t);return n<0?a:n>0||e.operator==="<"&&a.operator==="<="?e:a};Dd.exports=N_});var qd=O((fv,Bd)=>{"use strict";var Ya=Ar(),Od=en(),W_=ge(),Fd=Oa(),H_=or(),K_=lc(),G_=cc(),X_=pc(),Y_=gc(),Q_=bc(),J_=wc(),Z_=Sc(),eb=Pc(),tb=ze(),rb=Ac(),nb=kc(),ob=vo(),ib=$c(),ab=Fc(),sb=rn(),lb=So(),ub=Ba(),cb=qa(),db=Ro(),fb=Po(),pb=Ma(),hb=Wc(),mb=nn(),gb=Ve(),_b=an(),bb=ad(),yb=ld(),wb=cd(),vb=pd(),Sb=md(),Rb=xo(),Pb=vd(),Eb=Rd(),Lb=Ld(),xb=Ad(),Ab=$d();Bd.exports={parse:H_,valid:K_,clean:G_,inc:X_,diff:Y_,major:Q_,minor:J_,patch:Z_,prerelease:eb,compare:tb,rcompare:rb,compareLoose:nb,compareBuild:ob,sort:ib,rsort:ab,gt:sb,lt:lb,eq:ub,neq:cb,gte:db,lte:fb,cmp:pb,coerce:hb,Comparator:mb,Range:gb,satisfies:_b,toComparators:bb,maxSatisfying:yb,minSatisfying:wb,minVersion:vb,validRange:Sb,outside:Rb,gtr:Pb,ltr:Eb,intersects:Lb,simplifyRange:xb,subset:Ab,SemVer:W_,re:Ya.re,src:Ya.src,tokens:Ya.t,SEMVER_SPEC_VERSION:Od.SEMVER_SPEC_VERSION,RELEASE_TYPES:Od.RELEASE_TYPES,compareIdentifiers:Fd.compareIdentifiers,rcompareIdentifiers:Fd.rcompareIdentifiers}});var Hd=O((mv,Wd)=>{"use strict";var Vd=require("child_process"),jd=Vd.spawn,Tb=Vd.exec;Wd.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":Tb("taskkill /pid "+a+" /T /F",t);break;case"darwin":Qa(a,n,o,function(s){return jd("pgrep",["-P",s])},function(){Nd(n,e,t)});break;default:Qa(a,n,o,function(s){return jd("ps",["-o","pid","--no-headers","--ppid",s])},function(){Nd(n,e,t)});break}};function Nd(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 Qa(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,Qa(c,e,t,n,o)})};s.on("close",f)}});var rf=O((Dv,tf)=>{"use strict";var{hasOwnProperty:us}=Object.prototype,cs=(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
3003
3220
  `:`
3004
- `,n=e.whitespace?" = ":"=",i=[],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 _ of p)f+=yt(`${c}${d}`).padEnd(u," ")+n+yt(_)+t;else p&&typeof p=="object"?i.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 i){let p=Xd(c,".").join("\\."),_=(e.section?e.section+".":"")+p,b=ls(a[c],{...e,section:_});f.length&&b.length&&(f+=t),f+=b}return f};function Xd(a,e){var t=0,n=0,i=0,s=[];do if(i=a.indexOf(e,t),i!==-1){if(t=i+e.length,i>0&&a[i-1]==="\\")continue;s.push(a.slice(n,i)),n=i+e.length}while(i!==-1);return s.push(a.slice(n)),s}var Gd=(a,e={})=>{e.bracketedArray=e.bracketedArray!==!1;let t=Object.create(null),n=t,i=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(i=Ii(p[1]),i==="__proto__"){n=Object.create(null);continue}n=t[i]=t[i]||Object.create(null);continue}let _=Ii(p[2]),b;e.bracketedArray?b=_.length>2&&_.slice(-2)==="[]":(f[_]=(f?.[_]||0)+1,b=f[_]>1);let g=b&&_.endsWith("[]")?_.slice(0,-2):_;if(g==="__proto__")continue;let y=p[3]?Ii(p[4]):!0,S=y==="true"||y==="false"||y==="null"?JSON.parse(y):y;b&&(ss.call(n,g)?Array.isArray(n[g])||(n[g]=[n[g]]):n[g]=[]),Array.isArray(n[g])?n[g].push(S):n[g]=S}let d=[];for(let c of Object.keys(t)){if(!ss.call(t,c)||typeof t[c]!="object"||Array.isArray(t[c]))continue;let p=Xd(c,".");n=t;let _=p.pop(),b=_.replace(/\\\./g,".");for(let g of p)g!=="__proto__"&&((!ss.call(n,g)||typeof n[g]!="object")&&(n[g]=Object.create(null)),n=n[g]);n===t&&b===_||(n[b]=t[c],d.push(c))}for(let c of d)delete t[c];return t},Yd=a=>a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"),yt=a=>typeof a!="string"||a.match(/[=\r\n]/)||a.match(/^\[/)||a.length>1&&Yd(a)||a!==a.trim()?JSON.stringify(a):a.split(";").join("\\;").split("#").join("\\#"),Ii=a=>{if(a=(a||"").trim(),Yd(a)){a.charAt(0)==="'"&&(a=a.slice(1,-1));try{a=JSON.parse(a)}catch{}}else{let e=!1,t="";for(let n=0,i=a.length;n<i;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};Qd.exports={parse:Gd,decode:Gd,stringify:ls,encode:ls,safe:yt,unsafe:Ii}});var Pb={};ne(Pb,{ActiveFactorioVersion:()=>us,ApiDocGenerator:()=>Zo,BufferSplitter:()=>kr,BufferStream:()=>ar,EncodingUtil:()=>go,FactorioModDebugSession:()=>rs,LuaControlBehaviorType:()=>as,LuaFlowStatisticsType:()=>cn,LuaItemStackType:()=>bt,LuaLSAddon:()=>qo,LuaObjectType:()=>os,MapVersion:()=>Dt,ModManager:()=>Rr,ModSettings:()=>Yr,PropertyTree:()=>Pr,PropertyTreeType:()=>Yo,ProtoDocGenerator:()=>ea,SavedLuaTypeTag:()=>is,ScriptDat:()=>ns,getModInfo:()=>Au,substitutePathVariables:()=>Ci});module.exports=Gp(Pb);var go={};ne(go,{bufferChunks:()=>ho,encodeBreakpoints:()=>mo,encodeVarInt:()=>Xt,luaBlockQuote:()=>It,objectToLua:()=>jr});function It(a){let e=a.toString().match(/\]=*$/),t="=".repeat((a.toString().match(/\]=*\]/g)||[]).map(n=>n.length-1).reduce((n,i)=>Math.max(n,i),e?e[0].length:0));return Buffer.concat([Buffer.from(`[${t}[`),a,Buffer.from(`]${t}]`)])}function ho(a,e){let t=[],n=a.length,i=0;for(;i<n;)t.push(a.slice(i,i+=e));return t}function jr(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(jr(t)),e.push(Buffer.from("]=")),e.push(jr(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 Xt(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,i;if(a<128)return Buffer.from([a]);a<2048?(i=2,e=192,t=31,n=6):a<65536?(i=3,e=224,t=15,n=12):a<2097152?(i=4,e=240,t=7,n=18):a<67108864?(i=5,e=248,t=3,n=24):(i=6,e=252,t=3,n=30);let s=Buffer.alloc(i);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 zn(a){let e=Buffer.from(a,"utf8"),t=Xt(e.length);return Buffer.concat([t,e])}function Vn(a){let e=Xt(a.line),t=0,n=new Array;return a.condition&&(t|=1,n.push(zn(a.condition.replace(/[\r\n]+/g," ")))),a.hitCondition&&(t|=2,n.push(zn(a.hitCondition.replace(/[\r\n]+/g," ")))),a.logMessage&&(t|=4,n.push(zn(a.logMessage.replace(/[\r\n]+/g," ")))),Buffer.concat([e,Buffer.from([t]),Buffer.concat(n)])}function mo(a,e){let t=zn(a),n=e.filter(f=>!f.condition&&!f.hitCondition&&!f.logMessage).map(f=>f.line),i;if(n.length===0)i=Buffer.from([255]);else if(n.length===10){let f=Buffer.from([254]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else if(n.length===26){let f=Buffer.from([253]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else if(n.length===13){let f=Buffer.from([252]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else{let f=Buffer.from([n.length]);i=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(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=>Vn(d)))])}else if(s.length===26){let f=Buffer.from([253]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Vn(d)))])}else if(s.length===13){let f=Buffer.from([252]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Vn(d)))])}else{let f=Buffer.from([s.length]);u=Buffer.concat([f,Buffer.concat(s.map(d=>Vn(d)))])}return Buffer.concat([t,i,u])}var qo={};ne(qo,{getConfig:()=>Vh,getLuaFiles:()=>jh});var Yt="2.0.1";var Wn;async function jh(){if(!Wn){Wn=[];let a=await Promise.resolve().then(()=>(Wl(),zl)),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 Vh(a){return{name:"factorio/config.json",content:JSON.stringify(Object.assign(await Promise.resolve().then(()=>le(Hl())),{bundleVersion:Yt,factorioVersion:a}))}}var Ee=le(require("fs/promises")),nt=le(require("path"));var Pu=le(require("node:http"),1),Eu=le(require("node:https"),1),tr=le(require("node:zlib"),1),Ie=le(require("node:stream"),1),Xr=require("node:buffer");function zh(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="",i=!1,s=t[0]||"text/plain",u=s;for(let p=1;p<t.length;p++)t[p]==="base64"?i=!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=i?"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 Kl=zh;var Me=le(require("node:stream"),1),ht=require("node:util"),Te=require("node:buffer");Vr();Kn();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 Gn=Symbol.toStringTag,Vo=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[Gn]==="URLSearchParams",Wr=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[Gn]),ru=a=>typeof a=="object"&&(a[Gn]==="AbortSignal"||a[Gn]==="EventTarget"),nu=(a,e)=>{let t=new URL(e).hostname,n=new URL(a).hostname;return t===n||t.endsWith(`.${n}`)},iu=(a,e)=>{let t=new URL(e).protocol,n=new URL(a).protocol;return t===n};var om=(0,ht.promisify)(Me.default.pipeline),Pe=Symbol("Body internals"),rt=class{constructor(e,{size:t=0}={}){let n=null;e===null?e=null:Vo(e)?e=Te.Buffer.from(e.toString()):Wr(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 Me.default||(e instanceof Jt?(e=tu(e),n=e.type.split("=")[1]):e=Te.Buffer.from(String(e))));let i=e;Te.Buffer.isBuffer(e)?i=Me.default.Readable.from(e):Wr(e)&&(i=Me.default.Readable.from(e.stream())),this[Pe]={body:e,stream:i,boundary:n,disturbed:!1,error:null},this.size=t,e instanceof Me.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 Ho(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 Jt,i=new URLSearchParams(await this.text());for(let[s,u]of i)n.append(s,u);return n}let{toFormData:t}=await Promise.resolve().then(()=>(uu(),lu));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 Ho(this);return new TextDecoder().decode(e)}buffer(){return Ho(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 Ho(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 Me.default))return Te.Buffer.alloc(0);let t=[],n=0;try{for await(let i of e){if(a.size>0&&n+i.length>a.size){let s=new Re(`content size at ${a.url} over limit: ${a.size}`,"max-size");throw e.destroy(s),s}n+=i.length,t.push(i)}}catch(i){throw i instanceof pt?i:new Re(`Invalid response body while trying to fetch ${a.url}: ${i.message}`,"system",i)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return t.every(i=>typeof i=="string")?Te.Buffer.from(t.join("")):Te.Buffer.concat(t,n)}catch(i){throw new Re(`Could not create Buffer from response body for ${a.url}: ${i.message}`,"system",i)}else throw new Re(`Premature close of server response while trying to fetch ${a.url}`)}var wr=(a,e)=>{let t,n,{body:i}=a[Pe];if(a.bodyUsed)throw new Error("cannot clone body after it is used");return i instanceof Me.default&&typeof i.getBoundary!="function"&&(t=new Me.PassThrough({highWaterMark:e}),n=new Me.PassThrough({highWaterMark:e}),i.pipe(t),i.pipe(n),a[Pe].stream=t,i=n),i},am=(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"),Jn=(a,e)=>a===null?null:typeof a=="string"?"text/plain;charset=UTF-8":Vo(a)?"application/x-www-form-urlencoded;charset=UTF-8":Wr(a)?a.type||null:Te.Buffer.isBuffer(a)||ht.types.isAnyArrayBuffer(a)||ArrayBuffer.isView(a)?null:a instanceof Jt?`multipart/form-data; boundary=${e[Pe].boundary}`:a&&typeof a.getBoundary=="function"?`multipart/form-data;boundary=${am(a)}`:a instanceof Me.default?null:"text/plain;charset=UTF-8",cu=a=>{let{body:e}=a[Pe];return e===null?0:Wr(e)?e.size:Te.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},du=async(a,{body:e})=>{e===null?a.end():await om(e,a)};var Ko=require("node:util"),Kr=le(require("node:http"),1),Zn=typeof Kr.default.validateHeaderName=="function"?Kr.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}},Go=typeof Kr.default.validateHeaderValue=="function"?Kr.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}},ke=class a extends URLSearchParams{constructor(e){let t=[];if(e instanceof a){let n=e.raw();for(let[i,s]of Object.entries(n))t.push(...s.map(u=>[i,u]))}else if(e!=null)if(typeof e=="object"&&!Ko.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(i=>{if(typeof i!="object"||Ko.types.isBoxedPrimitive(i))throw new TypeError("Each header pair must be an iterable object");return[...i]}).map(i=>{if(i.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...i]})}}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,i])=>(Zn(n),Go(n,String(i)),[String(n).toLowerCase(),String(i)])):void 0,super(t),new Proxy(this,{get(n,i,s){switch(i){case"append":case"set":return(u,f)=>(Zn(u),Go(u,String(f)),URLSearchParams.prototype[i].call(n,String(u).toLowerCase(),String(f)));case"delete":case"has":case"getAll":return u=>(Zn(u),URLSearchParams.prototype[i].call(n,String(u).toLowerCase()));case"keys":return()=>(n.sort(),new Set(URLSearchParams.prototype.keys.call(n)).keys());default:return Reflect.get(n,i,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(ke.prototype,["get","entries","forEach","values"].reduce((a,e)=>(a[e]={enumerable:!0},a),{}));function fu(a=[]){return new ke(a.reduce((e,t,n,i)=>(n%2===0&&e.push(i.slice(n,n+2)),e),[]).filter(([e,t])=>{try{return Zn(e),Go(e,String(t)),!0}catch{return!1}}))}var sm=new Set([301,302,303,307,308]),ei=a=>sm.has(a);var Ye=Symbol("Response internals"),Ue=class a extends rt{constructor(e=null,t={}){super(e,t);let n=t.status!=null?t.status:200,i=new ke(t.headers);if(e!==null&&!i.has("Content-Type")){let s=Jn(e,this);s&&i.append("Content-Type",s)}this[Ye]={type:"default",url:t.url,status:n,statusText:t.statusText||"",headers:i,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(wr(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(!ei(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 i=new ke(t&&t.headers);return i.has("content-type")||i.set("content-type","application/json"),new a(n,{...t,headers:i})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(Ue.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 vu=require("node:url"),Su=require("node:util");var pu=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 mu=require("node:net");function hu(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 gu=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),_u="strict-origin-when-cross-origin";function bu(a){if(!gu.has(a))throw new TypeError(`Invalid referrerPolicy: ${a}`);return a}function lm(a){if(/^(http|ws)s:$/.test(a.protocol))return!0;let e=a.host.replace(/(^\[)|(]$)/g,""),t=(0,mu.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 vr(a){return/^about:(blank|srcdoc)$/.test(a)||a.protocol==="data:"||/^(blob|filesystem):$/.test(a.protocol)?!0:lm(a)}function yu(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 i=a.referrer,s=hu(i),u=hu(i,!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 vr(s)&&!vr(f)?"no-referrer":u.toString();case"strict-origin-when-cross-origin":return s.origin===f.origin?s:vr(s)&&!vr(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 vr(s)&&!vr(f)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${n}`)}}function wu(a){let e=(a.get("referrer-policy")||"").split(/[,\s]+/),t="";for(let n of e)n&&gu.has(n)&&(t=n);return t}var fe=Symbol("Request internals"),Gr=a=>typeof a=="object"&&typeof a[fe]=="object",um=(0,Su.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),er=class a extends rt{constructor(e,t={}){let n;if(Gr(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 i=t.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(i)&&(i=i.toUpperCase()),!Gr(t)&&"data"in t&&um(),(t.body!=null||Gr(e)&&e.body!==null)&&(i==="GET"||i==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=t.body?t.body:Gr(e)&&e.body!==null?wr(e):null;super(s,{size:t.size||e.size||0});let u=new ke(t.headers||e.headers||{});if(s!==null&&!u.has("Content-Type")){let c=Jn(s,this);c&&u.set("Content-Type",c)}let f=Gr(e)?e.signal:null;if("signal"in t&&(f=t.signal),f!=null&&!ru(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:i,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,vu.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=bu(e)}clone(){return new a(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(er.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 Ru=a=>{let{parsedURL:e}=a[fe],t=new ke(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=cu(a);typeof f=="number"&&!Number.isNaN(f)&&(n=String(f))}n&&t.set("Content-Length",n),a.referrerPolicy===""&&(a.referrerPolicy=_u),a.referrer&&a.referrer!=="no-referrer"?a[fe].referrer=yu(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:i}=a;typeof i=="function"&&(i=i(e));let s=pu(e),u={path:e.pathname+s,method:a.method,headers:t[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:a.insecureHTTPParser,agent:i};return{parsedURL:e,options:u}};var ti=class extends pt{constructor(e,t="aborted"){super(e,t)}};Kn();zo();var cm=new Set(["data:","http:","https:"]);async function Sr(a,e){return new Promise((t,n)=>{let i=new er(a,e),{parsedURL:s,options:u}=Ru(i);if(!cm.has(s.protocol))throw new TypeError(`node-fetch cannot load ${a}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let y=Kl(i.url),S=new Ue(y,{headers:{"Content-Type":y.typeFull}});t(S);return}let f=(s.protocol==="https:"?Eu.default:Pu.default).request,{signal:d}=i,c=null,p=()=>{let y=new ti("The operation was aborted.");n(y),i.body&&i.body instanceof Ie.default.Readable&&i.body.destroy(y),!(!c||!c.body)&&c.body.emit("error",y)};if(d&&d.aborted){p();return}let _=()=>{p(),g()},b=f(s.toString(),u);d&&d.addEventListener("abort",_);let g=()=>{b.abort(),d&&d.removeEventListener("abort",_)};b.on("error",y=>{n(new Re(`request to ${i.url} failed, reason: ${y.message}`,"system",y)),g()}),dm(b,y=>{c&&c.body&&c.body.destroy(y)}),process.version<"v14"&&b.on("socket",y=>{let S;y.prependListener("end",()=>{S=y._eventsCount}),y.prependListener("close",A=>{if(c&&S<y._eventsCount&&!A){let E=new Error("Premature close");E.code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",E)}})}),b.on("response",y=>{b.setTimeout(0);let S=fu(y.rawHeaders);if(ei(y.statusCode)){let G=S.get("Location"),X=null;try{X=G===null?null:new URL(G,i.url)}catch{if(i.redirect!=="manual"){n(new Re(`uri requested responds with an invalid redirect URL: ${G}`,"invalid-redirect")),g();return}}switch(i.redirect){case"error":n(new Re(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),g();return;case"manual":break;case"follow":{if(X===null)break;if(i.counter>=i.follow){n(new Re(`maximum redirect reached at: ${i.url}`,"max-redirect")),g();return}let J={headers:new ke(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:wr(i),signal:i.signal,size:i.size,referrer:i.referrer,referrerPolicy:i.referrerPolicy};if(!nu(i.url,X)||!iu(i.url,X))for(let He of["authorization","www-authenticate","cookie","cookie2"])J.headers.delete(He);if(y.statusCode!==303&&i.body&&e.body instanceof Ie.default.Readable){n(new Re("Cannot follow redirect with body being a readable stream","unsupported-redirect")),g();return}(y.statusCode===303||(y.statusCode===301||y.statusCode===302)&&i.method==="POST")&&(J.method="GET",J.body=void 0,J.headers.delete("content-length"));let We=wu(S);We&&(J.referrerPolicy=We),t(Sr(new er(X,J))),g();return}default:return n(new TypeError(`Redirect option '${i.redirect}' is not a valid value of RequestRedirect`))}}d&&y.once("end",()=>{d.removeEventListener("abort",_)});let A=(0,Ie.pipeline)(y,new Ie.PassThrough,G=>{G&&n(G)});process.version<"v12.10"&&y.on("aborted",_);let E={url:i.url,status:y.statusCode,statusText:y.statusMessage,headers:S,size:i.size,counter:i.counter,highWaterMark:i.highWaterMark},L=S.get("Content-Encoding");if(!i.compress||i.method==="HEAD"||L===null||y.statusCode===204||y.statusCode===304){c=new Ue(A,E),t(c);return}let Q={flush:tr.default.Z_SYNC_FLUSH,finishFlush:tr.default.Z_SYNC_FLUSH};if(L==="gzip"||L==="x-gzip"){A=(0,Ie.pipeline)(A,tr.default.createGunzip(Q),G=>{G&&n(G)}),c=new Ue(A,E),t(c);return}if(L==="deflate"||L==="x-deflate"){let G=(0,Ie.pipeline)(y,new Ie.PassThrough,X=>{X&&n(X)});G.once("data",X=>{(X[0]&15)===8?A=(0,Ie.pipeline)(A,tr.default.createInflate(),J=>{J&&n(J)}):A=(0,Ie.pipeline)(A,tr.default.createInflateRaw(),J=>{J&&n(J)}),c=new Ue(A,E),t(c)}),G.once("end",()=>{c||(c=new Ue(A,E),t(c))});return}if(L==="br"){A=(0,Ie.pipeline)(A,tr.default.createBrotliDecompress(),G=>{G&&n(G)}),c=new Ue(A,E),t(c);return}c=new Ue(A,E),t(c)}),du(b,i).catch(n)})}function dm(a,e){let t=Xr.Buffer.from(`0\r
3221
+ `,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=Zd(c,".").join("\\."),m=(e.section?e.section+".":"")+p,b=cs(a[c],{...e,section:m});f.length&&b.length&&(f+=t),f+=b}return f};function Zd(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 Jd=(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=Io(p[1]),o==="__proto__"){n=Object.create(null);continue}n=t[o]=t[o]||Object.create(null);continue}let m=Io(p[2]),b;e.bracketedArray?b=m.length>2&&m.slice(-2)==="[]":(f[m]=(f?.[m]||0)+1,b=f[m]>1);let g=b&&m.endsWith("[]")?m.slice(0,-2):m;if(g==="__proto__")continue;let y=p[3]?Io(p[4]):!0,R=y==="true"||y==="false"||y==="null"?JSON.parse(y):y;b&&(us.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(!us.call(t,c)||typeof t[c]!="object"||Array.isArray(t[c]))continue;let p=Zd(c,".");n=t;let m=p.pop(),b=m.replace(/\\\./g,".");for(let g of p)g!=="__proto__"&&((!us.call(n,g)||typeof n[g]!="object")&&(n[g]=Object.create(null)),n=n[g]);n===t&&b===m||(n[b]=t[c],d.push(c))}for(let c of d)delete t[c];return t},ef=a=>a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"),yt=a=>typeof a!="string"||a.match(/[=\r\n]/)||a.match(/^\[/)||a.length>1&&ef(a)||a!==a.trim()?JSON.stringify(a):a.split(";").join("\\;").split("#").join("\\#"),Io=a=>{if(a=(a||"").trim(),ef(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};tf.exports={parse:Jd,decode:Jd,stringify:cs,encode:cs,safe:yt,unsafe:Io}});var Cb={};Z(Cb,{ActiveFactorioVersion:()=>ds,ApiDocGenerator:()=>ea,BufferSplitter:()=>kr,BufferStream:()=>ar,EncodingUtil:()=>mi,FactorioModDebugSession:()=>os,LuaControlBehaviorType:()=>ls,LuaFlowStatisticsType:()=>un,LuaItemStackType:()=>bt,LuaLSAddon:()=>Mi,LuaObjectType:()=>ss,MapVersion:()=>Dt,ModManager:()=>Rr,ModSettings:()=>Yr,PropertyTree:()=>Pr,PropertyTreeType:()=>Qi,ProtoDocGenerator:()=>ta,SavedLuaTypeTag:()=>as,ScriptDat:()=>is,getModInfo:()=>Cu,substitutePathVariables:()=>Co});module.exports=Jp(Cb);var mi={};Z(mi,{bufferChunks:()=>pi,encodeBreakpoints:()=>hi,encodeVarInt:()=>Xt,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 Xt(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 zn(a){let e=Buffer.from(a,"utf8"),t=Xt(e.length);return Buffer.concat([t,e])}function Nn(a){let e=Xt(a.line),t=0,n=new Array;return a.condition&&(t|=1,n.push(zn(a.condition.replace(/[\r\n]+/g," ")))),a.hitCondition&&(t|=2,n.push(zn(a.hitCondition.replace(/[\r\n]+/g," ")))),a.logMessage&&(t|=4,n.push(zn(a.logMessage.replace(/[\r\n]+/g," ")))),Buffer.concat([e,Buffer.from([t]),Buffer.concat(n)])}function hi(a,e){let t=zn(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=>Xt(d)))])}else if(n.length===26){let f=Buffer.from([253]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else if(n.length===13){let f=Buffer.from([252]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(d)))])}else{let f=Buffer.from([n.length]);o=Buffer.concat([f,Buffer.concat(n.map(d=>Xt(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 Mi={};Z(Mi,{getConfig:()=>Qh,getLuaFiles:()=>Yh});var Yt="2.0.3";var Vn;async function Yh(){if(!Vn){Vn=[];let a=await Promise.resolve().then(()=>(Xl(),Gl)),e=a.default,t=a.filenames;for(let n=0;n<e.length;n++)Vn.push({name:t[n].replace("../luals-addon/",""),content:e[n].default})}return Vn}async function Qh(a){return{name:"factorio/config.json",content:JSON.stringify(Object.assign(await Promise.resolve().then(()=>le(Yl())),{bundleVersion:Yt,factorioVersion:a}))}}var Ee=le(require("fs/promises")),nt=le(require("path"));var Au=le(require("node:http"),1),Tu=le(require("node:https"),1),tr=le(require("node:zlib"),1),Ie=le(require("node:stream"),1),Xr=require("node:buffer");function Jh(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 Ql=Jh;var Me=le(require("node:stream"),1),ht=require("node:util"),Te=require("node:buffer");zr();Hn();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 Kn=Symbol.toStringTag,Vi=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[Kn]==="URLSearchParams",Wr=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[Kn]),au=a=>typeof a=="object"&&(a[Kn]==="AbortSignal"||a[Kn]==="EventTarget"),su=(a,e)=>{let t=new URL(e).hostname,n=new URL(a).hostname;return t===n||t.endsWith(`.${n}`)},lu=(a,e)=>{let t=new URL(e).protocol,n=new URL(a).protocol;return t===n};var pm=(0,ht.promisify)(Me.default.pipeline),Pe=Symbol("Body internals"),rt=class{constructor(e,{size:t=0}={}){let n=null;e===null?e=null:Vi(e)?e=Te.Buffer.from(e.toString()):Wr(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 Me.default||(e instanceof Jt?(e=iu(e),n=e.type.split("=")[1]):e=Te.Buffer.from(String(e))));let o=e;Te.Buffer.isBuffer(e)?o=Me.default.Readable.from(e):Wr(e)&&(o=Me.default.Readable.from(e.stream())),this[Pe]={body:e,stream:o,boundary:n,disturbed:!1,error:null},this.size=t,e instanceof Me.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 Ki(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 Jt,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(()=>(pu(),fu));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 Ki(this);return new TextDecoder().decode(e)}buffer(){return Ki(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 Ki(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 Me.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 wr=(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 Me.default&&typeof o.getBoundary!="function"&&(t=new Me.PassThrough({highWaterMark:e}),n=new Me.PassThrough({highWaterMark:e}),o.pipe(t),o.pipe(n),a[Pe].stream=t,o=n),o},hm=(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"),Qn=(a,e)=>a===null?null:typeof a=="string"?"text/plain;charset=UTF-8":Vi(a)?"application/x-www-form-urlencoded;charset=UTF-8":Wr(a)?a.type||null:Te.Buffer.isBuffer(a)||ht.types.isAnyArrayBuffer(a)||ArrayBuffer.isView(a)?null:a instanceof Jt?`multipart/form-data; boundary=${e[Pe].boundary}`:a&&typeof a.getBoundary=="function"?`multipart/form-data;boundary=${hm(a)}`:a instanceof Me.default?null:"text/plain;charset=UTF-8",hu=a=>{let{body:e}=a[Pe];return e===null?0:Wr(e)?e.size:Te.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},mu=async(a,{body:e})=>{e===null?a.end():await pm(e,a)};var Gi=require("node:util"),Kr=le(require("node:http"),1),Jn=typeof Kr.default.validateHeaderName=="function"?Kr.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}},Xi=typeof Kr.default.validateHeaderValue=="function"?Kr.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}},ke=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"&&!Gi.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"||Gi.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])=>(Jn(n),Xi(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)=>(Jn(u),Xi(u,String(f)),URLSearchParams.prototype[o].call(n,String(u).toLowerCase(),String(f)));case"delete":case"has":case"getAll":return u=>(Jn(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(ke.prototype,["get","entries","forEach","values"].reduce((a,e)=>(a[e]={enumerable:!0},a),{}));function gu(a=[]){return new ke(a.reduce((e,t,n,o)=>(n%2===0&&e.push(o.slice(n,n+2)),e),[]).filter(([e,t])=>{try{return Jn(e),Xi(e,String(t)),!0}catch{return!1}}))}var mm=new Set([301,302,303,307,308]),Zn=a=>mm.has(a);var Ye=Symbol("Response internals"),Ue=class a extends rt{constructor(e=null,t={}){super(e,t);let n=t.status!=null?t.status:200,o=new ke(t.headers);if(e!==null&&!o.has("Content-Type")){let s=Qn(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(wr(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(!Zn(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 ke(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(Ue.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 Eu=require("node:url"),Lu=require("node:util");var _u=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 yu=require("node:net");function bu(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 wu=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),vu="strict-origin-when-cross-origin";function Su(a){if(!wu.has(a))throw new TypeError(`Invalid referrerPolicy: ${a}`);return a}function gm(a){if(/^(http|ws)s:$/.test(a.protocol))return!0;let e=a.host.replace(/(^\[)|(]$)/g,""),t=(0,yu.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 vr(a){return/^about:(blank|srcdoc)$/.test(a)||a.protocol==="data:"||/^(blob|filesystem):$/.test(a.protocol)?!0:gm(a)}function Ru(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=bu(o),u=bu(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 vr(s)&&!vr(f)?"no-referrer":u.toString();case"strict-origin-when-cross-origin":return s.origin===f.origin?s:vr(s)&&!vr(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 vr(s)&&!vr(f)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${n}`)}}function Pu(a){let e=(a.get("referrer-policy")||"").split(/[,\s]+/),t="";for(let n of e)n&&wu.has(n)&&(t=n);return t}var fe=Symbol("Request internals"),Gr=a=>typeof a=="object"&&typeof a[fe]=="object",_m=(0,Lu.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),er=class a extends rt{constructor(e,t={}){let n;if(Gr(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()),!Gr(t)&&"data"in t&&_m(),(t.body!=null||Gr(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:Gr(e)&&e.body!==null?wr(e):null;super(s,{size:t.size||e.size||0});let u=new ke(t.headers||e.headers||{});if(s!==null&&!u.has("Content-Type")){let c=Qn(s,this);c&&u.set("Content-Type",c)}let f=Gr(e)?e.signal:null;if("signal"in t&&(f=t.signal),f!=null&&!au(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,Eu.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=Su(e)}clone(){return new a(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(er.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 xu=a=>{let{parsedURL:e}=a[fe],t=new ke(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=hu(a);typeof f=="number"&&!Number.isNaN(f)&&(n=String(f))}n&&t.set("Content-Length",n),a.referrerPolicy===""&&(a.referrerPolicy=vu),a.referrer&&a.referrer!=="no-referrer"?a[fe].referrer=Ru(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=_u(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 eo=class extends pt{constructor(e,t="aborted"){super(e,t)}};Hn();Wi();var bm=new Set(["data:","http:","https:"]);async function Sr(a,e){return new Promise((t,n)=>{let o=new er(a,e),{parsedURL:s,options:u}=xu(o);if(!bm.has(s.protocol))throw new TypeError(`node-fetch cannot load ${a}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let y=Ql(o.url),R=new Ue(y,{headers:{"Content-Type":y.typeFull}});t(R);return}let f=(s.protocol==="https:"?Tu.default:Au.default).request,{signal:d}=o,c=null,p=()=>{let y=new eo("The operation was aborted.");n(y),o.body&&o.body instanceof Ie.default.Readable&&o.body.destroy(y),!(!c||!c.body)&&c.body.emit("error",y)};if(d&&d.aborted){p();return}let m=()=>{p(),g()},b=f(s.toString(),u);d&&d.addEventListener("abort",m);let g=()=>{b.abort(),d&&d.removeEventListener("abort",m)};b.on("error",y=>{n(new Re(`request to ${o.url} failed, reason: ${y.message}`,"system",y)),g()}),ym(b,y=>{c&&c.body&&c.body.destroy(y)}),process.version<"v14"&&b.on("socket",y=>{let R;y.prependListener("end",()=>{R=y._eventsCount}),y.prependListener("close",T=>{if(c&&R<y._eventsCount&&!T){let I=new Error("Premature close");I.code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",I)}})}),b.on("response",y=>{b.setTimeout(0);let R=gu(y.rawHeaders);if(Zn(y.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 Q={headers:new ke(o.headers),follow:o.follow,counter:o.counter+1,agent:o.agent,compress:o.compress,method:o.method,body:wr(o),signal:o.signal,size:o.size,referrer:o.referrer,referrerPolicy:o.referrerPolicy};if(!su(o.url,X)||!lu(o.url,X))for(let He of["authorization","www-authenticate","cookie","cookie2"])Q.headers.delete(He);if(y.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}(y.statusCode===303||(y.statusCode===301||y.statusCode===302)&&o.method==="POST")&&(Q.method="GET",Q.body=void 0,Q.headers.delete("content-length"));let We=Pu(R);We&&(Q.referrerPolicy=We),t(Sr(new er(X,Q))),g();return}default:return n(new TypeError(`Redirect option '${o.redirect}' is not a valid value of RequestRedirect`))}}d&&y.once("end",()=>{d.removeEventListener("abort",m)});let T=(0,Ie.pipeline)(y,new Ie.PassThrough,G=>{G&&n(G)});process.version<"v12.10"&&y.on("aborted",m);let I={url:o.url,status:y.statusCode,statusText:y.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||y.statusCode===204||y.statusCode===304){c=new Ue(T,I),t(c);return}let te={flush:tr.default.Z_SYNC_FLUSH,finishFlush:tr.default.Z_SYNC_FLUSH};if(E==="gzip"||E==="x-gzip"){T=(0,Ie.pipeline)(T,tr.default.createGunzip(te),G=>{G&&n(G)}),c=new Ue(T,I),t(c);return}if(E==="deflate"||E==="x-deflate"){let G=(0,Ie.pipeline)(y,new Ie.PassThrough,X=>{X&&n(X)});G.once("data",X=>{(X[0]&15)===8?T=(0,Ie.pipeline)(T,tr.default.createInflate(),Q=>{Q&&n(Q)}):T=(0,Ie.pipeline)(T,tr.default.createInflateRaw(),Q=>{Q&&n(Q)}),c=new Ue(T,I),t(c)}),G.once("end",()=>{c||(c=new Ue(T,I),t(c))});return}if(E==="br"){T=(0,Ie.pipeline)(T,tr.default.createBrotliDecompress(),G=>{G&&n(G)}),c=new Ue(T,I),t(c);return}c=new Ue(T,I),t(c)}),mu(b,o).catch(n)})}function ym(a,e){let t=Xr.Buffer.from(`0\r
3005
3222
  \r
3006
- `),n=!1,i=!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&&!i){let c=new Error("Premature close");c.code="ERR_STREAM_PREMATURE_CLOSE",e(c)}},d=c=>{i=Xr.Buffer.compare(c.slice(-5),t)===0,!i&&s&&(i=Xr.Buffer.compare(s.slice(-3),t.slice(0,3))===0&&Xr.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 hm={debugadapter:{version:Yt,zip:async()=>(await Promise.resolve().then(()=>le(Lu()))).default},"debugadapter-tests":{version:Yt,zip:async()=>(await Promise.resolve().then(()=>le(xu()))).default}};async function Au(a,e){let t=await Sr(`https://mods.factorio.com/api/mods/${a}${e?"/full":""}`);if(!t.ok)throw new Error(t.statusText);return await t.json()}var Rr=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 i=await e(n?.["service-username"]),s=await Sr("https://auth.factorio.com/api-login",{method:"POST",body:new URLSearchParams({username:i.username,password:i.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=hm[e];if(s)return s;if(t.origin==="bundle")throw new Error(`No bundled package for ${e}`)}let n=await Au(e),i=n.releases[n.releases.length-1];return{version:i.version,zip:async()=>{let s=await this.getDownloadCredentials(t.credentialPrompt),u=await Sr(`https://mods.factorio.com/${i.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),i=n.version,s=this.modList.mods.find(p=>p.name===e),u=s?.enabled?s.version??!0:s?.enabled;async function f(p){let _=nt.resolve(p,"info.json");try{let b=await Ee.readFile(_,"utf8");if(b){let g=JSON.parse(b);if(g.name===e&&g.version===i)return!0}}catch{}return!1}if(!t.force){if(await f(nt.resolve(this.modsPath,e)))return this.set(e,i),{using:i,from:"folder",previous:u};if(await f(nt.resolve(this.modsPath,`${e}_${i}`)))return this.set(e,i),{using:i,from:"versioned_folder",previous:u};try{return await Ee.access(nt.resolve(this.modsPath,`${e}_${i}.zip`)),this.set(e,i),{using:i,from:"existing",previous:u}}catch{}}let d=Ee.writeFile(nt.resolve(this.modsPath,`${e}_${i}.zip`),await n.zip()),c;if(!t.keepOld){let p=(await Ee.readdir(this.modsPath,"utf8")).filter(_=>_.startsWith(e)&&_.endsWith(".zip")&&_.substring(e.length,_.length-4).match(/^_[\d\.]+$/)&&_!==`${e}_${i}.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,i),await d,{using:i,from:"installed",previous:u,replaced:c}}set(e,t){let n=!!t,i=typeof t=="string"?t:void 0,s=this.modList.mods.find(u=>u.name===e);s?(s.enabled=n,s.version=i):this.modList.mods.push({name:e,enabled:n,version:i})}disableAll(){this.modList.mods.forEach(e=>e.enabled=!1)}};var Yo=(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))(Yo||{});function Xo(a){if(a.readUInt8()!==0)return"";{let t=a.readPackedUInt_8_32();return a.readString(t)}}var Pr=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:Xo(e)};case 4:{let n=e.readUInt32LE(),i=[];for(let s=0;s<n;s++){Xo(e);let u=a.load(e);i.push(u)}return{type:t,value:i}}case 5:{let n=e.readUInt32LE(),i={};for(let s=0;s<n;s++){let u=Xo(e);if(!u)throw new Error("Missing key in PropertyTree Dictionary");let f=a.load(e);i[u]=f}return{type:t,value:i}}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 i in e.value)if(Object.prototype.hasOwnProperty.call(e.value,i)){let s=e.value[i];t.push(Buffer.concat([a.saveString(i),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,i,s){this.main=e;this.major=t;this.minor=n;this.patch=i;this.branch=s}static load(e){let t=e.readUInt16LE(0),n=e.readUInt16LE(2),i=e.readUInt16LE(4),s=e.readUInt16LE(6),u=e.readUInt8(8);return new a(t,n,i,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,i){return this.main<e?!1:t===void 0?!0:this.major<t?!1:n===void 0?!0:this.minor<n?!1:i===void 0?!0:!(this.patch<i)}};var ri=le(require("assert")),Tu=["startup","runtime-global","runtime-per-user"],Yr=class{version;_settings;constructor(e){this.version=Dt.load(e.read(9));let t=Pr.load(e);(0,ri.default)(t.type===5);let n={startup:{},"runtime-global":{},"runtime-per-user":{}};for(let i of Tu){let s=t.value[i];(0,ri.default)(s.type===5);let u=n[i];for(let f in s.value){let d=s.value[f];(0,ri.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 ${i} ${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 Tu){let n=this._settings[t],i={type:5,value:{}};e.value[t]=i;for(let s in n){let u=n[s];switch(u.type){case"string":i.value[s]={type:5,value:{value:{type:3,value:u.value}}};break;case"bool":i.value[s]={type:5,value:{value:{type:1,value:u.value}}};break;case"int":i.value[s]={type:5,value:{value:{type:6,value:u.value}}};break;case"number":i.value[s]={type:5,value:{value:{type:2,value:u.value}}};break;case"color":i.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(),Pr.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 mm(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 Lr(a){return mm(a.replace(/[^a-zA-Z0-9]/g,"_").replace(/^([0-9])/,"_$1"))}function Qo(a){return!!a.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)}async function Ft(a,e){if(!e)return;let t=await e;t&&a.write(`---${t.replace(/\n/g,`
3223
+ `),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=Xr.Buffer.compare(c.slice(-5),t)===0,!o&&s&&(o=Xr.Buffer.compare(s.slice(-3),t.slice(0,3))===0&&Xr.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 Sm={debugadapter:{version:Yt,zip:async()=>(await Promise.resolve().then(()=>le(ku()))).default},"debugadapter-tests":{version:Yt,zip:async()=>(await Promise.resolve().then(()=>le(Iu()))).default}};async function Cu(a,e){let t=await Sr(`https://mods.factorio.com/api/mods/${a}${e?"/full":""}`);if(!t.ok)throw new Error(t.statusText);return await t.json()}var Rr=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 Sr("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=Sm[e];if(s)return s;if(t.origin==="bundle")throw new Error(`No bundled package for ${e}`)}let n=await Cu(e),o=n.releases[n.releases.length-1];return{version:o.version,zip:async()=>{let s=await this.getDownloadCredentials(t.credentialPrompt),u=await Sr(`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 b=await Ee.readFile(m,"utf8");if(b){let g=JSON.parse(b);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 Qi=(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))(Qi||{});function Yi(a){if(a.readUInt8()!==0)return"";{let t=a.readPackedUInt_8_32();return a.readString(t)}}var Pr=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:Yi(e)};case 4:{let n=e.readUInt32LE(),o=[];for(let s=0;s<n;s++){Yi(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=Yi(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:t===void 0?!0:this.major<t?!1:n===void 0?!0:this.minor<n?!1:o===void 0?!0:!(this.patch<o)}};var to=le(require("assert")),Du=["startup","runtime-global","runtime-per-user"],Yr=class{version;_settings;constructor(e){this.version=Dt.load(e.read(9));let t=Pr.load(e);(0,to.default)(t.type===5);let n={startup:{},"runtime-global":{},"runtime-per-user":{}};for(let o of Du){let s=t.value[o];(0,to.default)(s.type===5);let u=n[o];for(let f in s.value){let d=s.value[f];(0,to.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 Du){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(),Pr.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 Rm(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 Lr(a){return Rm(a.replace(/[^a-zA-Z0-9]/g,"_").replace(/^([0-9])/,"_$1"))}function Ji(a){return!!a.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)}async function Ft(a,e){if(!e)return;let t=await e;t&&a.write(`---${t.replace(/\n/g,`
3007
3224
  ---`)}
3008
3225
  `)}var Ce=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}
3009
3226
  `),e.write(`
@@ -3012,92 +3229,91 @@ ${n}`,"utf8")}this._sendMessage.fire(t)}_handleData(e){for(this._rawData=Buffer.
3012
3229
  `),e.write(`--$Section ${this.name}
3013
3230
  `),e.write(`-- This file is automatically generated. Edits will be overwritten without warning.
3014
3231
  `),e.write(`
3015
- `),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}},it=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")}}},rr=class{constructor(e,t){this.key=e;this.value=t}format(){return`{[${this.key.format()}]:${this.value.format()}}`}},Ne=class{constructor(e){this.member=e}format(){return`(${this.member.format()})[]`}},Er=class{constructor(e){this.members=e}format(){return`{${this.members.map((e,t)=>`[${t+1}]:${e.format()}`).join(", ")}}`}},Ot=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 Ft(e,this.description),e.write(`---@alias ${this.name} ${this.type.format()}
3232
+ `),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")}}},rr=class{constructor(e,t){this.key=e;this.value=t}format(){return`{[${this.key.format()}]:${this.value.format()}}`}},je=class{constructor(e){this.member=e}format(){return`(${this.member.format()})[]`}},Er=class{constructor(e){this.members=e}format(){return`{${this.members.map((e,t)=>`[${t+1}]:${e.format()}`).join(", ")}}`}},Ot=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 Ft(e,this.description),e.write(`---@alias ${this.name} ${this.type.format()}
3016
3233
 
3017
- `)}},ni=class{constructor(e,t,n,i){this.name=e;this.type_name=t;this.fields=n;this.description=i}async write(e){await Ft(e,this.description),e.write(`---@enum ${this.type_name}
3234
+ `)}},ro=class{constructor(e,t,n,o){this.name=e;this.type_name=t;this.fields=n;this.description=o}async write(e){await Ft(e,this.description),e.write(`---@enum ${this.type_name}
3018
3235
  `),e.write(`${this.name}={
3019
3236
  `);for(let t of this.fields)await t.write(e);e.write(`}
3020
- `)}},ii=class{constructor(e,t,n,i){this.name=e;this.typename=t;this.description=n;this.value=i}async write(e){await Ft(e,this.description);let t=Qo(this.name)?this.name:`['${this.name}']`;e.write(`${t}=`),this.value?e.write(`${this.value.format()},
3237
+ `)}},no=class{constructor(e,t,n,o){this.name=e;this.typename=t;this.description=n;this.value=o}async write(e){await Ft(e,this.description);let t=Ji(this.name)?this.name:`['${this.name}']`;e.write(`${t}=`),this.value?e.write(`${this.value.format()},
3021
3238
  `):e.write(`#{} --[[@as ${this.typename.format()} ]],
3022
- `)}},pe=class{constructor(e){this.name=e}description;parents;generic_args;global_name;operators;call_op;fields;functions;add(e){e instanceof Qr?(this.operators||(this.operators=[]),this.operators.push(e)):e instanceof Qe?(this.call_op||(this.call_op=[]),this.call_op.push(e)):e instanceof ce?(this.fields||(this.fields=[]),this.fields.push(e)):e instanceof je&&(this.functions||(this.functions=[]),this.functions.push(e))}async write(e){if(e.write(`do
3023
- `),await Ft(e,this.description),e.write(`---@class ${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(`
3239
+ `)}},pe=class{constructor(e){this.name=e}description;parents;generic_args;global_name;exact;operators;call_op;fields;functions;add(e){e instanceof Qr?(this.operators||(this.operators=[]),this.operators.push(e)):e instanceof Qe?(this.call_op||(this.call_op=[]),this.call_op.push(e)):e instanceof ce?(this.fields||(this.fields=[]),this.fields.push(e)):e instanceof Ne&&(this.functions||(this.functions=[]),this.functions.push(e))}async write(e){if(e.write(`do
3240
+ `),await Ft(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(`
3024
3241
  `),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 "+Lr(this.name)}={
3025
3242
  `),this.functions)for(let t of this.functions)await t.write(e);e.write(`}
3026
3243
  end
3027
3244
 
3028
3245
  `)}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(", ")}}`:"{}"}},Qr=class{constructor(e,t,n){this.name=e;this.type=t;this.input_type=n}description;async write(e){await Ft(e,this.description),e.write(`---@operator ${this.name}`),this.input_type&&e.write(`(${this.input_type.format()})`),e.write(`:${this.type.format()}
3029
- `)}},ce=class{constructor(e,t,n,i){this.name=e;this.type=t;this.description=n;this.optional=i}async write(e){await Ft(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()}
3030
- `)}},Qe=class{constructor(e,t,n){this.description=e;this.params=t;this.returns=n}async write(e){await Ft(e,this.description);let t="";this.params&&(t=this.params.map(i=>`${i.name}${i.optional?"?":""}:${i.type.format()}`).join(", "));let n="";this.returns&&(n=`:${this.returns.map(i=>i.type.format()).join(", ")}`),e.write(`---@overload fun(${t})${n}
3031
- `)}},je=class{constructor(e,t,n,i){this.name=e;this.params=t;this.returns=n;this.description=i}overloads;nodiscard;add(e){this.overloads||(this.overloads=[]),this.overloads.push(e)}async write(e){if(await Ft(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
3246
+ `)}},ce=class{constructor(e,t,n,o){this.name=e;this.type=t;this.description=n;this.optional=o}async write(e){await Ft(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()}
3247
+ `)}},Qe=class{constructor(e,t,n){this.description=e;this.params=t;this.returns=n}async write(e){await Ft(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}
3248
+ `)}},Ne=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 Ft(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
3032
3249
  `),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;
3033
- `)}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}`}},ae=class{constructor(e,t,n,i){this.name=e;this.type=t;this.description=n;this.optional=i}async write(e){e.write(`---@param ${this.name}${this.optional?"?":""} ${this.type.format()} ${await this.description??""}
3034
- `)}},oi=class{constructor(e,t,n,i){this.type=e;this.name=t;this.description=n;this.optional=i}async write(e){e.write(`---@return ${this.type.format()}${this.optional?"?":""} ${this.name??""}`);let t=await this.description;t&&e.write(` #${t}`),e.write(`
3035
- `)}};function Jo(a,e){return a.order-e.order}var Zo=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===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported 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(i=>[i.name,i])),this.events=new Map(this.docs.events.map(i=>[i.name,i])),this.concepts=new Map(this.docs.concepts.map(i=>[i.name,i])),this.globals=new Map(this.docs.global_objects.map(i=>[i.type,i]));let n=(i,s)=>{let u=`${s}${i.name}`;this.defines.add(u);let f=`${u}.`;i.values&&i.values.forEach(d=>{this.defines.add(`${f}${d.name}`)}),i.subkeys&&i.subkeys.forEach(d=>n(d,f))};this.defines=new Set,this.defines.add("defines"),this.docs.defines.forEach(i=>n(i,"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.api_version===4&&["string","float"].includes(e))return`/builtin-types.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))),e.base_classes&&n.push(...e.base_classes.map(i=>this.classes.get(i)).filter(i=>!!i).flatMap(t)),n}generate_debuginfo(){let e={alwaysValid:{},expandKeys:{}};return this.classes.forEach(t=>{if(["LuaCustomTable"].includes(t.name))return;let n={},i=!1;e.expandKeys[t.name]=n;for(let s of this.with_base_classes(t,u=>u.attributes))if(s.name==="valid")i=!0;else if(s.name!=="object_name"){if(s.read??s.read_type){n[s.name]={},(s.write??s.write_type)||(n[s.name].readOnly=!0);let u=s.type??s.read_type;typeof u=="string"&&u.startsWith("defines.")&&(n[s.name].enumFrom=u)}}i||(e.alwaysValid[t.name]=!0);for(let s of t.operators)switch(s.name){case"index":n["[]"]={readOnly:!(s.write??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 Ce(`runtime-api/${e.name}`,this.docs.application_version),i=new pe(e.name),s=this.globals.get(e.name);s&&(i.global_name=s.name),i.description=t(this.collect_description(e,{scope:"runtime",member:e.name})),i.parents=e.parent?[new U(e.parent)]:e.base_classes?e.base_classes.map(f=>new U(f)):[new U("LuaObject")],i.generic_args=$t.adjust.class[e.name]?.generic_params,$t.adjust.class[e.name]?.generic_parent&&i.parents.push(await this.LuaLS_type($t.adjust.class[e.name]?.generic_parent));for(let f of e.attributes)i.add(new ce(f.name,await this.LuaLS_type(f.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":{i.add(new Qe(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 Qr("len",await this.LuaLS_type(f.type??f.read_type));d.description=t(this.collect_description(f,{scope:"runtime",member:e.name,part:"length_operator"})),i.add(d);break}case"index":{if($t.adjust.class[e.name]?.no_index)break;i.add(new ce(await this.LuaLS_type($t.adjust.class[e.name]?.index_key??"uint"),await this.LuaLS_type(f.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=i;$t.adjust.class[e.name]?.split_funcs&&(u=new pe(`${e.name}_funcs`),n.add(u),i.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(i),n}async generate_LuaLS_concepts(e){let t=new Ce("runtime-api/concepts",this.docs.application_version);for(let n of this.docs.concepts){let i=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),i));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.description=i;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,i));break}case"builtin":break;default:break}}return t}async generate_LuaLS_defines(e){let t=new Ce("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 i=(u,f)=>Qo(f)?`${u}.${f}`:`${u}['${f}']`,s=async(u,f,d,c)=>{let p=i(f,u.name),_=`${d}.${Lr(u.name)}`,b=e(this.collect_description(u,{scope:"runtime",member:p}));if(p==="defines.prototypes"&&(c=new it(0)),u.values)t.add(new ni(p,_,u.values.map(g=>new ii(g.name,new U(`${_}.${Lr(g.name)}`),g.description,c)),b));else{let g=new pe(p);if(g.global_name=p,g.description=b,$t.adjust.define[p]?.owntype&&(g.parents=[new U(`__${p}`)]),t.add(g),u.subkeys)for(let S of u.subkeys)await s(S,p,_,c)}};for(let u of this.docs.defines)await s(u,"defines","defines");return t}async generate_LuaLS_events(e){let t=new Ce("runtime-api/events",this.docs.application_version),n=new pe("event_handler.events");for(let[s,u]of this.events){let f=new je("handler",[new ae("event",new U(`EventData.${u.name}`))]);n.add(new ce(new U(u.name==="CustomInputEvent"?"string":`defines.events.${u.name}`),f));let d=new pe(`EventData.${u.name}`);d.parents=[new U("EventData")],d.description=e(this.collect_description(u,{scope:"runtime",member:u.name}));for(let c of u.data)d.add(new ce(c.name,await this.LuaLS_type(c.type),e(this.collect_description(c,{scope:"runtime",member:u.name,part:c.name})),c.optional));t.add(d)}let i=new je("handler",[new ae("event",new U("EventData"))]);return n.add(new ce(new U("uint"),i)),t.add(n),t}async generate_LuaLS_LuaObjectNames(){let e=new Ce("runtime-api/LuaObjectNames",this.docs.application_version);return e.add(new mt("LuaObject.object_name",new Ot(this.docs.classes.filter(t=>!t.abstract).map(t=>new it(t.name))))),e}async generate_LuaLS_global_functions(e){let t=new Ce("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(Jo).map(async n=>new ae(Lr(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(Jo).map(async n=>new oi(await this.LuaLS_type(n.type),void 0,t(this.collect_description(n)),n.optional)))}async LuaLS_function(e,t,n,i){let s=e.takes_table??e.format?.takes_table?[new ae("param",await this.LuaLS_table_type(e,t,`${i??""}${i?".":""}${e.name}_param`,n),void 0,e.table_is_optional??e.format?.table_optional)]:await this.LuaLS_params(e.parameters,n);e.variadic_type&&s.push(new ae("...",await this.LuaLS_type(e.variadic_type),n(e.variadic_description))),e.variadic_parameter&&s.push(new ae("...",await this.LuaLS_type(e.variadic_parameter.type),n(e.variadic_parameter.description)));let u=new je(e.name,s,await this.LuaLS_returns(e.return_values,n),n(this.collect_description(e),{scope:"runtime",member:i??"libraries",part:i?e.name:"new-functions"}));if(i==="LuaBootstrap"&&e.name==="on_event"){s[1].type.members[0].params[0].name="event";for(let[f,d]of this.events){let c=new U(`defines.events.${d.name}`),p=new U(`EventData.${d.name}`);d.name==="CustomInputEvent"&&(c=new U("string"));let _=[new ae("event",c),new ae("handler",new je("handler",[new ae("event",p)]))];if(this.api_version===4){let b=d.description.match(/(Lua\w+Filter)\)\.$/);b&&_.push(new ae("filters",new Ne(new U(b[1])),void 0,!0))}else this.api_version>=5&&d.filter&&_.push(new ae("filters",new Ne(new U(d.filter)),void 0,!0));u.add(new Qe(void 0,_))}u.add(new Qe(void 0,[new ae("event",new U("uint")),new ae("handler",new je("handler",[new ae("event",new U("EventData"))]))]))}return u}async LuaLS_table_type(e,t,n,i,s){let u=new pe(n);u.parents=s,t.add(u);let f=1;for(let d of e.parameters.sort(Jo)){let c="complex_type"in e&&e.complex_type==="tuple";u.add(new ce(c?new it(f++):d.name,await this.LuaLS_type(d.type),i(this.collect_description(d)),d.optional))}if(e.variant_parameter_groups){let d=[],c=new mt(u.name,new Ot(d));t.add(c),u.name+=".base";for(let p of e.variant_parameter_groups){let _=await this.LuaLS_table_type(p,t,`${n}.${Lr(p.name)}`,i,[new U(u.name)]);d.push(_)}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=i=>t&&{file:t.file,table_class_name:`${t.table_class_name}.${i}`,format_description:t.format_description};switch(e.complex_type){case"array":return new Ne(await this.LuaLS_type(e.value,n("member")));case"dictionary":return new rr(await this.LuaLS_type(e.key,n("key")),await this.LuaLS_type(e.value,n("value")));case"union":return new Ot(await Promise.all(e.options.map((i,s)=>this.LuaLS_type(i,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 it(e.value);case"function":return new je(void 0,await Promise.all(e.parameters.map(async(i,s,u)=>new ae(`p${s+1}`,await this.LuaLS_type(i,n(`param${u.length>1?s:""}`))))));case"type":return this.LuaLS_type(e.value,t);case"tuple":if(this.isVersion(5)||this.isVersion(6))return new Er(await Promise.all(e.values.map((i,s)=>this.LuaLS_type(i,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 i=new pe(t.table_class_name);for(let s of e.attributes)i.add(new ce(s.name,await this.LuaLS_type(s.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(i),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(`
3250
+ `)}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}`}},ae=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??""}
3251
+ `)}},oo=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(`
3252
+ `)}};function Zi(a,e){return a.order-e.order}var ea=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===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported 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.api_version===4&&["string","float"].includes(e))return`/builtin-types.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))),e.base_classes&&n.push(...e.base_classes.map(o=>this.classes.get(o)).filter(o=>!!o).flatMap(t)),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??s.read_type){n[s.name]={},(s.write??s.write_type)||(n[s.name].readOnly=!0);let u=s.type??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??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 Ce(`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)]:e.base_classes?e.base_classes.map(f=>new U(f)):[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.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 Qe(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 Qr("len",await this.LuaLS_type(f.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.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 Ce("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 Ce("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)=>Ji(f)?`${u}.${f}`:`${u}['${f}']`,s=async(u,f,d,c)=>{let p=o(f,u.name),m=`${d}.${Lr(u.name)}`,b=e(this.collect_description(u,{scope:"runtime",member:p}));if(p==="defines.prototypes"&&(c=new ot(0)),u.values)t.add(new ro(p,m,u.values.map(g=>new no(g.name,new U(`${m}.${Lr(g.name)}`),g.description,c)),b));else{let g=new pe(p);if(g.global_name=p,g.description=b,$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 Ce("runtime-api/events",this.docs.application_version),n=new pe("event_handler.events");n.exact=!0;for(let[s,u]of this.events){let f=new Ne("handler",[new ae("event",new U(`EventData.${u.name}`))]);n.add(new ce(new U(u.name==="CustomInputEvent"?"string":`defines.events.${u.name}`),f));let d=new pe(`EventData.${u.name}`);d.exact=!0,d.parents=[new U("EventData")],d.description=e(this.collect_description(u,{scope:"runtime",member:u.name}));for(let c of u.data)d.add(new ce(c.name,await this.LuaLS_type(c.type),e(this.collect_description(c,{scope:"runtime",member:u.name,part:c.name})),c.optional));t.add(d)}let o=new Ne("handler",[new ae("event",new U("EventData"))]);return n.add(new ce(new U("uint"),o)),t.add(n),t}async generate_LuaLS_LuaObjectNames(){let e=new Ce("runtime-api/LuaObjectNames",this.docs.application_version);return e.add(new mt("LuaObject.object_name",new Ot(this.docs.classes.filter(t=>!t.abstract).map(t=>new ot(t.name))))),e}async generate_LuaLS_global_functions(e){let t=new Ce("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(Zi).map(async n=>new ae(Lr(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(Zi).map(async n=>new oo(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.takes_table??e.format?.takes_table?[new ae("param",await this.LuaLS_table_type(e,t,`${o??""}${o?".":""}${e.name}_param`,n),void 0,e.table_is_optional??e.format?.table_optional)]:await this.LuaLS_params(e.parameters,n);e.variadic_type&&s.push(new ae("...",await this.LuaLS_type(e.variadic_type),n(e.variadic_description))),e.variadic_parameter&&s.push(new ae("...",await this.LuaLS_type(e.variadic_parameter.type),n(e.variadic_parameter.description)));let u=new Ne(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";for(let[f,d]of this.events){let c=new U(`defines.events.${d.name}`),p=new U(`EventData.${d.name}`);d.name==="CustomInputEvent"&&(c=new U("string"));let m=[new ae("event",c),new ae("handler",new Ne("handler",[new ae("event",p)]))];if(this.api_version===4){let b=d.description.match(/(Lua\w+Filter)\)\.$/);b&&m.push(new ae("filters",new je(new U(b[1])),void 0,!0))}else this.api_version>=5&&d.filter&&m.push(new ae("filters",new je(new U(d.filter)),void 0,!0));u.add(new Qe(void 0,m))}u.add(new Qe(void 0,[new ae("event",new U("uint")),new ae("handler",new Ne("handler",[new ae("event",new U("EventData"))]))]))}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(Zi)){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 Ot(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}.${Lr(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 je(await this.LuaLS_type(e.value,n("member")));case"dictionary":return new rr(await this.LuaLS_type(e.key,n("key")),await this.LuaLS_type(e.value,n("value")));case"union":return new Ot(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 Ne(void 0,await Promise.all(e.parameters.map(async(o,s,u)=>new ae(`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":if(this.isVersion(5)||this.isVersion(6))return new Er(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.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(`
3036
3253
 
3037
- `),e.notes?.map(i=>`**Note:** ${i}`)?.join(`
3254
+ `),e.notes?.map(o=>`**Note:** ${o}`)?.join(`
3038
3255
 
3039
3256
  `),e.raises&&`**Events:**
3040
- ${e.raises?.map(i=>` * ${i.optional?"May":"Will"} raise [${i.name}](runtime:events::${i.name}) ${{instantly:"instantly",current_tick:"later in the current tick",future_tick:"in a future tick"}[i.timeframe]}.${i.description?`
3041
- `+i.description:""}`)?.join(`
3042
-
3043
- `)}`,t&&`[View Documentation](${t.scope}:${t.member}${t.part?"::"+t.part:""})`,e.examples?.map(i=>`### Example
3044
- ${i}`)?.join(`
3045
-
3046
- `),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(i=>!!i).join(`
3047
-
3048
- `)}};var ea=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===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported 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,i]of this.concepts)typeof i.type=="object"&&i.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 Ce("prototype-api/concepts",this.application_version);for(let[n,i]of this.concepts){if(i.type==="builtin")continue;let s=this.simple_structs.has(i.name),u=s?"":".struct";if(i.properties){let f=new pe(this.type_prefix+i.name+u);f.description=await e(i.description,{scope:"prototype",member:i.name}),i.parent&&(f.parents=[new U(this.type_prefix+i.parent+u)]);for(let d of i.properties)f.add(new ce(d.name,this.lua_proto_type(d.type),await e(d.description,{scope:"prototype",member:i.name,part:d.name}),d.optional));t.add(f)}if(!s){let f=i.type;i.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+i.name,this.lua_proto_type(f,i),i.description))}}return t}generate_LuaLS_data(e){let t=new Ce("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 i=new je("extend",[new ae("otherdata",new Ne(new U("data.AnyPrototype")))]);i.add(new Qe(void 0,[new ae("self",new U("data")),new ae("otherdata",new Ne(new U("data.AnyPrototype")))])),i.add(new Qe(void 0,[new ae("otherdata",new Ne(new U("data.AnyModSettingPrototype")))])),i.add(new Qe(void 0,[new ae("self",new U("data")),new ae("otherdata",new Ne(new U("data.AnyModSettingPrototype")))])),n.add(i),n.global_name="data",t.add(n);let s=new pe("data.raw");t.add(s);for(let[u,f]of this.prototypes)f.typename&&s.add(new ce(new it(f.typename),new rr(new U("string"),new U(this.type_prefix+f.name))));return t}async generate_LuaLS_prototypes(e){let t=new Ce("prototype-api/prototypes",this.application_version);for(let[n,i]of this.prototypes){let s=new pe(this.type_prefix+i.name);s.description=await e(i.description,{scope:"prototype",member:i.name}),i.parent&&(s.parents=[new U(this.type_prefix+i.parent)]);for(let u of i.properties)s.add(new ce(u.name,this.lua_proto_type(u.type),await e(u.description,{scope:"prototype",member:i.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:i.name,part:u.alt_name}),u.optional));if(i.custom_properties){let u=i.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:i.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 Ne(this.lua_proto_type(e.value,t));case"tuple":return new Er(e.values.map(n=>this.lua_proto_type(n,t)));case"dictionary":return new rr(this.lua_proto_type(e.key,t),this.lua_proto_type(e.value,t));case"union":return new Ot(e.options.map(n=>this.lua_proto_type(n,t)));case"literal":return new it(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 D=le(Vu()),_t=le(require("path")),Hd=le(require("fs/promises")),or=le(require("os")),un=le($d());var Od;(()=>{"use strict";var a={470:i=>{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,_="",b=0,g=-1,y=0,S=0;S<=d.length;++S){if(S<d.length)p=d.charCodeAt(S);else{if(p===47)break;p=47}if(p===47){if(!(g===S-1||y===1))if(g!==S-1&&y===2){if(_.length<2||b!==2||_.charCodeAt(_.length-1)!==46||_.charCodeAt(_.length-2)!==46){if(_.length>2){var A=_.lastIndexOf("/");if(A!==_.length-1){A===-1?(_="",b=0):b=(_=_.slice(0,A)).length-1-_.lastIndexOf("/"),g=S,y=0;continue}}else if(_.length===2||_.length===1){_="",b=0,g=S,y=0;continue}}c&&(_.length>0?_+="/..":_="..",b=2)}else _.length>0?_+="/"+d.slice(g+1,S):_=d.slice(g+1,S),b=S-g-1;g=S,y=0}else p===46&&y!==-1?++y:y=-1}return _}var f={resolve:function(){for(var d,c="",p=!1,_=arguments.length-1;_>=-1&&!p;_--){var b;_>=0?b=arguments[_]:(d===void 0&&(d=process.cwd()),b=d),s(b),b.length!==0&&(c=b+"/"+c,p=b.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 _=d.length,b=_-p,g=1;g<c.length&&c.charCodeAt(g)===47;++g);for(var y=c.length-g,S=b<y?b:y,A=-1,E=0;E<=S;++E){if(E===S){if(y>S){if(c.charCodeAt(g+E)===47)return c.slice(g+E+1);if(E===0)return c.slice(g+E)}else b>S&&(d.charCodeAt(p+E)===47?A=E:E===0&&(A=0));break}var L=d.charCodeAt(p+E);if(L!==c.charCodeAt(g+E))break;L===47&&(A=E)}var Q="";for(E=p+A+1;E<=_;++E)E!==_&&d.charCodeAt(E)!==47||(Q.length===0?Q+="..":Q+="/..");return Q.length>0?Q+c.slice(g+A):(g+=A,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,_=-1,b=!0,g=d.length-1;g>=1;--g)if((c=d.charCodeAt(g))===47){if(!b){_=g;break}}else b=!1;return _===-1?p?"/":".":p&&_===1?"//":d.slice(0,_)},basename:function(d,c){if(c!==void 0&&typeof c!="string")throw new TypeError('"ext" argument must be a string');s(d);var p,_=0,b=-1,g=!0;if(c!==void 0&&c.length>0&&c.length<=d.length){if(c.length===d.length&&c===d)return"";var y=c.length-1,S=-1;for(p=d.length-1;p>=0;--p){var A=d.charCodeAt(p);if(A===47){if(!g){_=p+1;break}}else S===-1&&(g=!1,S=p+1),y>=0&&(A===c.charCodeAt(y)?--y==-1&&(b=p):(y=-1,b=S))}return _===b?b=S:b===-1&&(b=d.length),d.slice(_,b)}for(p=d.length-1;p>=0;--p)if(d.charCodeAt(p)===47){if(!g){_=p+1;break}}else b===-1&&(g=!1,b=p+1);return b===-1?"":d.slice(_,b)},extname:function(d){s(d);for(var c=-1,p=0,_=-1,b=!0,g=0,y=d.length-1;y>=0;--y){var S=d.charCodeAt(y);if(S!==47)_===-1&&(b=!1,_=y+1),S===46?c===-1?c=y:g!==1&&(g=1):c!==-1&&(g=-1);else if(!b){p=y+1;break}}return c===-1||_===-1||g===0||g===1&&c===_-1&&c===p+1?"":d.slice(c,_)},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 _=p.dir||p.root,b=p.base||(p.name||"")+(p.ext||"");return _?_===p.root?_+b:_+"/"+b:b}(0,d)},parse:function(d){s(d);var c={root:"",dir:"",base:"",ext:"",name:""};if(d.length===0)return c;var p,_=d.charCodeAt(0),b=_===47;b?(c.root="/",p=1):p=0;for(var g=-1,y=0,S=-1,A=!0,E=d.length-1,L=0;E>=p;--E)if((_=d.charCodeAt(E))!==47)S===-1&&(A=!1,S=E+1),_===46?g===-1?g=E:L!==1&&(L=1):g!==-1&&(L=-1);else if(!A){y=E+1;break}return g===-1||S===-1||L===0||L===1&&g===S-1&&g===y+1?S!==-1&&(c.base=c.name=y===0&&b?d.slice(1,S):d.slice(y,S)):(y===0&&b?(c.name=d.slice(1,g),c.base=d.slice(1,S)):(c.name=d.slice(y,g),c.base=d.slice(y,S)),c.ext=d.slice(g,S)),y>0?c.dir=d.slice(0,y-1):b&&(c.dir="/"),c},sep:"/",delimiter:":",win32:null,posix:null};f.posix=f,i.exports=f}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var u=e[i]={exports:{}};return a[i](u,u.exports,t),u.exports}t.d=(i,s)=>{for(var u in s)t.o(s,u)&&!t.o(i,u)&&Object.defineProperty(i,u,{enumerable:!0,get:s[u]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;t.r(n),t.d(n,{URI:()=>b,Utils:()=>Mt}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=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="/",_=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class b{static isUri(P){return P instanceof b||!!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,$,O,Y,H,z=!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,z),this.authority=$||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,O||c),this.query=Y||c,this.fragment=H||c,d(this,z))}get fsPath(){return L(this,!1)}with(P){if(!P)return this;let{scheme:$,authority:O,path:Y,query:H,fragment:z}=P;return $===void 0?$=this.scheme:$===null&&($=c),O===void 0?O=this.authority:O===null&&(O=c),Y===void 0?Y=this.path:Y===null&&(Y=c),H===void 0?H=this.query:H===null&&(H=c),z===void 0?z=this.fragment:z===null&&(z=c),$===this.scheme&&O===this.authority&&Y===this.path&&H===this.query&&z===this.fragment?this:new y($,O,Y,H,z)}static parse(P,$=!1){let O=_.exec(P);return O?new y(O[2]||c,J(O[4]||c),J(O[5]||c),J(O[7]||c),J(O[9]||c),$):new y(c,c,c,c,c)}static file(P){let $=c;if(i&&(P=P.replace(/\\/g,p)),P[0]===p&&P[1]===p){let O=P.indexOf(p,2);O===-1?($=P.substring(2),P=p):($=P.substring(2,O),P=P.substring(O)||p)}return new y("file",$,P,c,c)}static from(P){let $=new y(P.scheme,P.authority,P.path,P.query,P.fragment);return d($,!0),$}toString(P=!1){return Q(this,P)}toJSON(){return this}static revive(P){if(P){if(P instanceof b)return P;{let $=new y(P);return $._formatted=P.external,$._fsPath=P._sep===g?P.fsPath:null,$}}return P}}let g=i?1:void 0;class y extends b{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=L(this,!1)),this._fsPath}toString(P=!1){return P?Q(this,!0):(this._formatted||(this._formatted=Q(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 S={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 A(C,P,$){let O,Y=-1;for(let H=0;H<C.length;H++){let z=C.charCodeAt(H);if(z>=97&&z<=122||z>=65&&z<=90||z>=48&&z<=57||z===45||z===46||z===95||z===126||P&&z===47||$&&z===91||$&&z===93||$&&z===58)Y!==-1&&(O+=encodeURIComponent(C.substring(Y,H)),Y=-1),O!==void 0&&(O+=C.charAt(H));else{O===void 0&&(O=C.substr(0,H));let we=S[z];we!==void 0?(Y!==-1&&(O+=encodeURIComponent(C.substring(Y,H)),Y=-1),O+=we):Y===-1&&(Y=H)}}return Y!==-1&&(O+=encodeURIComponent(C.substring(Y))),O!==void 0?O:C}function E(C){let P;for(let $=0;$<C.length;$++){let O=C.charCodeAt($);O===35||O===63?(P===void 0&&(P=C.substr(0,$)),P+=S[O]):P!==void 0&&(P+=C[$])}return P!==void 0?P:C}function L(C,P){let $;return $=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,i&&($=$.replace(/\//g,"\\")),$}function Q(C,P){let $=P?E:A,O="",{scheme:Y,authority:H,path:z,query:we,fragment:ve}=C;if(Y&&(O+=Y,O+=":"),(H||Y==="file")&&(O+=p,O+=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?O+=$(Ut,!1,!1):(O+=$(Ut.substr(0,ue),!1,!1),O+=":",O+=$(Ut.substr(ue+1),!1,!0)),O+="@"}H=H.toLowerCase(),ue=H.lastIndexOf(":"),ue===-1?O+=$(H,!1,!0):(O+=$(H.substr(0,ue),!1,!0),O+=H.substr(ue))}if(z){if(z.length>=3&&z.charCodeAt(0)===47&&z.charCodeAt(2)===58){let ue=z.charCodeAt(1);ue>=65&&ue<=90&&(z=`/${String.fromCharCode(ue+32)}:${z.substr(3)}`)}else if(z.length>=2&&z.charCodeAt(1)===58){let ue=z.charCodeAt(0);ue>=65&&ue<=90&&(z=`${String.fromCharCode(ue+32)}:${z.substr(2)}`)}O+=$(z,!0,!1)}return we&&(O+="?",O+=$(we,!1,!1)),ve&&(O+="#",O+=P?ve:A(ve,!1,!1)),O}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,...$){return P.with({path:He.join(P.path,...$)})},C.resolvePath=function(P,...$){let O=P.path,Y=!1;O[0]!==wt&&(O=wt+O,Y=!0);let H=He.resolve(O,...$);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 $=He.dirname(P.path);return $.length===1&&$.charCodeAt(0)===46&&($=""),P.with({path:$})},C.basename=function(P){return He.basename(P.path)},C.extname=function(P){return He.extname(P.path)}})(Mt||(Mt={}))})(),Od=n})();var{URI:xe,Utils:Je}=Od;var Qa=require("child_process"),Vd=require("events");var Fd=require("events"),kr=class extends Fd.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 i=this.matchers.map(u=>this.buf.indexOf(u instanceof Buffer?u:u.start)),s=i.reduce((u,f)=>u===-1?f:f===-1?u:Math.min(u,f));if(s!==-1){let u=this.matchers[i.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 zd=le(require("path")),Wd=le(jd()),Sb=[Buffer.from(`
3049
- `),Buffer.from("lua_debug> ")],Rb=[Buffer.from(`
3050
- `),{start:Buffer.from([239,183,174]),end:Buffer.from([239,183,175])}],Ai=class extends Vd.EventEmitter{factorio;hasNativeDebug;constructor(e,t,n,i){super();let s={cwd:zd.dirname(e),env:Object.assign({},process.env,i,{SteamAppId:"427520"})};n?(this.hasNativeDebug=!0,this.factorio=(0,Qa.spawn)(n,[e,...t],s)):this.factorio=(0,Qa.spawn)(e,t,s),this.factorio.on("exit",(...d)=>this.emit("exit",...d)),new kr(this.factorio.stderr,Sb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stderr",d)}),new kr(this.factorio.stdout,Rb).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,Wd.default)(this.factorio.pid);else{this.factorio.kill();try{this.factorio.kill("SIGKILL")}catch{}}}};var Ja=Buffer.from([27,76,117,97,82,0,1,4,8,4,8,0,25,147,13,10,26,10]);function Ti(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 Za=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}},es=class{name;instack;idx;constructor(e,t){this.instack=e.readUInt8(t)!==0,this.idx=e.readUInt8(t+1)}},ts=class{name;start;end;dumpsize;constructor(e,t){let n;[n,t]=Ti(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}},Ir=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}`)}}},ki=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,Ja.length).equals(Ja))throw new Error("Invalid Header");t=Ja.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 Ir(0));break;case 1:this.constants.push(new Ir(1,e[t++]!==0));break;case 3:this.constants.push(new Ir(3,e.readDoubleLE(t))),t+=8;break;case 4:let _;[_,t]=Ti(e,t),this.constants.push(new Ir(4,_));break;default:throw new Error(`Invalid Lua Constant Type: ${p}`)}}let i=e.readUInt32LE(t);t+=4;for(let c=0;c<i;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 es(e,t)),t+=2;{let c;[c,t]=Ti(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 ts(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]=Ti(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 Za(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,i=[];n+t>this.instruction_count&&(t=this.instruction_count-n);for(let s=0;s<t;s++){let u=this.instruction(s+n);i.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 i}}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),_=f===d?`${d}`:`${f}->${d}`,b=c===p?`${p}`:`${c}->${p}`;return`NEWTABLE ${this.getRegisterLabel(e,t.A)} := {} size(${_},${b})`}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 i=t.C-1;if(!t.C){if(!n)throw new Error("Invalid PC");i=n.Ax-1}let s=50;return`SETLIST ${this.getRegisterLabel(e,t.A)}[${i*s+1}...${t.B?i*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 i=0;i<this.locals.length;i++){let s=this.locals[i];if(s.start<=e+1){if(s.end>=e+1){if(n===t)return`R(${s.name})`;n++}}else break}return`R(${t})`}};var ln=class extends D.StoppedEvent{constructor(e,t,n){super(e,t,n),this.body.allThreadsStopped=!0}},rs=class extends D.LoggingDebugSession{constructor(t,n,i){super();this.activeVersion=t;this.fs=n;this.editorInterface=i;this.objectInfoChunks=ho(jr(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 D.OutputEvent(`Factorio --config option is set by configPath and should not be included in factorioArgs
3051
- `,"console")),!1;if(n.includes("--mod-directory"))return this.sendEvent(new D.OutputEvent(`Factorio --mod-directory option is set by modsPath and should not be included in factorioArgs
3052
- `,"console")),!1}return!0}async resolveModsPath(t){let n;if(t.modsPath){n="launch";let i=_t.posix.normalize(t.modsPath);i.match(/^~[\\\/]/)&&(i=_t.posix.join(or.homedir().replace(/\\/g,"/"),i.replace(/^~[\\\/]/,""))),i.match(/[\\\/]$/)&&(i=i.replace(/[\\\/]+$/,""));try{await Hd.access(i),t.modsPath=i}catch{return this.sendEvent(new D.OutputEvent(`modsPath specified in launch configuration does not exist
3053
- `,"console")),!1}}else{let i=await this.editorInterface.findWorkspaceFiles("**/mod-list.json");if(i.length===1)t.modsPath=_t.dirname(i[0].fsPath),n="workspace";else{if(i.length>1)return this.sendEvent(new D.OutputEvent(`multiple mod-list.json in workspace, please specify one as modsPath
3054
- `,"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 D.OutputEvent(`using modsPath ${t.modsPath} (${n})
3055
- `,"console")),n!=="config"){let i=t.modsPath;i.endsWith("/")||(i+="/"),t.factorioArgs.push("--mod-directory",i)}return!0}async setupMods(t){if(t.manageMod===!1)this.sendEvent(new D.OutputEvent(`automatic management of mods disabled
3056
- `,"console"));else{t.adjustMods||(t.adjustMods={}),t.allowDisableBaseMod||(t.adjustMods.base=!0);let n=new Rr(t.modsPath);await n.Loaded,t.disableExtraMods&&n.disableAll();for(let i in t.adjustMods)if(t.adjustMods.hasOwnProperty(i)){let s=t.adjustMods[i];n.set(i,s)}if(t.noDebug)n.set("debugadapter",!1);else{n.set("coverage",!1),n.set("profiler",!1);let i=await n.installMod("debugadapter",{origin:"bundle"});this.sendEvent(new D.OutputEvent(`package install debugadapter ${JSON.stringify(i)}
3057
- `,"console"))}await n.write(),this.sendEvent(new D.OutputEvent(`debugadapter ${t.noDebug?"disabled":"enabled"} in mod-list.json
3058
- `,"console"))}}async launchRequest(t,n){if(D.logger.setup(n.trace?D.Logger.LogLevel.Verbose:D.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 D.OutputEvent(`using custom environment variables: ${JSON.stringify(n.env)}
3059
- `,"console")),!await this.checkFactorioArgs(n)){this.sendEvent(new D.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}if(!await this.resolveModsPath(n)){this.sendEvent(new D.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}try{await this.setupMods(n)}catch(b){this.sendEvent(new D.OutputEvent(`Error setting up mods: ${b}
3060
- `,"console")),this.sendEvent(new D.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}let i=await this.editorInterface.findWorkspaceFiles("**/info.json");await Promise.all(i.map(this.updateInfoJson,this)),this.sendEvent(new D.OutputEvent(`Checking Factorio Version...
3061
- `,"console"));let s;try{s=await this.activeVersion.getBinaryVersion(),this.sendEvent(new D.OutputEvent(`Factorio ${s}
3062
- `,"console"))}catch(b){this.sendEvent(new D.OutputEvent(`Error reading Factorio Version: ${b}
3063
- `,"console")),this.sendEvent(new D.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}if(n.noDebug||((n.useInstrumentMode??!0)&&n.factorioArgs.push("--instrument-mod","debugadapter"),un.gte(s,"1.1.107",{loose:!0})&&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 b=Je.joinPath(xe.file(n.modsPath),"mod-settings.dat"),g=new Yr(new ar(await this.fs.readFile(b)));for(let y of n.adjustModSettings)if(y.value===void 0)g.set(y.scope,y.name);else switch(typeof y.value){case"string":g.set(y.scope,y.name,{type:"string",value:y.value});break;case"number":g.set(y.scope,y.name,{type:"number",value:y.value});break;case"boolean":g.set(y.scope,y.name,{type:"bool",value:y.value});break}await this.fs.writeFile(b,g.save())}this.factorio=new Ai(this.activeVersion.factorioPath,n.factorioArgs,this.activeVersion.nativeDebugger,n.env),this.factorio.on("exit",(b,g)=>{b&&this.sendEvent(new D.Event("exited",{exitCode:b})),this.sendEvent(new D.TerminatedEvent)});let u,f=new Promise(b=>{u=b});this.factorio.on("stderr",b=>{let g=b.toString();g&&this.sendEvent(new D.OutputEvent(g+`
3064
- `,"stderr"))});let d=(b,g)=>{switch(typeof g){case"string":switch(g.charCodeAt(0)){case 64976:return _t.basename(g.slice(1));case 64977:return this.convertDebuggerPathToClient(g.slice(1));case 64978:return this.convertDebuggerLineToClient(Number.parseInt(g.slice(1)));case 64980:{let y=Number.parseInt(g.slice(1));return this.translations.get(y)??`{Missing Translation ID ${y}}`}case 64981:{let y=Number.parseInt(g.slice(1));return this.buffers.get(y)??`{Missing Buffer ID ${y}}`}}}return g},c=b=>{let g=b.indexOf(1,3),y=Number.parseInt(b.subarray(3,g).toString().trim()),S=b.subarray(g+1),A=[],E=S.indexOf(239);for(;E>=0;){if(S[E+1]>=160&&S[E+1]<=163&&S[E+2]>=128&&S[E+2]<=191){let Q=S.subarray(E,E+4).toString("utf8").charCodeAt(0)-63488;A.push(S.subarray(0,E),Buffer.from([Q])),S=S.subarray(E+3)}else A.push(S.subarray(0,E+1)),S=S.subarray(E+1);E=S.indexOf(239)}A.push(S);let L=Buffer.concat(A);this.buffers.set(y,L)},p=async b=>{if(b[2]===151){c(b);return}let g=b.toString();switch(g.charCodeAt(0)){case 64976:switch(this.inPrompt++,g.charCodeAt(1)){case 57344:await f,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 y=g.slice(2).trim();this.clearQueuedStdin();let S=this.launchArgs.hookControl??!0,A=y==="debugadapter"?Array.isArray(S)&&S.includes(y):S!==!1&&(S===!0||S.includes(y));this.launchArgs.hookMode==="profile"?this.continueProfile(A):this.launchArgs.hookMode==="profile2"?this.continueProfile(A,2):this.continueRequire(A,y);return}case 57347:{let y=this.launchArgs.hookControl??!0,S=Array.isArray(y)&&y.includes("debugadapter")||y===!1;this.launchArgs.hookMode==="profile"?this.continueProfile(!S):this.launchArgs.hookMode==="profile2"?this.continueProfile(!S,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 y=JSON.parse(g.slice(1),d);switch(y.event){case"source":let S=this.loadedSourceEvent(y.body),A=y.body.source;this.breakPoints.has(A.sourceReference??A.name)&&await S,this.continue();return;case"running":await this.runQueuedStdin(),this.pauseRequested?(this.pauseRequested=!1,this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln("pause",y.body.threadId))):this.continue();return;case"exception":await this.runQueuedStdin(),y.body.filter==="manual"||this.exceptionFilters.has(y.body.filter)?this.sendEvent(new ln("exception",y.body.threadId,y.body.mesg)):this.continue();return;case"stopped":await this.runQueuedStdin(),this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln(y.body.reason,y.body.threadId));return;default:return}}case 64980:{let y=g.indexOf(""),S=Number.parseInt(g.slice(1,y).trim()),A=g.slice(y+1);this.translations.set(S,A);return}case 64981:{let y=JSON.parse(g.slice(1),d);switch(y.event){case"modules":await this.updateModules(y.body),u(),this.sendEvent(new D.InitializedEvent);return;case"output":{let S=y;S.body.output.endsWith(`
3065
- `)||(S.body.output+=`
3066
- `),this.sendEvent(S);return}default:return}}case 64982:{let y=JSON.parse(g.slice(1),d);this._responses.get(y.seq)(y.body),this._responses.delete(y.seq);return}case 64984:{this.sendEvent(new D.InvalidatedEvent);return}}},_=b=>{switch(b.toString("utf8").charCodeAt(0)){case 64992:case 64993:case 64994:case 64995:return}};this.factorio.on("stdout",async b=>{if(b[0]===239&&b[1]===183)switch(b[2]){case 144:case 145:case 148:case 149:case 150:case 151:case 152:await p(b);return;case 160:case 161:case 162:case 163:_(b);return;case 173:this.sendEvent(new D.Event("x-Factorio-Profile",b.toString().slice(1)));return}b.toString()&&this.sendEvent(new D.OutputEvent(b.toString()+`
3067
- `,"stdout"))}),this.sendResponse(t)}allocateRefBlock(){let t=this.nextRef;this.nextRef+=4096,this.writeStdin(`__DebugAdapter.__dap.transferRef(${t})`)}convertClientPathToDebugger(t){if(t=xe.parse(super.convertClientPathToDebugger(t)).toString(),t.startsWith("output:"))return t;let n;return this._modules.forEach(i=>{i.symbolFilePath&&t.startsWith(i.symbolFilePath)&&i.symbolFilePath.length>(n?.symbolFilePath||"").length&&(n=i)}),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 i=this._modules.get(n[1]);if(i?.symbolFilePath)return super.convertDebuggerPathToClient(Je.joinPath(xe.parse(i.symbolFilePath),n[2]).toString())}return t}async customRequest(t,n,i,s){switch(t){case"x-Factorio-ConvertPath":n.body=this.convertDebuggerPathToClient(i.path);break;case"modules":return this.modulesRequest(n,i);default:n.success=!1,n.message="Unknown request";break}this.sendResponse(n)}setBreakPointsRequest(t,n){let i;if(n.source.path){let d=n.source.path;i=this.convertClientPathToDebugger(d)}else i=`&ref ${n.source.sourceReference}`;let s=this.lines_by_source.get(n.source.sourceReference??i),u=this.breakPoints.get(i)??[],f=(n.breakpoints??[]).map(d=>{d.line=this.convertClientLineToDebugger(d.line);let c=u.find(_=>d.line===_.line&&d.column===_.column);if(c)return c.condition=d.condition,c.hitCondition=d.hitCondition,c.logMessage=d.logMessage,c;let p=!1;if(s){let _=0;for(let b of s){if(b>=d.line){d.line=b,p=!0;break}b>_&&(_=b)}!p&&_>0&&(d.line=_,p=!0)}return Object.assign(d,{id:this.nextBreakpointID++,verified:p})});this.breakPoints.set(i,f),this.breakPointsChanged.add(i),t.body={breakpoints:f},this.sendResponse(t)}revalidateBreakpoints(t){let n=typeof t=="number"?`&ref ${t}`:t,i=this.breakPoints.get(n);if(!i)return;this.breakPointsChanged.add(n);let s=this.lines_by_source.get(t);for(let u of i){let f=0;for(let d of s){if(d>=u.line){u.line=d,u.verified=!0,this.sendEvent(new D.BreakpointEvent("changed",u));break}d>f&&(f=d)}!u.verified&&f>0&&(u.line=f,u.verified=!0,this.sendEvent(new D.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})
3068
- `)}),this.sendResponse(t)):(t.body={threads:[{id:1,name:"thread"}]},this.sendResponse(t))}async stackTraceRequest(t,n){let i=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},${i},${t.request_seq})
3069
- `)});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 i=Array.from(this._modules.values());t.body={modules:i},this.sendResponse(t)}async scopesRequest(t,n){let i=new Promise(s=>{this._responses.set(t.request_seq,s),this.writeStdin(`__DebugAdapter.__dap.scopes(${n.frameId}, ${t.request_seq})
3070
- `)});t.body={scopes:await i},this.sendResponse(t)}async variablesRequest(t,n,i){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"})
3071
- `,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,i){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})
3072
- `)});s.type==="error"?(t.success=!1,t.message=s.value):t.body=s,this.sendResponse(t)}async evaluateRequest(t,n,i){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",_=It(Buffer.from(n.expression.replace(/\n/g," "))),b=await Promise.race([new Promise(async g=>{this._responses.set(t.request_seq,g),await this.writeOrQueueStdin(`__DebugAdapter.__dap.evaluate(${p},"${n.context}",${_},${t.request_seq})
3257
+ ${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?`
3258
+ `+o.description:""}`)?.join(`
3259
+
3260
+ `)}`,t&&`[View Documentation](${t.scope}:${t.member}${t.part?"::"+t.part:""})`,e.examples?.map(o=>`### Example
3261
+ ${o}`)?.join(`
3262
+
3263
+ `),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(`
3264
+
3265
+ `)}};var ta=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===4||this.docs.api_version===5||this.docs.api_version===6))throw`Unsupported 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 Ce("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 Ce("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 Ne("extend",[new ae("otherdata",new je(new U("data.AnyPrototype")))]);o.add(new Qe(void 0,[new ae("self",new U("data")),new ae("otherdata",new je(new U("data.AnyPrototype")))])),o.add(new Qe(void 0,[new ae("otherdata",new je(new U("data.AnyModSettingPrototype")))])),o.add(new Qe(void 0,[new ae("self",new U("data")),new ae("otherdata",new je(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 rr(new U("string"),new U(this.type_prefix+f.name))));return t}async generate_LuaLS_prototypes(e){let t=new Ce("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 je(this.lua_proto_type(e.value,t));case"tuple":return new Er(e.values.map(n=>this.lua_proto_type(n,t)));case"dictionary":return new rr(this.lua_proto_type(e.key,t),this.lua_proto_type(e.value,t));case"union":return new Ot(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 F=le(Ku()),_t=le(require("path")),Yd=le(require("fs/promises")),ir=le(require("os")),ns=le(qd());var Md;(()=>{"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="",b=0,g=-1,y=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||y===1))if(g!==R-1&&y===2){if(m.length<2||b!==2||m.charCodeAt(m.length-1)!==46||m.charCodeAt(m.length-2)!==46){if(m.length>2){var T=m.lastIndexOf("/");if(T!==m.length-1){T===-1?(m="",b=0):b=(m=m.slice(0,T)).length-1-m.lastIndexOf("/"),g=R,y=0;continue}}else if(m.length===2||m.length===1){m="",b=0,g=R,y=0;continue}}c&&(m.length>0?m+="/..":m="..",b=2)}else m.length>0?m+="/"+d.slice(g+1,R):m=d.slice(g+1,R),b=R-g-1;g=R,y=0}else p===46&&y!==-1?++y:y=-1}return m}var f={resolve:function(){for(var d,c="",p=!1,m=arguments.length-1;m>=-1&&!p;m--){var b;m>=0?b=arguments[m]:(d===void 0&&(d=process.cwd()),b=d),s(b),b.length!==0&&(c=b+"/"+c,p=b.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,b=m-p,g=1;g<c.length&&c.charCodeAt(g)===47;++g);for(var y=c.length-g,R=b<y?b:y,T=-1,I=0;I<=R;++I){if(I===R){if(y>R){if(c.charCodeAt(g+I)===47)return c.slice(g+I+1);if(I===0)return c.slice(g+I)}else b>R&&(d.charCodeAt(p+I)===47?T=I:I===0&&(T=0));break}var E=d.charCodeAt(p+I);if(E!==c.charCodeAt(g+I))break;E===47&&(T=I)}var te="";for(I=p+T+1;I<=m;++I)I!==m&&d.charCodeAt(I)!==47||(te.length===0?te+="..":te+="/..");return te.length>0?te+c.slice(g+T):(g+=T,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,b=!0,g=d.length-1;g>=1;--g)if((c=d.charCodeAt(g))===47){if(!b){m=g;break}}else b=!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,b=-1,g=!0;if(c!==void 0&&c.length>0&&c.length<=d.length){if(c.length===d.length&&c===d)return"";var y=c.length-1,R=-1;for(p=d.length-1;p>=0;--p){var T=d.charCodeAt(p);if(T===47){if(!g){m=p+1;break}}else R===-1&&(g=!1,R=p+1),y>=0&&(T===c.charCodeAt(y)?--y==-1&&(b=p):(y=-1,b=R))}return m===b?b=R:b===-1&&(b=d.length),d.slice(m,b)}for(p=d.length-1;p>=0;--p)if(d.charCodeAt(p)===47){if(!g){m=p+1;break}}else b===-1&&(g=!1,b=p+1);return b===-1?"":d.slice(m,b)},extname:function(d){s(d);for(var c=-1,p=0,m=-1,b=!0,g=0,y=d.length-1;y>=0;--y){var R=d.charCodeAt(y);if(R!==47)m===-1&&(b=!1,m=y+1),R===46?c===-1?c=y:g!==1&&(g=1):c!==-1&&(g=-1);else if(!b){p=y+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,b=p.base||(p.name||"")+(p.ext||"");return m?m===p.root?m+b:m+"/"+b:b}(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),b=m===47;b?(c.root="/",p=1):p=0;for(var g=-1,y=0,R=-1,T=!0,I=d.length-1,E=0;I>=p;--I)if((m=d.charCodeAt(I))!==47)R===-1&&(T=!1,R=I+1),m===46?g===-1?g=I:E!==1&&(E=1):g!==-1&&(E=-1);else if(!T){y=I+1;break}return g===-1||R===-1||E===0||E===1&&g===R-1&&g===y+1?R!==-1&&(c.base=c.name=y===0&&b?d.slice(1,R):d.slice(y,R)):(y===0&&b?(c.name=d.slice(1,g),c.base=d.slice(1,R)):(c.name=d.slice(y,g),c.base=d.slice(y,R)),c.ext=d.slice(g,R)),y>0?c.dir=d.slice(0,y-1):b&&(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:()=>b,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 b{static isUri(P){return P instanceof b||!!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 y(D,$,Y,H,V)}static parse(P,D=!1){let $=m.exec(P);return $?new y($[2]||c,Q($[4]||c),Q($[5]||c),Q($[7]||c),Q($[9]||c),D):new y(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 y("file",D,P,c,c)}static from(P){let D=new y(P.scheme,P.authority,P.path,P.query,P.fragment);return d(D,!0),D}toString(P=!1){return te(this,P)}toJSON(){return this}static revive(P){if(P){if(P instanceof b)return P;{let D=new y(P);return D._formatted=P.external,D._fsPath=P._sep===g?P.fsPath:null,D}}return P}}let g=o?1:void 0;class y extends b{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=E(this,!1)),this._fsPath}toString(P=!1){return P?te(this,!0):(this._formatted||(this._formatted=te(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 T(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 te(C,P){let D=P?I:T,$="",{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:T(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 Q(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={}))})(),Md=n})();var{URI:xe,Utils:Je}=Md;var Ja=require("child_process"),Kd=require("events");var Ud=require("events"),kr=class extends Ud.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 Gd=le(require("path")),Xd=le(Hd()),kb=[Buffer.from(`
3266
+ `),Buffer.from("lua_debug> ")],Ib=[Buffer.from(`
3267
+ `),{start:Buffer.from([239,183,174]),end:Buffer.from([239,183,175])}],Ao=class extends Kd.EventEmitter{factorio;hasNativeDebug;constructor(e,t,n,o){super();let s={cwd:Gd.dirname(e),env:Object.assign({},process.env,o,{SteamAppId:"427520"})};n?(this.hasNativeDebug=!0,this.factorio=(0,Ja.spawn)(n,[e,...t],s)):this.factorio=(0,Ja.spawn)(e,t,s),this.factorio.on("exit",(...d)=>this.emit("exit",...d)),new kr(this.factorio.stderr,kb).on("segment",d=>{d.length===1&&d[0]===13||this.emit("stderr",d)}),new kr(this.factorio.stdout,Ib).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,Xd.default)(this.factorio.pid);else{this.factorio.kill();try{this.factorio.kill("SIGKILL")}catch{}}}};var Za=Buffer.from([27,76,117,97,82,0,1,4,8,4,8,0,25,147,13,10,26,10]);function To(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 es=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}},ts=class{name;instack;idx;constructor(e,t){this.instack=e.readUInt8(t)!==0,this.idx=e.readUInt8(t+1)}},rs=class{name;start;end;dumpsize;constructor(e,t){let n;[n,t]=To(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}},Ir=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,Za.length).equals(Za))throw new Error("Invalid Header");t=Za.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 Ir(0));break;case 1:this.constants.push(new Ir(1,e[t++]!==0));break;case 3:this.constants.push(new Ir(3,e.readDoubleLE(t))),t+=8;break;case 4:let m;[m,t]=To(e,t),this.constants.push(new Ir(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 ts(e,t)),t+=2;{let c;[c,t]=To(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 rs(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]=To(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 es(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}`,b=c===p?`${p}`:`${c}->${p}`;return`NEWTABLE ${this.getRegisterLabel(e,t.A)} := {} size(${m},${b})`}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 ln=class extends F.StoppedEvent{constructor(e,t,n){super(e,t,n),this.body.allThreadsStopped=!0}},os=class extends F.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 F.OutputEvent(`Factorio --config option is set by configPath and should not be included in factorioArgs
3268
+ `,"console")),!1;if(n.includes("--mod-directory"))return this.sendEvent(new F.OutputEvent(`Factorio --mod-directory option is set by modsPath and should not be included in factorioArgs
3269
+ `,"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(ir.homedir().replace(/\\/g,"/"),o.replace(/^~[\\\/]/,""))),o.match(/[\\\/]$/)&&(o=o.replace(/[\\\/]+$/,""));try{await Yd.access(o),t.modsPath=o}catch{return this.sendEvent(new F.OutputEvent(`modsPath specified in launch configuration does not exist
3270
+ `,"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 F.OutputEvent(`multiple mod-list.json in workspace, please specify one as modsPath
3271
+ `,"console")),!1;n="config",t.modsPath=await this.activeVersion.defaultModsPath()}}if(ir.platform()==="win32"&&t.modsPath.startsWith("/")&&(t.modsPath=t.modsPath.substr(1)),t.modsPath=t.modsPath.replace(/\\/g,"/"),this.sendEvent(new F.OutputEvent(`using modsPath ${t.modsPath} (${n})
3272
+ `,"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 F.OutputEvent(`automatic management of mods disabled
3273
+ `,"console"));else{t.adjustMods||(t.adjustMods={}),t.allowDisableBaseMod||(t.adjustMods.base=!0);let n=new Rr(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 F.OutputEvent(`package install debugadapter ${JSON.stringify(o)}
3274
+ `,"console"))}await n.write(),this.sendEvent(new F.OutputEvent(`debugadapter ${t.noDebug?"disabled":"enabled"} in mod-list.json
3275
+ `,"console"))}}async launchRequest(t,n){if(F.logger.setup(n.trace?F.Logger.LogLevel.Verbose:F.Logger.LogLevel.Stop,_t.join(ir.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 F.OutputEvent(`using custom environment variables: ${JSON.stringify(n.env)}
3276
+ `,"console")),!await this.checkFactorioArgs(n)){this.sendEvent(new F.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}if(!await this.resolveModsPath(n)){this.sendEvent(new F.TerminatedEvent),this.sendErrorResponse(t,1),this._isRunningInline()||process.exit(1);return}try{await this.setupMods(n)}catch(m){this.sendEvent(new F.OutputEvent(`Error setting up mods: ${m}
3277
+ `,"console")),this.sendEvent(new F.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(xe.file(n.modsPath),"mod-settings.dat"),b=new Yr(new ar(await this.fs.readFile(m)));for(let g of n.adjustModSettings)if(g.value===void 0)b.set(g.scope,g.name);else switch(typeof g.value){case"string":b.set(g.scope,g.name,{type:"string",value:g.value});break;case"number":b.set(g.scope,g.name,{type:"number",value:g.value});break;case"boolean":b.set(g.scope,g.name,{type:"bool",value:g.value});break}await this.fs.writeFile(m,b.save())}this.factorio=new Ao(this.activeVersion.factorioPath,n.factorioArgs,this.activeVersion.nativeDebugger,n.env),this.factorio.on("exit",(m,b)=>{m&&this.sendEvent(new F.Event("exited",{exitCode:m})),this.sendEvent(new F.TerminatedEvent)});let s,u=new Promise(m=>{s=m});this.factorio.on("stderr",m=>{let b=m.toString();b&&this.sendEvent(new F.OutputEvent(b+`
3278
+ `,"stderr"))});let f=(m,b)=>{switch(typeof b){case"string":switch(b.charCodeAt(0)){case 64976:return _t.basename(b.slice(1));case 64977:return this.convertDebuggerPathToClient(b.slice(1));case 64978:return this.convertDebuggerLineToClient(Number.parseInt(b.slice(1)));case 64980:{let g=Number.parseInt(b.slice(1));return this.translations.get(g)??`{Missing Translation ID ${g}}`}case 64981:{let g=Number.parseInt(b.slice(1));return this.buffers.get(g)??`{Missing Buffer ID ${g}}`}}}return b},d=m=>{let b=m.indexOf(1,3),g=Number.parseInt(m.subarray(3,b).toString().trim()),y=m.subarray(b+1),R=[],T=y.indexOf(239);for(;T>=0;){if(y[T+1]>=160&&y[T+1]<=163&&y[T+2]>=128&&y[T+2]<=191){let E=y.subarray(T,T+4).toString("utf8").charCodeAt(0)-63488;R.push(y.subarray(0,T),Buffer.from([E])),y=y.subarray(T+3)}else R.push(y.subarray(0,T+1)),y=y.subarray(T+1);T=y.indexOf(239)}R.push(y);let I=Buffer.concat(R);this.buffers.set(g,I)},c=async m=>{if(m[2]===151){d(m);return}let b=m.toString();switch(b.charCodeAt(0)){case 64976:switch(this.inPrompt++,b.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=b.slice(2).trim();this.clearQueuedStdin();let y=this.launchArgs.hookControl??!0,R=g==="debugadapter"?Array.isArray(y)&&y.includes(g):y!==!1&&(y===!0||y.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,y=Array.isArray(g)&&g.includes("debugadapter")||g===!1;this.launchArgs.hookMode==="profile"?this.continueProfile(!y):this.launchArgs.hookMode==="profile2"?this.continueProfile(!y,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(b.slice(1),f);switch(g.event){case"source":let y=this.loadedSourceEvent(g.body),R=g.body.source;this.breakPoints.has(R.sourceReference??R.name)&&await y,this.continue();return;case"running":await this.runQueuedStdin(),this.pauseRequested?(this.pauseRequested=!1,this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln("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 ln("exception",g.body.threadId,g.body.mesg)):this.continue();return;case"stopped":await this.runQueuedStdin(),this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.sendEvent(new ln(g.body.reason,g.body.threadId));return;default:return}}case 64980:{let g=b.indexOf(""),y=Number.parseInt(b.slice(1,g).trim()),R=b.slice(g+1);this.translations.set(y,R);return}case 64981:{let g=JSON.parse(b.slice(1),f);switch(g.event){case"modules":await this.updateModules(g.body),s(),this.sendEvent(new F.InitializedEvent);return;case"output":{let y=g;y.body.output.endsWith(`
3279
+ `)||(y.body.output+=`
3280
+ `),this.sendEvent(y);return}default:return}}case 64982:{let g=JSON.parse(b.slice(1),f);this._responses.get(g.seq)(g.body),this._responses.delete(g.seq);return}case 64984:{this.sendEvent(new F.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 F.Event("x-Factorio-Profile",m.toString().slice(1)));return}m.toString()&&this.sendEvent(new F.OutputEvent(m.toString()+`
3281
+ `,"stdout"))}),this.sendResponse(t)}allocateRefBlock(){let t=this.nextRef;this.nextRef+=4096,this.writeStdin(`__DebugAdapter.__dap.transferRef(${t})`)}convertClientPathToDebugger(t){if(t=xe.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(xe.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 b of s){if(b>=d.line){d.line=b,p=!0;break}b>m&&(m=b)}!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 F.BreakpointEvent("changed",u));break}d>f&&(f=d)}!u.verified&&f>0&&(u.line=f,u.verified=!0,this.sendEvent(new F.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})
3282
+ `)}),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})
3283
+ `)});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})
3284
+ `)});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"})
3285
+ `,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})
3286
+ `)});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," "))),b=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})
3073
3287
  `,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(),b.type==="error"&&(t.success=!1,t.message=b.result),t.body=b,b.timer){let g=b.timer.replace(/^.*: /,"");b.result+=`
3074
- \u23F1\uFE0F `+g}this.sendResponse(t)}continueRequest(t,n){this.writeStdin("__DebugAdapter.__dap.step_enabled(false)"),this.continue(),this.sendResponse(t)}pauseRequest(t,n,i){this.pauseRequested=!0,this.sendResponse(t)}step(t="in",n="statement"){let i={in:-1,over:0,out:1};this.breakPointsChanged.size!==0&&this.updateBreakpoints(),this.writeStdin("__DebugAdapter.__dap.step_enabled(true)"),this.writeStdin(`__DebugAdapter.__dap.step(${i[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,i){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 i=n.sourceReference??n.name,s;s=new ki(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(i,f),this.lines_by_source.set(i,Array.from(u).sort((d,c)=>d-c)),this.revalidateBreakpoints(i)}this.loadedSources.push(n),this.sendEvent(new D.LoadedSourceEvent("new",n))}async disassembleRequest(t,n,i){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 _=this.dumps_by_address[c].getInstructionsAtBase(f,d);_&&(u.push(..._),d-=_.length,f+=_.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,i){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,i){t.body={sources:this.loadedSources},this.sendResponse(t)}async sourceRequest(t,n){let i=n.source?.sourceReference;if(i){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(${i},${t.request_seq})
3075
- `,u,f.signal)||(this._dumps.delete(i),s(),c(`Expired source ref=${i}`))}),new Promise(c=>{setTimeout(()=>{f.abort(),c(`No Lua State Available ref=${i} 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 i=Buffer.from(await this.fs.readFile(t)).toString("utf8");if(i){let s=JSON.parse(i);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 D.OutputEvent(`failed to read ${t} ${n}
3076
- `,"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 D.OutputEvent(`!! Attempted to writeStdin "${t instanceof Buffer?`Buffer[${t.length}]`:t}" while not in a prompt
3288
+ \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 F.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})
3289
+ `,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;ir.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 F.OutputEvent(`failed to read ${t} ${n}
3290
+ `,"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 F.OutputEvent(`!! Attempted to writeStdin "${t instanceof Buffer?`Buffer[${t.length}]`:t}" while not in a prompt
3077
3291
  `,"console"));return}this.factorio?.writeStdin(Buffer.concat([t instanceof Buffer?t:Buffer.from(t),Buffer.from(`
3078
- `)]))}async writeOrQueueStdin(t,n,i){return this.inPrompt>0?(this.writeStdin(t),n&&await n,!0):new Promise(u=>this.stdinQueue.push({mesg:t,resolve:u,consumed:n,signal:i}))}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 D.OutputEvent(`!! Attempted to continue while not in a prompt
3079
- `,"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 D.OutputEvent(`!! Attempted to continueRequire while not in a prompt
3080
- `,"console"));return}if(t){let i="";this.launchArgs.hookLog!==void 0&&(i+=`hooklog=${this.launchArgs.hookLog},`),this.launchArgs.keepOldLog!==void 0&&(i+=`keepoldlog=${this.launchArgs.keepOldLog},`),this.launchArgs.runningBreak!==void 0&&(i+=`runningBreak=${this.launchArgs.runningBreak},`),this.writeStdin(`__DebugAdapter={__config={${i}}}`)}this.writeStdin("cont"),this.inPrompt--}continueProfile(t,n){if(this.inPrompt<=0){this.sendEvent(new D.OutputEvent(`!! Attempted to continueProfile while not in a prompt
3081
- `,"console"));return}if(t){let i="";this.launchArgs.profileSlowStart!==void 0&&(i+=`slowStart=${this.launchArgs.profileSlowStart},`),this.launchArgs.profileUpdateRate!==void 0&&(i+=`updateRate=${this.launchArgs.profileUpdateRate},`),this.launchArgs.profileLines!==void 0&&(i+=`trackLines=${this.launchArgs.profileLines},`),this.launchArgs.profileFuncs!==void 0&&(i+=`trackFuncs=${this.launchArgs.profileFuncs},`),this.launchArgs.profileTree!==void 0&&(i+=`trackTree=${this.launchArgs.profileTree},`),this.writeStdin(`__Profiler${n||""}={${i}}`)}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&&un.eq(s.version,n.version,{loose:!0}))return n.symbolFilePath=t.toString(),n.symbolStatus="Loaded Mod Directory",this.sendEvent(new D.OutputEvent(`loaded ${n.name} ${n.version} from modspath ${n.symbolFilePath}
3082
- `,"console")),!0}}catch(i){return i.code!=="FileNotFound"&&i.code!=="ENOENT"&&this.sendEvent(new D.OutputEvent(`failed loading ${n.name} ${n.version} from modspath: ${i}
3083
- `,"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 i of t)try{if(this._modules.set(i.name,i),i.name==="#user"){i.symbolFilePath=xe.file(await this.activeVersion.writeDataPath()).toString(),i.symbolStatus="Loaded Write Data Directory",this.sendEvent(new D.OutputEvent(`loaded ${i.name} from config ${i.symbolFilePath}
3084
- `,"console"));continue}if(i.name==="level"){i.symbolStatus="No Symbols (Level)";continue}try{let u=Je.joinPath(xe.file(await this.activeVersion.dataPath()),i.name);if(JSON.parse(Buffer.from(await this.fs.readFile(Je.joinPath(u,"info.json"))).toString("utf8")).name===i.name){i.symbolFilePath=u.toString(),i.symbolStatus="Loaded Data Directory",this.sendEvent(new D.OutputEvent(`loaded ${i.name} from data ${i.symbolFilePath}
3085
- `,"console"));continue}}catch{}let s=this.workspaceModInfo.find(u=>u.name===i.name&&un.eq(u.version,i.version,{loose:!0}));if(s){i.symbolFilePath=s.uri.toString(),i.symbolStatus="Loaded Workspace Directory",this.sendEvent(new D.OutputEvent(`loaded ${i.name} ${i.version} from workspace ${i.symbolFilePath}
3086
- `,"console"));continue}if(this.launchArgs.modsPath){let u=Je.joinPath(xe.file(this.launchArgs.modsPath),i.name);if(await this.trydir(u,i)||(u=Je.joinPath(xe.file(this.launchArgs.modsPath),i.name+"_"+i.version),await this.trydir(u,i)))continue;if(n){let f=Je.joinPath(xe.file(this.launchArgs.modsPath),i.name+"_"+i.version+".zip"),d;try{d=await this.fs.stat(f)}catch(c){c.code!=="FileNotFound"&&this.sendEvent(new D.OutputEvent(`${c}
3087
- `,"stderr"))}if(d&&d.type&1)try{await this.editorInterface.executeCommand("zipexplorer.exploreZipFile",f);let c=Je.joinPath(f,i.name+"_"+i.version).with({scheme:"zip"});i.symbolFilePath=c.toString(),i.symbolStatus="Loaded Zip",this.sendEvent(new D.OutputEvent(`loaded ${i.name} ${i.version} from mod zip ${f.toString()}
3088
- `,"console"));continue}catch(c){this.sendEvent(new D.OutputEvent(`failed loading ${i.name} ${i.version} from mod zip ${f.toString()}: ${c}
3089
- `,"console"))}}}i.symbolStatus="Unknown",this.sendEvent(new D.OutputEvent(`no source found for ${i.name} ${i.version}
3090
- `,"console"))}catch(s){i.symbolStatus="Error",this.sendEvent(new D.OutputEvent(`failed locating source for ${i.name} ${i.version}: ${s}
3091
- `,"console"))}this._modules.forEach(i=>{this.sendEvent(new D.ModuleEvent("new",i))})}updateBreakpoints(t=!1){let n=Array();this.breakPoints.forEach((i,s)=>{(t||this.breakPointsChanged.has(s))&&n.push(Buffer.concat([Buffer.from("__DebugAdapter.__dap.updateBreakpoints("),It(mo(s,i)),Buffer.from(`)
3092
- `)]))}),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 D.OutputEvent(`automatic management of mods disabled by launch config
3093
- `,"console"));else try{let n=new Rr(t);await n.Loaded,n.set("debugadapter",!1),await n.write(),this.sendEvent(new D.OutputEvent(`debugadapter disabled in mod-list.json
3094
- `,"console"))}catch(n){this.sendEvent(new D.OutputEvent(`failed to disable debugadapter in mod-list.json:
3292
+ `)]))}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 F.OutputEvent(`!! Attempted to continue while not in a prompt
3293
+ `,"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 F.OutputEvent(`!! Attempted to continueRequire while not in a prompt
3294
+ `,"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 F.OutputEvent(`!! Attempted to continueProfile while not in a prompt
3295
+ `,"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&&ns.eq(s.version,n.version,{loose:!0}))return n.symbolFilePath=t.toString(),n.symbolStatus="Loaded Mod Directory",this.sendEvent(new F.OutputEvent(`loaded ${n.name} ${n.version} from modspath ${n.symbolFilePath}
3296
+ `,"console")),!0}}catch(o){return o.code!=="FileNotFound"&&o.code!=="ENOENT"&&this.sendEvent(new F.OutputEvent(`failed loading ${n.name} ${n.version} from modspath: ${o}
3297
+ `,"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=xe.file(await this.activeVersion.writeDataPath()).toString(),o.symbolStatus="Loaded Write Data Directory",this.sendEvent(new F.OutputEvent(`loaded ${o.name} from config ${o.symbolFilePath}
3298
+ `,"console"));continue}if(o.name==="level"){o.symbolStatus="No Symbols (Level)";continue}try{let u=Je.joinPath(xe.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 F.OutputEvent(`loaded ${o.name} from data ${o.symbolFilePath}
3299
+ `,"console"));continue}}catch{}let s=this.workspaceModInfo.find(u=>u.name===o.name&&ns.eq(u.version,o.version,{loose:!0}));if(s){o.symbolFilePath=s.uri.toString(),o.symbolStatus="Loaded Workspace Directory",this.sendEvent(new F.OutputEvent(`loaded ${o.name} ${o.version} from workspace ${o.symbolFilePath}
3300
+ `,"console"));continue}if(this.launchArgs.modsPath){let u=Je.joinPath(xe.file(this.launchArgs.modsPath),o.name);if(await this.trydir(u,o)||(u=Je.joinPath(xe.file(this.launchArgs.modsPath),o.name+"_"+o.version),await this.trydir(u,o)))continue;if(n){let f=Je.joinPath(xe.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 F.OutputEvent(`${c}
3301
+ `,"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 F.OutputEvent(`loaded ${o.name} ${o.version} from mod zip ${f.toString()}
3302
+ `,"console"));continue}catch(c){this.sendEvent(new F.OutputEvent(`failed loading ${o.name} ${o.version} from mod zip ${f.toString()}: ${c}
3303
+ `,"console"))}}}o.symbolStatus="Unknown",this.sendEvent(new F.OutputEvent(`no source found for ${o.name} ${o.version}
3304
+ `,"console"))}catch(s){o.symbolStatus="Error",this.sendEvent(new F.OutputEvent(`failed locating source for ${o.name} ${o.version}: ${s}
3305
+ `,"console"))}this._modules.forEach(o=>{this.sendEvent(new F.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(`)
3306
+ `)]))}),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 F.OutputEvent(`automatic management of mods disabled by launch config
3307
+ `,"console"));else try{let n=new Rr(t);await n.Loaded,n.set("debugadapter",!1),await n.write(),this.sendEvent(new F.OutputEvent(`debugadapter disabled in mod-list.json
3308
+ `,"console"))}catch(n){this.sendEvent(new F.OutputEvent(`failed to disable debugadapter in mod-list.json:
3095
3309
  ${n}
3096
- `,"console"))}this.sendEvent(new D.TerminatedEvent),!this._isRunningInline()&&process.env.NODE_V8_COVERAGE&&process.exit()}};var is=(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))(is||{}),os=(v=>(v[v.LuaEntity=0]="LuaEntity",v[v.LuaRecipe=2]="LuaRecipe",v[v.LuaTechnology=3]="LuaTechnology",v[v.LuaRandomGenerator=4]="LuaRandomGenerator",v[v.LuaForce=5]="LuaForce",v[v.LuaBurner=6]="LuaBurner",v[v.LuaLogisticPoint=7]="LuaLogisticPoint",v[v.LuaDecorativePrototype=8]="LuaDecorativePrototype",v[v.LuaCustomChartTag=9]="LuaCustomChartTag",v[v.LuaPermissionGroups=10]="LuaPermissionGroups",v[v.LuaPermissionGroup=11]="LuaPermissionGroup",v[v.LuaUnitGroup=12]="LuaUnitGroup",v[v.LuaTrain=13]="LuaTrain",v[v.LuaFluidBox=14]="LuaFluidBox",v[v.LuaEntityPrototype=15]="LuaEntityPrototype",v[v.LuaItemPrototype=16]="LuaItemPrototype",v[v.LuaEquipmentGrid=18]="LuaEquipmentGrid",v[v.LuaEquipment=19]="LuaEquipment",v[v.LuaItemStack=20]="LuaItemStack",v[v.LuaPlayer=21]="LuaPlayer",v[v.LuaGui=22]="LuaGui",v[v.LuaGuiElement=23]="LuaGuiElement",v[v.LuaStyle=24]="LuaStyle",v[v.LuaSurface=25]="LuaSurface",v[v.LuaFluidPrototype=26]="LuaFluidPrototype",v[v.LuaGroup=27]="LuaGroup",v[v.LuaTile=28]="LuaTile",v[v.LuaChunkIterator=29]="LuaChunkIterator",v[v.LuaStructMapSettings=30]="LuaStructMapSettings",v[v.LuaTransportLine=31]="LuaTransportLine",v[v.LuaLogisticNetwork=32]="LuaLogisticNetwork",v[v.LuaLogisticCell=33]="LuaLogisticCell",v[v.LuaInventory=34]="LuaInventory",v[v.LuaControlBehavior=35]="LuaControlBehavior",v[v.LuaFlowStatistics=36]="LuaFlowStatistics",v[v.LuaTilePrototype=37]="LuaTilePrototype",v[v.LuaEquipmentPrototype=38]="LuaEquipmentPrototype",v[v.LuaCircuitNetwork=39]="LuaCircuitNetwork",v[v.LuaDamagePrototype=40]="LuaDamagePrototype",v[v.LuaVirtualSignalPrototype=41]="LuaVirtualSignalPrototype",v[v.LuaEquipmentGridPrototype=42]="LuaEquipmentGridPrototype",v[v.LuaRecipePrototype=43]="LuaRecipePrototype",v[v.LuaTechnologyPrototype=44]="LuaTechnologyPrototype",v[v.LuaBurnerPrototype=45]="LuaBurnerPrototype",v[v.LuaElectricEnergySourcePrototype=46]="LuaElectricEnergySourcePrototype",v[v.LuaCustomInputPrototype=47]="LuaCustomInputPrototype",v[v.LuaNoiseLayerPrototype=48]="LuaNoiseLayerPrototype",v[v.LuaAutoplaceControlPrototype=49]="LuaAutoplaceControlPrototype",v[v.LuaModSettingPrototype=50]="LuaModSettingPrototype",v[v.LuaAmmoCategoryPrototype=51]="LuaAmmoCategoryPrototype",v[v.LuaRailPath=52]="LuaRailPath",v[v.LuaFluidBoxPrototype=53]="LuaFluidBoxPrototype",v[v.LuaAISettings=54]="LuaAISettings",v[v.LuaProfiler=55]="LuaProfiler",v[v.LuaNamedNoiseExpression=56]="LuaNamedNoiseExpression",v[v.LuaFuelCategoryPrototype=57]="LuaFuelCategoryPrototype",v[v.LuaResourceCategoryPrototype=58]="LuaResourceCategoryPrototype",v[v.LuaAchievementPrototype=59]="LuaAchievementPrototype",v[v.LuaModuleCategoryPrototype=60]="LuaModuleCategoryPrototype",v[v.LuaEquipmentCategoryPrototype=61]="LuaEquipmentCategoryPrototype",v[v.LuaTrivialSmokePrototype=62]="LuaTrivialSmokePrototype",v[v.LuaShortcutPrototype=63]="LuaShortcutPrototype",v[v.LuaRecipeCategoryPrototype=64]="LuaRecipeCategoryPrototype",v[v.LuaParticlePrototype=65]="LuaParticlePrototype",v[v.LuaFluidEnergySourcePrototype=66]="LuaFluidEnergySourcePrototype",v[v.LuaHeatEnergySourcePrototype=67]="LuaHeatEnergySourcePrototype",v[v.LuaVoidEnergySourcePrototype=68]="LuaVoidEnergySourcePrototype",v[v.LuaFontPrototype=69]="LuaFontPrototype",v[v.LuaHeatBufferPrototype=79]="LuaHeatBufferPrototype",v[v.xLuaFutureObject=-1]="xLuaFutureObject",v))(os||{}),bt=(S=>(S[S.None=0]="None",S[S.EntityInventory=1]="EntityInventory",S[S.ControllerInventory=2]="ControllerInventory",S[S.ItemEntity=3]="ItemEntity",S[S.EntityCursorStack=4]="EntityCursorStack",S[S.ControllerCursorStack=5]="ControllerCursorStack",S[S.Inserter=6]="Inserter",S[S.ItemWithInventory=7]="ItemWithInventory",S[S.BeltConnectable=8]="BeltConnectable",S[S.Equipment=9]="Equipment",S[S.TargetableInventory=10]="TargetableInventory",S[S.TargetableItemStack=11]="TargetableItemStack",S[S.PlayerBlueprint=12]="PlayerBlueprint",S[S.ScriptInventory=13]="ScriptInventory",S[S.LinkedInventory=14]="LinkedInventory",S))(bt||{}),as=(L=>(L[L.Container=1]="Container",L[L.GenericOnOff=2]="GenericOnOff",L[L.Inserter=3]="Inserter",L[L.Lamp=4]="Lamp",L[L.LogisticContainer=5]="LogisticContainer",L[L.Roboport=6]="Roboport",L[L.StorageTank=7]="StorageTank",L[L.TrainStop=8]="TrainStop",L[L.DeciderCombinator=9]="DeciderCombinator",L[L.ArithmeticCombinator=10]="ArithmeticCombinator",L[L.ConstantCombinator=11]="ConstantCombinator",L[L.TransportBelt=12]="TransportBelt",L[L.Accumulator=13]="Accumulator",L[L.RailSignal=14]="RailSignal",L[L.Wall=15]="Wall",L[L.MiningDrill=16]="MiningDrill",L[L.ProgrammableSpeaker=17]="ProgrammableSpeaker",L[L.RailChainSignal=18]="RailChainSignal",L))(as||{}),cn=(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))(cn||{}),ns=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 i=e.readPackedUInt_8_32(),s=e.readString(i),u=e.readPackedUInt_8_32(),f=new ar(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=is[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 _=this.loadLuaValue(e),b=this.loadLuaValue(e);d.push({key:_,value:b})}let c={type:n,id:s,values:d,meta:u};return this.gcidmap[s]=c,c}case"ExistingGCObject":let i=e.readPackedUInt_16_32();return{type:n,id:i};case"LuaObject":{let s="LuaObject",u=this.gcid++,f=e.readUInt32LE(),d=os[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(),i=t.readUInt16LE();return{force:n,id:i}}case 4:return{seed:[t.readUInt32LE(),t.readUInt32LE(),t.readUInt32LE()]};case 6:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{entity:n,equipment:i}}case 7:{let n=t.readUInt8(),i=t.readUInt32LE();return{index:n,owner:i}}case 9:{let n=t.readUInt8(),i=t.readPackedUInt_8_32(),s=t.readUInt32LE();return{force:n,surface:i,target:s}}case 5:case 8:case 37: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:return{id:t.readUInt32LE()};case 28:{let n={x:t.readInt32LE(),y:t.readInt32LE()},i=t.readPackedUInt_8_32();return{position:n,surface:i}}case 23:case 24:{let n=t.readUInt32LE(),i=t.readUInt32LE();return{player:n,index:i}}case 25:return{surface:t.readPackedUInt_8_32()};case 27:{let n=t.readUInt8(),i=t.readUInt16LE();return{group:n,subgroup:i}}case 29:{let n=t.readPackedUInt_8_32(),i={x:t.readInt32LE(),y:t.readInt32LE()};return{surface:n,position:i}}case 31:{let n=t.readUInt32LE(),i=t.readUInt8();return{target:n,index:i}}case 34:{let n=t.readUInt32LE(),i=t.readUInt32LE(),s=t.readUInt32LE(),u=t.readUInt32LE(),f=t.readUInt32LE(),d=t.readUInt8()!==0,c;if(d){let _=t.readUInt8(),b=t.readUInt16LE(),g=t.readUInt32LE();c={force:_,proto:b,linkid:g}}let p=t.readUInt8();return{entity:n,controller:i,item:s,equipment:u,scriptinv:f,link:c,index:p}}case 45:case 46:{let n=t.readUInt16LE(),i=t.readUInt16LE();return{entity:n,equipment:i}}case 53:{let n=t.readUInt16LE(),i=t.readUInt32LE(),s=t.readUInt8();return{entity:n,index:i,targettype:s}}case 55:return{stopped:t.readUInt8()!==0};case 69:{let n=t.readUInt8()!==0,i;if(n){let s=t.readPackedUInt_8_32();i=t.readString(s)}return{name:i}}case 39:{let n=t.readUInt32LE(),i=t.readUInt8(),s=t.readUInt8();return{target:n,connector:i,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}`)}}loadLuaItemStack(e){let t=e.readUInt32LE();switch(t){case 0:return{stacktype:bt[t]};case 1:case 2:case 7:case 9:{let n=e.readUInt32LE(),i=e.readUInt8(),s=e.readUInt16LE();return{stacktype:bt[t],target:n,inv:i,slot:s}}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(),i=e.readUInt8(),s=e.readUInt8();return{stacktype:bt[t],target:n,line:i,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(),i=e.readUInt16LE();return{stacktype:bt[t],target:n,slot:i}}case 14:{let n=e.readUInt8(),i=e.readUInt16LE(),s=e.readUInt32LE();return{stacktype:bt[t],force:n,proto:i,linkid:s}}default:throw new Error(`Unknown LuaItemStack type ${t}`)}}loadLuaControlBehavior(e){let t=e.readUInt32LE(),n=e.readUInt32LE();return{behavior:as[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:cn[t],force:n};case 7:let i=e.readUInt32LE();return{flow:cn[t],target:i};case 8:return{flow:cn[t]};default:throw new Error(`Unknown LuaFlowStatistics type ${t}`)}}};var Kd=require("stream"),ar=class extends Kd.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 dn=le(Jd()),Oe=le(require("os")),Z=le(require("path"));var Zd=require("child_process");function Ci(a,e){return a.match(/^~[\\\/]/)&&(a=Z.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 us=class{constructor(e,t,n,i){this.fs=e;this.fv=t;this.docs=n;this.workspaceFolders=i}async getBinaryVersion(){return new Promise((e,t)=>{(0,Zd.execFile)(this.factorioPath,["--version"],{env:Object.assign({},process.env,{SteamAppId:"427520"})},(n,i,s)=>{n&&t(n);let u=i?.match(/^Version: ([0-9\.]+) /);u&&e(u[1]),t(new Error("Unable to read version"))})})}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 Ci(this.fv.factorioPath,this.workspaceFolders)}get docsPath(){return Z.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 Z.join(this.factorioPath,this.fv.protosPath?this.fv.protosPath:this.fv.docsPath?Z.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 Ci(this.fv.configPath,this.workspaceFolders);let e=Z.resolve(Z.dirname(this.factorioPath),"../../config-path.cfg");try{let t=dn.parse((await this.fs.readFile(xe.file(e))).toString());return Z.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&&Ci(this.fv.nativeDebugger,this.workspaceFolders)}get nativeDAP(){return this.fv.nativeDAP}iniData;async configIni(){return this.iniData||(this.iniData=this.fs.readFile(xe.file(await this.configPath())).then(e=>dn.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=xe.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=dn.parse(t)}async isMouseAutoCaptureDisabled(){try{return(await this.configIni()).other?.["disable-mouse-auto-capture"]}catch{return}}async disableMouseAutoCapture(){this.iniData=void 0;let e=xe.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)+`
3310
+ `,"console"))}this.sendEvent(new F.TerminatedEvent),!this._isRunningInline()&&process.env.NODE_V8_COVERAGE&&process.exit()}};var as=(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))(as||{}),ss=(v=>(v[v.LuaEntity=0]="LuaEntity",v[v.LuaRecipe=2]="LuaRecipe",v[v.LuaTechnology=3]="LuaTechnology",v[v.LuaRandomGenerator=4]="LuaRandomGenerator",v[v.LuaForce=5]="LuaForce",v[v.LuaBurner=6]="LuaBurner",v[v.LuaLogisticPoint=7]="LuaLogisticPoint",v[v.LuaDecorativePrototype=8]="LuaDecorativePrototype",v[v.LuaCustomChartTag=9]="LuaCustomChartTag",v[v.LuaPermissionGroups=10]="LuaPermissionGroups",v[v.LuaPermissionGroup=11]="LuaPermissionGroup",v[v.LuaUnitGroup=12]="LuaUnitGroup",v[v.LuaTrain=13]="LuaTrain",v[v.LuaFluidBox=14]="LuaFluidBox",v[v.LuaEntityPrototype=15]="LuaEntityPrototype",v[v.LuaItemPrototype=16]="LuaItemPrototype",v[v.LuaEquipmentGrid=18]="LuaEquipmentGrid",v[v.LuaEquipment=19]="LuaEquipment",v[v.LuaItemStack=20]="LuaItemStack",v[v.LuaPlayer=21]="LuaPlayer",v[v.LuaGui=22]="LuaGui",v[v.LuaGuiElement=23]="LuaGuiElement",v[v.LuaStyle=24]="LuaStyle",v[v.LuaSurface=25]="LuaSurface",v[v.LuaFluidPrototype=26]="LuaFluidPrototype",v[v.LuaGroup=27]="LuaGroup",v[v.LuaTile=28]="LuaTile",v[v.LuaChunkIterator=29]="LuaChunkIterator",v[v.LuaStructMapSettings=30]="LuaStructMapSettings",v[v.LuaTransportLine=31]="LuaTransportLine",v[v.LuaLogisticNetwork=32]="LuaLogisticNetwork",v[v.LuaLogisticCell=33]="LuaLogisticCell",v[v.LuaInventory=34]="LuaInventory",v[v.LuaControlBehavior=35]="LuaControlBehavior",v[v.LuaFlowStatistics=36]="LuaFlowStatistics",v[v.LuaTilePrototype=37]="LuaTilePrototype",v[v.LuaEquipmentPrototype=38]="LuaEquipmentPrototype",v[v.LuaCircuitNetwork=39]="LuaCircuitNetwork",v[v.LuaDamagePrototype=40]="LuaDamagePrototype",v[v.LuaVirtualSignalPrototype=41]="LuaVirtualSignalPrototype",v[v.LuaEquipmentGridPrototype=42]="LuaEquipmentGridPrototype",v[v.LuaRecipePrototype=43]="LuaRecipePrototype",v[v.LuaTechnologyPrototype=44]="LuaTechnologyPrototype",v[v.LuaBurnerPrototype=45]="LuaBurnerPrototype",v[v.LuaElectricEnergySourcePrototype=46]="LuaElectricEnergySourcePrototype",v[v.LuaCustomInputPrototype=47]="LuaCustomInputPrototype",v[v.LuaNoiseLayerPrototype=48]="LuaNoiseLayerPrototype",v[v.LuaAutoplaceControlPrototype=49]="LuaAutoplaceControlPrototype",v[v.LuaModSettingPrototype=50]="LuaModSettingPrototype",v[v.LuaAmmoCategoryPrototype=51]="LuaAmmoCategoryPrototype",v[v.LuaRailPath=52]="LuaRailPath",v[v.LuaFluidBoxPrototype=53]="LuaFluidBoxPrototype",v[v.LuaAISettings=54]="LuaAISettings",v[v.LuaProfiler=55]="LuaProfiler",v[v.LuaNamedNoiseExpression=56]="LuaNamedNoiseExpression",v[v.LuaFuelCategoryPrototype=57]="LuaFuelCategoryPrototype",v[v.LuaResourceCategoryPrototype=58]="LuaResourceCategoryPrototype",v[v.LuaAchievementPrototype=59]="LuaAchievementPrototype",v[v.LuaModuleCategoryPrototype=60]="LuaModuleCategoryPrototype",v[v.LuaEquipmentCategoryPrototype=61]="LuaEquipmentCategoryPrototype",v[v.LuaTrivialSmokePrototype=62]="LuaTrivialSmokePrototype",v[v.LuaShortcutPrototype=63]="LuaShortcutPrototype",v[v.LuaRecipeCategoryPrototype=64]="LuaRecipeCategoryPrototype",v[v.LuaParticlePrototype=65]="LuaParticlePrototype",v[v.LuaFluidEnergySourcePrototype=66]="LuaFluidEnergySourcePrototype",v[v.LuaHeatEnergySourcePrototype=67]="LuaHeatEnergySourcePrototype",v[v.LuaVoidEnergySourcePrototype=68]="LuaVoidEnergySourcePrototype",v[v.LuaFontPrototype=69]="LuaFontPrototype",v[v.LuaHeatBufferPrototype=79]="LuaHeatBufferPrototype",v[v.xLuaFutureObject=-1]="xLuaFutureObject",v))(ss||{}),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||{}),ls=(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))(ls||{}),un=(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))(un||{}),is=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 ar(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=as[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),b=this.loadLuaValue(e);d.push({key:m,value:b})}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=ss[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 5:case 8:case 37: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: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{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(),b=t.readUInt16LE(),g=t.readUInt32LE();c={force:m,proto:b,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}`)}}loadLuaItemStack(e){let t=e.readUInt32LE();switch(t){case 0:return{stacktype:bt[t]};case 1:case 2:case 7:case 9:{let n=e.readUInt32LE(),o=e.readUInt8(),s=e.readUInt16LE();return{stacktype:bt[t],target:n,inv:o,slot:s}}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:ls[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:un[t],force:n};case 7:let o=e.readUInt32LE();return{flow:un[t],target:o};case 8:return{flow:un[t]};default:throw new Error(`Unknown LuaFlowStatistics type ${t}`)}}};var Qd=require("stream"),ar=class extends Qd.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 cn=le(rf()),Oe=le(require("os")),ee=le(require("path"));var nf=require("child_process");function Co(a,e){return a.match(/^~[\\\/]/)&&(a=ee.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 ds=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,nf.execFile)(this.factorioPath,["--version"],{env:Object.assign({},process.env,{SteamAppId:"427520"})},(n,o,s)=>{n&&t(n);let u=o?.match(/^Version: ([0-9\.]+) /);u&&e(u[1]),t(new Error(`Unable to read version:
3311
+ stdout: ${o}
3312
+ 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 docsPath(){return ee.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 ee.join(this.factorioPath,this.fv.protosPath?this.fv.protosPath:this.fv.docsPath?ee.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 Co(this.fv.configPath,this.workspaceFolders);let e=ee.resolve(ee.dirname(this.factorioPath),"../../config-path.cfg");try{let t=cn.parse((await this.fs.readFile(xe.file(e))).toString());return ee.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(xe.file(await this.configPath())).then(e=>cn.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=xe.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=cn.parse(t)}async isMouseAutoCaptureDisabled(){try{return(await this.configIni()).other?.["disable-mouse-auto-capture"]}catch{return}}async disableMouseAutoCapture(){this.iniData=void 0;let e=xe.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)+`
3097
3313
  disable-mouse-auto-capture=true
3098
- `+t.slice(n.index+n[0].length);else{let i=t.match(/^\[other\]$/m);t=t.slice(0,i.index+i[0].length)+`
3314
+ `+t.slice(n.index+n[0].length);else{let o=t.match(/^\[other\]$/m);t=t.slice(0,o.index+o[0].length)+`
3099
3315
  disable-mouse-auto-capture=true
3100
- `+t.slice(i.index+i[0].length)}await this.fs.writeFile(e,Buffer.from(t)),this.iniData=dn.parse(t)}async defaultModsPath(){let e=(await this.configIni())?.path?.["write-data"];if(!e)throw"path.write-data missing in config.ini";return Z.posix.normalize(Z.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 Z.posix.normalize(this.translatePath(e))}async lualibPath(){return Z.posix.normalize(Z.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 Z.posix.normalize(this.translatePath(e))}translatePath(e){if(e.startsWith("__PATH__executable__"))return Z.join(Z.dirname(this.factorioPath),e.replace("__PATH__executable__",""));if(e.startsWith("__PATH__system-write-data__")){let t=Oe.platform()==="win32"?Z.resolve(process.env.APPDATA,"Factorio"):Oe.platform()==="linux"?Z.resolve(Oe.homedir(),".factorio"):Oe.platform()==="darwin"?Z.resolve(Oe.homedir(),"Library/Application Support/factorio"):"??";return Z.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"?Z.resolve(Z.dirname(this.factorioPath),"../data"):Z.resolve(Z.dirname(this.factorioPath),"../../data");return Z.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});
3316
+ `+t.slice(o.index+o[0].length)}await this.fs.writeFile(e,Buffer.from(t)),this.iniData=cn.parse(t)}async defaultModsPath(){let e=(await this.configIni())?.path?.["write-data"];if(!e)throw"path.write-data missing in config.ini";return ee.posix.normalize(ee.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 ee.posix.normalize(this.translatePath(e))}async lualibPath(){return ee.posix.normalize(ee.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 ee.posix.normalize(this.translatePath(e))}translatePath(e){if(e.startsWith("__PATH__executable__"))return ee.join(ee.dirname(this.factorioPath),e.replace("__PATH__executable__",""));if(e.startsWith("__PATH__system-write-data__")){let t=Oe.platform()==="win32"?ee.resolve(process.env.APPDATA,"Factorio"):Oe.platform()==="linux"?ee.resolve(Oe.homedir(),".factorio"):Oe.platform()==="darwin"?ee.resolve(Oe.homedir(),"Library/Application Support/factorio"):"??";return ee.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"?ee.resolve(ee.dirname(this.factorioPath),"../data"):ee.resolve(ee.dirname(this.factorioPath),"../../data");return ee.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});
3101
3317
  /*! Bundled license information:
3102
3318
 
3103
3319
  web-streams-polyfill/dist/ponyfill.es2018.js: