@leviyuan/lodestar 0.18.11 → 0.18.13
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/lodestar-agent.js +2 -2
- package/dist/lodestar-setup.js +49 -49
- package/dist/lodestar-update.js +2 -2
- package/dist/lodestar-version.js +2 -2
- package/dist/lodestar.js +184 -185
- package/docs/configuration.md +3 -1
- package/docs/models.md +17 -0
- package/package.json +1 -1
package/dist/lodestar-update.js
CHANGED
|
@@ -76,7 +76,7 @@ ${g}`;return}if(sD(A,I,Cv)){if(Ev(A,C))Q.retry=A.toString("utf8",C);return}if(sD
|
|
|
76
76
|
\r
|
|
77
77
|
`),I=!1,C=!1,g;A.on("response",(F)=>{let{headers:Y}=F;I=Y["transfer-encoding"]==="chunked"&&!Y["content-length"]}),A.on("socket",(F)=>{let Y=()=>{if(I&&!C){let N=Error("Premature close");N.code="ERR_STREAM_PREMATURE_CLOSE",Q(N)}},J=(N)=>{if(C=oF.compare(N.slice(-5),B)===0,!C&&g)C=oF.compare(g.slice(-3),B.slice(0,3))===0&&oF.compare(N.slice(-2),B.slice(3))===0;g=N};F.prependListener("close",Y),F.on("data",J),A.on("close",()=>{F.removeListener("close",Y),F.removeListener("data",J)})})}var E8=AI(Gw(),1),g8=AI(yw(),1);var gB=AI(B2(),1);import{execFile as Y6}from"node:child_process";import{readFile as U6}from"node:fs/promises";import{homedir as J6}from"node:os";import{join as I2}from"node:path";import{promisify as G6}from"node:util";var N6=G6(Y6);function bC(A,Q){return A[Q.toLowerCase()]?.trim()||A[Q]?.trim()||void 0}function Z0(A){let Q=A.hostname.replace(/^\[|\]$/g,"").toLowerCase();return Q==="localhost"||Q.endsWith(".localhost")||Q==="::1"||/^127\.(?:\d{1,3}\.){2}\d{1,3}$/.test(Q)||/^::ffff:(?:127\.|7f[0-9a-f]{2}:)/.test(Q)}function FU(A,Q=""){let B=A.hostname.replace(/^\[|\]$/g,"").toLowerCase(),I=A.port||(A.protocol==="https:"?"443":"80");return Q.split(/[,;\s]+/).filter(Boolean).some((C)=>{let g=C.toLowerCase();if(g==="*")return!0;if(g==="<local>")return!B.includes(".")&&!B.includes(":");if(g.includes("/")){if(gB.Address4.isValid(g))return gB.Address4.isValid(B)&&new gB.Address4(B).isInSubnet(new gB.Address4(g));if(gB.Address6.isValid(g))return gB.Address6.isValid(B)&&new gB.Address6(B).isInSubnet(new gB.Address6(g));throw Error("network proxy: invalid IP range in bypass list")}let F=g.match(/^(\[[^\]]+\]|[^:]+):(\d+)$/);if(F&&F[2]!==I)return!1;let Y=(F?F[1]:g).replace(/^\[|\]$/g,"").replace(/^\*?\./,"");return B===Y||B.endsWith(`.${Y}`)})}function C2(A,Q){let B;try{B=new URL(A)}catch{throw Error(`network proxy: ${Q} contains an invalid proxy URL`)}if(!["http:","https:"].includes(B.protocol))throw Error(`network proxy: ${Q} must use an HTTP(S) proxy; SOCKS and PAC are not supported`);if(!B.hostname||B.search||B.hash||B.pathname&&B.pathname!=="/")throw Error(`network proxy: ${Q} must contain a proxy host and port without a path or query`);return B.href}function E2(A,Q,B={}){if(!["http:","https:"].includes(A.protocol))throw Error(`network: unsupported URL protocol ${A.protocol}`);if(Z0(A)||FU(A,bC(Q,"NO_PROXY")))return;let I=A.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY",C=bC(Q,I)||bC(Q,"ALL_PROXY");if(C)return C2(C,"environment");if(B.unsupported)throw Error(`network proxy: ${B.unsupported}`);if(FU(A,B.bypass))return;let g=(A.protocol==="https:"?B.https:B.http)||B.all;return g?C2(g,"system settings"):void 0}function W0(A,Q,B="http"){if(typeof A!=="string"||!A.trim()||!Number.isInteger(Number(Q))||Number(Q)<1||Number(Q)>65535)throw Error("network proxy: system proxy has an invalid host or port");let I=A.includes(":")&&!A.startsWith("[")?`[${A}]`:A;return`${B}://${I}:${Q}`}function M6(A){if(A.AutoConfigURL)return{unsupported:"Windows PAC proxy is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(!A.ProxyEnable)return A.AutoDetect?{unsupported:"Windows automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"}:{};if(typeof A.ProxyServer!=="string"||!A.ProxyServer.trim())throw Error("network proxy: Windows proxy is enabled without a server");let Q={bypass:String(A.ProxyOverride??"")};for(let B of A.ProxyServer.split(";").map((I)=>I.trim()).filter(Boolean)){let I=B.match(/^(http|https|socks)=(.+)$/i),C=I?I[2]:B,g=/^[a-z][\w+.-]*:\/\//i.test(C)?C:`http://${C}`;if(!I)Q.all=g;else if(I[1].toLowerCase()==="socks")Q.all=`socks://${C.replace(/^socks\w*:\/\//,"")}`;else Q[I[1].toLowerCase()]=g}return Q}function w6(A){let Q=(C)=>A.match(new RegExp(`^\\s*${C}\\s*:\\s*(.*?)\\s*$`,"m"))?.[1];if(Q("ProxyAutoConfigEnable")==="1"||Q("ProxyAutoDiscoveryEnable")==="1")return{unsupported:"macOS PAC/automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};let B={};if(Q("HTTPEnable")==="1")B.http=W0(Q("HTTPProxy"),Q("HTTPPort"));if(Q("HTTPSEnable")==="1")B.https=W0(Q("HTTPSProxy"),Q("HTTPSPort"));if(Q("SOCKSEnable")==="1")B.all=W0(Q("SOCKSProxy"),Q("SOCKSPort"),"socks");let I=A.match(/ExceptionsList\s*:\s*<array>\s*\{([^}]*)\}/)?.[1]??"";if(B.bypass=[...I.matchAll(/^\s*\d+\s*:\s*(.*?)\s*$/gm)].map((C)=>C[1]).join(","),Q("ExcludeSimpleHostnames")==="1")B.bypass+=",<local>";return B}function w0(A){if(A===void 0)return"";if(!/^(['"]).*\1$/.test(A))throw Error("network proxy: invalid GNOME proxy string");return A.slice(1,-1).replace(/\\([\\'"])/g,"$1")}function V6(A){let Q=new Map(A.split(`
|
|
78
78
|
`).filter(Boolean).map((C)=>{let g=C.match(/^org\.gnome\.system\.proxy(\.\w+)?\s+([\w-]+)\s+(.*)$/);if(!g)throw Error("network proxy: invalid GNOME proxy settings");return[`${g[1]??""}/${g[2]}`,g[3]]})),B=w0(Q.get("/mode"));if(B==="none")return{};if(B==="auto")return{unsupported:"GNOME PAC proxy is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(B!=="manual")throw Error("network proxy: unknown GNOME proxy mode");let I={};for(let C of["http","https","socks"]){let g=w0(Q.get(`.${C}/host`));if(!g)continue;let F=new URL(W0(g,Q.get(`.${C}/port`),C==="socks"?"socks":"http"));if(C==="http"&&Q.get(".http/use-authentication")==="true")F.username=w0(Q.get(".http/authentication-user")),F.password=w0(Q.get(".http/authentication-password"));I[C==="socks"?"all":C]=F.href}if(Q.get("/use-same-proxy")==="true"&&I.http)I.https=I.http;return I.bypass=[...(Q.get("/ignore-hosts")??"").matchAll(/'((?:\\.|[^'])*)'/g)].map((C)=>C[1]).join(","),I}function W6(A){let Q=A.match(/^\[Proxy Settings\]\s*\n([\s\S]*?)(?=^\[|$(?![\s\S]))/m)?.[1];if(Q===void 0)return;let B=new Map(Q.split(`
|
|
79
|
-
`).filter((g)=>g.includes("=")).map((g)=>{let F=g.indexOf("=");return[g.slice(0,F).trim(),g.slice(F+1).trim()]})),I=B.get("ProxyType")??"0";if(I==="0"||I==="4")return{};if(I!=="1")return{unsupported:"KDE PAC/automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(B.get("ReversedException")==="true")return{unsupported:"KDE reversed proxy exceptions are not supported"};let C={bypass:B.get("NoProxyFor")};for(let g of["http","https","socks"]){let F=B.get(`${g}Proxy`);if(!F)continue;let Y=F.replace(/\s+(\d+)$/,":$1");C[g==="socks"?"all":g]=/^[a-z][\w+.-]*:\/\//i.test(Y)?Y:`${g==="socks"?"socks":"http"}://${Y}`}return C}async function V0(A,Q){let{stdout:
|
|
79
|
+
`).filter((g)=>g.includes("=")).map((g)=>{let F=g.indexOf("=");return[g.slice(0,F).trim(),g.slice(F+1).trim()]})),I=B.get("ProxyType")??"0";if(I==="0"||I==="4")return{};if(I!=="1")return{unsupported:"KDE PAC/automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(B.get("ReversedException")==="true")return{unsupported:"KDE reversed proxy exceptions are not supported"};let C={bypass:B.get("NoProxyFor")};for(let g of["http","https","socks"]){let F=B.get(`${g}Proxy`);if(!F)continue;let Y=F.replace(/\s+(\d+)$/,":$1");C[g==="socks"?"all":g]=/^[a-z][\w+.-]*:\/\//i.test(Y)?Y:`${g==="socks"?"socks":"http"}://${Y}`}return C}async function V0(A,Q,B=5000){let{stdout:I}=await N6(A,Q,{encoding:"utf8",timeout:B,maxBuffer:262144,windowsHide:!0});return I}var Z6=String.raw`
|
|
80
80
|
$ErrorActionPreference = 'Stop'
|
|
81
81
|
[Console]::OutputEncoding = New-Object Text.UTF8Encoding($false)
|
|
82
82
|
Add-Type @'
|
|
@@ -114,7 +114,7 @@ try {
|
|
|
114
114
|
if ($pointer -ne [IntPtr]::Zero) { [void][LodestarProxy]::GlobalFree($pointer) }
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
`;async function L6(){if(process.platform==="win32")return M6(JSON.parse(await V0("powershell.exe",["-NoProfile","-NonInteractive","-Command",Z6])));if(process.platform==="darwin")return w6(await V0("/usr/sbin/scutil",["--proxy"]));if(process.platform==="linux"){let A=I2(process.env.XDG_CONFIG_HOME||I2(J6(),".config"),"kioslaverc");try{let B=W6(await U6(A,"utf8"));if(B&&(!process.env.XDG_CURRENT_DESKTOP||/kde/i.test(process.env.XDG_CURRENT_DESKTOP)))return B}catch(B){if(B?.code!=="ENOENT")throw B}let Q;try{Q=await V0("gsettings",["list-schemas"])}catch(B){if(B?.code==="ENOENT")return{};throw B}if(!Q.split(/\r?\n/).includes("org.gnome.system.proxy"))return{};return V6(await V0("gsettings",["list-recursively","org.gnome.system.proxy"]))}return{}}function R6(A=L6,Q=process.env,B=Date.now){let I;return async(C)=>{if(Z0(C)||FU(C,bC(Q,"NO_PROXY"))||bC(Q,C.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY")||bC(Q,"ALL_PROXY"))return E2(C,Q);if(!I||I.until<=B()){let g=A().catch((F)=>{if(I?.value===g)I=void 0;if(F instanceof Error&&F.message.startsWith("network proxy:"))throw F;let Y=F instanceof Error?F.code??F.name:"unknown error";throw Error(`network proxy: failed to read ${process.platform} system proxy settings (${Y})`,{cause:F})});I={until:B()+30000,value:g}}return E2(C,Q,await I.value)}}var g2=R6();var df=new pf({keepAlive:!0}),nf=new lf({keepAlive:!0}),C8;function af(A,Q){if(!Q)return A.protocol==="https:"?nf:df;return A.protocol==="https:"?new g8.HttpsProxyAgent(Q):new E8.HttpProxyAgent(Q)}async function of(A,Q,B){if(typeof Bun<"u"){let F=A.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY";if(!B&&(process.env[F.toLowerCase()]||process.env[F])){let Y=await Promise.resolve().then(() => AI(B8(),1));return C8??=new Y.Agent,await Y.fetch(A,{...Q,redirect:"manual",dispatcher:C8})}return globalThis.fetch(A.href,{...Q,redirect:"manual",...B?{proxy:B}:{}})}let I=new Request(A,{...Q,redirect:"manual",duplex:"half"}),C=await sF(A,{method:I.method,headers:Object.fromEntries(I.headers),body:I.body?I8.fromWeb(I.body):void 0,signal:I.signal,agent:af(A,B),redirect:"manual"}),g=I.method==="HEAD"||[204,205,304].includes(C.status)||!C.body?null:I8.toWeb(C.body);return new Response(g,{status:C.status,statusText:C.statusText,headers:[...C.headers]})}async function sf(A,Q,B,I=g2){let C=new URL(A),g={...Q};for(let F=0;;F++){if(!["http:","https:"].includes(C.protocol))throw Error(`network: unsupported URL protocol ${C.protocol}`);if(B&&!Z0(C))throw Error("network: local request must remain on loopback");g.signal?.throwIfAborted();let Y=B?void 0:await I(C),J=await of(C,g,Y),N=J.headers.get("location");if(![301,302,303,307,308].includes(J.status)||!N||Q.redirect==="manual")return J;if(await J.body?.cancel(),Q.redirect==="error")throw Error("network: redirect rejected");if(F>=20)throw Error("network: too many redirects");let G=new URL(N,C),M=new Headers(g.headers);if(G.origin!==C.origin)for(let W of["authorization","proxy-authorization","cookie","host"])M.delete(W);let w=(g.method??"GET").toUpperCase();if(J.status===303&&w!=="HEAD"||[301,302].includes(J.status)&&w==="POST"){g={...g,method:"GET",body:void 0};for(let W of["content-type","content-length","content-encoding"])M.delete(W)}else if(g.body instanceof ReadableStream)throw Error("network: cannot replay a streamed body after redirect");g.headers=M,C=G}}function F8(A,Q={}){return sf(A,Q,!1)}import{createHash as bb,randomUUID as mb}from"node:crypto";import{existsSync as IH,readFileSync as CH}from"node:fs";import{mkdir as EH,mkdtemp as cb,readFile as gH,rename as FH,rm as JF,writeFile as DH}from"node:fs/promises";import{join as nQ,isAbsolute as ub}from"node:path";import{fileURLToPath as pb,pathToFileURL as pl}from"node:url";var s8=AI(o8(),1);import{execFile as $b}from"node:child_process";var Tb="https://registry.npmjs.org";class AY extends Error{}function jb(A){if(!Number.isSafeInteger(A)||A<=0)return Promise.reject(Error(`Invalid npm installer PID: ${A}`));return new Promise((Q,B)=>{$b("taskkill",["/PID",String(A),"/T","/F"],{windowsHide:!0,timeout:1e4},(I,C,g)=>{if(I)B(Error(`taskkill npm installer PID ${A} failed: ${I.message}
|
|
117
|
+
`;async function L6(){if(process.platform==="win32")return M6(JSON.parse(await V0("powershell.exe",["-NoProfile","-NonInteractive","-Command",Z6],15000)));if(process.platform==="darwin")return w6(await V0("/usr/sbin/scutil",["--proxy"]));if(process.platform==="linux"){let A=I2(process.env.XDG_CONFIG_HOME||I2(J6(),".config"),"kioslaverc");try{let B=W6(await U6(A,"utf8"));if(B&&(!process.env.XDG_CURRENT_DESKTOP||/kde/i.test(process.env.XDG_CURRENT_DESKTOP)))return B}catch(B){if(B?.code!=="ENOENT")throw B}let Q;try{Q=await V0("gsettings",["list-schemas"])}catch(B){if(B?.code==="ENOENT")return{};throw B}if(!Q.split(/\r?\n/).includes("org.gnome.system.proxy"))return{};return V6(await V0("gsettings",["list-recursively","org.gnome.system.proxy"]))}return{}}function R6(A=L6,Q=process.env,B=Date.now){let I;return async(C)=>{if(Z0(C)||FU(C,bC(Q,"NO_PROXY"))||bC(Q,C.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY")||bC(Q,"ALL_PROXY"))return E2(C,Q);if(!I||I.until<=B()){let g=A().catch((F)=>{if(I?.value===g)I=void 0;if(F instanceof Error&&F.message.startsWith("network proxy:"))throw F;let Y=F instanceof Error?F.code??F.name:"unknown error";throw Error(`network proxy: failed to read ${process.platform} system proxy settings (${Y})`,{cause:F})});I={until:B()+30000,value:g}}return E2(C,Q,await I.value)}}var g2=R6();var df=new pf({keepAlive:!0}),nf=new lf({keepAlive:!0}),C8;function af(A,Q){if(!Q)return A.protocol==="https:"?nf:df;return A.protocol==="https:"?new g8.HttpsProxyAgent(Q):new E8.HttpProxyAgent(Q)}async function of(A,Q,B){if(typeof Bun<"u"){let F=A.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY";if(!B&&(process.env[F.toLowerCase()]||process.env[F])){let Y=await Promise.resolve().then(() => AI(B8(),1));return C8??=new Y.Agent,await Y.fetch(A,{...Q,redirect:"manual",dispatcher:C8})}return globalThis.fetch(A.href,{...Q,redirect:"manual",...B?{proxy:B}:{}})}let I=new Request(A,{...Q,redirect:"manual",duplex:"half"}),C=await sF(A,{method:I.method,headers:Object.fromEntries(I.headers),body:I.body?I8.fromWeb(I.body):void 0,signal:I.signal,agent:af(A,B),redirect:"manual"}),g=I.method==="HEAD"||[204,205,304].includes(C.status)||!C.body?null:I8.toWeb(C.body);return new Response(g,{status:C.status,statusText:C.statusText,headers:[...C.headers]})}async function sf(A,Q,B,I=g2){let C=new URL(A),g={...Q};for(let F=0;;F++){if(!["http:","https:"].includes(C.protocol))throw Error(`network: unsupported URL protocol ${C.protocol}`);if(B&&!Z0(C))throw Error("network: local request must remain on loopback");g.signal?.throwIfAborted();let Y=B?void 0:await I(C),J=await of(C,g,Y),N=J.headers.get("location");if(![301,302,303,307,308].includes(J.status)||!N||Q.redirect==="manual")return J;if(await J.body?.cancel(),Q.redirect==="error")throw Error("network: redirect rejected");if(F>=20)throw Error("network: too many redirects");let G=new URL(N,C),M=new Headers(g.headers);if(G.origin!==C.origin)for(let W of["authorization","proxy-authorization","cookie","host"])M.delete(W);let w=(g.method??"GET").toUpperCase();if(J.status===303&&w!=="HEAD"||[301,302].includes(J.status)&&w==="POST"){g={...g,method:"GET",body:void 0};for(let W of["content-type","content-length","content-encoding"])M.delete(W)}else if(g.body instanceof ReadableStream)throw Error("network: cannot replay a streamed body after redirect");g.headers=M,C=G}}function F8(A,Q={}){return sf(A,Q,!1)}import{createHash as bb,randomUUID as mb}from"node:crypto";import{existsSync as IH,readFileSync as CH}from"node:fs";import{mkdir as EH,mkdtemp as cb,readFile as gH,rename as FH,rm as JF,writeFile as DH}from"node:fs/promises";import{join as nQ,isAbsolute as ub}from"node:path";import{fileURLToPath as pb,pathToFileURL as pl}from"node:url";var s8=AI(o8(),1);import{execFile as $b}from"node:child_process";var Tb="https://registry.npmjs.org";class AY extends Error{}function jb(A){if(!Number.isSafeInteger(A)||A<=0)return Promise.reject(Error(`Invalid npm installer PID: ${A}`));return new Promise((Q,B)=>{$b("taskkill",["/PID",String(A),"/T","/F"],{windowsHide:!0,timeout:1e4},(I,C,g)=>{if(I)B(Error(`taskkill npm installer PID ${A} failed: ${I.message}
|
|
118
118
|
${C}${g}`));else Q()})})}async function pG(A,Q,B={}){Q?.throwIfAborted();let I=B.platform??process.platform,C=B.timeoutMs??300000,g=B.terminationTimeoutMs??1e4;return await new Promise((F,Y)=>{let J=(B.spawn??s8.spawn)("npm",["install","--prefix",A,"--include=optional","--no-fund","--no-audit",`--registry=${Tb}`],{cwd:A,stdio:["ignore","pipe","pipe"],shell:!1,windowsHide:!0}),N="",G,M,w=!1,W=!1,L,K=(q)=>{N=(N+q.toString()).slice(-16384)};J.stdout.on("data",K),J.stderr.on("data",K);let Z=(q)=>{if(w)return;if(w=!0,clearTimeout(T),L)clearTimeout(L);if(Q?.removeEventListener("abort",_),q)Y(q);else F()},R=(q)=>new AY(`${G?.message??"Agent runtime install failed"}; npm installer PID ${J.pid??"MISS"} termination unconfirmed: ${q}; partial directory retained: ${A}
|
|
119
119
|
${N}`),O=(q)=>{if(w||W||M)return;G??=Error(q),L=setTimeout(()=>Z(R(`stdio did not close within ${g}ms`)),g),M=Promise.resolve().then(async()=>{if(W)throw Error("installer closed before process-tree termination started");if(!J.pid)throw Error("installer PID unavailable");if(I==="win32")await(B.terminateWindows??jb)(J.pid);else if(!J.kill("SIGTERM"))throw Error("npm installer rejected SIGTERM")}),M.catch((x)=>Z(R(x instanceof Error?x.message:String(x))))},_=()=>O("Agent runtime install aborted"),T=setTimeout(()=>O(`Agent runtime install timed out after ${C}ms`),C);if(Q?.addEventListener("abort",_,{once:!0}),J.on("error",(q)=>{if(G??=q,!J.pid)Z(Error(`${q.message}
|
|
120
120
|
${N}`))}),J.once("close",async(q,x)=>{W=!0,clearTimeout(T),Q?.removeEventListener("abort",_);try{await M}catch(i){Z(R(i instanceof Error?i.message:String(i)));return}if(G||q!==0)Z(Error(`${G?.message??`npm install exited code=${q} signal=${x}`}
|
package/dist/lodestar-version.js
CHANGED
|
@@ -19,7 +19,7 @@ import{createRequire as _8}from"node:module";var R8=Object.create;var{getPrototy
|
|
|
19
19
|
`;let H=(0,fJ.parseProxyResponse)(Y);Y.write(`${X}\r
|
|
20
20
|
`);let{connect:O,buffered:M}=await H;if($.emit("proxyConnect",O),this.emit("proxyConnect",O,$),O.statusCode===200){if($.once("socket",_J),J.secureEndpoint)return q$("Upgrading socket connection to TLS"),e0.connect({...J1($1(J),"host","path","port"),socket:Y});return Y}Y.destroy();let z=new D$.Socket({writable:!1});return z.readable=!0,$.once("socket",(V)=>{q$("Replaying proxy buffer for failed request"),(0,SJ.default)(V.listenerCount("data")>0),V.push(M),V.push(null)}),z}}t$.protocols=["http","https"];b.HttpsProxyAgent=t$;function _J($){$.resume()}function J1($,...J){let Q={},Y;for(Y in $)if(!J.includes(Y))Q[Y]=$[Y];return Q}});var L$=U((X1)=>{Object.defineProperty(X1,"__esModule",{value:!0});X1.AddressError=void 0;class K1 extends Error{constructor($,J){super($);this.name="AddressError",this.parseMessage=J}}X1.AddressError=K1});var _$=U((W1)=>{Object.defineProperty(W1,"__esModule",{value:!0});W1.isInSubnet=yJ;W1.isHostInSubnet=V1;W1.isCorrect=AJ;W1.prefixLengthFromMask=vJ;W1.assertByteArray=xJ;W1.numberToPaddedHex=H1;W1.stringToPaddedHex=bJ;W1.testBit=hJ;var f$=L$();function yJ($){if(this.subnetMask<$.subnetMask)return!1;return V1.call(this,$)}function V1($){return this.mask($.subnetMask)===$.mask()}function AJ($){return function(){if(this.addressMinusSuffix!==this.correctForm())return!1;if(this.subnetMask===$&&!this.parsedSubnet)return!0;return this.parsedSubnet===String(this.subnetMask)}}function vJ($,J){let Q=$.toString(2).padStart(J,"0");if(Q.length>J)throw new f$.AddressError("Invalid subnet mask.");let Y=Q.indexOf("0");if(Y===-1)return J;if(Q.slice(Y).includes("1"))throw new f$.AddressError("Invalid subnet mask.");return Y}function xJ($,J,Q,Y){if($.length!==J)throw new f$.AddressError(`${Q} addresses require exactly ${J} bytes`);for(let Z=0;Z<$.length;Z++)if(!Number.isInteger($[Z])||$[Z]<Y||$[Z]>255)throw new f$.AddressError(`All bytes must be integers between ${Y} and 255`)}function H1($){return $.toString(16).padStart(2,"0")}function bJ($){return H1(parseInt($,10))}function hJ($,J){let{length:Q}=$;if(J>Q)return!1;let Y=Q-J;return $.substring(Y,Y+1)==="1"}});var r$=U((G1)=>{Object.defineProperty(G1,"__esModule",{value:!0});G1.RE_SUBNET_STRING=G1.RE_ADDRESS=G1.GROUPS=G1.BITS=void 0;G1.BITS=32;G1.GROUPS=4;G1.RE_ADDRESS=/^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/g;G1.RE_SUBNET_STRING=/\/\d{1,2}$/});var s$=U((c)=>{var oJ=c&&c.__createBinding||(Object.create?function($,J,Q,Y){if(Y===void 0)Y=Q;var Z=Object.getOwnPropertyDescriptor(J,Q);if(!Z||("get"in Z?!J.__esModule:Z.writable||Z.configurable))Z={enumerable:!0,get:function(){return J[Q]}};Object.defineProperty($,Y,Z)}:function($,J,Q,Y){if(Y===void 0)Y=Q;$[Y]=J[Q]}),tJ=c&&c.__setModuleDefault||(Object.create?function($,J){Object.defineProperty($,"default",{enumerable:!0,value:J})}:function($,J){$.default=J}),F1=c&&c.__importStar||function($){if($&&$.__esModule)return $;var J={};if($!=null){for(var Q in $)if(Q!=="default"&&Object.prototype.hasOwnProperty.call($,Q))oJ(J,$,Q)}return tJ(J,$),J};Object.defineProperty(c,"__esModule",{value:!0});c.Address4=void 0;var u=F1(_$()),R=F1(r$()),n=L$(),rJ=u.isCorrect(R.BITS);class w{constructor($){this.addressMinusSuffix="",this.groups=R.GROUPS,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=rJ,this.isInSubnet=u.isInSubnet,this.isHostInSubnet=u.isHostInSubnet,this.address=$;let J=R.RE_SUBNET_STRING.exec($);if(J){if(this.parsedSubnet=J[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,this.subnetMask<0||this.subnetMask>R.BITS)throw new n.AddressError("Invalid subnet mask.");$=$.replace(R.RE_SUBNET_STRING,"")}this.addressMinusSuffix=$,this.parsedAddress=this.parse($)}static isValid($){try{return new w($),!0}catch{return!1}}parse($){let J=$.split(".");if(J.some((Q)=>/^0\d/.test(Q)))throw new n.AddressError("IPv4 addresses can't have leading zeroes.");if(!$.match(R.RE_ADDRESS))throw new n.AddressError("Invalid IPv4 address.");return J}correctForm(){return this.parsedAddress.map(($)=>parseInt($,10)).join(".")}static fromAddressAndMask($,J){let Q=u.prefixLengthFromMask(new w(J).bigInt(),R.BITS);return new w(`${$}/${Q}`)}static fromAddressAndWildcardMask($,J){let Q=new w(J).bigInt(),Y=(BigInt(1)<<BigInt(R.BITS))-BigInt(1),Z=Q^Y,K=u.prefixLengthFromMask(Z,R.BITS);return new w(`${$}/${K}`)}static fromWildcard($){let J=$.split(".");if(J.length!==R.GROUPS)throw new n.AddressError("Wildcard pattern must have 4 octets");let Q=-1;for(let X=0;X<J.length;X++)if(J[X]==="*"){if(Q===-1)Q=X}else if(Q!==-1)throw new n.AddressError("Wildcard `*` must only appear in trailing octets (e.g. `192.168.0.*`)");let Y=Q===-1?0:J.length-Q,Z=J.map((X)=>X==="*"?"0":X),K=R.BITS-Y*8;return new w(`${Z.join(".")}/${K}`)}static fromHex($){let J=$.replace(/:/g,"");if(!/^[0-9a-fA-F]{8}$/.test(J))throw new n.AddressError("IPv4 hex must be exactly 8 hex digits");let Q=[];for(let Y=0;Y<8;Y+=2)Q.push(parseInt(J.slice(Y,Y+2),16));return new w(Q.join("."))}static fromInteger($){if(!Number.isInteger($)||$<0||$>4294967295)throw new n.AddressError("IPv4 integer must be in the range 0 to 2**32 - 1");return w.fromHex($.toString(16).padStart(8,"0"))}static fromArpa($){let Q=$.replace(/(\.in-addr\.arpa)?\.$/,"").split(".").reverse().join(".");return new w(Q)}toHex(){return this.parsedAddress.map(($)=>u.stringToPaddedHex($)).join(":")}toArray(){return this.parsedAddress.map(($)=>parseInt($,10))}toGroup6(){let $=[],J;for(J=0;J<R.GROUPS;J+=2)$.push(`${u.stringToPaddedHex(this.parsedAddress[J])}${u.stringToPaddedHex(this.parsedAddress[J+1])}`);return $.join(":")}bigInt(){return BigInt(`0x${this.parsedAddress.map(($)=>u.stringToPaddedHex($)).join("")}`)}_startAddress(){return BigInt(`0b${this.mask()+"0".repeat(R.BITS-this.subnetMask)}`)}startAddress(){return w.fromBigInt(this._startAddress())}startAddressExclusive(){let $=BigInt("1");return w.fromBigInt(this._startAddress()+$)}_endAddress(){return BigInt(`0b${this.mask()+"1".repeat(R.BITS-this.subnetMask)}`)}endAddress(){return w.fromBigInt(this._endAddress())}endAddressExclusive(){let $=BigInt("1");return w.fromBigInt(this._endAddress()-$)}subnetMaskAddress(){return w.fromBigInt(BigInt(`0b${"1".repeat(this.subnetMask)}${"0".repeat(R.BITS-this.subnetMask)}`))}wildcardMask(){return w.fromBigInt(BigInt(`0b${"0".repeat(this.subnetMask)}${"1".repeat(R.BITS-this.subnetMask)}`))}networkForm(){return`${this.startAddress().correctForm()}/${this.subnetMask}`}static fromBigInt($){if($<BigInt(0)||$>BigInt(4294967295))throw new n.AddressError("IPv4 BigInt must be in the range 0 to 2**32 - 1");return w.fromHex($.toString(16).padStart(8,"0"))}static fromByteArray($){return u.assertByteArray($,4,"IPv4",0),this.fromUnsignedByteArray($)}static fromUnsignedByteArray($){if($.length!==4)throw new n.AddressError("IPv4 addresses require exactly 4 bytes");let J=$.join(".");return new w(J)}mask($){if($===void 0)$=this.subnetMask;return this.getBitsBase2(0,$)}getBitsBase2($,J){return this.binaryZeroPad().slice($,J)}reverseForm($){if(!$)$={};let J=this.correctForm().split(".").reverse().join(".");if($.omitSuffix)return J;return`${J}.in-addr.arpa.`}isMulticast(){return this.isHostInSubnet(sJ)}isPrivate(){return eJ.some(($)=>this.isHostInSubnet($))}isLoopback(){return this.isHostInSubnet($Q)}isLinkLocal(){return this.isHostInSubnet(JQ)}isUnspecified(){return this.isHostInSubnet(QQ)}isBroadcast(){return this.isHostInSubnet(YQ)}isCGNAT(){return this.isHostInSubnet(ZQ)}binaryZeroPad(){if(this._binaryZeroPad===void 0)this._binaryZeroPad=this.bigInt().toString(2).padStart(R.BITS,"0");return this._binaryZeroPad}groupForV6(){let $=this.parsedAddress;return this.correctForm().replace(R.RE_ADDRESS,`<span class="hover-group group-v4 group-6">${$.slice(0,2).join(".")}</span>.<span class="hover-group group-v4 group-7">${$.slice(2,4).join(".")}</span>`)}}c.Address4=w;var sJ=new w("224.0.0.0/4"),eJ=[new w("10.0.0.0/8"),new w("172.16.0.0/12"),new w("192.168.0.0/16")],$Q=new w("127.0.0.0/8"),JQ=new w("169.254.0.0/16"),QQ=new w("0.0.0.0/32"),YQ=new w("255.255.255.255/32"),ZQ=new w("100.64.0.0/10")});var e$=U((B1)=>{Object.defineProperty(B1,"__esModule",{value:!0});B1.RE_URL_WITH_PORT=B1.RE_URL=B1.RE_ZONE_STRING=B1.RE_SUBNET_STRING=B1.RE_BAD_ADDRESS=B1.RE_BAD_CHARACTERS=B1.TYPES=B1.SCOPES=B1.GROUPS=B1.BITS=void 0;B1.BITS=128;B1.GROUPS=8;B1.SCOPES={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"};B1.TYPES={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","::ffff:0:0/96":"IPv4-mapped","ff00::/8":"Multicast","fe80::/10":"Link-local unicast","fc00::/7":"Unique local","2002::/16":"6to4","2001:db8::/32":"Documentation","64:ff9b::/96":"NAT64 (well-known)","64:ff9b:1::/48":"NAT64 (local-use)"};B1.RE_BAD_CHARACTERS=/([^0-9a-f:/%])/gi;B1.RE_BAD_ADDRESS=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi;B1.RE_SUBNET_STRING=/\/\d{1,3}(?=%|$)/;B1.RE_ZONE_STRING=/%.*$/;B1.RE_URL=/^(?:\[([0-9a-f:.]+)\]|([0-9a-f:.]+))(?:[/?#].*)?$/i;B1.RE_URL_WITH_PORT=/^\[([0-9a-f:.]+)\]:([0-9]{1,5})(?:[/?#].*)?$/i});var $0=U((L1)=>{Object.defineProperty(L1,"__esModule",{value:!0});L1.escapeHtml=y$;L1.spanAllZeroes=M1;L1.spanAll=BQ;L1.spanLeadingZeroes=OQ;L1.simpleGroup=MQ;function y$($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function M1($){return y$($).replace(/(0+)/g,'<span class="zero">$1</span>')}function BQ($,J=0){return $.split("").map((Y,Z)=>`<span class="digit value-${y$(Y)} position-${Z+J}">${M1(Y)}</span>`).join("")}function q1($){return y$($).replace(/^(0+)/,'<span class="zero">$1</span>')}function OQ($){return $.split(":").map((Q)=>q1(Q)).join(":")}function MQ($,J=0){return $.split(":").map((Y,Z)=>{if(/group-v4/.test(Y))return Y;return`<span class="hover-group group-${Z+J}">${q1(Y)}</span>`})}});var N1=U((_)=>{var TQ=_&&_.__createBinding||(Object.create?function($,J,Q,Y){if(Y===void 0)Y=Q;var Z=Object.getOwnPropertyDescriptor(J,Q);if(!Z||("get"in Z?!J.__esModule:Z.writable||Z.configurable))Z={enumerable:!0,get:function(){return J[Q]}};Object.defineProperty($,Y,Z)}:function($,J,Q,Y){if(Y===void 0)Y=Q;$[Y]=J[Q]}),PQ=_&&_.__setModuleDefault||(Object.create?function($,J){Object.defineProperty($,"default",{enumerable:!0,value:J})}:function($,J){$.default=J}),RQ=_&&_.__importStar||function($){if($&&$.__esModule)return $;var J={};if($!=null){for(var Q in $)if(Q!=="default"&&Object.prototype.hasOwnProperty.call($,Q))TQ(J,$,Q)}return PQ(J,$),J};Object.defineProperty(_,"__esModule",{value:!0});_.ADDRESS_BOUNDARY=void 0;_.groupPossibilities=v$;_.padGroup=A$;_.simpleRegularExpression=SQ;_.possibleElisions=EQ;var jQ=RQ(e$());function v$($){return`(${$.join("|")})`}function A$($){if($.length<4)return`0{0,${4-$.length}}${$}`;return $}_.ADDRESS_BOUNDARY="[^A-Fa-f0-9:]";function SQ($){let J=[];$.forEach((Y,Z)=>{if(parseInt(Y,16)===0)J.push(Z)});let Q=J.map((Y)=>$.map((Z,K)=>{if(K===Y){let X=K===0||K===jQ.GROUPS-1?":":"";return v$([A$(Z),X])}return A$(Z)}).join(":"));return Q.push($.map(A$).join(":")),v$(Q)}function EQ($,J,Q){let Y=J?"":":",Z=Q?"":":",K=[];if(!J&&!Q)K.push("::");if(J&&Q)K.push("");if(Q&&!J||!Q&&J)K.push(":");K.push(`${Y}(:0{1,4}){1,${$-1}}`),K.push(`(0{1,4}:){1,${$-1}}${Z}`),K.push(`(0{1,4}:){${$-1}}0{1,4}`);for(let X=1;X<$-1;X++)for(let H=1;H<$-X;H++)K.push(`(0{1,4}:){${H}}:(0{1,4}:){${$-H-X-1}}0{1,4}`);return v$(K)}});var P1=U((m)=>{var IQ=m&&m.__createBinding||(Object.create?function($,J,Q,Y){if(Y===void 0)Y=Q;var Z=Object.getOwnPropertyDescriptor(J,Q);if(!Z||("get"in Z?!J.__esModule:Z.writable||Z.configurable))Z={enumerable:!0,get:function(){return J[Q]}};Object.defineProperty($,Y,Z)}:function($,J,Q,Y){if(Y===void 0)Y=Q;$[Y]=J[Q]}),DQ=m&&m.__setModuleDefault||(Object.create?function($,J){Object.defineProperty($,"default",{enumerable:!0,value:J})}:function($,J){$.default=J}),h$=m&&m.__importStar||function($){if($&&$.__esModule)return $;var J={};if($!=null){for(var Q in $)if(Q!=="default"&&Object.prototype.hasOwnProperty.call($,Q))IQ(J,$,Q)}return DQ(J,$),J};Object.defineProperty(m,"__esModule",{value:!0});m.Address6=void 0;var $$=h$(_$()),J0=h$(r$()),B=h$(e$()),s=h$($0()),l=s$(),e=N1(),S=L$(),x$=_$(),fQ=$$.isCorrect(B.BITS);function b$($){if(!$)throw Error("Assertion failed.")}function _Q($){let J=/(\d+)(\d{3})/;while(J.test($))$=$.replace(J,"$1,$2");return $}function yQ($){return $=$.replace(/^(0{1,})([1-9]+)$/,'<span class="parse-error">$1</span>$2'),$=$.replace(/^(0{1,})(0)$/,'<span class="parse-error">$1</span>$2'),$}function AQ($,J){let Q=[],Y=[],Z;for(Z=0;Z<$.length;Z++)if(Z<J[0])Q.push($[Z]);else if(Z>J[1])Y.push($[Z]);return Q.concat(["compact"]).concat(Y)}function w1($){return parseInt($,16).toString(16).padStart(4,"0")}function C1($){return $&255}class L{constructor($,J){if(this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=$$.isInSubnet,this.isHostInSubnet=$$.isHostInSubnet,this.isCorrect=fQ,J===void 0)this.groups=B.GROUPS;else this.groups=J;this.address=$;let Q=B.RE_SUBNET_STRING.exec($);if(Q){if(this.parsedSubnet=Q[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>B.BITS)throw new S.AddressError("Invalid subnet mask.");$=$.replace(B.RE_SUBNET_STRING,"")}if(/\//.test($))throw new S.AddressError("Invalid subnet mask.");let Y=B.RE_ZONE_STRING.exec($);if(Y)this.zone=Y[0],$=$.replace(B.RE_ZONE_STRING,"");this.addressMinusSuffix=$,this.parsedAddress=this.parse(this.addressMinusSuffix)}static isValid($){try{return new L($),!0}catch{return!1}}static fromBigInt($){if($<BigInt(0)||$>(BigInt(1)<<BigInt(B.BITS))-BigInt(1))throw new S.AddressError("IPv6 BigInt must be in the range 0 to 2**128 - 1");let J=$.toString(16).padStart(32,"0"),Q=[];for(let Y=0;Y<B.GROUPS;Y++)Q.push(J.slice(Y*4,(Y+1)*4));return new L(Q.join(":"))}static fromURL($){var J;let Q,Y=null,Z,K,X=$.replace(/^[a-z][a-z0-9+.-]*:\/\//i,"");if(X.indexOf("[")!==-1&&X.indexOf("]:")!==-1){if(K="failed to parse address with port",Z=B.RE_URL_WITH_PORT.exec(X),Z===null)return{error:K,address:null,port:null};Q=Z[1],Y=Z[2]}else{if(K="failed to parse address from URL",Z=B.RE_URL.exec(X),Z===null)return{error:K,address:null,port:null};Q=(J=Z[1])!==null&&J!==void 0?J:Z[2]}if(Y){if(Y=parseInt(Y,10),Y<0||Y>65535)Y=null}else Y=null;let H;try{H=new L(Q)}catch{return{error:K,address:null,port:null}}return{address:H,port:Y}}static fromAddressAndMask($,J){let Q=$$.prefixLengthFromMask(new L(J).bigInt(),B.BITS);return new L(`${$}/${Q}`)}static fromAddressAndWildcardMask($,J){let Q=new L(J).bigInt(),Y=(BigInt(1)<<BigInt(B.BITS))-BigInt(1),Z=Q^Y,K=$$.prefixLengthFromMask(Z,B.BITS);return new L(`${$}/${K}`)}static fromWildcard($){if($.includes("%")||$.includes("/"))throw new S.AddressError("Wildcard pattern must not include a zone or CIDR suffix");let J=$.split("::");if(J.length>2)throw new S.AddressError("Wildcard pattern cannot contain more than one '::'");let Q;if(J.length===2){let H=J[0]===""?[]:J[0].split(":"),O=J[1]===""?[]:J[1].split(":"),M=B.GROUPS-H.length-O.length;if(M<1)throw new S.AddressError("Wildcard pattern with '::' has too many groups");Q=[...H,...Array(M).fill("0"),...O]}else Q=$.split(":");if(Q.length!==B.GROUPS)throw new S.AddressError("Wildcard pattern must have 8 groups");let Y=-1;for(let H=0;H<Q.length;H++)if(Q[H]==="*"){if(Y===-1)Y=H}else if(Y!==-1)throw new S.AddressError("Wildcard `*` must only appear in trailing groups (e.g. `2001:db8:*:*:*:*:*:*`)");let Z=Y===-1?0:Q.length-Y,K=Q.map((H)=>H==="*"?"0":H),X=B.BITS-Z*16;return new L(`${K.join(":")}/${X}`)}static fromAddress4($){let J=new l.Address4($),Q=B.BITS-(J0.BITS-J.subnetMask);return new L(`::ffff:${J.correctForm()}/${Q}`)}static fromArpa($){let J=$.replace(/(\.ip6\.arpa)?\.$/,""),Q=7;if(J.length!==63)throw new S.AddressError("Invalid 'ip6.arpa' form.");let Y=J.split(".").reverse();for(let Z=Q;Z>0;Z--){let K=Z*4;Y.splice(K,0,":")}return J=Y.join(""),new L(J)}microsoftTranscription(){return`${this.correctForm().replace(/:/g,"-")}.ipv6-literal.net`}mask($=this.subnetMask){return this.getBitsBase2(0,$)}possibleSubnets($=128){let J=B.BITS-this.subnetMask,Q=Math.abs($-B.BITS),Y=J-Q;if(Y<0)return"0";return _Q((BigInt("2")**BigInt(Y)).toString(10))}_startAddress(){return BigInt(`0b${this.mask()+"0".repeat(B.BITS-this.subnetMask)}`)}startAddress(){return L.fromBigInt(this._startAddress())}startAddressExclusive(){let $=BigInt("1");return L.fromBigInt(this._startAddress()+$)}_endAddress(){return BigInt(`0b${this.mask()+"1".repeat(B.BITS-this.subnetMask)}`)}endAddress(){return L.fromBigInt(this._endAddress())}endAddressExclusive(){let $=BigInt("1");return L.fromBigInt(this._endAddress()-$)}subnetMaskAddress(){return L.fromBigInt(BigInt(`0b${"1".repeat(this.subnetMask)}${"0".repeat(B.BITS-this.subnetMask)}`))}wildcardMask(){return L.fromBigInt(BigInt(`0b${"0".repeat(this.subnetMask)}${"1".repeat(B.BITS-this.subnetMask)}`))}networkForm(){return`${this.startAddress().correctForm()}/${this.subnetMask}`}getScope(){let $=this.getType();if($==="Multicast"||$.startsWith("Multicast "))return B.SCOPES[parseInt(this.getBits(12,16).toString(10),10)]||"Unknown";if($==="Link-local unicast"||$==="Loopback")return"Link local";if($==="Unspecified")return"Unknown";return"Global"}getType(){for(let $=0;$<T1.length;$++){let J=T1[$];if(this.isHostInSubnet(J[0]))return J[1]}return"Global unicast"}getBits($,J){return BigInt(`0b${this.getBitsBase2($,J)}`)}getBitsBase2($,J){return this.binaryZeroPad().slice($,J)}getBitsBase16($,J){let Q=J-$;if(Q%4!==0)throw Error("Length of bits to retrieve must be divisible by four");return this.getBits($,J).toString(16).padStart(Q/4,"0")}getBitsPastSubnet(){return this.getBitsBase2(this.subnetMask,B.BITS)}reverseForm($){if(!$)$={};let J=Math.floor(this.subnetMask/4),Q=this.canonicalForm().replace(/:/g,"").split("").slice(0,J).reverse().join(".");if(J>0){if($.omitSuffix)return Q;return`${Q}.ip6.arpa.`}if($.omitSuffix)return"";return"ip6.arpa."}correctForm(){let $,J=[],Q=0,Y=[];for($=0;$<this.parsedAddress.length;$++){let X=parseInt(this.parsedAddress[$],16);if(X===0)Q++;if(X!==0&&Q>0){if(Q>1)Y.push([$-Q,$-1]);Q=0}}if(Q>1)Y.push([this.parsedAddress.length-Q,this.parsedAddress.length-1]);let Z=Y.map((X)=>X[1]-X[0]+1);if(Y.length>0){let X=Z.indexOf(Math.max(...Z));J=AQ(this.parsedAddress,Y[X])}else J=this.parsedAddress;for($=0;$<J.length;$++)if(J[$]!=="compact")J[$]=parseInt(J[$],16).toString(16);let K=J.join(":");return K=K.replace(/^compact$/,"::"),K=K.replace(/(^compact)|(compact$)/,":"),K=K.replace(/compact/,""),K}binaryZeroPad(){if(this._binaryZeroPad===void 0)this._binaryZeroPad=this.bigInt().toString(2).padStart(B.BITS,"0");return this._binaryZeroPad}parse4in6($){if($.indexOf(".")===-1)return $;let J=$.split(":"),Q=J.slice(-1)[0],Y=Q.split(".");if(Y.length===J0.GROUPS&&Y.every((K)=>/^\d{1,3}$/.test(K))){if(Y.some((K)=>/^0\d/.test(K))){let K=Y.map(yQ).join("."),X=J.slice(0,-1).map(s.escapeHtml).join(":"),H=J.length>1?":":"";throw new S.AddressError("IPv4 addresses can't have leading zeroes.",`${X}${H}${K}`)}}let Z=Q.match(J0.RE_ADDRESS);if(Z){this.parsedAddress4=Z[0];let K=this.subnetMask>=96?`/${this.subnetMask-96}`:"";this.address4=new l.Address4(`${this.parsedAddress4}${K}`),this.v4=!0,J[J.length-1]=this.address4.toGroup6(),$=J.join(":")}return $}parse($){$=this.parse4in6($);let J=$.match(B.RE_BAD_CHARACTERS);if(J)throw new S.AddressError(`Bad character${J.length>1?"s":""} detected in address: ${J.join("")}`,$.replace(B.RE_BAD_CHARACTERS,'<span class="parse-error">$1</span>'));let Q=$.match(B.RE_BAD_ADDRESS);if(Q)throw new S.AddressError(`Address failed regex: ${Q.join("")}`,$.replace(B.RE_BAD_ADDRESS,'<span class="parse-error">$1</span>'));let Y=[],Z=$.split("::");if(Z.length===2){let K=Z[0].split(":"),X=Z[1].split(":");if(K.length===1&&K[0]==="")K=[];if(X.length===1&&X[0]==="")X=[];let H=this.groups-(K.length+X.length);if(!H)throw new S.AddressError("Error parsing groups");this.elidedGroups=H,this.elisionBegin=K.length,this.elisionEnd=K.length+this.elidedGroups,Y=Y.concat(K);for(let O=0;O<H;O++)Y.push("0");Y=Y.concat(X)}else if(Z.length===1)Y=$.split(":"),this.elidedGroups=0;else throw new S.AddressError("Too many :: groups found");if(Y=Y.map((K)=>parseInt(K,16).toString(16)),Y.length!==this.groups)throw new S.AddressError("Incorrect number of groups found");return Y}canonicalForm(){return this.parsedAddress.map(w1).join(":")}decimal(){return this.parsedAddress.map(($)=>parseInt($,16).toString(10).padStart(5,"0")).join(":")}bigInt(){return BigInt(`0x${this.parsedAddress.map(w1).join("")}`)}to4(){let $=this.binaryZeroPad().split(""),J=BigInt(`0b${$.slice(96,128).join("")}`).toString(16).padStart(8,"0");if(this.subnetMask>=96){let Q=this.subnetMask-96,Y=[];for(let Z=0;Z<8;Z+=2)Y.push(parseInt(J.slice(Z,Z+2),16));return new l.Address4(`${Y.join(".")}/${Q}`)}return l.Address4.fromHex(J)}to4in6(){let $=this.to4(),Q=new L(this.parsedAddress.slice(0,6).join(":"),6).correctForm(),Y="";if(!/:$/.test(Q))Y=":";return Q+Y+$.correctForm()}inspectTeredo(){let $=this.getBitsBase16(0,32),Q=(this.getBits(80,96)^BigInt("0xffff")).toString(),Y=l.Address4.fromHex(this.getBitsBase16(32,64)),Z=this.getBits(96,128),K=l.Address4.fromHex((Z^BigInt("0xffffffff")).toString(16).padStart(8,"0")),X=this.getBitsBase2(64,80),H=(0,x$.testBit)(X,15),O=(0,x$.testBit)(X,14),M=(0,x$.testBit)(X,8),z=(0,x$.testBit)(X,9),V=BigInt(`0b${X.slice(2,6)+X.slice(8,16)}`).toString(10);return{prefix:`${$.slice(0,4)}:${$.slice(4,8)}`,server4:Y.address,client4:K.address,flags:X,coneNat:H,microsoft:{reserved:O,universalLocal:z,groupIndividual:M,nonce:V},udpPort:Q}}inspect6to4(){let $=this.getBitsBase16(0,16),J=l.Address4.fromHex(this.getBitsBase16(16,48));return{prefix:$.slice(0,4),gateway:J.address}}to6to4(){if(!this.is4())return null;let $=["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),"","/16"].join(":");return new L($)}static fromAddress4Nat64($,J="64:ff9b::/96"){let Q=new l.Address4($),Y=new L(J),Z=Y.subnetMask;if(Z!==32&&Z!==40&&Z!==48&&Z!==56&&Z!==64&&Z!==96)throw new S.AddressError("NAT64 prefix length must be 32, 40, 48, 56, 64, or 96");let K=Y.binaryZeroPad(),X=Q.binaryZeroPad(),H;if(Z===96)H=K.slice(0,96)+X;else{let z=64-Z;H=[K.slice(0,Z),X.slice(0,z),"00000000",X.slice(z),"0".repeat(56-(32-z))].join("")}let O=BigInt(`0b${H}`).toString(16).padStart(32,"0"),M=[];for(let z=0;z<8;z++)M.push(O.slice(z*4,(z+1)*4));return new L(M.join(":"))}toAddress4Nat64($="64:ff9b::/96"){let J=new L($),Q=J.subnetMask;if(Q!==32&&Q!==40&&Q!==48&&Q!==56&&Q!==64&&Q!==96)throw new S.AddressError("NAT64 prefix length must be 32, 40, 48, 56, 64, or 96");if(!this.isHostInSubnet(J))return null;let Y=this.binaryZeroPad(),Z;if(Q===96)Z=Y.slice(96,128);else{let X=64-Q;Z=Y.slice(Q,Q+X)+Y.slice(72,72+(32-X))}let K=[];for(let X=0;X<4;X++)K.push(parseInt(Z.slice(X*8,(X+1)*8),2).toString());return new l.Address4(K.join("."))}toByteArray(){let $=this.bigInt().toString(16).padStart(B.BITS/4,"0"),J=[];for(let Q=0,Y=$.length;Q<Y;Q+=2)J.push(parseInt($.substring(Q,Q+2),16));return J}toUnsignedByteArray(){return this.toByteArray().map(C1)}static fromByteArray($){return $$.assertByteArray($,16,"IPv6",-128),this.fromUnsignedByteArray($.map(C1))}static fromUnsignedByteArray($){$$.assertByteArray($,16,"IPv6",0);let J=BigInt("256"),Q=BigInt("0"),Y=BigInt("1");for(let Z=$.length-1;Z>=0;Z--)Q+=Y*BigInt($[Z].toString(10)),Y*=J;return L.fromBigInt(Q)}isCanonical(){return this.addressMinusSuffix===this.canonicalForm()}isLinkLocal(){let $=this.embeddedIPv4();if($)return $.isLinkLocal();if(this.getBitsBase2(0,64)==="1111111010000000000000000000000000000000000000000000000000000000")return!0;return!1}isMulticast(){let $=this.embeddedIPv4();if($)return $.isMulticast();let J=this.getType();return J==="Multicast"||J.startsWith("Multicast ")}is4(){return this.v4}isMapped4(){return this.isHostInSubnet(kQ)}embeddedIPv4(){if(this.isMapped4()||this.isHostInSubnet(gQ))return this.to4();return null}isTeredo(){return this.isHostInSubnet(vQ)}is6to4(){return this.isHostInSubnet(xQ)}isLoopback(){let $=this.embeddedIPv4();if($)return $.isLoopback();return this.getType()==="Loopback"}isULA(){return this.isHostInSubnet(bQ)}isPrivate(){let $=this.embeddedIPv4();if($)return $.isPrivate();return this.isULA()}isCGNAT(){let $=this.embeddedIPv4();if($)return $.isCGNAT();return!1}isBroadcast(){let $=this.embeddedIPv4();if($)return $.isBroadcast();return!1}isUnspecified(){let $=this.embeddedIPv4();if($)return $.isUnspecified();return this.getType()==="Unspecified"}isDocumentation(){return this.isHostInSubnet(hQ)}href($){if($===void 0)$="";else $=`:${$}`;return`http://[${this.correctForm()}]${$}/`}link($){if(!$)$={};if($.className===void 0)$.className="";if($.prefix===void 0)$.prefix="/#address=";if($.v4===void 0)$.v4=!1;let J=this.correctForm;if($.v4)J=this.to4in6;let Q=J.call(this),Y=s.escapeHtml(`${$.prefix}${Q}`),Z=s.escapeHtml(Q);if($.className){let K=s.escapeHtml($.className);return`<a href="${Y}" class="${K}">${Z}</a>`}return`<a href="${Y}">${Z}</a>`}group(){if(this.elidedGroups===0)return s.simpleGroup(this.addressMinusSuffix).join(":");b$(typeof this.elidedGroups==="number"),b$(typeof this.elisionBegin==="number");let $=[],[J,Q]=this.addressMinusSuffix.split("::");if(J.length)$.push(...s.simpleGroup(J));else $.push("");let Y=["hover-group"];for(let Z=this.elisionBegin;Z<this.elisionBegin+this.elidedGroups;Z++)Y.push(`group-${Z}`);if($.push(`<span class="${Y.join(" ")}"></span>`),Q.length)$.push(...s.simpleGroup(Q,this.elisionEnd));else $.push("");if(this.is4())b$(this.address4 instanceof l.Address4),$.pop(),$.push(this.address4.groupForV6());return $.join(":")}regularExpressionString($=!1){let J=[],Q=new L(this.correctForm());if(Q.elidedGroups===0)J.push((0,e.simpleRegularExpression)(Q.parsedAddress));else if(Q.elidedGroups===B.GROUPS)J.push((0,e.possibleElisions)(B.GROUPS));else{let Y=Q.address.split("::");if(Y[0].length)J.push((0,e.simpleRegularExpression)(Y[0].split(":")));if(b$(typeof Q.elidedGroups==="number"),J.push((0,e.possibleElisions)(Q.elidedGroups,Y[0].length!==0,Y[1].length!==0)),Y[1].length)J.push((0,e.simpleRegularExpression)(Y[1].split(":")));J=[J.join(":")]}if(!$)J=["(?=^|",e.ADDRESS_BOUNDARY,"|[^\\w\\:])(",...J,")(?=[^\\w\\:]|",e.ADDRESS_BOUNDARY,"|$)"];return J.join("")}regularExpression($=!1){return new RegExp(this.regularExpressionString($),"i")}}m.Address6=L;var T1=Object.keys(B.TYPES).map(($)=>[new L($),B.TYPES[$]]),vQ=new L("2001::/32"),xQ=new L("2002::/16"),bQ=new L("fc00::/7"),hQ=new L("2001:db8::/32"),kQ=new L("::ffff:0:0/96"),gQ=new L("64:ff9b::/96")});var R1=U((E)=>{var uQ=E&&E.__createBinding||(Object.create?function($,J,Q,Y){if(Y===void 0)Y=Q;var Z=Object.getOwnPropertyDescriptor(J,Q);if(!Z||("get"in Z?!J.__esModule:Z.writable||Z.configurable))Z={enumerable:!0,get:function(){return J[Q]}};Object.defineProperty($,Y,Z)}:function($,J,Q,Y){if(Y===void 0)Y=Q;$[Y]=J[Q]}),cQ=E&&E.__setModuleDefault||(Object.create?function($,J){Object.defineProperty($,"default",{enumerable:!0,value:J})}:function($,J){$.default=J}),lQ=E&&E.__importStar||function($){if($&&$.__esModule)return $;var J={};if($!=null){for(var Q in $)if(Q!=="default"&&Object.prototype.hasOwnProperty.call($,Q))uQ(J,$,Q)}return cQ(J,$),J};Object.defineProperty(E,"__esModule",{value:!0});E.v6=E.AddressError=E.Address6=E.Address4=void 0;var mQ=s$();Object.defineProperty(E,"Address4",{enumerable:!0,get:function(){return mQ.Address4}});var iQ=P1();Object.defineProperty(E,"Address6",{enumerable:!0,get:function(){return iQ.Address6}});var pQ=L$();Object.defineProperty(E,"AddressError",{enumerable:!0,get:function(){return pQ.AddressError}});var nQ=lQ($0());E.v6={helpers:nQ}});var _1=U((c6,f1)=>{var{homedir:I1}=q("node:os"),{join:N$}=q("node:path");function D1(){if(process.env.LODESTAR_DATA_DIR)return process.env.LODESTAR_DATA_DIR;if(process.env.XDG_DATA_HOME)return N$(process.env.XDG_DATA_HOME,"lodestar");if(process.platform==="win32")return N$(process.env.LOCALAPPDATA??N$(I1(),"AppData","Local"),"Lodestar");return N$(I1(),".local","share","lodestar")}function W4(){return N$(D1(),"managed-claude-plugin")}f1.exports={lodestarDataDir:D1,managedClaudePluginDir:W4}});var k1=U((OY,h1)=>{h1.exports=b1;b1.sync=q4;var v1=q("fs");function M4($,J){var Q=J.pathExt!==void 0?J.pathExt:process.env.PATHEXT;if(!Q)return!0;if(Q=Q.split(";"),Q.indexOf("")!==-1)return!0;for(var Y=0;Y<Q.length;Y++){var Z=Q[Y].toLowerCase();if(Z&&$.substr(-Z.length).toLowerCase()===Z)return!0}return!1}function x1($,J,Q){if(!$.isSymbolicLink()&&!$.isFile())return!1;return M4(J,Q)}function b1($,J,Q){v1.stat($,function(Y,Z){Q(Y,Y?!1:x1(Z,$,J))})}function q4($,J){return x1(v1.statSync($),$,J)}});var m1=U((MY,l1)=>{l1.exports=u1;u1.sync=L4;var g1=q("fs");function u1($,J,Q){g1.stat($,function(Y,Z){Q(Y,Y?!1:c1(Z,J))})}function L4($,J){return c1(g1.statSync($),J)}function c1($,J){return $.isFile()&&N4($,J)}function N4($,J){var{mode:Q,uid:Y,gid:Z}=$,K=J.uid!==void 0?J.uid:process.getuid&&process.getuid(),X=J.gid!==void 0?J.gid:process.getgid&&process.getgid(),H=parseInt("100",8),O=parseInt("010",8),M=parseInt("001",8),z=H|O,V=Q&M||Q&O&&Z===X||Q&H&&Y===K||Q&z&&K===0;return V}});var p1=U((LY,i1)=>{var qY=q("fs"),l$;if(process.platform==="win32"||global.TESTING_WINDOWS)l$=k1();else l$=m1();i1.exports=Z0;Z0.sync=w4;function Z0($,J,Q){if(typeof J==="function")Q=J,J={};if(!Q){if(typeof Promise!=="function")throw TypeError("callback not provided");return new Promise(function(Y,Z){Z0($,J||{},function(K,X){if(K)Z(K);else Y(X)})})}l$($,J||{},function(Y,Z){if(Y){if(Y.code==="EACCES"||J&&J.ignoreErrors)Y=null,Z=!1}Q(Y,Z)})}function w4($,J){try{return l$.sync($,J||{})}catch(Q){if(J&&J.ignoreErrors||Q.code==="EACCES")return!1;else throw Q}}});var s1=U((NY,r1)=>{var W$=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",n1=q("path"),C4=W$?";":":",d1=p1(),a1=($)=>Object.assign(Error(`not found: ${$}`),{code:"ENOENT"}),o1=($,J)=>{let Q=J.colon||C4,Y=$.match(/\//)||W$&&$.match(/\\/)?[""]:[...W$?[process.cwd()]:[],...(J.path||process.env.PATH||"").split(Q)],Z=W$?J.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",K=W$?Z.split(Q):[""];if(W$){if($.indexOf(".")!==-1&&K[0]!=="")K.unshift("")}return{pathEnv:Y,pathExt:K,pathExtExe:Z}},t1=($,J,Q)=>{if(typeof J==="function")Q=J,J={};if(!J)J={};let{pathEnv:Y,pathExt:Z,pathExtExe:K}=o1($,J),X=[],H=(M)=>new Promise((z,V)=>{if(M===Y.length)return J.all&&X.length?z(X):V(a1($));let W=Y[M],G=/^".*"$/.test(W)?W.slice(1,-1):W,T=n1.join(G,$),F=!G&&/^\.[\\\/]/.test($)?$.slice(0,2)+T:T;z(O(F,M,0))}),O=(M,z,V)=>new Promise((W,G)=>{if(V===Z.length)return W(H(z+1));let T=Z[V];d1(M+T,{pathExt:K},(F,N)=>{if(!F&&N)if(J.all)X.push(M+T);else return W(M+T);return W(O(M,z,V+1))})});return Q?H(0).then((M)=>Q(null,M),Q):H(0)},T4=($,J)=>{J=J||{};let{pathEnv:Q,pathExt:Y,pathExtExe:Z}=o1($,J),K=[];for(let X=0;X<Q.length;X++){let H=Q[X],O=/^".*"$/.test(H)?H.slice(1,-1):H,M=n1.join(O,$),z=!O&&/^\.[\\\/]/.test($)?$.slice(0,2)+M:M;for(let V=0;V<Y.length;V++){let W=z+Y[V];try{if(d1.sync(W,{pathExt:Z}))if(J.all)K.push(W);else return W}catch(G){}}}if(J.all&&K.length)return K;if(J.nothrow)return null;throw a1($)};r1.exports=t1;t1.sync=T4});var $8=U((wY,K0)=>{var e1=($={})=>{let J=$.env||process.env;if(($.platform||process.platform)!=="win32")return"PATH";return Object.keys(J).reverse().find((Y)=>Y.toUpperCase()==="PATH")||"Path"};K0.exports=e1;K0.exports.default=e1});var Z8=U((CY,Y8)=>{var J8=q("path"),P4=s1(),R4=$8();function Q8($,J){let Q=$.options.env||process.env,Y=process.cwd(),Z=$.options.cwd!=null,K=Z&&process.chdir!==void 0&&!process.chdir.disabled;if(K)try{process.chdir($.options.cwd)}catch(H){}let X;try{X=P4.sync($.command,{path:Q[R4({env:Q})],pathExt:J?J8.delimiter:void 0})}catch(H){}finally{if(K)process.chdir(Y)}if(X)X=J8.resolve(Z?$.options.cwd:"",X);return X}function j4($){return Q8($)||Q8($,!0)}Y8.exports=j4});var K8=U((I4,z0)=>{var X0=/([()\][%!^"`<>&|;, *?])/g;function S4($){return $=$.replace(X0,"^$1"),$}function E4($,J){if($=`${$}`,$=$.replace(/(?=(\\+?)?)\1"/g,"$1$1\\\""),$=$.replace(/(?=(\\+?)?)\1$/,"$1$1"),$=`"${$}"`,$=$.replace(X0,"^$1"),J)$=$.replace(X0,"^$1");return $}I4.command=S4;I4.argument=E4});var z8=U((TY,X8)=>{X8.exports=/^#!(.*)/});var H8=U((PY,V8)=>{var _4=z8();V8.exports=($="")=>{let J=$.match(_4);if(!J)return null;let[Q,Y]=J[0].replace(/#! ?/,"").split(" "),Z=Q.split("/").pop();if(Z==="env")return Y;return Y?`${Z} ${Y}`:Z}});var G8=U((RY,W8)=>{var V0=q("fs"),y4=H8();function A4($){let Q=Buffer.alloc(150),Y;try{Y=V0.openSync($,"r"),V0.readSync(Y,Q,0,150,0),V0.closeSync(Y)}catch(Z){}return y4(Q.toString())}W8.exports=A4});var O8=U((jY,B8)=>{var v4=q("path"),U8=Z8(),F8=K8(),x4=G8(),b4=process.platform==="win32",h4=/\.(?:com|exe)$/i,k4=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function g4($){$.file=U8($);let J=$.file&&x4($.file);if(J)return $.args.unshift($.file),$.command=J,U8($);return $.file}function u4($){if(!b4)return $;let J=g4($),Q=!h4.test(J);if($.options.forceShell||Q){let Y=k4.test(J);$.command=v4.normalize($.command),$.command=F8.command($.command),$.args=$.args.map((K)=>F8.argument(K,Y));let Z=[$.command].concat($.args).join(" ");$.args=["/d","/s","/c",`"${Z}"`],$.command=process.env.comspec||"cmd.exe",$.options.windowsVerbatimArguments=!0}return $}function c4($,J,Q){if(J&&!Array.isArray(J))Q=J,J=null;J=J?J.slice(0):[],Q=Object.assign({},Q);let Y={command:$,args:J,options:Q,file:void 0,original:{command:$,args:J}};return Q.shell?Y:u4(Y)}B8.exports=c4});var L8=U((SY,q8)=>{var H0=process.platform==="win32";function W0($,J){return Object.assign(Error(`${J} ${$.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${J} ${$.command}`,path:$.command,spawnargs:$.args})}function l4($,J){if(!H0)return;let Q=$.emit;$.emit=function(Y,Z){if(Y==="exit"){let K=M8(Z,J);if(K)return Q.call($,"error",K)}return Q.apply($,arguments)}}function M8($,J){if(H0&&$===1&&!J.file)return W0(J.original,"spawn");return null}function m4($,J){if(H0&&$===1&&!J.file)return W0(J.original,"spawnSync");return null}q8.exports={hookChildProcess:l4,verifyENOENT:M8,verifyENOENTSync:m4,notFoundError:W0}});var C8=U((EY,G$)=>{var N8=q("child_process"),G0=O8(),U0=L8();function w8($,J,Q){let Y=G0($,J,Q),Z=N8.spawn(Y.command,Y.args,Y.options);return U0.hookChildProcess(Z,Y),Z}function i4($,J,Q){let Y=G0($,J,Q),Z=N8.spawnSync(Y.command,Y.args,Y.options);return Z.error=Z.error||U0.verifyENOENTSync(Z.status,Y),Z}G$.exports=w8;G$.exports.spawn=w8;G$.exports.sync=i4;G$.exports._parse=G0;G$.exports._enoent=U0});import{readFileSync as s4}from"node:fs";import{fileURLToPath as e4}from"node:url";import{Agent as X4}from"node:http";import{Agent as z4}from"node:https";var V4=B$(v0(),1),H4=B$(Z1(),1);var i=B$(R1(),1);import{execFile as dQ}from"node:child_process";import{readFile as aQ}from"node:fs/promises";import{homedir as oQ}from"node:os";import{join as j1}from"node:path";import{promisify as tQ}from"node:util";var rQ=tQ(dQ);function H$($,J){return $[J.toLowerCase()]?.trim()||$[J]?.trim()||void 0}function Y0($){let J=$.hostname.replace(/^\[|\]$/g,"").toLowerCase();return J==="localhost"||J.endsWith(".localhost")||J==="::1"||/^127\.(?:\d{1,3}\.){2}\d{1,3}$/.test(J)||/^::ffff:(?:127\.|7f[0-9a-f]{2}:)/.test(J)}function Q0($,J=""){let Q=$.hostname.replace(/^\[|\]$/g,"").toLowerCase(),Y=$.port||($.protocol==="https:"?"443":"80");return J.split(/[,;\s]+/).filter(Boolean).some((Z)=>{let K=Z.toLowerCase();if(K==="*")return!0;if(K==="<local>")return!Q.includes(".")&&!Q.includes(":");if(K.includes("/")){if(i.Address4.isValid(K))return i.Address4.isValid(Q)&&new i.Address4(Q).isInSubnet(new i.Address4(K));if(i.Address6.isValid(K))return i.Address6.isValid(Q)&&new i.Address6(Q).isInSubnet(new i.Address6(K));throw Error("network proxy: invalid IP range in bypass list")}let X=K.match(/^(\[[^\]]+\]|[^:]+):(\d+)$/);if(X&&X[2]!==Y)return!1;let H=(X?X[1]:K).replace(/^\[|\]$/g,"").replace(/^\*?\./,"");return Q===H||Q.endsWith(`.${H}`)})}function S1($,J){let Q;try{Q=new URL($)}catch{throw Error(`network proxy: ${J} contains an invalid proxy URL`)}if(!["http:","https:"].includes(Q.protocol))throw Error(`network proxy: ${J} must use an HTTP(S) proxy; SOCKS and PAC are not supported`);if(!Q.hostname||Q.search||Q.hash||Q.pathname&&Q.pathname!=="/")throw Error(`network proxy: ${J} must contain a proxy host and port without a path or query`);return Q.href}function E1($,J,Q={}){if(!["http:","https:"].includes($.protocol))throw Error(`network: unsupported URL protocol ${$.protocol}`);if(Y0($)||Q0($,H$(J,"NO_PROXY")))return;let Y=$.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY",Z=H$(J,Y)||H$(J,"ALL_PROXY");if(Z)return S1(Z,"environment");if(Q.unsupported)throw Error(`network proxy: ${Q.unsupported}`);if(Q0($,Q.bypass))return;let K=($.protocol==="https:"?Q.https:Q.http)||Q.all;return K?S1(K,"system settings"):void 0}function u$($,J,Q="http"){if(typeof $!=="string"||!$.trim()||!Number.isInteger(Number(J))||Number(J)<1||Number(J)>65535)throw Error("network proxy: system proxy has an invalid host or port");let Y=$.includes(":")&&!$.startsWith("[")?`[${$}]`:$;return`${Q}://${Y}:${J}`}function sQ($){if($.AutoConfigURL)return{unsupported:"Windows PAC proxy is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(!$.ProxyEnable)return $.AutoDetect?{unsupported:"Windows automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"}:{};if(typeof $.ProxyServer!=="string"||!$.ProxyServer.trim())throw Error("network proxy: Windows proxy is enabled without a server");let J={bypass:String($.ProxyOverride??"")};for(let Q of $.ProxyServer.split(";").map((Y)=>Y.trim()).filter(Boolean)){let Y=Q.match(/^(http|https|socks)=(.+)$/i),Z=Y?Y[2]:Q,K=/^[a-z][\w+.-]*:\/\//i.test(Z)?Z:`http://${Z}`;if(!Y)J.all=K;else if(Y[1].toLowerCase()==="socks")J.all=`socks://${Z.replace(/^socks\w*:\/\//,"")}`;else J[Y[1].toLowerCase()]=K}return J}function eQ($){let J=(Z)=>$.match(new RegExp(`^\\s*${Z}\\s*:\\s*(.*?)\\s*$`,"m"))?.[1];if(J("ProxyAutoConfigEnable")==="1"||J("ProxyAutoDiscoveryEnable")==="1")return{unsupported:"macOS PAC/automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};let Q={};if(J("HTTPEnable")==="1")Q.http=u$(J("HTTPProxy"),J("HTTPPort"));if(J("HTTPSEnable")==="1")Q.https=u$(J("HTTPSProxy"),J("HTTPSPort"));if(J("SOCKSEnable")==="1")Q.all=u$(J("SOCKSProxy"),J("SOCKSPort"),"socks");let Y=$.match(/ExceptionsList\s*:\s*<array>\s*\{([^}]*)\}/)?.[1]??"";if(Q.bypass=[...Y.matchAll(/^\s*\d+\s*:\s*(.*?)\s*$/gm)].map((Z)=>Z[1]).join(","),J("ExcludeSimpleHostnames")==="1")Q.bypass+=",<local>";return Q}function k$($){if($===void 0)return"";if(!/^(['"]).*\1$/.test($))throw Error("network proxy: invalid GNOME proxy string");return $.slice(1,-1).replace(/\\([\\'"])/g,"$1")}function $4($){let J=new Map($.split(`
|
|
21
21
|
`).filter(Boolean).map((Z)=>{let K=Z.match(/^org\.gnome\.system\.proxy(\.\w+)?\s+([\w-]+)\s+(.*)$/);if(!K)throw Error("network proxy: invalid GNOME proxy settings");return[`${K[1]??""}/${K[2]}`,K[3]]})),Q=k$(J.get("/mode"));if(Q==="none")return{};if(Q==="auto")return{unsupported:"GNOME PAC proxy is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(Q!=="manual")throw Error("network proxy: unknown GNOME proxy mode");let Y={};for(let Z of["http","https","socks"]){let K=k$(J.get(`.${Z}/host`));if(!K)continue;let X=new URL(u$(K,J.get(`.${Z}/port`),Z==="socks"?"socks":"http"));if(Z==="http"&&J.get(".http/use-authentication")==="true")X.username=k$(J.get(".http/authentication-user")),X.password=k$(J.get(".http/authentication-password"));Y[Z==="socks"?"all":Z]=X.href}if(J.get("/use-same-proxy")==="true"&&Y.http)Y.https=Y.http;return Y.bypass=[...(J.get("/ignore-hosts")??"").matchAll(/'((?:\\.|[^'])*)'/g)].map((Z)=>Z[1]).join(","),Y}function J4($){let J=$.match(/^\[Proxy Settings\]\s*\n([\s\S]*?)(?=^\[|$(?![\s\S]))/m)?.[1];if(J===void 0)return;let Q=new Map(J.split(`
|
|
22
|
-
`).filter((K)=>K.includes("=")).map((K)=>{let X=K.indexOf("=");return[K.slice(0,X).trim(),K.slice(X+1).trim()]})),Y=Q.get("ProxyType")??"0";if(Y==="0"||Y==="4")return{};if(Y!=="1")return{unsupported:"KDE PAC/automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(Q.get("ReversedException")==="true")return{unsupported:"KDE reversed proxy exceptions are not supported"};let Z={bypass:Q.get("NoProxyFor")};for(let K of["http","https","socks"]){let X=Q.get(`${K}Proxy`);if(!X)continue;let H=X.replace(/\s+(\d+)$/,":$1");Z[K==="socks"?"all":K]=/^[a-z][\w+.-]*:\/\//i.test(H)?H:`${K==="socks"?"socks":"http"}://${H}`}return Z}async function g$($,J){let{stdout:
|
|
22
|
+
`).filter((K)=>K.includes("=")).map((K)=>{let X=K.indexOf("=");return[K.slice(0,X).trim(),K.slice(X+1).trim()]})),Y=Q.get("ProxyType")??"0";if(Y==="0"||Y==="4")return{};if(Y!=="1")return{unsupported:"KDE PAC/automatic proxy discovery is not supported; configure a manual HTTP(S) proxy or proxy environment variables"};if(Q.get("ReversedException")==="true")return{unsupported:"KDE reversed proxy exceptions are not supported"};let Z={bypass:Q.get("NoProxyFor")};for(let K of["http","https","socks"]){let X=Q.get(`${K}Proxy`);if(!X)continue;let H=X.replace(/\s+(\d+)$/,":$1");Z[K==="socks"?"all":K]=/^[a-z][\w+.-]*:\/\//i.test(H)?H:`${K==="socks"?"socks":"http"}://${H}`}return Z}async function g$($,J,Q=5000){let{stdout:Y}=await rQ($,J,{encoding:"utf8",timeout:Q,maxBuffer:262144,windowsHide:!0});return Y}var Q4=String.raw`
|
|
23
23
|
$ErrorActionPreference = 'Stop'
|
|
24
24
|
[Console]::OutputEncoding = New-Object Text.UTF8Encoding($false)
|
|
25
25
|
Add-Type @'
|
|
@@ -57,4 +57,4 @@ try {
|
|
|
57
57
|
if ($pointer -ne [IntPtr]::Zero) { [void][LodestarProxy]::GlobalFree($pointer) }
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
`;async function Y4(){if(process.platform==="win32")return sQ(JSON.parse(await g$("powershell.exe",["-NoProfile","-NonInteractive","-Command",Q4])));if(process.platform==="darwin")return eQ(await g$("/usr/sbin/scutil",["--proxy"]));if(process.platform==="linux"){let $=j1(process.env.XDG_CONFIG_HOME||j1(oQ(),".config"),"kioslaverc");try{let Q=J4(await aQ($,"utf8"));if(Q&&(!process.env.XDG_CURRENT_DESKTOP||/kde/i.test(process.env.XDG_CURRENT_DESKTOP)))return Q}catch(Q){if(Q?.code!=="ENOENT")throw Q}let J;try{J=await g$("gsettings",["list-schemas"])}catch(Q){if(Q?.code==="ENOENT")return{};throw Q}if(!J.split(/\r?\n/).includes("org.gnome.system.proxy"))return{};return $4(await g$("gsettings",["list-recursively","org.gnome.system.proxy"]))}return{}}function Z4($=Y4,J=process.env,Q=Date.now){let Y;return async(Z)=>{if(Y0(Z)||Q0(Z,H$(J,"NO_PROXY"))||H$(J,Z.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY")||H$(J,"ALL_PROXY"))return E1(Z,J);if(!Y||Y.until<=Q()){let K=$().catch((X)=>{if(Y?.value===K)Y=void 0;if(X instanceof Error&&X.message.startsWith("network proxy:"))throw X;let H=X instanceof Error?X.code??X.name:"unknown error";throw Error(`network proxy: failed to read ${process.platform} system proxy settings (${H})`,{cause:X})});Y={until:Q()+30000,value:K}}return E1(Z,J,await Y.value)}}var K4=Z4();var k6=new X4({keepAlive:!0}),g6=new z4({keepAlive:!0});import{existsSync as d4,readFileSync as a4}from"node:fs";import{join as o4,isAbsolute as t4}from"node:path";var c$=B$(_1(),1);import{homedir as G4}from"node:os";import{join as C}from"node:path";var y1=G4(),U4=process.platform==="win32";function F4($,J,Q){if($)return $;if(J)return C(J,"lodestar");return Q}function B4(){if(U4)return C(process.env.APPDATA??C(y1,"AppData","Roaming"),"Lodestar");return C(y1,".config","lodestar")}var O4=F4(process.env.LODESTAR_CONFIG_DIR,process.env.XDG_CONFIG_HOME,B4()),P=c$.lodestarDataDir(),i6=process.env.LODESTAR_CONFIG??C(O4,"config.toml"),p6=C(P,"daemon.pid"),n6=C(P,"daemon.log"),d6=C(P,"session-chat-map.json"),a6=C(P,"session-resume-map.json"),o6=C(P,"session-turns-map.json"),t6=C(P,"session-model-map.json"),r6=C(P,"temp-session-leases.json"),s6=C(P,"tasklist-map.json"),e6=C(P,"agent-runs"),$Y=C(P,"agent-session-ids.json"),JY=c$.managedClaudePluginDir(),QY=C(P,"dsh"),YY=C(P,"codex-accounts"),ZY=C(P,"codex-accounts.json"),KY=C(P,"codex-quota-blocks.json"),A1=C(P,"agent-runtimes"),XY=C(P,"context-window-cache.json"),zY=C(P,"notify-callbacks.json"),VY=C(P,"alive-on-shutdown.json"),HY=C(P,"inbox"),WY=C(P,"file-deliveries"),GY=C(P,"file-delivery-groups.json"),UY=C(P,"debug.sock"),FY=C(P,"debug-context.json");var p4=B$(C8(),1);var T8=["codex","claude","dsh"];function r4($,J=A1){let Q=o4(J,$,"current.json");if(!d4(Q))return null;let Y=JSON.parse(a4(Q,"utf8"));if(!Number.isFinite(Y.checkedAt)||Y.directory!==void 0&&!t4(Y.directory))throw Error(`Invalid ${$} runtime state: ${Q}`);return Y}function P8($){return r4($)}var $6=JSON.parse(s4(e4(new URL("../package.json",import.meta.url)),"utf8"));console.log(`Lodestar v${$6.version}`);for(let $ of T8)try{let J=P8($);if(!J){console.log(`${$}: MISS(尚未自动安装)`);continue}if(J.error){console.log(`${$}: MISS(自动更新失败:${J.error})`),process.exitCode=1;continue}let Q=$==="dsh"?["@deepseek-ai/dsh"]:Object.keys(J.versions??{});console.log(`${$}: ${Q.map((Y)=>`${Y}@${J.versions?.[Y]??"MISS"}`).join(", ")}`),console.log(` ${J.directory}`)}catch(J){console.error(`${$}: MISS(${J})`),process.exitCode=1}console.log(`Runtime: ${process.version} (${process.platform}-${process.arch})`);
|
|
60
|
+
`;async function Y4(){if(process.platform==="win32")return sQ(JSON.parse(await g$("powershell.exe",["-NoProfile","-NonInteractive","-Command",Q4],15000)));if(process.platform==="darwin")return eQ(await g$("/usr/sbin/scutil",["--proxy"]));if(process.platform==="linux"){let $=j1(process.env.XDG_CONFIG_HOME||j1(oQ(),".config"),"kioslaverc");try{let Q=J4(await aQ($,"utf8"));if(Q&&(!process.env.XDG_CURRENT_DESKTOP||/kde/i.test(process.env.XDG_CURRENT_DESKTOP)))return Q}catch(Q){if(Q?.code!=="ENOENT")throw Q}let J;try{J=await g$("gsettings",["list-schemas"])}catch(Q){if(Q?.code==="ENOENT")return{};throw Q}if(!J.split(/\r?\n/).includes("org.gnome.system.proxy"))return{};return $4(await g$("gsettings",["list-recursively","org.gnome.system.proxy"]))}return{}}function Z4($=Y4,J=process.env,Q=Date.now){let Y;return async(Z)=>{if(Y0(Z)||Q0(Z,H$(J,"NO_PROXY"))||H$(J,Z.protocol==="https:"?"HTTPS_PROXY":"HTTP_PROXY")||H$(J,"ALL_PROXY"))return E1(Z,J);if(!Y||Y.until<=Q()){let K=$().catch((X)=>{if(Y?.value===K)Y=void 0;if(X instanceof Error&&X.message.startsWith("network proxy:"))throw X;let H=X instanceof Error?X.code??X.name:"unknown error";throw Error(`network proxy: failed to read ${process.platform} system proxy settings (${H})`,{cause:X})});Y={until:Q()+30000,value:K}}return E1(Z,J,await Y.value)}}var K4=Z4();var k6=new X4({keepAlive:!0}),g6=new z4({keepAlive:!0});import{existsSync as d4,readFileSync as a4}from"node:fs";import{join as o4,isAbsolute as t4}from"node:path";var c$=B$(_1(),1);import{homedir as G4}from"node:os";import{join as C}from"node:path";var y1=G4(),U4=process.platform==="win32";function F4($,J,Q){if($)return $;if(J)return C(J,"lodestar");return Q}function B4(){if(U4)return C(process.env.APPDATA??C(y1,"AppData","Roaming"),"Lodestar");return C(y1,".config","lodestar")}var O4=F4(process.env.LODESTAR_CONFIG_DIR,process.env.XDG_CONFIG_HOME,B4()),P=c$.lodestarDataDir(),i6=process.env.LODESTAR_CONFIG??C(O4,"config.toml"),p6=C(P,"daemon.pid"),n6=C(P,"daemon.log"),d6=C(P,"session-chat-map.json"),a6=C(P,"session-resume-map.json"),o6=C(P,"session-turns-map.json"),t6=C(P,"session-model-map.json"),r6=C(P,"temp-session-leases.json"),s6=C(P,"tasklist-map.json"),e6=C(P,"agent-runs"),$Y=C(P,"agent-session-ids.json"),JY=c$.managedClaudePluginDir(),QY=C(P,"dsh"),YY=C(P,"codex-accounts"),ZY=C(P,"codex-accounts.json"),KY=C(P,"codex-quota-blocks.json"),A1=C(P,"agent-runtimes"),XY=C(P,"context-window-cache.json"),zY=C(P,"notify-callbacks.json"),VY=C(P,"alive-on-shutdown.json"),HY=C(P,"inbox"),WY=C(P,"file-deliveries"),GY=C(P,"file-delivery-groups.json"),UY=C(P,"debug.sock"),FY=C(P,"debug-context.json");var p4=B$(C8(),1);var T8=["codex","claude","dsh"];function r4($,J=A1){let Q=o4(J,$,"current.json");if(!d4(Q))return null;let Y=JSON.parse(a4(Q,"utf8"));if(!Number.isFinite(Y.checkedAt)||Y.directory!==void 0&&!t4(Y.directory))throw Error(`Invalid ${$} runtime state: ${Q}`);return Y}function P8($){return r4($)}var $6=JSON.parse(s4(e4(new URL("../package.json",import.meta.url)),"utf8"));console.log(`Lodestar v${$6.version}`);for(let $ of T8)try{let J=P8($);if(!J){console.log(`${$}: MISS(尚未自动安装)`);continue}if(J.error){console.log(`${$}: MISS(自动更新失败:${J.error})`),process.exitCode=1;continue}let Q=$==="dsh"?["@deepseek-ai/dsh"]:Object.keys(J.versions??{});console.log(`${$}: ${Q.map((Y)=>`${Y}@${J.versions?.[Y]??"MISS"}`).join(", ")}`),console.log(` ${J.directory}`)}catch(J){console.error(`${$}: MISS(${J})`),process.exitCode=1}console.log(`Runtime: ${process.version} (${process.platform}-${process.arch})`);
|